@askdkc/dsh-cli 0.11.3
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 +321 -0
- package/bin/dsh-tui.js +1366 -0
- package/cordis.patch.yml +482 -0
- package/cordis.yml +250 -0
- package/dsh-ecosystem-spec/protocols/profile-definitions.d.ts +13 -0
- package/dsh-ecosystem-spec/protocols/profile-definitions.js +59 -0
- package/dsh-ecosystem-spec/protocols/tui-channel-http.d.ts +15 -0
- package/dsh-ecosystem-spec/protocols/tui-channel-http.js +32 -0
- package/dsh-ecosystem-spec/protocols/tui-channel.d.ts +59 -0
- package/dsh-ecosystem-spec/protocols/tui-channel.js +166 -0
- package/dsh-ecosystem-spec/protocols/tui-contributions.d.ts +42 -0
- package/dsh-ecosystem-spec/protocols/tui-contributions.js +143 -0
- package/dsh-ecosystem-spec/registry/README.md +14 -0
- package/dsh-ecosystem-spec/registry/contracts/decision-events-v1alpha1.json +13 -0
- package/dsh-ecosystem-spec/registry/contracts/scene-v1alpha1.json +13 -0
- package/dsh-ecosystem-spec/registry/contracts/settings-section-v1alpha1.json +13 -0
- package/dsh-ecosystem-spec/registry/contracts/tui-channel-v1alpha1.json +30 -0
- package/dsh-ecosystem-spec/registry/contracts/workspace-provider-v1alpha1.json +6 -0
- package/dsh-ecosystem-spec/registry/host-descriptor.tui.example.json +56 -0
- package/dsh-ecosystem-spec/registry/permissions-0.1.json +13 -0
- package/dsh-ecosystem-spec/registry/registry-0.15.json +149 -0
- package/dsh-ecosystem-spec/schemas/conformance-claim.schema.json +15 -0
- package/dsh-ecosystem-spec/schemas/effect-ledger-record.schema.json +16 -0
- package/dsh-ecosystem-spec/schemas/host-descriptor.schema.json +26 -0
- package/lib/types/activityPrefs.d.ts +63 -0
- package/lib/types/activityPrefs.d.ts.map +1 -0
- package/lib/types/activityPrefs.js +126 -0
- package/lib/types/adapter/channel/actions.d.ts +17 -0
- package/lib/types/adapter/channel/actions.d.ts.map +1 -0
- package/lib/types/adapter/channel/actions.js +28 -0
- package/lib/types/adapter/channel/consumer.d.ts +34 -0
- package/lib/types/adapter/channel/consumer.d.ts.map +1 -0
- package/lib/types/adapter/channel/consumer.js +87 -0
- package/lib/types/adapter/channel/features.d.ts +12 -0
- package/lib/types/adapter/channel/features.d.ts.map +1 -0
- package/lib/types/adapter/channel/features.js +41 -0
- package/lib/types/adapter/channel/host-registry.d.ts +40 -0
- package/lib/types/adapter/channel/host-registry.d.ts.map +1 -0
- package/lib/types/adapter/channel/host-registry.js +120 -0
- package/lib/types/adapter/channel/index.d.ts +22 -0
- package/lib/types/adapter/channel/index.d.ts.map +1 -0
- package/lib/types/adapter/channel/index.js +21 -0
- package/lib/types/adapter/channel/internal-token.d.ts +12 -0
- package/lib/types/adapter/channel/internal-token.d.ts.map +1 -0
- package/lib/types/adapter/channel/internal-token.js +11 -0
- package/lib/types/adapter/channel/plugins.d.ts +17 -0
- package/lib/types/adapter/channel/plugins.d.ts.map +1 -0
- package/lib/types/adapter/channel/plugins.js +47 -0
- package/lib/types/adapter/channel/projection.d.ts +15 -0
- package/lib/types/adapter/channel/projection.d.ts.map +1 -0
- package/lib/types/adapter/channel/projection.js +59 -0
- package/lib/types/adapter/channel/provider.d.ts +52 -0
- package/lib/types/adapter/channel/provider.d.ts.map +1 -0
- package/lib/types/adapter/channel/provider.js +231 -0
- package/lib/types/adapter/channel/read-view.d.ts +4 -0
- package/lib/types/adapter/channel/read-view.d.ts.map +1 -0
- package/lib/types/adapter/channel/read-view.js +132 -0
- package/lib/types/adapter/channel/session-projection.d.ts +56 -0
- package/lib/types/adapter/channel/session-projection.d.ts.map +1 -0
- package/lib/types/adapter/channel/session-projection.js +249 -0
- package/lib/types/adapter/channel/state.d.ts +11 -0
- package/lib/types/adapter/channel/state.d.ts.map +1 -0
- package/lib/types/adapter/channel/state.js +57 -0
- package/lib/types/adapter/channel/transcript.d.ts +15 -0
- package/lib/types/adapter/channel/transcript.d.ts.map +1 -0
- package/lib/types/adapter/channel/transcript.js +22 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +109 -0
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -0
- package/lib/types/adapter/channel/ui-policy.js +170 -0
- package/lib/types/adapter/channel/ui.d.ts +16 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -0
- package/lib/types/adapter/channel/ui.js +173 -0
- package/lib/types/adapter/index.d.ts +20 -0
- package/lib/types/adapter/index.d.ts.map +1 -0
- package/lib/types/adapter/index.js +19 -0
- package/lib/types/adapter/kernel/contract-catalog.d.ts +12 -0
- package/lib/types/adapter/kernel/contract-catalog.d.ts.map +1 -0
- package/lib/types/adapter/kernel/contract-catalog.js +11 -0
- package/lib/types/adapter/kernel/diagnostics.d.ts +18 -0
- package/lib/types/adapter/kernel/diagnostics.d.ts.map +1 -0
- package/lib/types/adapter/kernel/diagnostics.js +16 -0
- package/lib/types/adapter/kernel/driver-types.d.ts +16 -0
- package/lib/types/adapter/kernel/driver-types.d.ts.map +1 -0
- package/lib/types/adapter/kernel/driver-types.js +8 -0
- package/lib/types/adapter/kernel/host-facade.d.ts +65 -0
- package/lib/types/adapter/kernel/host-facade.d.ts.map +1 -0
- package/lib/types/adapter/kernel/host-facade.js +216 -0
- package/lib/types/adapter/kernel/host-probe-access.d.ts +71 -0
- package/lib/types/adapter/kernel/host-probe-access.d.ts.map +1 -0
- package/lib/types/adapter/kernel/host-probe-access.js +121 -0
- package/lib/types/adapter/kernel/index.d.ts +20 -0
- package/lib/types/adapter/kernel/index.d.ts.map +1 -0
- package/lib/types/adapter/kernel/index.js +19 -0
- package/lib/types/adapter/kernel/kernel-runtime.d.ts +138 -0
- package/lib/types/adapter/kernel/kernel-runtime.d.ts.map +1 -0
- package/lib/types/adapter/kernel/kernel-runtime.js +572 -0
- package/lib/types/adapter/kernel/ledger.d.ts +55 -0
- package/lib/types/adapter/kernel/ledger.d.ts.map +1 -0
- package/lib/types/adapter/kernel/ledger.js +33 -0
- package/lib/types/adapter/kernel/legacy-facade.d.ts +22 -0
- package/lib/types/adapter/kernel/legacy-facade.d.ts.map +1 -0
- package/lib/types/adapter/kernel/legacy-facade.js +34 -0
- package/lib/types/adapter/kernel/lifecycle.d.ts +38 -0
- package/lib/types/adapter/kernel/lifecycle.d.ts.map +1 -0
- package/lib/types/adapter/kernel/lifecycle.js +53 -0
- package/lib/types/adapter/kernel/replay-isolation.d.ts +27 -0
- package/lib/types/adapter/kernel/replay-isolation.d.ts.map +1 -0
- package/lib/types/adapter/kernel/replay-isolation.js +45 -0
- package/lib/types/adapter/kernel/replay.d.ts +132 -0
- package/lib/types/adapter/kernel/replay.d.ts.map +1 -0
- package/lib/types/adapter/kernel/replay.js +428 -0
- package/lib/types/adapter/kernel/runtime-context.d.ts +15 -0
- package/lib/types/adapter/kernel/runtime-context.d.ts.map +1 -0
- package/lib/types/adapter/kernel/runtime-context.js +24 -0
- package/lib/types/adapter/kernel/runtime.d.ts +70 -0
- package/lib/types/adapter/kernel/runtime.d.ts.map +1 -0
- package/lib/types/adapter/kernel/runtime.js +327 -0
- package/lib/types/adapter/kernel/slices/channel.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/channel.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/channel.js +8 -0
- package/lib/types/adapter/kernel/slices/decisions.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/decisions.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/decisions.js +10 -0
- package/lib/types/adapter/kernel/slices/extensions.d.ts +8 -0
- package/lib/types/adapter/kernel/slices/extensions.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/extensions.js +43 -0
- package/lib/types/adapter/kernel/slices/index.d.ts +19 -0
- package/lib/types/adapter/kernel/slices/index.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/index.js +36 -0
- package/lib/types/adapter/kernel/slices/presentation.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/presentation.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/presentation.js +14 -0
- package/lib/types/adapter/kernel/slices/scenes.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/scenes.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/scenes.js +14 -0
- package/lib/types/adapter/kernel/slices/settings.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/settings.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/settings.js +12 -0
- package/lib/types/adapter/kernel/slices/types.d.ts +20 -0
- package/lib/types/adapter/kernel/slices/types.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/types.js +12 -0
- package/lib/types/adapter/kernel/slices/workspace.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/workspace.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/workspace.js +16 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts +90 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-catalog.js +2 -0
- package/lib/types/adapter/ports/channel-display.d.ts +90 -0
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-display.js +2 -0
- package/lib/types/adapter/ports/channel-session.d.ts +229 -0
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-session.js +2 -0
- package/lib/types/adapter/ports/channel-settings.d.ts +279 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-settings.js +1 -0
- package/lib/types/adapter/ports/channel-ui.d.ts +593 -0
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-ui.js +1 -0
- package/lib/types/adapter/ports/channel-view.d.ts +663 -0
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-view.js +2 -0
- package/lib/types/adapter/ports/channel-workspace.d.ts +68 -0
- package/lib/types/adapter/ports/channel-workspace.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-workspace.js +2 -0
- package/lib/types/adapter/ports/channel.d.ts +148 -0
- package/lib/types/adapter/ports/channel.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel.js +22 -0
- package/lib/types/adapter/ports/decisions.d.ts +18 -0
- package/lib/types/adapter/ports/decisions.d.ts.map +1 -0
- package/lib/types/adapter/ports/decisions.js +9 -0
- package/lib/types/adapter/ports/descriptor.d.ts +25 -0
- package/lib/types/adapter/ports/descriptor.d.ts.map +1 -0
- package/lib/types/adapter/ports/descriptor.js +11 -0
- package/lib/types/adapter/ports/extensions.d.ts +86 -0
- package/lib/types/adapter/ports/extensions.d.ts.map +1 -0
- package/lib/types/adapter/ports/extensions.js +9 -0
- package/lib/types/adapter/ports/index.d.ts +23 -0
- package/lib/types/adapter/ports/index.d.ts.map +1 -0
- package/lib/types/adapter/ports/index.js +14 -0
- package/lib/types/adapter/ports/owner.d.ts +19 -0
- package/lib/types/adapter/ports/owner.d.ts.map +1 -0
- package/lib/types/adapter/ports/owner.js +9 -0
- package/lib/types/adapter/ports/presentation.d.ts +81 -0
- package/lib/types/adapter/ports/presentation.d.ts.map +1 -0
- package/lib/types/adapter/ports/presentation.js +10 -0
- package/lib/types/adapter/ports/scenes.d.ts +24 -0
- package/lib/types/adapter/ports/scenes.d.ts.map +1 -0
- package/lib/types/adapter/ports/scenes.js +8 -0
- package/lib/types/adapter/ports/settings.d.ts +44 -0
- package/lib/types/adapter/ports/settings.d.ts.map +1 -0
- package/lib/types/adapter/ports/settings.js +9 -0
- package/lib/types/adapter/ports/workspace.d.ts +62 -0
- package/lib/types/adapter/ports/workspace.d.ts.map +1 -0
- package/lib/types/adapter/ports/workspace.js +8 -0
- package/lib/types/adapter/spec/index.d.ts +11 -0
- package/lib/types/adapter/spec/index.d.ts.map +1 -0
- package/lib/types/adapter/spec/index.js +10 -0
- package/lib/types/adapter/spec/profile.d.ts +10 -0
- package/lib/types/adapter/spec/profile.d.ts.map +1 -0
- package/lib/types/adapter/spec/profile.js +9 -0
- package/lib/types/adapter/spec/protocol-constants.d.ts +60 -0
- package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -0
- package/lib/types/adapter/spec/protocol-constants.js +129 -0
- package/lib/types/adapter/spec/tui-contributions.d.ts +18 -0
- package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -0
- package/lib/types/adapter/spec/tui-contributions.js +19 -0
- package/lib/types/adapter/standard/admission.d.ts +11 -0
- package/lib/types/adapter/standard/admission.d.ts.map +1 -0
- package/lib/types/adapter/standard/admission.js +10 -0
- package/lib/types/adapter/standard/descriptor.d.ts +74 -0
- package/lib/types/adapter/standard/descriptor.d.ts.map +1 -0
- package/lib/types/adapter/standard/descriptor.js +356 -0
- package/lib/types/adapter/standard/grants.d.ts +30 -0
- package/lib/types/adapter/standard/grants.d.ts.map +1 -0
- package/lib/types/adapter/standard/grants.js +219 -0
- package/lib/types/adapter/standard/index.d.ts +25 -0
- package/lib/types/adapter/standard/index.d.ts.map +1 -0
- package/lib/types/adapter/standard/index.js +24 -0
- package/lib/types/adapter/standard/negotiate.d.ts +11 -0
- package/lib/types/adapter/standard/negotiate.d.ts.map +1 -0
- package/lib/types/adapter/standard/negotiate.js +97 -0
- package/lib/types/adapter/standard/permission-scope.d.ts +27 -0
- package/lib/types/adapter/standard/permission-scope.d.ts.map +1 -0
- package/lib/types/adapter/standard/permission-scope.js +68 -0
- package/lib/types/adapter/standard/protocols.d.ts +12 -0
- package/lib/types/adapter/standard/protocols.d.ts.map +1 -0
- package/lib/types/adapter/standard/protocols.js +11 -0
- package/lib/types/adapter/standard/registry.d.ts +23 -0
- package/lib/types/adapter/standard/registry.d.ts.map +1 -0
- package/lib/types/adapter/standard/registry.js +240 -0
- package/lib/types/adapter/standard/schema-check.d.ts +17 -0
- package/lib/types/adapter/standard/schema-check.d.ts.map +1 -0
- package/lib/types/adapter/standard/schema-check.js +167 -0
- package/lib/types/adapter/standard/tui-extension.d.ts +25 -0
- package/lib/types/adapter/standard/tui-extension.d.ts.map +1 -0
- package/lib/types/adapter/standard/tui-extension.js +45 -0
- package/lib/types/adapter/standard/types.d.ts +108 -0
- package/lib/types/adapter/standard/types.d.ts.map +1 -0
- package/lib/types/adapter/standard/types.js +10 -0
- package/lib/types/adapter/standard/validate.d.ts +21 -0
- package/lib/types/adapter/standard/validate.d.ts.map +1 -0
- package/lib/types/adapter/standard/validate.js +139 -0
- package/lib/types/adapter/upstream/channel-driver.d.ts +22 -0
- package/lib/types/adapter/upstream/channel-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/channel-driver.js +424 -0
- package/lib/types/adapter/upstream/decisions-driver.d.ts +15 -0
- package/lib/types/adapter/upstream/decisions-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/decisions-driver.js +141 -0
- package/lib/types/adapter/upstream/detection.d.ts +26 -0
- package/lib/types/adapter/upstream/detection.d.ts.map +1 -0
- package/lib/types/adapter/upstream/detection.js +9 -0
- package/lib/types/adapter/upstream/driver.d.ts +50 -0
- package/lib/types/adapter/upstream/driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/driver.js +8 -0
- package/lib/types/adapter/upstream/extensions-driver.d.ts +24 -0
- package/lib/types/adapter/upstream/extensions-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/extensions-driver.js +697 -0
- package/lib/types/adapter/upstream/host-descriptor-driver.d.ts +45 -0
- package/lib/types/adapter/upstream/host-descriptor-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/host-descriptor-driver.js +606 -0
- package/lib/types/adapter/upstream/index.d.ts +18 -0
- package/lib/types/adapter/upstream/index.d.ts.map +1 -0
- package/lib/types/adapter/upstream/index.js +15 -0
- package/lib/types/adapter/upstream/presentation-driver.d.ts +17 -0
- package/lib/types/adapter/upstream/presentation-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/presentation-driver.js +129 -0
- package/lib/types/adapter/upstream/scenes-driver.d.ts +18 -0
- package/lib/types/adapter/upstream/scenes-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/scenes-driver.js +170 -0
- package/lib/types/adapter/upstream/settings-driver.d.ts +20 -0
- package/lib/types/adapter/upstream/settings-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/settings-driver.js +173 -0
- package/lib/types/adapter/upstream/workspace-driver.d.ts +19 -0
- package/lib/types/adapter/upstream/workspace-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/workspace-driver.js +198 -0
- package/lib/types/api.d.ts +7 -0
- package/lib/types/api.d.ts.map +1 -0
- package/lib/types/api.js +1 -0
- package/lib/types/bootstrap/state.d.ts +11 -0
- package/lib/types/bootstrap/state.d.ts.map +1 -0
- package/lib/types/bootstrap/state.js +10 -0
- package/lib/types/command-trees.d.ts +4 -0
- package/lib/types/command-trees.d.ts.map +1 -0
- package/lib/types/command-trees.js +4 -0
- package/lib/types/commands.d.ts +87 -0
- package/lib/types/commands.d.ts.map +1 -0
- package/lib/types/commands.js +218 -0
- package/lib/types/components/ActivityLine.d.ts +34 -0
- package/lib/types/components/ActivityLine.d.ts.map +1 -0
- package/lib/types/components/ActivityLine.js +39 -0
- package/lib/types/components/ActivityPicker.d.ts +16 -0
- package/lib/types/components/ActivityPicker.d.ts.map +1 -0
- package/lib/types/components/ActivityPicker.js +23 -0
- package/lib/types/components/AutoRecapRow.d.ts +23 -0
- package/lib/types/components/AutoRecapRow.d.ts.map +1 -0
- package/lib/types/components/AutoRecapRow.js +23 -0
- package/lib/types/components/BalanceReportRow.d.ts +24 -0
- package/lib/types/components/BalanceReportRow.d.ts.map +1 -0
- package/lib/types/components/BalanceReportRow.js +87 -0
- package/lib/types/components/BtwPanel.d.ts +16 -0
- package/lib/types/components/BtwPanel.d.ts.map +1 -0
- package/lib/types/components/BtwPanel.js +47 -0
- package/lib/types/components/Chat/JobCard.d.ts +23 -0
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -0
- package/lib/types/components/Chat/JobCard.js +93 -0
- package/lib/types/components/Chat/SubagentMessage.d.ts +20 -0
- package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -0
- package/lib/types/components/Chat/SubagentMessage.js +83 -0
- package/lib/types/components/ColorPicker.d.ts +17 -0
- package/lib/types/components/ColorPicker.d.ts.map +1 -0
- package/lib/types/components/ColorPicker.js +20 -0
- package/lib/types/components/CommandSuggestions.d.ts +34 -0
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -0
- package/lib/types/components/CommandSuggestions.js +61 -0
- package/lib/types/components/ContextBarView.d.ts +41 -0
- package/lib/types/components/ContextBarView.d.ts.map +1 -0
- package/lib/types/components/ContextBarView.js +50 -0
- package/lib/types/components/EffortChargeGlyph.d.ts +26 -0
- package/lib/types/components/EffortChargeGlyph.d.ts.map +1 -0
- package/lib/types/components/EffortChargeGlyph.js +70 -0
- package/lib/types/components/EffortInputBorder.d.ts +47 -0
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -0
- package/lib/types/components/EffortInputBorder.js +90 -0
- package/lib/types/components/EffortSlider.d.ts +18 -0
- package/lib/types/components/EffortSlider.d.ts.map +1 -0
- package/lib/types/components/EffortSlider.js +19 -0
- package/lib/types/components/EffortTierBadge.d.ts +26 -0
- package/lib/types/components/EffortTierBadge.d.ts.map +1 -0
- package/lib/types/components/EffortTierBadge.js +97 -0
- package/lib/types/components/ExtensionDialog.d.ts +40 -0
- package/lib/types/components/ExtensionDialog.d.ts.map +1 -0
- package/lib/types/components/ExtensionDialog.js +253 -0
- package/lib/types/components/FileActionsPanel.d.ts +22 -0
- package/lib/types/components/FileActionsPanel.d.ts.map +1 -0
- package/lib/types/components/FileActionsPanel.js +28 -0
- package/lib/types/components/FileSuggestions.d.ts +18 -0
- package/lib/types/components/FileSuggestions.d.ts.map +1 -0
- package/lib/types/components/FileSuggestions.js +78 -0
- package/lib/types/components/GoalTodoPanel.d.ts +38 -0
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -0
- package/lib/types/components/GoalTodoPanel.js +131 -0
- package/lib/types/components/HelpMenu.d.ts +29 -0
- package/lib/types/components/HelpMenu.d.ts.map +1 -0
- package/lib/types/components/HelpMenu.js +39 -0
- package/lib/types/components/HistorySearchDialog.d.ts +18 -0
- package/lib/types/components/HistorySearchDialog.d.ts.map +1 -0
- package/lib/types/components/HistorySearchDialog.js +47 -0
- package/lib/types/components/ImagePreviewOverlay.d.ts +51 -0
- package/lib/types/components/ImagePreviewOverlay.d.ts.map +1 -0
- package/lib/types/components/ImagePreviewOverlay.js +269 -0
- package/lib/types/components/JobsPanel.d.ts +17 -0
- package/lib/types/components/JobsPanel.d.ts.map +1 -0
- package/lib/types/components/JobsPanel.js +111 -0
- package/lib/types/components/LangPicker.d.ts +14 -0
- package/lib/types/components/LangPicker.d.ts.map +1 -0
- package/lib/types/components/LangPicker.js +17 -0
- package/lib/types/components/LoadedContextPanel.d.ts +20 -0
- package/lib/types/components/LoadedContextPanel.d.ts.map +1 -0
- package/lib/types/components/LoadedContextPanel.js +32 -0
- package/lib/types/components/LogoV2.d.ts +48 -0
- package/lib/types/components/LogoV2.d.ts.map +1 -0
- package/lib/types/components/LogoV2.js +239 -0
- package/lib/types/components/Markdown.d.ts +46 -0
- package/lib/types/components/Markdown.d.ts.map +1 -0
- package/lib/types/components/Markdown.js +178 -0
- package/lib/types/components/MarkdownTable.d.ts +13 -0
- package/lib/types/components/MarkdownTable.d.ts.map +1 -0
- package/lib/types/components/MarkdownTable.js +155 -0
- package/lib/types/components/MermaidDiagram.d.ts +13 -0
- package/lib/types/components/MermaidDiagram.d.ts.map +1 -0
- package/lib/types/components/MermaidDiagram.js +61 -0
- package/lib/types/components/MessageList.d.ts +144 -0
- package/lib/types/components/MessageList.d.ts.map +1 -0
- package/lib/types/components/MessageList.js +1170 -0
- package/lib/types/components/MigratePicker.d.ts +30 -0
- package/lib/types/components/MigratePicker.d.ts.map +1 -0
- package/lib/types/components/MigratePicker.js +38 -0
- package/lib/types/components/ModelPicker.d.ts +42 -0
- package/lib/types/components/ModelPicker.d.ts.map +1 -0
- package/lib/types/components/ModelPicker.js +51 -0
- package/lib/types/components/OverlayAbove.d.ts +48 -0
- package/lib/types/components/OverlayAbove.d.ts.map +1 -0
- package/lib/types/components/OverlayAbove.js +98 -0
- package/lib/types/components/PageMargin.d.ts +58 -0
- package/lib/types/components/PageMargin.d.ts.map +1 -0
- package/lib/types/components/PageMargin.js +38 -0
- package/lib/types/components/PermissionsPicker.d.ts +20 -0
- package/lib/types/components/PermissionsPicker.d.ts.map +1 -0
- package/lib/types/components/PermissionsPicker.js +33 -0
- package/lib/types/components/PlanPicker.d.ts +15 -0
- package/lib/types/components/PlanPicker.d.ts.map +1 -0
- package/lib/types/components/PlanPicker.js +18 -0
- package/lib/types/components/PluginSceneBoundary.d.ts +31 -0
- package/lib/types/components/PluginSceneBoundary.d.ts.map +1 -0
- package/lib/types/components/PluginSceneBoundary.js +29 -0
- package/lib/types/components/PluginStatusViewBoundary.d.ts +26 -0
- package/lib/types/components/PluginStatusViewBoundary.d.ts.map +1 -0
- package/lib/types/components/PluginStatusViewBoundary.js +22 -0
- package/lib/types/components/PresetPicker.d.ts +20 -0
- package/lib/types/components/PresetPicker.d.ts.map +1 -0
- package/lib/types/components/PresetPicker.js +24 -0
- package/lib/types/components/PromptEditor.d.ts +48 -0
- package/lib/types/components/PromptEditor.d.ts.map +1 -0
- package/lib/types/components/PromptEditor.js +75 -0
- package/lib/types/components/PromptInput.d.ts +163 -0
- package/lib/types/components/PromptInput.d.ts.map +1 -0
- package/lib/types/components/PromptInput.js +3503 -0
- package/lib/types/components/RecapPanel.d.ts +25 -0
- package/lib/types/components/RecapPanel.d.ts.map +1 -0
- package/lib/types/components/RecapPanel.js +55 -0
- package/lib/types/components/RewindPicker.d.ts +37 -0
- package/lib/types/components/RewindPicker.d.ts.map +1 -0
- package/lib/types/components/RewindPicker.js +66 -0
- package/lib/types/components/ScrollbarGutter.d.ts +43 -0
- package/lib/types/components/ScrollbarGutter.d.ts.map +1 -0
- package/lib/types/components/ScrollbarGutter.js +197 -0
- package/lib/types/components/SearchBox.d.ts +24 -0
- package/lib/types/components/SearchBox.d.ts.map +1 -0
- package/lib/types/components/SearchBox.js +132 -0
- package/lib/types/components/Select.d.ts +29 -0
- package/lib/types/components/Select.d.ts.map +1 -0
- package/lib/types/components/Select.js +21 -0
- package/lib/types/components/SkillsPicker.d.ts +21 -0
- package/lib/types/components/SkillsPicker.d.ts.map +1 -0
- package/lib/types/components/SkillsPicker.js +52 -0
- package/lib/types/components/Spinner/GlimmerMessage.d.ts +16 -0
- package/lib/types/components/Spinner/GlimmerMessage.d.ts.map +1 -0
- package/lib/types/components/Spinner/GlimmerMessage.js +57 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts +33 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts.map +1 -0
- package/lib/types/components/Spinner/SpinnerAnimationRow.js +168 -0
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts +16 -0
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts.map +1 -0
- package/lib/types/components/Spinner/SpinnerGlyph.js +36 -0
- package/lib/types/components/Spinner/spinnerMode.d.ts +2 -0
- package/lib/types/components/Spinner/spinnerMode.d.ts.map +1 -0
- package/lib/types/components/Spinner/spinnerMode.js +1 -0
- package/lib/types/components/Spinner/spinnerUtils.d.ts +36 -0
- package/lib/types/components/Spinner/spinnerUtils.d.ts.map +1 -0
- package/lib/types/components/Spinner/spinnerUtils.js +94 -0
- package/lib/types/components/Spinner/useStalledAnimation.d.ts +16 -0
- package/lib/types/components/Spinner/useStalledAnimation.d.ts.map +1 -0
- package/lib/types/components/Spinner/useStalledAnimation.js +52 -0
- package/lib/types/components/SplitDiffView.d.ts +25 -0
- package/lib/types/components/SplitDiffView.d.ts.map +1 -0
- package/lib/types/components/SplitDiffView.js +279 -0
- package/lib/types/components/StreamingMarkdown.d.ts +6 -0
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -0
- package/lib/types/components/StreamingMarkdown.js +279 -0
- package/lib/types/components/SubagentCard.d.ts +10 -0
- package/lib/types/components/SubagentCard.d.ts.map +1 -0
- package/lib/types/components/SubagentCard.js +39 -0
- package/lib/types/components/SubagentDashboard.d.ts +17 -0
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -0
- package/lib/types/components/SubagentDashboard.js +58 -0
- package/lib/types/components/SubagentDetailScene.d.ts +16 -0
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -0
- package/lib/types/components/SubagentDetailScene.js +147 -0
- package/lib/types/components/SuggestionCard.d.ts +65 -0
- package/lib/types/components/SuggestionCard.d.ts.map +1 -0
- package/lib/types/components/SuggestionCard.js +77 -0
- package/lib/types/components/SyntaxText.d.ts +15 -0
- package/lib/types/components/SyntaxText.d.ts.map +1 -0
- package/lib/types/components/SyntaxText.js +34 -0
- package/lib/types/components/ThemePicker.d.ts +27 -0
- package/lib/types/components/ThemePicker.d.ts.map +1 -0
- package/lib/types/components/ThemePicker.js +55 -0
- package/lib/types/components/ThinkingToggle.d.ts +13 -0
- package/lib/types/components/ThinkingToggle.d.ts.map +1 -0
- package/lib/types/components/ThinkingToggle.js +25 -0
- package/lib/types/components/TimelineRail.d.ts +53 -0
- package/lib/types/components/TimelineRail.d.ts.map +1 -0
- package/lib/types/components/TimelineRail.js +197 -0
- package/lib/types/components/TipsPanel.d.ts +14 -0
- package/lib/types/components/TipsPanel.d.ts.map +1 -0
- package/lib/types/components/TipsPanel.js +37 -0
- package/lib/types/components/ToolUseLoader.d.ts +18 -0
- package/lib/types/components/ToolUseLoader.d.ts.map +1 -0
- package/lib/types/components/ToolUseLoader.js +51 -0
- package/lib/types/components/Tooltip.d.ts +67 -0
- package/lib/types/components/Tooltip.d.ts.map +1 -0
- package/lib/types/components/Tooltip.js +266 -0
- package/lib/types/components/TurnInterruptedRow.d.ts +6 -0
- package/lib/types/components/TurnInterruptedRow.d.ts.map +1 -0
- package/lib/types/components/TurnInterruptedRow.js +9 -0
- package/lib/types/components/Whale.d.ts +42 -0
- package/lib/types/components/Whale.d.ts.map +1 -0
- package/lib/types/components/Whale.js +108 -0
- package/lib/types/components/WorkingSpinner.d.ts +26 -0
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -0
- package/lib/types/components/WorkingSpinner.js +67 -0
- package/lib/types/components/WorkspaceFlowPicker.d.ts +20 -0
- package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -0
- package/lib/types/components/WorkspaceFlowPicker.js +21 -0
- package/lib/types/components/WorkspaceMenuPicker.d.ts +19 -0
- package/lib/types/components/WorkspaceMenuPicker.d.ts.map +1 -0
- package/lib/types/components/WorkspaceMenuPicker.js +19 -0
- package/lib/types/components/WorkspacePicker.d.ts +12 -0
- package/lib/types/components/WorkspacePicker.d.ts.map +1 -0
- package/lib/types/components/WorkspacePicker.js +13 -0
- package/lib/types/components/activityFrames.d.ts +23 -0
- package/lib/types/components/activityFrames.d.ts.map +1 -0
- package/lib/types/components/activityFrames.js +31 -0
- package/lib/types/components/approvals/ApprovalPanel.d.ts +24 -0
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -0
- package/lib/types/components/approvals/ApprovalPanel.js +53 -0
- package/lib/types/components/bigfont.d.ts +28 -0
- package/lib/types/components/bigfont.d.ts.map +1 -0
- package/lib/types/components/bigfont.js +91 -0
- package/lib/types/components/design-system/Byline.d.ts +14 -0
- package/lib/types/components/design-system/Byline.d.ts.map +1 -0
- package/lib/types/components/design-system/Byline.js +17 -0
- package/lib/types/components/design-system/Divider.d.ts +61 -0
- package/lib/types/components/design-system/Divider.d.ts.map +1 -0
- package/lib/types/components/design-system/Divider.js +115 -0
- package/lib/types/components/design-system/HintLine.d.ts +11 -0
- package/lib/types/components/design-system/HintLine.d.ts.map +1 -0
- package/lib/types/components/design-system/HintLine.js +14 -0
- package/lib/types/components/design-system/ListItem.d.ts +42 -0
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -0
- package/lib/types/components/design-system/ListItem.js +84 -0
- package/lib/types/components/design-system/LoadingState.d.ts +19 -0
- package/lib/types/components/design-system/LoadingState.d.ts.map +1 -0
- package/lib/types/components/design-system/LoadingState.js +22 -0
- package/lib/types/components/design-system/Pane.d.ts +17 -0
- package/lib/types/components/design-system/Pane.d.ts.map +1 -0
- package/lib/types/components/design-system/Pane.js +15 -0
- package/lib/types/components/design-system/ProgressBar.d.ts +21 -0
- package/lib/types/components/design-system/ProgressBar.d.ts.map +1 -0
- package/lib/types/components/design-system/ProgressBar.js +26 -0
- package/lib/types/components/design-system/StatusIcon.d.ts +15 -0
- package/lib/types/components/design-system/StatusIcon.d.ts.map +1 -0
- package/lib/types/components/design-system/StatusIcon.js +20 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts +21 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemeProvider.js +256 -0
- package/lib/types/components/design-system/ThemedBox.d.ts +60 -0
- package/lib/types/components/design-system/ThemedBox.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemedBox.js +29 -0
- package/lib/types/components/design-system/ThemedText.d.ts +61 -0
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -0
- package/lib/types/components/design-system/ThemedText.js +42 -0
- package/lib/types/components/listWindow.d.ts +26 -0
- package/lib/types/components/listWindow.d.ts.map +1 -0
- package/lib/types/components/listWindow.js +47 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts +20 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantTextMessage.js +18 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +40 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantThinkingMessage.js +84 -0
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +72 -0
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -0
- package/lib/types/components/messages/AssistantToolUseMessage.js +517 -0
- package/lib/types/components/messages/MessageMetadata.d.ts +14 -0
- package/lib/types/components/messages/MessageMetadata.d.ts.map +1 -0
- package/lib/types/components/messages/MessageMetadata.js +19 -0
- package/lib/types/components/messages/TranscriptImages.d.ts +21 -0
- package/lib/types/components/messages/TranscriptImages.d.ts.map +1 -0
- package/lib/types/components/messages/TranscriptImages.js +83 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts +18 -0
- package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -0
- package/lib/types/components/messages/UserPromptMessage.js +28 -0
- package/lib/types/components/messages/imageInspection.d.ts +33 -0
- package/lib/types/components/messages/imageInspection.d.ts.map +1 -0
- package/lib/types/components/messages/imageInspection.js +107 -0
- package/lib/types/components/messages/originalImage.d.ts +5 -0
- package/lib/types/components/messages/originalImage.d.ts.map +1 -0
- package/lib/types/components/messages/originalImage.js +56 -0
- package/lib/types/components/messages/transcriptImageDecode.d.ts +9 -0
- package/lib/types/components/messages/transcriptImageDecode.d.ts.map +1 -0
- package/lib/types/components/messages/transcriptImageDecode.js +144 -0
- package/lib/types/components/messages/useImageInspection.d.ts +10 -0
- package/lib/types/components/messages/useImageInspection.d.ts.map +1 -0
- package/lib/types/components/messages/useImageInspection.js +91 -0
- package/lib/types/components/overlayBudget.d.ts +39 -0
- package/lib/types/components/overlayBudget.d.ts.map +1 -0
- package/lib/types/components/overlayBudget.js +43 -0
- package/lib/types/components/promptDraftCache.d.ts +102 -0
- package/lib/types/components/promptDraftCache.d.ts.map +1 -0
- package/lib/types/components/promptDraftCache.js +76 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +94 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -0
- package/lib/types/components/questions/AskUserQuestionPanel.js +527 -0
- package/lib/types/components/questions/PlanReviewPanel.d.ts +55 -0
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -0
- package/lib/types/components/questions/PlanReviewPanel.js +351 -0
- package/lib/types/components/questions/QuestionMinimizedBar.d.ts +12 -0
- package/lib/types/components/questions/QuestionMinimizedBar.d.ts.map +1 -0
- package/lib/types/components/questions/QuestionMinimizedBar.js +43 -0
- package/lib/types/components/sessions/SessionListRow.d.ts +58 -0
- package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -0
- package/lib/types/components/sessions/SessionListRow.js +108 -0
- package/lib/types/components/sessions/SessionPreview.d.ts +25 -0
- package/lib/types/components/sessions/SessionPreview.d.ts.map +1 -0
- package/lib/types/components/sessions/SessionPreview.js +62 -0
- package/lib/types/components/sessions/WorkspaceListRow.d.ts +17 -0
- package/lib/types/components/sessions/WorkspaceListRow.d.ts.map +1 -0
- package/lib/types/components/sessions/WorkspaceListRow.js +27 -0
- package/lib/types/components/shimmer.d.ts +35 -0
- package/lib/types/components/shimmer.d.ts.map +1 -0
- package/lib/types/components/shimmer.js +43 -0
- package/lib/types/components/smoothReveal.d.ts +57 -0
- package/lib/types/components/smoothReveal.d.ts.map +1 -0
- package/lib/types/components/smoothReveal.js +305 -0
- package/lib/types/components/trajectory/HotspotView.d.ts +20 -0
- package/lib/types/components/trajectory/HotspotView.d.ts.map +1 -0
- package/lib/types/components/trajectory/HotspotView.js +89 -0
- package/lib/types/components/trajectory/Inspector.d.ts +31 -0
- package/lib/types/components/trajectory/Inspector.d.ts.map +1 -0
- package/lib/types/components/trajectory/Inspector.js +67 -0
- package/lib/types/components/trajectory/Ledger.d.ts +28 -0
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -0
- package/lib/types/components/trajectory/Ledger.js +130 -0
- package/lib/types/components/trajectory/MiniWake.d.ts +24 -0
- package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -0
- package/lib/types/components/trajectory/MiniWake.js +99 -0
- package/lib/types/components/trajectory/WaveBand.d.ts +42 -0
- package/lib/types/components/trajectory/WaveBand.d.ts.map +1 -0
- package/lib/types/components/trajectory/WaveBand.js +150 -0
- package/lib/types/components/whaleFrames.d.ts +81 -0
- package/lib/types/components/whaleFrames.d.ts.map +1 -0
- package/lib/types/components/whaleFrames.js +768 -0
- package/lib/types/components/whaleIdle.d.ts +66 -0
- package/lib/types/components/whaleIdle.d.ts.map +1 -0
- package/lib/types/components/whaleIdle.js +174 -0
- package/lib/types/components/whaleLayers.d.ts +28 -0
- package/lib/types/components/whaleLayers.d.ts.map +1 -0
- package/lib/types/components/whaleLayers.js +90 -0
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +49 -0
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -0
- package/lib/types/components/workspaces/HomeWorkspaceRow.js +50 -0
- package/lib/types/customTheme.d.ts +108 -0
- package/lib/types/customTheme.d.ts.map +1 -0
- package/lib/types/customTheme.js +281 -0
- package/lib/types/deepseekBalance.d.ts +19 -0
- package/lib/types/deepseekBalance.d.ts.map +1 -0
- package/lib/types/deepseekBalance.js +72 -0
- package/lib/types/deepseekPricing.d.ts +83 -0
- package/lib/types/deepseekPricing.d.ts.map +1 -0
- package/lib/types/deepseekPricing.js +140 -0
- package/lib/types/dsh-adapter/activity-store.d.ts +221 -0
- package/lib/types/dsh-adapter/activity-store.d.ts.map +1 -0
- package/lib/types/dsh-adapter/activity-store.js +359 -0
- package/lib/types/dsh-adapter/agent-view.d.ts +66 -0
- package/lib/types/dsh-adapter/agent-view.d.ts.map +1 -0
- package/lib/types/dsh-adapter/agent-view.js +153 -0
- package/lib/types/dsh-adapter/approvals.d.ts +225 -0
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -0
- package/lib/types/dsh-adapter/approvals.js +465 -0
- package/lib/types/dsh-adapter/bundled-presets.d.ts +10 -0
- package/lib/types/dsh-adapter/bundled-presets.d.ts.map +1 -0
- package/lib/types/dsh-adapter/bundled-presets.js +80 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/action-readiness.js +86 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +64 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.js +312 -0
- package/lib/types/dsh-adapter/channel/background-action.d.ts +41 -0
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/background-action.js +110 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +67 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/binding-events.js +170 -0
- package/lib/types/dsh-adapter/channel/binding.d.ts +58 -0
- package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/binding.js +287 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +29 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/command-completions.js +94 -0
- package/lib/types/dsh-adapter/channel/commands.d.ts +8 -0
- package/lib/types/dsh-adapter/channel/commands.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/commands.js +9 -0
- package/lib/types/dsh-adapter/channel/compaction.d.ts +18 -0
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/compaction.js +114 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +62 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/composer-images.js +316 -0
- package/lib/types/dsh-adapter/channel/composer-mentions.d.ts +15 -0
- package/lib/types/dsh-adapter/channel/composer-mentions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/composer-mentions.js +200 -0
- package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts +34 -0
- package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/context-bookkeeping.js +31 -0
- package/lib/types/dsh-adapter/channel/decisions.d.ts +19 -0
- package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/decisions.js +90 -0
- package/lib/types/dsh-adapter/channel/emitter.d.ts +10 -0
- package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/emitter.js +71 -0
- package/lib/types/dsh-adapter/channel/external-commands.d.ts +31 -0
- package/lib/types/dsh-adapter/channel/external-commands.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/external-commands.js +187 -0
- package/lib/types/dsh-adapter/channel/file-actions.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/file-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/file-actions.js +45 -0
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts +58 -0
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/ide-selection.js +226 -0
- package/lib/types/dsh-adapter/channel/input-actions.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/input-actions.js +135 -0
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +42 -0
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/input-delivery.js +313 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts +28 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/job-projection.js +150 -0
- package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts +9 -0
- package/lib/types/dsh-adapter/channel/lifetime-resources.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/lifetime-resources.js +33 -0
- package/lib/types/dsh-adapter/channel/loaded-context.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/loaded-context.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/loaded-context.js +62 -0
- package/lib/types/dsh-adapter/channel/local-actions.d.ts +54 -0
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/local-actions.js +109 -0
- package/lib/types/dsh-adapter/channel/mentions.d.ts +29 -0
- package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mentions.js +235 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +30 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mode-actions.js +247 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +35 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +199 -0
- package/lib/types/dsh-adapter/channel/mode-permission.d.ts +58 -0
- package/lib/types/dsh-adapter/channel/mode-permission.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mode-permission.js +240 -0
- package/lib/types/dsh-adapter/channel/mode-roster.d.ts +51 -0
- package/lib/types/dsh-adapter/channel/mode-roster.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/mode-roster.js +119 -0
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +49 -0
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-actions.js +351 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +31 -0
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/model-switch.js +116 -0
- package/lib/types/dsh-adapter/channel/notifications.d.ts +9 -0
- package/lib/types/dsh-adapter/channel/notifications.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/notifications.js +24 -0
- package/lib/types/dsh-adapter/channel/owner.d.ts +18 -0
- package/lib/types/dsh-adapter/channel/owner.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/owner.js +73 -0
- package/lib/types/dsh-adapter/channel/paths.d.ts +31 -0
- package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/paths.js +147 -0
- package/lib/types/dsh-adapter/channel/permissions.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/permissions.js +187 -0
- package/lib/types/dsh-adapter/channel/preferences.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/preferences.js +103 -0
- package/lib/types/dsh-adapter/channel/projection-helpers.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/projection-helpers.js +63 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts +44 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/projection.js +1031 -0
- package/lib/types/dsh-adapter/channel/reports.d.ts +32 -0
- package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/reports.js +163 -0
- package/lib/types/dsh-adapter/channel/session-actions.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/session-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-actions.js +29 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts +32 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-adoption.js +36 -0
- package/lib/types/dsh-adapter/channel/session-fork.d.ts +19 -0
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-fork.js +109 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +35 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +64 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +91 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-metadata.js +220 -0
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +11 -0
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-reset.js +43 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +65 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-resume.js +438 -0
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts +19 -0
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-rewind.js +146 -0
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +19 -0
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +154 -0
- package/lib/types/dsh-adapter/channel/session-tree.d.ts +10 -0
- package/lib/types/dsh-adapter/channel/session-tree.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-tree.js +503 -0
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +4 -0
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/settings-host.js +257 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +33 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.js +215 -0
- package/lib/types/dsh-adapter/channel/state.d.ts +51 -0
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/state.js +31 -0
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +67 -0
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/subagent-projection.js +307 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +73 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/transcript.js +306 -0
- package/lib/types/dsh-adapter/channel/types.d.ts +167 -0
- package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/types.js +1 -0
- package/lib/types/dsh-adapter/channel/usage.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/usage.js +48 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts +23 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/workspace-actions.js +96 -0
- package/lib/types/dsh-adapter/channel-facade-actions.d.ts +25 -0
- package/lib/types/dsh-adapter/channel-facade-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel-facade-actions.js +55 -0
- package/lib/types/dsh-adapter/channel-scene-outlet.d.ts +6 -0
- package/lib/types/dsh-adapter/channel-scene-outlet.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel-scene-outlet.js +13 -0
- package/lib/types/dsh-adapter/channel-ui.d.ts +9 -0
- package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel-ui.js +128 -0
- package/lib/types/dsh-adapter/channel.d.ts +23 -0
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel.js +999 -0
- package/lib/types/dsh-adapter/childStderr.d.ts +63 -0
- package/lib/types/dsh-adapter/childStderr.d.ts.map +1 -0
- package/lib/types/dsh-adapter/childStderr.js +180 -0
- package/lib/types/dsh-adapter/command-attribution.d.ts +51 -0
- package/lib/types/dsh-adapter/command-attribution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/command-attribution.js +93 -0
- package/lib/types/dsh-adapter/command-errors.d.ts +42 -0
- package/lib/types/dsh-adapter/command-errors.d.ts.map +1 -0
- package/lib/types/dsh-adapter/command-errors.js +63 -0
- package/lib/types/dsh-adapter/command-trees.d.ts +34 -0
- package/lib/types/dsh-adapter/command-trees.d.ts.map +1 -0
- package/lib/types/dsh-adapter/command-trees.js +111 -0
- package/lib/types/dsh-adapter/compat/index.d.ts +29 -0
- package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/index.js +28 -0
- package/lib/types/dsh-adapter/compat/liveSession.d.ts +79 -0
- package/lib/types/dsh-adapter/compat/liveSession.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/liveSession.js +223 -0
- package/lib/types/dsh-adapter/compat/messages.d.ts +15 -0
- package/lib/types/dsh-adapter/compat/messages.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/messages.js +15 -0
- package/lib/types/dsh-adapter/compat/persistence.d.ts +21 -0
- package/lib/types/dsh-adapter/compat/persistence.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/persistence.js +17 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts +309 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/sessionLog.js +1177 -0
- package/lib/types/dsh-adapter/compat/settings.d.ts +35 -0
- package/lib/types/dsh-adapter/compat/settings.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/settings.js +57 -0
- package/lib/types/dsh-adapter/compat/shell.d.ts +25 -0
- package/lib/types/dsh-adapter/compat/shell.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/shell.js +11 -0
- package/lib/types/dsh-adapter/component-identity.d.ts +33 -0
- package/lib/types/dsh-adapter/component-identity.d.ts.map +1 -0
- package/lib/types/dsh-adapter/component-identity.js +108 -0
- package/lib/types/dsh-adapter/contract.d.ts +91 -0
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -0
- package/lib/types/dsh-adapter/contract.js +276 -0
- package/lib/types/dsh-adapter/credentialRefGuard.d.ts +40 -0
- package/lib/types/dsh-adapter/credentialRefGuard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/credentialRefGuard.js +43 -0
- package/lib/types/dsh-adapter/decision-guard.d.ts +128 -0
- package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/decision-guard.js +460 -0
- package/lib/types/dsh-adapter/dialogs.d.ts +145 -0
- package/lib/types/dsh-adapter/dialogs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/dialogs.js +329 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts +96 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -0
- package/lib/types/dsh-adapter/effect-ledger.js +290 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +186 -0
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -0
- package/lib/types/dsh-adapter/extension-events.js +187 -0
- package/lib/types/dsh-adapter/extensions.d.ts +36 -0
- package/lib/types/dsh-adapter/extensions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/extensions.js +51 -0
- package/lib/types/dsh-adapter/host-access.d.ts +37 -0
- package/lib/types/dsh-adapter/host-access.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-access.js +652 -0
- package/lib/types/dsh-adapter/host-grants.d.ts +23 -0
- package/lib/types/dsh-adapter/host-grants.d.ts.map +1 -0
- package/lib/types/dsh-adapter/host-grants.js +45 -0
- package/lib/types/dsh-adapter/ide-channel.d.ts +224 -0
- package/lib/types/dsh-adapter/ide-channel.d.ts.map +1 -0
- package/lib/types/dsh-adapter/ide-channel.js +556 -0
- package/lib/types/dsh-adapter/index.d.ts +151 -0
- package/lib/types/dsh-adapter/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/index.js +119 -0
- package/lib/types/dsh-adapter/inject-channel.d.ts +108 -0
- package/lib/types/dsh-adapter/inject-channel.d.ts.map +1 -0
- package/lib/types/dsh-adapter/inject-channel.js +247 -0
- package/lib/types/dsh-adapter/invariant.d.ts +20 -0
- package/lib/types/dsh-adapter/invariant.d.ts.map +1 -0
- package/lib/types/dsh-adapter/invariant.js +26 -0
- package/lib/types/dsh-adapter/jobs.d.ts +101 -0
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/jobs.js +177 -0
- package/lib/types/dsh-adapter/message-observer.d.ts +186 -0
- package/lib/types/dsh-adapter/message-observer.d.ts.map +1 -0
- package/lib/types/dsh-adapter/message-observer.js +682 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.js +191 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.js +133 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.js +175 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.js +132 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts +6 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.js +38 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.js +107 -0
- package/lib/types/dsh-adapter/migrate/bin-path.d.ts +6 -0
- package/lib/types/dsh-adapter/migrate/bin-path.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/bin-path.js +30 -0
- package/lib/types/dsh-adapter/migrate/cli.d.ts +9 -0
- package/lib/types/dsh-adapter/migrate/cli.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/cli.js +105 -0
- package/lib/types/dsh-adapter/migrate/index.d.ts +29 -0
- package/lib/types/dsh-adapter/migrate/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/index.js +108 -0
- package/lib/types/dsh-adapter/migrate/picker.d.ts +64 -0
- package/lib/types/dsh-adapter/migrate/picker.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/picker.js +86 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.d.ts +40 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.js +100 -0
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts +19 -0
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/sessionize.js +101 -0
- package/lib/types/dsh-adapter/migrate/types.d.ts +52 -0
- package/lib/types/dsh-adapter/migrate/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/types.js +11 -0
- package/lib/types/dsh-adapter/migrate/uuid.d.ts +7 -0
- package/lib/types/dsh-adapter/migrate/uuid.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/uuid.js +25 -0
- package/lib/types/dsh-adapter/packaged-presets.d.ts +22 -0
- package/lib/types/dsh-adapter/packaged-presets.d.ts.map +1 -0
- package/lib/types/dsh-adapter/packaged-presets.js +94 -0
- package/lib/types/dsh-adapter/plugin-host.d.ts +205 -0
- package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-host.js +762 -0
- package/lib/types/dsh-adapter/plugin-storage.d.ts +118 -0
- package/lib/types/dsh-adapter/plugin-storage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-storage.js +536 -0
- package/lib/types/dsh-adapter/plugin.d.ts +70 -0
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin.js +2140 -0
- package/lib/types/dsh-adapter/plugins-info.d.ts +43 -0
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugins-info.js +293 -0
- package/lib/types/dsh-adapter/preset-resolution.d.ts +57 -0
- package/lib/types/dsh-adapter/preset-resolution.d.ts.map +1 -0
- package/lib/types/dsh-adapter/preset-resolution.js +52 -0
- package/lib/types/dsh-adapter/presets.d.ts +110 -0
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -0
- package/lib/types/dsh-adapter/presets.js +161 -0
- package/lib/types/dsh-adapter/promptDebug.d.ts +4 -0
- package/lib/types/dsh-adapter/promptDebug.d.ts.map +1 -0
- package/lib/types/dsh-adapter/promptDebug.js +163 -0
- package/lib/types/dsh-adapter/providerGuard.d.ts +75 -0
- package/lib/types/dsh-adapter/providerGuard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/providerGuard.js +104 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +42 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/providerWizard.js +921 -0
- package/lib/types/dsh-adapter/questions-answerer.d.ts +51 -0
- package/lib/types/dsh-adapter/questions-answerer.d.ts.map +1 -0
- package/lib/types/dsh-adapter/questions-answerer.js +64 -0
- package/lib/types/dsh-adapter/questions.d.ts +130 -0
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/questions.js +282 -0
- package/lib/types/dsh-adapter/recap.d.ts +41 -0
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -0
- package/lib/types/dsh-adapter/recap.js +111 -0
- package/lib/types/dsh-adapter/renderers.d.ts +58 -0
- package/lib/types/dsh-adapter/renderers.d.ts.map +1 -0
- package/lib/types/dsh-adapter/renderers.js +198 -0
- package/lib/types/dsh-adapter/sanitize.d.ts +45 -0
- package/lib/types/dsh-adapter/sanitize.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sanitize.js +84 -0
- package/lib/types/dsh-adapter/scenes.d.ts +87 -0
- package/lib/types/dsh-adapter/scenes.d.ts.map +1 -0
- package/lib/types/dsh-adapter/scenes.js +223 -0
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +53 -0
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-mount-heartbeat.js +100 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts +232 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessionTree.js +984 -0
- package/lib/types/dsh-adapter/sessions/digest.d.ts +54 -0
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/digest.js +478 -0
- package/lib/types/dsh-adapter/sessions/frames.d.ts +103 -0
- package/lib/types/dsh-adapter/sessions/frames.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/frames.js +263 -0
- package/lib/types/dsh-adapter/sessions/header.d.ts +56 -0
- package/lib/types/dsh-adapter/sessions/header.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/header.js +85 -0
- package/lib/types/dsh-adapter/sessions/index.d.ts +17 -0
- package/lib/types/dsh-adapter/sessions/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/index.js +15 -0
- package/lib/types/dsh-adapter/sessions/list.d.ts +64 -0
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/list.js +331 -0
- package/lib/types/dsh-adapter/sessions/recovery.d.ts +17 -0
- package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/recovery.js +109 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts +60 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/store.js +221 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts +21 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/types.js +1 -0
- package/lib/types/dsh-adapter/settings-sections.d.ts +48 -0
- package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -0
- package/lib/types/dsh-adapter/settings-sections.js +253 -0
- package/lib/types/dsh-adapter/settingsEditor.d.ts +100 -0
- package/lib/types/dsh-adapter/settingsEditor.d.ts.map +1 -0
- package/lib/types/dsh-adapter/settingsEditor.js +238 -0
- package/lib/types/dsh-adapter/sharp.d.ts +10 -0
- package/lib/types/dsh-adapter/sharp.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sharp.js +59 -0
- package/lib/types/dsh-adapter/shortcuts.d.ts +82 -0
- package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -0
- package/lib/types/dsh-adapter/shortcuts.js +252 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts +36 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sideQuestion.js +59 -0
- package/lib/types/dsh-adapter/status.d.ts +148 -0
- package/lib/types/dsh-adapter/status.d.ts.map +1 -0
- package/lib/types/dsh-adapter/status.js +435 -0
- package/lib/types/dsh-adapter/subagents.d.ts +64 -0
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -0
- package/lib/types/dsh-adapter/subagents.js +366 -0
- package/lib/types/dsh-adapter/themes.d.ts +52 -0
- package/lib/types/dsh-adapter/themes.d.ts.map +1 -0
- package/lib/types/dsh-adapter/themes.js +307 -0
- package/lib/types/dsh-adapter/toast.d.ts +80 -0
- package/lib/types/dsh-adapter/toast.d.ts.map +1 -0
- package/lib/types/dsh-adapter/toast.js +171 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts +47 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.js +208 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +196 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/guards.js +273 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts +16 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/index.js +15 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +40 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/inspect.js +160 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +146 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/projection.js +710 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts +232 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/types.js +70 -0
- package/lib/types/dsh-adapter/trajectory/wave.d.ts +45 -0
- package/lib/types/dsh-adapter/trajectory/wave.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/wave.js +210 -0
- package/lib/types/dsh-adapter/transcript-images.d.ts +17 -0
- package/lib/types/dsh-adapter/transcript-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/transcript-images.js +96 -0
- package/lib/types/dsh-adapter/types.d.ts +23 -0
- package/lib/types/dsh-adapter/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/types.js +1 -0
- package/lib/types/dsh-adapter/workspace.d.ts +22 -0
- package/lib/types/dsh-adapter/workspace.d.ts.map +1 -0
- package/lib/types/dsh-adapter/workspace.js +16 -0
- package/lib/types/dsh-adapter/workspaces.d.ts +125 -0
- package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -0
- package/lib/types/dsh-adapter/workspaces.js +543 -0
- package/lib/types/effortPrefs.d.ts +48 -0
- package/lib/types/effortPrefs.d.ts.map +1 -0
- package/lib/types/effortPrefs.js +95 -0
- package/lib/types/extensions.d.ts +18 -0
- package/lib/types/extensions.d.ts.map +1 -0
- package/lib/types/extensions.js +27 -0
- package/lib/types/force-production-react.d.ts +1 -0
- package/lib/types/force-production-react.d.ts.map +1 -0
- package/lib/types/force-production-react.js +12 -0
- package/lib/types/herdr.d.ts +28 -0
- package/lib/types/herdr.d.ts.map +1 -0
- package/lib/types/herdr.js +133 -0
- package/lib/types/history.d.ts +39 -0
- package/lib/types/history.d.ts.map +1 -0
- package/lib/types/history.js +177 -0
- package/lib/types/homePrefs.d.ts +15 -0
- package/lib/types/homePrefs.d.ts.map +1 -0
- package/lib/types/homePrefs.js +53 -0
- package/lib/types/hooks/useBlink.d.ts +10 -0
- package/lib/types/hooks/useBlink.d.ts.map +1 -0
- package/lib/types/hooks/useBlink.js +19 -0
- package/lib/types/hooks/useExternalVersion.d.ts +32 -0
- package/lib/types/hooks/useExternalVersion.d.ts.map +1 -0
- package/lib/types/hooks/useExternalVersion.js +53 -0
- package/lib/types/hooks/useRevealVersion.d.ts +21 -0
- package/lib/types/hooks/useRevealVersion.d.ts.map +1 -0
- package/lib/types/hooks/useRevealVersion.js +33 -0
- package/lib/types/hooks/useRuntimeThemeSnapshot.d.ts +10 -0
- package/lib/types/hooks/useRuntimeThemeSnapshot.d.ts.map +1 -0
- package/lib/types/hooks/useRuntimeThemeSnapshot.js +32 -0
- package/lib/types/i18n.d.ts +4433 -0
- package/lib/types/i18n.d.ts.map +1 -0
- package/lib/types/i18n.js +1493 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +4 -0
- package/lib/types/ink/Ansi.d.ts +9 -0
- package/lib/types/ink/Ansi.d.ts.map +1 -0
- package/lib/types/ink/Ansi.js +45 -0
- package/lib/types/ink/bidi.d.ts +18 -0
- package/lib/types/ink/bidi.d.ts.map +1 -0
- package/lib/types/ink/bidi.js +119 -0
- package/lib/types/ink/clearTerminal.d.ts +22 -0
- package/lib/types/ink/clearTerminal.d.ts.map +1 -0
- package/lib/types/ink/clearTerminal.js +72 -0
- package/lib/types/ink/colorize.d.ts +43 -0
- package/lib/types/ink/colorize.d.ts.map +1 -0
- package/lib/types/ink/colorize.js +233 -0
- package/lib/types/ink/components/AlternateScreen.d.ts +8 -0
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -0
- package/lib/types/ink/components/AlternateScreen.js +29 -0
- package/lib/types/ink/components/App.d.ts +149 -0
- package/lib/types/ink/components/App.d.ts.map +1 -0
- package/lib/types/ink/components/App.js +1027 -0
- package/lib/types/ink/components/AppContext.d.ts +17 -0
- package/lib/types/ink/components/AppContext.d.ts.map +1 -0
- package/lib/types/ink/components/AppContext.js +12 -0
- package/lib/types/ink/components/Box.d.ts +85 -0
- package/lib/types/ink/components/Box.d.ts.map +1 -0
- package/lib/types/ink/components/Box.js +22 -0
- package/lib/types/ink/components/Button.d.ts +37 -0
- package/lib/types/ink/components/Button.d.ts.map +1 -0
- package/lib/types/ink/components/Button.js +23 -0
- package/lib/types/ink/components/ClockContext.d.ts +17 -0
- package/lib/types/ink/components/ClockContext.d.ts.map +1 -0
- package/lib/types/ink/components/ClockContext.js +99 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts +30 -0
- package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -0
- package/lib/types/ink/components/CursorDeclarationContext.js +6 -0
- package/lib/types/ink/components/ErrorOverview.d.ts +7 -0
- package/lib/types/ink/components/ErrorOverview.d.ts.map +1 -0
- package/lib/types/ink/components/ErrorOverview.js +49 -0
- package/lib/types/ink/components/Image.d.ts +28 -0
- package/lib/types/ink/components/Image.d.ts.map +1 -0
- package/lib/types/ink/components/Image.js +44 -0
- package/lib/types/ink/components/Link.d.ts +8 -0
- package/lib/types/ink/components/Link.d.ts.map +1 -0
- package/lib/types/ink/components/Link.js +7 -0
- package/lib/types/ink/components/Newline.d.ts +7 -0
- package/lib/types/ink/components/Newline.d.ts.map +1 -0
- package/lib/types/ink/components/Newline.js +5 -0
- package/lib/types/ink/components/NoSelect.d.ts +9 -0
- package/lib/types/ink/components/NoSelect.d.ts.map +1 -0
- package/lib/types/ink/components/NoSelect.js +6 -0
- package/lib/types/ink/components/RawAnsi.d.ts +9 -0
- package/lib/types/ink/components/RawAnsi.d.ts.map +1 -0
- package/lib/types/ink/components/RawAnsi.js +7 -0
- package/lib/types/ink/components/ScrollBox.d.ts +78 -0
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -0
- package/lib/types/ink/components/ScrollBox.js +309 -0
- package/lib/types/ink/components/Spacer.d.ts +4 -0
- package/lib/types/ink/components/Spacer.d.ts.map +1 -0
- package/lib/types/ink/components/Spacer.js +6 -0
- package/lib/types/ink/components/StdinContext.d.ts +32 -0
- package/lib/types/ink/components/StdinContext.d.ts.map +1 -0
- package/lib/types/ink/components/StdinContext.js +16 -0
- package/lib/types/ink/components/TerminalFocusContext.d.ts +11 -0
- package/lib/types/ink/components/TerminalFocusContext.d.ts.map +1 -0
- package/lib/types/ink/components/TerminalFocusContext.js +11 -0
- package/lib/types/ink/components/TerminalSizeContext.d.ts +6 -0
- package/lib/types/ink/components/TerminalSizeContext.d.ts.map +1 -0
- package/lib/types/ink/components/TerminalSizeContext.js +2 -0
- package/lib/types/ink/components/Text.d.ts +64 -0
- package/lib/types/ink/components/Text.d.ts.map +1 -0
- package/lib/types/ink/components/Text.js +19 -0
- package/lib/types/ink/constants.d.ts +12 -0
- package/lib/types/ink/constants.d.ts.map +1 -0
- package/lib/types/ink/constants.js +11 -0
- package/lib/types/ink/cursor.d.ts +11 -0
- package/lib/types/ink/cursor.d.ts.map +1 -0
- package/lib/types/ink/cursor.js +1 -0
- package/lib/types/ink/devtools.d.ts +7 -0
- package/lib/types/ink/devtools.d.ts.map +1 -0
- package/lib/types/ink/devtools.js +1 -0
- package/lib/types/ink/dom.d.ts +194 -0
- package/lib/types/ink/dom.d.ts.map +1 -0
- package/lib/types/ink/dom.js +424 -0
- package/lib/types/ink/events/click-event.d.ts +23 -0
- package/lib/types/ink/events/click-event.d.ts.map +1 -0
- package/lib/types/ink/events/click-event.js +33 -0
- package/lib/types/ink/events/context-menu-event.d.ts +19 -0
- package/lib/types/ink/events/context-menu-event.d.ts.map +1 -0
- package/lib/types/ink/events/context-menu-event.js +20 -0
- package/lib/types/ink/events/dispatcher.d.ts +63 -0
- package/lib/types/ink/events/dispatcher.d.ts.map +1 -0
- package/lib/types/ink/events/dispatcher.js +194 -0
- package/lib/types/ink/events/drag-event.d.ts +44 -0
- package/lib/types/ink/events/drag-event.d.ts.map +1 -0
- package/lib/types/ink/events/drag-event.js +39 -0
- package/lib/types/ink/events/emitter.d.ts +20 -0
- package/lib/types/ink/events/emitter.d.ts.map +1 -0
- package/lib/types/ink/events/emitter.js +43 -0
- package/lib/types/ink/events/event-handlers.d.ts +65 -0
- package/lib/types/ink/events/event-handlers.d.ts.map +1 -0
- package/lib/types/ink/events/event-handlers.js +40 -0
- package/lib/types/ink/events/event.d.ts +19 -0
- package/lib/types/ink/events/event.d.ts.map +1 -0
- package/lib/types/ink/events/event.js +22 -0
- package/lib/types/ink/events/focus-event.d.ts +19 -0
- package/lib/types/ink/events/focus-event.d.ts.map +1 -0
- package/lib/types/ink/events/focus-event.js +21 -0
- package/lib/types/ink/events/input-event.d.ts +72 -0
- package/lib/types/ink/events/input-event.d.ts.map +1 -0
- package/lib/types/ink/events/input-event.js +185 -0
- package/lib/types/ink/events/keyboard-event.d.ts +40 -0
- package/lib/types/ink/events/keyboard-event.d.ts.map +1 -0
- package/lib/types/ink/events/keyboard-event.js +65 -0
- package/lib/types/ink/events/paste-event.d.ts +11 -0
- package/lib/types/ink/events/paste-event.d.ts.map +1 -0
- package/lib/types/ink/events/paste-event.js +13 -0
- package/lib/types/ink/events/pointer-event.d.ts +61 -0
- package/lib/types/ink/events/pointer-event.d.ts.map +1 -0
- package/lib/types/ink/events/pointer-event.js +61 -0
- package/lib/types/ink/events/resize-event.d.ts +13 -0
- package/lib/types/ink/events/resize-event.d.ts.map +1 -0
- package/lib/types/ink/events/resize-event.js +16 -0
- package/lib/types/ink/events/terminal-event.d.ts +112 -0
- package/lib/types/ink/events/terminal-event.d.ts.map +1 -0
- package/lib/types/ink/events/terminal-event.js +131 -0
- package/lib/types/ink/events/terminal-focus-event.d.ts +21 -0
- package/lib/types/ink/events/terminal-focus-event.d.ts.map +1 -0
- package/lib/types/ink/events/terminal-focus-event.js +18 -0
- package/lib/types/ink/events/wheel-event.d.ts +17 -0
- package/lib/types/ink/events/wheel-event.d.ts.map +1 -0
- package/lib/types/ink/events/wheel-event.js +20 -0
- package/lib/types/ink/flush-tick.d.ts +26 -0
- package/lib/types/ink/flush-tick.d.ts.map +1 -0
- package/lib/types/ink/flush-tick.js +31 -0
- package/lib/types/ink/focus.d.ts +74 -0
- package/lib/types/ink/focus.d.ts.map +1 -0
- package/lib/types/ink/focus.js +188 -0
- package/lib/types/ink/frame.d.ts +128 -0
- package/lib/types/ink/frame.d.ts.map +1 -0
- package/lib/types/ink/frame.js +43 -0
- package/lib/types/ink/geometry-trace.d.ts +51 -0
- package/lib/types/ink/geometry-trace.d.ts.map +1 -0
- package/lib/types/ink/geometry-trace.js +83 -0
- package/lib/types/ink/get-max-width.d.ts +12 -0
- package/lib/types/ink/get-max-width.d.ts.map +1 -0
- package/lib/types/ink/get-max-width.js +12 -0
- package/lib/types/ink/hit-test.d.ts +181 -0
- package/lib/types/ink/hit-test.d.ts.map +1 -0
- package/lib/types/ink/hit-test.js +540 -0
- package/lib/types/ink/hooks/use-animation-frame.d.ts +27 -0
- package/lib/types/ink/hooks/use-animation-frame.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-animation-frame.js +48 -0
- package/lib/types/ink/hooks/use-app.d.ts +7 -0
- package/lib/types/ink/hooks/use-app.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-app.js +7 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts +26 -0
- package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-copy-on-select.js +54 -0
- package/lib/types/ink/hooks/use-declared-cursor.d.ts +31 -0
- package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-declared-cursor.js +65 -0
- package/lib/types/ink/hooks/use-input.d.ts +41 -0
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-input.js +81 -0
- package/lib/types/ink/hooks/use-interval.d.ts +23 -0
- package/lib/types/ink/hooks/use-interval.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-interval.js +58 -0
- package/lib/types/ink/hooks/use-search-highlight.d.ts +34 -0
- package/lib/types/ink/hooks/use-search-highlight.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-search-highlight.js +35 -0
- package/lib/types/ink/hooks/use-selection.d.ts +44 -0
- package/lib/types/ink/hooks/use-selection.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-selection.js +64 -0
- package/lib/types/ink/hooks/use-stdin.d.ts +8 -0
- package/lib/types/ink/hooks/use-stdin.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-stdin.js +8 -0
- package/lib/types/ink/hooks/use-tab-status.d.ts +18 -0
- package/lib/types/ink/hooks/use-tab-status.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-tab-status.js +58 -0
- package/lib/types/ink/hooks/use-terminal-focus.d.ts +11 -0
- package/lib/types/ink/hooks/use-terminal-focus.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-focus.js +15 -0
- package/lib/types/ink/hooks/use-terminal-images.d.ts +14 -0
- package/lib/types/ink/hooks/use-terminal-images.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-images.js +22 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts +6 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-size.js +12 -0
- package/lib/types/ink/hooks/use-terminal-title.d.ts +14 -0
- package/lib/types/ink/hooks/use-terminal-title.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-title.js +30 -0
- package/lib/types/ink/hooks/use-terminal-viewport.d.ts +32 -0
- package/lib/types/ink/hooks/use-terminal-viewport.d.ts.map +1 -0
- package/lib/types/ink/hooks/use-terminal-viewport.js +79 -0
- package/lib/types/ink/ink.d.ts +571 -0
- package/lib/types/ink/ink.d.ts.map +1 -0
- package/lib/types/ink/ink.js +2818 -0
- package/lib/types/ink/input-suppression.d.ts +20 -0
- package/lib/types/ink/input-suppression.d.ts.map +1 -0
- package/lib/types/ink/input-suppression.js +26 -0
- package/lib/types/ink/instances.d.ts +10 -0
- package/lib/types/ink/instances.d.ts.map +1 -0
- package/lib/types/ink/instances.js +13 -0
- package/lib/types/ink/kitty-graphics.d.ts +41 -0
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -0
- package/lib/types/ink/kitty-graphics.js +229 -0
- package/lib/types/ink/layout/engine.d.ts +7 -0
- package/lib/types/ink/layout/engine.d.ts.map +1 -0
- package/lib/types/ink/layout/engine.js +8 -0
- package/lib/types/ink/layout/geometry.d.ts +86 -0
- package/lib/types/ink/layout/geometry.d.ts.map +1 -0
- package/lib/types/ink/layout/geometry.js +95 -0
- package/lib/types/ink/layout/node.d.ts +153 -0
- package/lib/types/ink/layout/node.d.ts.map +1 -0
- package/lib/types/ink/layout/node.js +72 -0
- package/lib/types/ink/layout/yoga.d.ts +70 -0
- package/lib/types/ink/layout/yoga.d.ts.map +1 -0
- package/lib/types/ink/layout/yoga.js +252 -0
- package/lib/types/ink/line-width-cache.d.ts +9 -0
- package/lib/types/ink/line-width-cache.d.ts.map +1 -0
- package/lib/types/ink/line-width-cache.js +45 -0
- package/lib/types/ink/log-update.d.ts +57 -0
- package/lib/types/ink/log-update.d.ts.map +1 -0
- package/lib/types/ink/log-update.js +1000 -0
- package/lib/types/ink/measure-element.d.ts +19 -0
- package/lib/types/ink/measure-element.d.ts.map +1 -0
- package/lib/types/ink/measure-element.js +10 -0
- package/lib/types/ink/measure-text.d.ts +13 -0
- package/lib/types/ink/measure-text.d.ts.map +1 -0
- package/lib/types/ink/measure-text.js +38 -0
- package/lib/types/ink/node-cache.d.ts +54 -0
- package/lib/types/ink/node-cache.d.ts.map +1 -0
- package/lib/types/ink/node-cache.js +45 -0
- package/lib/types/ink/optimizer.d.ts +18 -0
- package/lib/types/ink/optimizer.d.ts.map +1 -0
- package/lib/types/ink/optimizer.js +83 -0
- package/lib/types/ink/output.d.ts +300 -0
- package/lib/types/ink/output.d.ts.map +1 -0
- package/lib/types/ink/output.js +1205 -0
- package/lib/types/ink/parse-keypress.d.ts +217 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -0
- package/lib/types/ink/parse-keypress.js +1550 -0
- package/lib/types/ink/reconciler.d.ts +43 -0
- package/lib/types/ink/reconciler.d.ts.map +1 -0
- package/lib/types/ink/reconciler.js +414 -0
- package/lib/types/ink/render-border.d.ts +41 -0
- package/lib/types/ink/render-border.d.ts.map +1 -0
- package/lib/types/ink/render-border.js +159 -0
- package/lib/types/ink/render-node-to-output.d.ts +199 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -0
- package/lib/types/ink/render-node-to-output.js +1758 -0
- package/lib/types/ink/render-to-screen.d.ts +65 -0
- package/lib/types/ink/render-to-screen.d.ts.map +1 -0
- package/lib/types/ink/render-to-screen.js +189 -0
- package/lib/types/ink/renderer.d.ts +34 -0
- package/lib/types/ink/renderer.d.ts.map +1 -0
- package/lib/types/ink/renderer.js +181 -0
- package/lib/types/ink/root.d.ts +109 -0
- package/lib/types/ink/root.d.ts.map +1 -0
- package/lib/types/ink/root.js +96 -0
- package/lib/types/ink/screen.d.ts +545 -0
- package/lib/types/ink/screen.d.ts.map +1 -0
- package/lib/types/ink/screen.js +1607 -0
- package/lib/types/ink/selection.d.ts +529 -0
- package/lib/types/ink/selection.d.ts.map +1 -0
- package/lib/types/ink/selection.js +1292 -0
- package/lib/types/ink/sixel-codec.d.ts +41 -0
- package/lib/types/ink/sixel-codec.d.ts.map +1 -0
- package/lib/types/ink/sixel-codec.js +128 -0
- package/lib/types/ink/sixel-graphics.d.ts +74 -0
- package/lib/types/ink/sixel-graphics.d.ts.map +1 -0
- package/lib/types/ink/sixel-graphics.js +498 -0
- package/lib/types/ink/sixel-worker.d.ts +2 -0
- package/lib/types/ink/sixel-worker.d.ts.map +1 -0
- package/lib/types/ink/sixel-worker.js +12 -0
- package/lib/types/ink/squash-text-nodes.d.ts +30 -0
- package/lib/types/ink/squash-text-nodes.d.ts.map +1 -0
- package/lib/types/ink/squash-text-nodes.js +63 -0
- package/lib/types/ink/stringWidth.d.ts +3 -0
- package/lib/types/ink/stringWidth.d.ts.map +1 -0
- package/lib/types/ink/stringWidth.js +248 -0
- package/lib/types/ink/styles.d.ts +346 -0
- package/lib/types/ink/styles.d.ts.map +1 -0
- package/lib/types/ink/styles.js +307 -0
- package/lib/types/ink/supports-hyperlinks.d.ts +20 -0
- package/lib/types/ink/supports-hyperlinks.d.ts.map +1 -0
- package/lib/types/ink/supports-hyperlinks.js +44 -0
- package/lib/types/ink/tabstops.d.ts +10 -0
- package/lib/types/ink/tabstops.d.ts.map +1 -0
- package/lib/types/ink/tabstops.js +47 -0
- package/lib/types/ink/terminal-focus-state.d.ts +35 -0
- package/lib/types/ink/terminal-focus-state.d.ts.map +1 -0
- package/lib/types/ink/terminal-focus-state.js +57 -0
- package/lib/types/ink/terminal-image-protocol.d.ts +4 -0
- package/lib/types/ink/terminal-image-protocol.d.ts.map +1 -0
- package/lib/types/ink/terminal-image-protocol.js +8 -0
- package/lib/types/ink/terminal-image.d.ts +102 -0
- package/lib/types/ink/terminal-image.d.ts.map +1 -0
- package/lib/types/ink/terminal-image.js +223 -0
- package/lib/types/ink/terminal-querier.d.ts +203 -0
- package/lib/types/ink/terminal-querier.d.ts.map +1 -0
- package/lib/types/ink/terminal-querier.js +286 -0
- package/lib/types/ink/terminal.d.ts +192 -0
- package/lib/types/ink/terminal.d.ts.map +1 -0
- package/lib/types/ink/terminal.js +436 -0
- package/lib/types/ink/termio/ansi.d.ts +75 -0
- package/lib/types/ink/termio/ansi.d.ts.map +1 -0
- package/lib/types/ink/termio/ansi.js +79 -0
- package/lib/types/ink/termio/csi.d.ts +263 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -0
- package/lib/types/ink/termio/csi.js +367 -0
- package/lib/types/ink/termio/dec.d.ts +61 -0
- package/lib/types/ink/termio/dec.d.ts.map +1 -0
- package/lib/types/ink/termio/dec.js +76 -0
- package/lib/types/ink/termio/esc.d.ts +15 -0
- package/lib/types/ink/termio/esc.d.ts.map +1 -0
- package/lib/types/ink/termio/esc.js +57 -0
- package/lib/types/ink/termio/osc.d.ts +198 -0
- package/lib/types/ink/termio/osc.d.ts.map +1 -0
- package/lib/types/ink/termio/osc.js +475 -0
- package/lib/types/ink/termio/parser.d.ts +46 -0
- package/lib/types/ink/termio/parser.d.ts.map +1 -0
- package/lib/types/ink/termio/parser.js +366 -0
- package/lib/types/ink/termio/sgr.d.ts +17 -0
- package/lib/types/ink/termio/sgr.d.ts.map +1 -0
- package/lib/types/ink/termio/sgr.js +300 -0
- package/lib/types/ink/termio/tokenize.d.ts +56 -0
- package/lib/types/ink/termio/tokenize.d.ts.map +1 -0
- package/lib/types/ink/termio/tokenize.js +290 -0
- package/lib/types/ink/termio/types.d.ts +211 -0
- package/lib/types/ink/termio/types.d.ts.map +1 -0
- package/lib/types/ink/termio/types.js +68 -0
- package/lib/types/ink/termio.d.ts +25 -0
- package/lib/types/ink/termio.d.ts.map +1 -0
- package/lib/types/ink/termio.js +24 -0
- package/lib/types/ink/timeline-rail.d.ts +134 -0
- package/lib/types/ink/timeline-rail.d.ts.map +1 -0
- package/lib/types/ink/timeline-rail.js +175 -0
- package/lib/types/ink/transcript-highlight.d.ts +25 -0
- package/lib/types/ink/transcript-highlight.d.ts.map +1 -0
- package/lib/types/ink/transcript-highlight.js +82 -0
- package/lib/types/ink/truncateToWidth.d.ts +7 -0
- package/lib/types/ink/truncateToWidth.d.ts.map +1 -0
- package/lib/types/ink/truncateToWidth.js +18 -0
- package/lib/types/ink/update-overflow-guard.d.ts +62 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -0
- package/lib/types/ink/update-overflow-guard.js +164 -0
- package/lib/types/ink/useTerminalNotification.d.ts +45 -0
- package/lib/types/ink/useTerminalNotification.d.ts.map +1 -0
- package/lib/types/ink/useTerminalNotification.js +70 -0
- package/lib/types/ink/warn.d.ts +7 -0
- package/lib/types/ink/warn.d.ts.map +1 -0
- package/lib/types/ink/warn.js +15 -0
- package/lib/types/ink/widest-line.d.ts +7 -0
- package/lib/types/ink/widest-line.d.ts.map +1 -0
- package/lib/types/ink/widest-line.js +19 -0
- package/lib/types/ink/wrap-text.d.ts +10 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -0
- package/lib/types/ink/wrap-text.js +103 -0
- package/lib/types/ink/wrapAnsi.d.ts +17 -0
- package/lib/types/ink/wrapAnsi.d.ts.map +1 -0
- package/lib/types/ink/wrapAnsi.js +38 -0
- package/lib/types/jsx-runtime.d.ts +2 -0
- package/lib/types/jsx-runtime.d.ts.map +1 -0
- package/lib/types/jsx-runtime.js +13 -0
- package/lib/types/migrationPrefs.d.ts +60 -0
- package/lib/types/migrationPrefs.d.ts.map +1 -0
- package/lib/types/migrationPrefs.js +97 -0
- package/lib/types/minimalMode.d.ts +13 -0
- package/lib/types/minimalMode.d.ts.map +1 -0
- package/lib/types/minimalMode.js +17 -0
- package/lib/types/modelGroups.d.ts +72 -0
- package/lib/types/modelGroups.d.ts.map +1 -0
- package/lib/types/modelGroups.js +97 -0
- package/lib/types/modelPrefs.d.ts +37 -0
- package/lib/types/modelPrefs.d.ts.map +1 -0
- package/lib/types/modelPrefs.js +66 -0
- package/lib/types/modelRecents.d.ts +39 -0
- package/lib/types/modelRecents.d.ts.map +1 -0
- package/lib/types/modelRecents.js +97 -0
- package/lib/types/modelRoute.d.ts +87 -0
- package/lib/types/modelRoute.d.ts.map +1 -0
- package/lib/types/modelRoute.js +125 -0
- package/lib/types/native-ts/yoga-layout/enums.d.ts +183 -0
- package/lib/types/native-ts/yoga-layout/enums.d.ts.map +1 -0
- package/lib/types/native-ts/yoga-layout/enums.js +150 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts +804 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -0
- package/lib/types/native-ts/yoga-layout/index.js +2614 -0
- package/lib/types/oauth.d.ts +15 -0
- package/lib/types/oauth.d.ts.map +1 -0
- package/lib/types/oauth.js +14 -0
- package/lib/types/plugin-host.d.ts +14 -0
- package/lib/types/plugin-host.d.ts.map +1 -0
- package/lib/types/plugin-host.js +19 -0
- package/lib/types/presetPrefs.d.ts +30 -0
- package/lib/types/presetPrefs.d.ts.map +1 -0
- package/lib/types/presetPrefs.js +66 -0
- package/lib/types/reload.d.ts +109 -0
- package/lib/types/reload.d.ts.map +1 -0
- package/lib/types/reload.js +118 -0
- package/lib/types/scenes.d.ts +4 -0
- package/lib/types/scenes.d.ts.map +1 -0
- package/lib/types/scenes.js +4 -0
- package/lib/types/screens/Chat.d.ts +82 -0
- package/lib/types/screens/Chat.d.ts.map +1 -0
- package/lib/types/screens/Chat.js +4299 -0
- package/lib/types/screens/SessionSupervisor.d.ts +84 -0
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -0
- package/lib/types/screens/SessionSupervisor.js +350 -0
- package/lib/types/screens/SessionTree.d.ts +27 -0
- package/lib/types/screens/SessionTree.d.ts.map +1 -0
- package/lib/types/screens/SessionTree.js +583 -0
- package/lib/types/screens/Settings.d.ts +22 -0
- package/lib/types/screens/Settings.d.ts.map +1 -0
- package/lib/types/screens/Settings.js +592 -0
- package/lib/types/screens/StatusLine.d.ts +48 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -0
- package/lib/types/screens/StatusLine.js +453 -0
- package/lib/types/screens/StatusMetrics.d.ts +176 -0
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -0
- package/lib/types/screens/StatusMetrics.js +372 -0
- package/lib/types/screens/TrajectoryScene.d.ts +16 -0
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -0
- package/lib/types/screens/TrajectoryScene.js +374 -0
- package/lib/types/screens/chatOverlay.d.ts +267 -0
- package/lib/types/screens/chatOverlay.d.ts.map +1 -0
- package/lib/types/screens/chatOverlay.js +132 -0
- package/lib/types/screens/sessionSupervisor/model.d.ts +83 -0
- package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -0
- package/lib/types/screens/sessionSupervisor/model.js +69 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +120 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +639 -0
- package/lib/types/sessionHistory.d.ts +59 -0
- package/lib/types/sessionHistory.d.ts.map +1 -0
- package/lib/types/sessionHistory.js +223 -0
- package/lib/types/sessionModes.d.ts +83 -0
- package/lib/types/sessionModes.d.ts.map +1 -0
- package/lib/types/sessionModes.js +141 -0
- package/lib/types/sessionMounts.d.ts +272 -0
- package/lib/types/sessionMounts.d.ts.map +1 -0
- package/lib/types/sessionMounts.js +706 -0
- package/lib/types/sessionPins.d.ts +33 -0
- package/lib/types/sessionPins.d.ts.map +1 -0
- package/lib/types/sessionPins.js +181 -0
- package/lib/types/sessions/format.d.ts +125 -0
- package/lib/types/sessions/format.d.ts.map +1 -0
- package/lib/types/sessions/format.js +276 -0
- package/lib/types/sessions/resumeFailure.d.ts +38 -0
- package/lib/types/sessions/resumeFailure.d.ts.map +1 -0
- package/lib/types/sessions/resumeFailure.js +58 -0
- package/lib/types/sessions/view.d.ts +162 -0
- package/lib/types/sessions/view.d.ts.map +1 -0
- package/lib/types/sessions/view.js +350 -0
- package/lib/types/settings-sections.d.ts +4 -0
- package/lib/types/settings-sections.d.ts.map +1 -0
- package/lib/types/settings-sections.js +4 -0
- package/lib/types/terminal-utils/cliHighlight.d.ts +20 -0
- package/lib/types/terminal-utils/cliHighlight.d.ts.map +1 -0
- package/lib/types/terminal-utils/cliHighlight.js +53 -0
- package/lib/types/terminal-utils/figures.d.ts +26 -0
- package/lib/types/terminal-utils/figures.d.ts.map +1 -0
- package/lib/types/terminal-utils/figures.js +36 -0
- package/lib/types/terminal-utils/format.d.ts +35 -0
- package/lib/types/terminal-utils/format.d.ts.map +1 -0
- package/lib/types/terminal-utils/format.js +63 -0
- package/lib/types/terminal-utils/hash.d.ts +25 -0
- package/lib/types/terminal-utils/hash.d.ts.map +1 -0
- package/lib/types/terminal-utils/hash.js +41 -0
- package/lib/types/terminal-utils/hyperlink.d.ts +27 -0
- package/lib/types/terminal-utils/hyperlink.d.ts.map +1 -0
- package/lib/types/terminal-utils/hyperlink.js +70 -0
- package/lib/types/terminal-utils/markdown.d.ts +58 -0
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -0
- package/lib/types/terminal-utils/markdown.js +441 -0
- package/lib/types/terminal-utils/mermaid.d.ts +44 -0
- package/lib/types/terminal-utils/mermaid.d.ts.map +1 -0
- package/lib/types/terminal-utils/mermaid.js +83 -0
- package/lib/types/terminal-utils/sessionColors.d.ts +27 -0
- package/lib/types/terminal-utils/sessionColors.d.ts.map +1 -0
- package/lib/types/terminal-utils/sessionColors.js +39 -0
- package/lib/types/terminal-utils/spinnerVerbs.d.ts +3 -0
- package/lib/types/terminal-utils/spinnerVerbs.d.ts.map +1 -0
- package/lib/types/terminal-utils/spinnerVerbs.js +21 -0
- package/lib/types/terminal-utils/syntaxRuns.d.ts +16 -0
- package/lib/types/terminal-utils/syntaxRuns.d.ts.map +1 -0
- package/lib/types/terminal-utils/syntaxRuns.js +79 -0
- package/lib/types/terminal-utils/syntaxTheme.d.ts +12 -0
- package/lib/types/terminal-utils/syntaxTheme.d.ts.map +1 -0
- package/lib/types/terminal-utils/syntaxTheme.js +76 -0
- package/lib/types/theme.d.ts +201 -0
- package/lib/types/theme.d.ts.map +1 -0
- package/lib/types/theme.js +525 -0
- package/lib/types/themeCatalog.d.ts +36 -0
- package/lib/types/themeCatalog.d.ts.map +1 -0
- package/lib/types/themeCatalog.js +159 -0
- package/lib/types/themePrefs.d.ts +28 -0
- package/lib/types/themePrefs.d.ts.map +1 -0
- package/lib/types/themePrefs.js +59 -0
- package/lib/types/tips.d.ts +30 -0
- package/lib/types/tips.d.ts.map +1 -0
- package/lib/types/tips.js +899 -0
- package/lib/types/trajectory/effortIgnition.d.ts +66 -0
- package/lib/types/trajectory/effortIgnition.d.ts.map +1 -0
- package/lib/types/trajectory/effortIgnition.js +142 -0
- package/lib/types/trajectory/format.d.ts +100 -0
- package/lib/types/trajectory/format.d.ts.map +1 -0
- package/lib/types/trajectory/format.js +213 -0
- package/lib/types/trajectory/motion.d.ts +99 -0
- package/lib/types/trajectory/motion.d.ts.map +1 -0
- package/lib/types/trajectory/motion.js +143 -0
- package/lib/types/trajectory/query.d.ts +83 -0
- package/lib/types/trajectory/query.d.ts.map +1 -0
- package/lib/types/trajectory/query.js +187 -0
- package/lib/types/trajectoryPrefs.d.ts +36 -0
- package/lib/types/trajectoryPrefs.d.ts.map +1 -0
- package/lib/types/trajectoryPrefs.js +65 -0
- package/lib/types/tuiDisplayPrefs.d.ts +49 -0
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -0
- package/lib/types/tuiDisplayPrefs.js +168 -0
- package/lib/types/ui.d.ts +29 -0
- package/lib/types/ui.d.ts.map +1 -0
- package/lib/types/ui.js +25 -0
- package/lib/types/update.d.ts +550 -0
- package/lib/types/update.d.ts.map +1 -0
- package/lib/types/update.js +1751 -0
- package/lib/types/utils/clipboard.d.ts +122 -0
- package/lib/types/utils/clipboard.d.ts.map +1 -0
- package/lib/types/utils/clipboard.js +577 -0
- package/lib/types/utils/credentials.d.ts +13 -0
- package/lib/types/utils/credentials.d.ts.map +1 -0
- package/lib/types/utils/credentials.js +41 -0
- package/lib/types/utils/debug.d.ts +18 -0
- package/lib/types/utils/debug.d.ts.map +1 -0
- package/lib/types/utils/debug.js +37 -0
- package/lib/types/utils/earlyInput.d.ts +6 -0
- package/lib/types/utils/earlyInput.d.ts.map +1 -0
- package/lib/types/utils/earlyInput.js +5 -0
- package/lib/types/utils/env.d.ts +8 -0
- package/lib/types/utils/env.d.ts.map +1 -0
- package/lib/types/utils/env.js +7 -0
- package/lib/types/utils/envUtils.d.ts +8 -0
- package/lib/types/utils/envUtils.d.ts.map +1 -0
- package/lib/types/utils/envUtils.js +13 -0
- package/lib/types/utils/execFileNoThrow.d.ts +17 -0
- package/lib/types/utils/execFileNoThrow.d.ts.map +1 -0
- package/lib/types/utils/execFileNoThrow.js +65 -0
- package/lib/types/utils/externalEditor.d.ts +116 -0
- package/lib/types/utils/externalEditor.d.ts.map +1 -0
- package/lib/types/utils/externalEditor.js +270 -0
- package/lib/types/utils/fileSuggestions.d.ts +12 -0
- package/lib/types/utils/fileSuggestions.d.ts.map +1 -0
- package/lib/types/utils/fileSuggestions.js +40 -0
- package/lib/types/utils/fileTarget.d.ts +46 -0
- package/lib/types/utils/fileTarget.d.ts.map +1 -0
- package/lib/types/utils/fileTarget.js +178 -0
- package/lib/types/utils/fold-long-lines.d.ts +38 -0
- package/lib/types/utils/fold-long-lines.d.ts.map +1 -0
- package/lib/types/utils/fold-long-lines.js +91 -0
- package/lib/types/utils/fullscreen.d.ts +7 -0
- package/lib/types/utils/fullscreen.d.ts.map +1 -0
- package/lib/types/utils/fullscreen.js +9 -0
- package/lib/types/utils/imageResize.d.ts +90 -0
- package/lib/types/utils/imageResize.d.ts.map +1 -0
- package/lib/types/utils/imageResize.js +272 -0
- package/lib/types/utils/intl.d.ts +7 -0
- package/lib/types/utils/intl.d.ts.map +1 -0
- package/lib/types/utils/intl.js +9 -0
- package/lib/types/utils/keymap.d.ts +138 -0
- package/lib/types/utils/keymap.d.ts.map +1 -0
- package/lib/types/utils/keymap.js +351 -0
- package/lib/types/utils/loaded-context.d.ts +25 -0
- package/lib/types/utils/loaded-context.d.ts.map +1 -0
- package/lib/types/utils/loaded-context.js +72 -0
- package/lib/types/utils/log.d.ts +7 -0
- package/lib/types/utils/log.d.ts.map +1 -0
- package/lib/types/utils/log.js +9 -0
- package/lib/types/utils/mentions.d.ts +53 -0
- package/lib/types/utils/mentions.d.ts.map +1 -0
- package/lib/types/utils/mentions.js +133 -0
- package/lib/types/utils/modifiers.d.ts +43 -0
- package/lib/types/utils/modifiers.d.ts.map +1 -0
- package/lib/types/utils/modifiers.js +45 -0
- package/lib/types/utils/narration.d.ts +11 -0
- package/lib/types/utils/narration.d.ts.map +1 -0
- package/lib/types/utils/narration.js +16 -0
- package/lib/types/utils/openExternal.d.ts +50 -0
- package/lib/types/utils/openExternal.d.ts.map +1 -0
- package/lib/types/utils/openExternal.js +170 -0
- package/lib/types/utils/pastedImagePath.d.ts +51 -0
- package/lib/types/utils/pastedImagePath.d.ts.map +1 -0
- package/lib/types/utils/pastedImagePath.js +194 -0
- package/lib/types/utils/paths.d.ts +16 -0
- package/lib/types/utils/paths.d.ts.map +1 -0
- package/lib/types/utils/paths.js +19 -0
- package/lib/types/utils/semver.d.ts +9 -0
- package/lib/types/utils/semver.d.ts.map +1 -0
- package/lib/types/utils/semver.js +24 -0
- package/lib/types/utils/shellQuote.d.ts +14 -0
- package/lib/types/utils/shellQuote.d.ts.map +1 -0
- package/lib/types/utils/shellQuote.js +39 -0
- package/lib/types/utils/sliceAnsi.d.ts +12 -0
- package/lib/types/utils/sliceAnsi.d.ts.map +1 -0
- package/lib/types/utils/sliceAnsi.js +79 -0
- package/lib/types/utils/truncateMiddle.d.ts +9 -0
- package/lib/types/utils/truncateMiddle.d.ts.map +1 -0
- package/lib/types/utils/truncateMiddle.js +28 -0
- package/lib/types/utils/urlGuard.d.ts +28 -0
- package/lib/types/utils/urlGuard.d.ts.map +1 -0
- package/lib/types/utils/urlGuard.js +21 -0
- package/lib/types/utils/workspaceRoot.d.ts +21 -0
- package/lib/types/utils/workspaceRoot.d.ts.map +1 -0
- package/lib/types/utils/workspaceRoot.js +47 -0
- package/lib/types/working-activity.d.ts +32 -0
- package/lib/types/working-activity.d.ts.map +1 -0
- package/lib/types/working-activity.js +38 -0
- package/lib/types/workspaces.d.ts +5 -0
- package/lib/types/workspaces.d.ts.map +1 -0
- package/lib/types/workspaces.js +4 -0
- package/node_modules/@askdkc/dsh-auth/LICENSE +21 -0
- package/node_modules/@askdkc/dsh-auth/README.ja.md +164 -0
- package/node_modules/@askdkc/dsh-auth/README.md +163 -0
- package/node_modules/@askdkc/dsh-auth/cordis.patch.yml +11 -0
- package/node_modules/@askdkc/dsh-auth/dsh-plugin.json +44 -0
- package/node_modules/@askdkc/dsh-auth/lib/command.d.ts +14 -0
- package/node_modules/@askdkc/dsh-auth/lib/command.js +70 -0
- package/node_modules/@askdkc/dsh-auth/lib/credentials.d.ts +63 -0
- package/node_modules/@askdkc/dsh-auth/lib/credentials.js +204 -0
- package/node_modules/@askdkc/dsh-auth/lib/custom-profiles.d.ts +26 -0
- package/node_modules/@askdkc/dsh-auth/lib/custom-profiles.js +142 -0
- package/node_modules/@askdkc/dsh-auth/lib/index.d.ts +96 -0
- package/node_modules/@askdkc/dsh-auth/lib/index.js +263 -0
- package/node_modules/@askdkc/dsh-auth/lib/interaction.d.ts +68 -0
- package/node_modules/@askdkc/dsh-auth/lib/interaction.js +193 -0
- package/node_modules/@askdkc/dsh-auth/lib/nous-oauth.d.ts +5 -0
- package/node_modules/@askdkc/dsh-auth/lib/nous-oauth.js +112 -0
- package/node_modules/@askdkc/dsh-auth/lib/opener.d.ts +32 -0
- package/node_modules/@askdkc/dsh-auth/lib/opener.js +101 -0
- package/node_modules/@askdkc/dsh-auth/lib/pi-ai.d.ts +23 -0
- package/node_modules/@askdkc/dsh-auth/lib/pi-ai.js +27 -0
- package/node_modules/@askdkc/dsh-auth/lib/profiles.d.ts +45 -0
- package/node_modules/@askdkc/dsh-auth/lib/profiles.js +110 -0
- package/node_modules/@askdkc/dsh-auth/lib/service.d.ts +80 -0
- package/node_modules/@askdkc/dsh-auth/lib/service.js +224 -0
- package/node_modules/@askdkc/dsh-auth/package.json +70 -0
- package/node_modules/@dsh-std/command/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/command/LICENSE +21 -0
- package/node_modules/@dsh-std/command/README.md +26 -0
- package/node_modules/@dsh-std/command/README.zh.md +28 -0
- package/node_modules/@dsh-std/command/lib/index.d.ts +144 -0
- package/node_modules/@dsh-std/command/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/command/lib/index.js +252 -0
- package/node_modules/@dsh-std/command/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/command/package.json +22 -0
- package/node_modules/@dsh-std/connection/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/connection/LICENSE +21 -0
- package/node_modules/@dsh-std/connection/README.md +42 -0
- package/node_modules/@dsh-std/connection/README.zh.md +42 -0
- package/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts +125 -0
- package/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts.map +1 -0
- package/node_modules/@dsh-std/connection/lib/index.d.ts +89 -0
- package/node_modules/@dsh-std/connection/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/connection/lib/index.js +158 -0
- package/node_modules/@dsh-std/connection/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/connection/lib/memory.d.ts +24 -0
- package/node_modules/@dsh-std/connection/lib/memory.d.ts.map +1 -0
- package/node_modules/@dsh-std/connection/lib/memory.js +258 -0
- package/node_modules/@dsh-std/connection/lib/memory.js.map +1 -0
- package/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js +226 -0
- package/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -0
- package/node_modules/@dsh-std/connection/package.json +20 -0
- package/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/core/LICENSE +21 -0
- package/node_modules/@dsh-std/core/README.md +13 -0
- package/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/core/package.json +21 -0
- package/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -0
- package/node_modules/@dsh-std/manifest/LICENSE +21 -0
- package/node_modules/@dsh-std/manifest/README.md +5 -0
- package/node_modules/@dsh-std/manifest/README.zh.md +5 -0
- package/node_modules/@dsh-std/manifest/lib/index.d.ts +182 -0
- package/node_modules/@dsh-std/manifest/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/manifest/lib/index.js +625 -0
- package/node_modules/@dsh-std/manifest/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/manifest/package.json +20 -0
- package/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -0
- package/node_modules/@dsh-std/messages/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/messages/LICENSE +21 -0
- package/node_modules/@dsh-std/messages/README.md +5 -0
- package/node_modules/@dsh-std/messages/README.zh.md +7 -0
- package/node_modules/@dsh-std/messages/lib/index.d.ts +50 -0
- package/node_modules/@dsh-std/messages/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/messages/lib/index.js +151 -0
- package/node_modules/@dsh-std/messages/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/messages/package.json +20 -0
- package/node_modules/@dsh-std/messages/schema/message-observer-envelope-0.15.schema.json +54 -0
- package/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -0
- package/node_modules/@dsh-std/presentation/LICENSE +21 -0
- package/node_modules/@dsh-std/presentation/README.md +27 -0
- package/node_modules/@dsh-std/presentation/README.zh.md +29 -0
- package/node_modules/@dsh-std/presentation/lib/callback.d.ts +2 -0
- package/node_modules/@dsh-std/presentation/lib/callback.js +179 -0
- package/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -0
- package/node_modules/@dsh-std/presentation/lib/index.d.ts +262 -0
- package/node_modules/@dsh-std/presentation/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/presentation/lib/index.js +550 -0
- package/node_modules/@dsh-std/presentation/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/presentation/lib/interaction.d.ts +2 -0
- package/node_modules/@dsh-std/presentation/lib/interaction.js +2 -0
- package/node_modules/@dsh-std/presentation/lib/operations.d.ts +2 -0
- package/node_modules/@dsh-std/presentation/lib/operations.js +2 -0
- package/node_modules/@dsh-std/presentation/package.json +25 -0
- package/node_modules/@dsh-std/storage/CHANGELOG.md +8 -0
- package/node_modules/@dsh-std/storage/LICENSE +21 -0
- package/node_modules/@dsh-std/storage/README.md +5 -0
- package/node_modules/@dsh-std/storage/README.zh.md +7 -0
- package/node_modules/@dsh-std/storage/lib/index.d.ts +48 -0
- package/node_modules/@dsh-std/storage/lib/index.d.ts.map +1 -0
- package/node_modules/@dsh-std/storage/lib/index.js +104 -0
- package/node_modules/@dsh-std/storage/lib/index.js.map +1 -0
- package/node_modules/@dsh-std/storage/package.json +20 -0
- package/node_modules/@dsh-std/storage/schema/local-storage-0.15.schema.json +56 -0
- package/package.json +492 -0
- package/presets/liangshen/.dsh-tui-managed.json +5 -0
- package/presets/liangshen/agent.cordis.yml +425 -0
- package/presets/liangshen/compaction-epoch.mjs +83 -0
- package/presets/liangshen/custom-bash.mjs +301 -0
- package/presets/liangshen/instruction-hint.mjs +190 -0
- package/presets/liangshen/preset.yml +3 -0
- package/presets/liangshen/session-events.mjs +8 -0
- package/presets/liangshen/skill-search.mjs +141 -0
- package/presets/liangshen/tool-bootstrap.mjs +300 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/LICENSE +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.md +42 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.zh.md +42 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts +125 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.d.ts +89 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js +158 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.d.ts +24 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js +258 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js +226 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/package.json +20 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/LICENSE +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.md +5 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.zh.md +5 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.d.ts +182 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js +625 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/package.json +20 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/LICENSE +21 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.md +27 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.zh.md +29 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.d.ts +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js +179 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.d.ts +262 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js +550 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/interaction.d.ts +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/interaction.js +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/operations.d.ts +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/operations.js +2 -0
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/package.json +25 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/LICENSE +21 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.md +42 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.zh.md +42 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts +125 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/connection-CdGcSQnu.d.ts.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.d.ts +89 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js +158 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.d.ts +24 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.d.ts.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js +258 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js +226 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/package.json +20 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/package.json +21 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/CHANGELOG.md +8 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/LICENSE +21 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.md +13 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.zh.md +13 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.d.ts +112 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.d.ts.map +1 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js +424 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js.map +1 -0
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/package.json +21 -0
|
@@ -0,0 +1,4433 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dsh-tui localization — UI strings for Chinese (`zh`, the default) and
|
|
3
|
+
* English (`en`).
|
|
4
|
+
*
|
|
5
|
+
* Resolution order mirrors the `/theme` mechanism (see themePrefs.ts):
|
|
6
|
+
*
|
|
7
|
+
* 1. `DSH_TUI_LANG` env var (`en` / `zh`) — pinned at process start
|
|
8
|
+
* 2. `lang` cordis.yml config key (see Config in index.ts)
|
|
9
|
+
* 3. the persisted `/lang` choice in `~/.dsh-tui/lang.json`
|
|
10
|
+
* 4. the OS locale guess (`LC_ALL` / `LC_MESSAGES` / `LANG`)
|
|
11
|
+
* 5. `zh` (the original hard-coded language)
|
|
12
|
+
*
|
|
13
|
+
* `/lang` switches at runtime and hot-swaps the whole UI. The dictionary is
|
|
14
|
+
* a flat key → per-language text map; `t(key, params)` substitutes
|
|
15
|
+
* `{{name}}` placeholders with the given params. A per-language value is
|
|
16
|
+
* either a plain template or `{ one, other }` plural forms selected via
|
|
17
|
+
* `Intl.PluralRules` on the `count` param (zh has no grammatical number and
|
|
18
|
+
* always resolves to `other`). Missing keys render the key itself so a typo
|
|
19
|
+
* is visible in the UI instead of silently blank.
|
|
20
|
+
*
|
|
21
|
+
* The dictionary shape is enforced at compile time (`satisfies` below):
|
|
22
|
+
* every entry carries zh, and en is optional only for the `cmd-desc-*`
|
|
23
|
+
* family whose en truth lives in the command registry (see {@link tOr}).
|
|
24
|
+
* scripts/verify-i18n.ts adds the checks types cannot express: placeholder
|
|
25
|
+
* parity between languages, single-brace typos, dead keys, and English
|
|
26
|
+
* UI-copy literals outside the dictionary (issue #980's leak shape).
|
|
27
|
+
*
|
|
28
|
+
* ## Adding a language (e.g. `ja`) — the full checklist
|
|
29
|
+
*
|
|
30
|
+
* The architecture is the standard flat-dict shape; a new language is
|
|
31
|
+
* translation work plus this mechanical touchpoint list (the compiler and
|
|
32
|
+
* verify-i18n fail until every step is done — partial translations cannot
|
|
33
|
+
* ship silently):
|
|
34
|
+
*
|
|
35
|
+
* 1. `Lang` union + `LANGS` display order (this file).
|
|
36
|
+
* 2. `isLang()` — add the literal.
|
|
37
|
+
* 3. `pluralRules` — add `new Intl.PluralRules('<tag>')`; if the language
|
|
38
|
+
* uses CLDR categories beyond one/other (ru/pl/ar…), widen `I18nText`
|
|
39
|
+
* to carry them and extend `pickText` accordingly.
|
|
40
|
+
* 4. Dictionary type below: add `ja?: I18nText` to the `satisfies` shape.
|
|
41
|
+
* Decide optionality deliberately: required = compile error per missing
|
|
42
|
+
* key (recommended — a half-translated UI is worse than none); optional
|
|
43
|
+
* = `t()` renders the raw key for gaps, so also give `t()`/`tOr()` an
|
|
44
|
+
* explicit fallback order (e.g. ja → en → key) if you go optional.
|
|
45
|
+
* 5. scripts/verify-i18n.ts: the completeness loop (§1) hardcodes the
|
|
46
|
+
* ['zh','en'] pair — extend it, and re-review FORBIDDEN_LITERALS
|
|
47
|
+
* (English sentences stay banned outside the dict; add the new
|
|
48
|
+
* language's equivalents only if the leak shape repeats).
|
|
49
|
+
* 6. Translate the dictionary (~1k keys today); zh comments above each
|
|
50
|
+
* key family describe tone/register — keep them.
|
|
51
|
+
* 7. `detectLocaleLang()` — map the new tag in the OS-locale guess.
|
|
52
|
+
* 8. Rendered-output regression: extend scripts/verify-toolcard-i18n.tsx
|
|
53
|
+
* style fixtures' language passes so the localized strings are proven
|
|
54
|
+
* on screen, not just present in the dict.
|
|
55
|
+
*/
|
|
56
|
+
export type Lang = 'zh' | 'en';
|
|
57
|
+
/** The languages shipped with the plugin, in display order. */
|
|
58
|
+
export declare const LANGS: readonly ["zh", "en"];
|
|
59
|
+
/**
|
|
60
|
+
* One dictionary value in one language: a plain `{{name}}` template, or
|
|
61
|
+
* plural forms picked by the `count` param through `Intl.PluralRules`.
|
|
62
|
+
* Only `one`/`other` exist because those are the only CLDR categories zh
|
|
63
|
+
* and en use; a third shipped language may need more.
|
|
64
|
+
*/
|
|
65
|
+
export type I18nText = string | {
|
|
66
|
+
one: string;
|
|
67
|
+
other: string;
|
|
68
|
+
};
|
|
69
|
+
declare const dict: {
|
|
70
|
+
readonly 'spinner-verb-analyzing': {
|
|
71
|
+
readonly zh: "分析中";
|
|
72
|
+
readonly en: "Analyzing";
|
|
73
|
+
};
|
|
74
|
+
readonly 'spinner-verb-thinking': {
|
|
75
|
+
readonly zh: "思考中";
|
|
76
|
+
readonly en: "Thinking";
|
|
77
|
+
};
|
|
78
|
+
readonly 'spinner-verb-working': {
|
|
79
|
+
readonly zh: "工作中";
|
|
80
|
+
readonly en: "Working";
|
|
81
|
+
};
|
|
82
|
+
readonly 'spinner-verb-considering': {
|
|
83
|
+
readonly zh: "斟酌中";
|
|
84
|
+
readonly en: "Considering";
|
|
85
|
+
};
|
|
86
|
+
readonly 'spinner-verb-reviewing': {
|
|
87
|
+
readonly zh: "审阅中";
|
|
88
|
+
readonly en: "Reviewing";
|
|
89
|
+
};
|
|
90
|
+
readonly 'spinner-verb-planning': {
|
|
91
|
+
readonly zh: "规划中";
|
|
92
|
+
readonly en: "Planning";
|
|
93
|
+
};
|
|
94
|
+
readonly 'spinner-verb-checking': {
|
|
95
|
+
readonly zh: "检查中";
|
|
96
|
+
readonly en: "Checking";
|
|
97
|
+
};
|
|
98
|
+
readonly 'spinner-verb-reading': {
|
|
99
|
+
readonly zh: "读取中";
|
|
100
|
+
readonly en: "Reading";
|
|
101
|
+
};
|
|
102
|
+
readonly 'spinner-verb-searching': {
|
|
103
|
+
readonly zh: "检索中";
|
|
104
|
+
readonly en: "Searching";
|
|
105
|
+
};
|
|
106
|
+
readonly 'spinner-verb-building': {
|
|
107
|
+
readonly zh: "构建中";
|
|
108
|
+
readonly en: "Building";
|
|
109
|
+
};
|
|
110
|
+
readonly 'spinner-verb-testing': {
|
|
111
|
+
readonly zh: "测试中";
|
|
112
|
+
readonly en: "Testing";
|
|
113
|
+
};
|
|
114
|
+
readonly 'spinner-verb-connecting': {
|
|
115
|
+
readonly zh: "连接中";
|
|
116
|
+
readonly en: "Connecting";
|
|
117
|
+
};
|
|
118
|
+
readonly 'spinner-verb-preparing': {
|
|
119
|
+
readonly zh: "准备中";
|
|
120
|
+
readonly en: "Preparing";
|
|
121
|
+
};
|
|
122
|
+
readonly 'spinner-verb-exploring': {
|
|
123
|
+
readonly zh: "探索中";
|
|
124
|
+
readonly en: "Exploring";
|
|
125
|
+
};
|
|
126
|
+
readonly 'spinner-verb-reasoning': {
|
|
127
|
+
readonly zh: "推理中";
|
|
128
|
+
readonly en: "Reasoning";
|
|
129
|
+
};
|
|
130
|
+
readonly 'spinner-verb-summarizing': {
|
|
131
|
+
readonly zh: "总结中";
|
|
132
|
+
readonly en: "Summarizing";
|
|
133
|
+
};
|
|
134
|
+
readonly 'spinner-verb-resolving': {
|
|
135
|
+
readonly zh: "解析中";
|
|
136
|
+
readonly en: "Resolving";
|
|
137
|
+
};
|
|
138
|
+
readonly 'spinner-verb-responding': {
|
|
139
|
+
readonly zh: "回应中";
|
|
140
|
+
readonly en: "Responding";
|
|
141
|
+
};
|
|
142
|
+
readonly 'activity-indicator-already': {
|
|
143
|
+
readonly zh: "指示器已是:{{name}}";
|
|
144
|
+
readonly en: "Indicator already set: {{name}}";
|
|
145
|
+
};
|
|
146
|
+
readonly 'activity-indicator-switched': {
|
|
147
|
+
readonly zh: "指示器已切换:{{name}}(已保存)";
|
|
148
|
+
readonly en: "Indicator switched: {{name}} (saved)";
|
|
149
|
+
};
|
|
150
|
+
readonly 'activity-pref-write-failed': {
|
|
151
|
+
readonly zh: "无法写入 ~/.dsh-tui/working-activity.json,切换未保存";
|
|
152
|
+
readonly en: "Cannot write ~/.dsh-tui/working-activity.json, switch not saved";
|
|
153
|
+
};
|
|
154
|
+
readonly 'model-pref-write-failed': {
|
|
155
|
+
readonly zh: "无法写入 ~/.dsh-tui/model.json,模型选择不会保存到重启后";
|
|
156
|
+
readonly en: "Cannot write ~/.dsh-tui/model.json, the model choice will not survive a restart";
|
|
157
|
+
};
|
|
158
|
+
readonly 'model-route-invalid': {
|
|
159
|
+
readonly zh: "持久化的模型路由 {{provider}}/{{model}} 不在该 provider 的模型列表中,已整体回退到 {{fallback}}";
|
|
160
|
+
readonly en: "Persisted model route {{provider}}/{{model}} is not advertised by that provider; fell back to {{fallback}}";
|
|
161
|
+
};
|
|
162
|
+
readonly 'unknown-activity-preset': {
|
|
163
|
+
readonly zh: "未知预设「{{name}}」· /activity frames 查看全部";
|
|
164
|
+
readonly en: "Unknown preset \"{{name}}\" · /activity frames to view all";
|
|
165
|
+
};
|
|
166
|
+
readonly 'preset-unavailable': {
|
|
167
|
+
readonly zh: "Preset 不可用——当前组合未挂载 agent-presets 名册";
|
|
168
|
+
readonly en: "Preset unavailable — the agent-presets roster is not mounted";
|
|
169
|
+
};
|
|
170
|
+
readonly 'preset-agent-running': {
|
|
171
|
+
readonly zh: "Agent 运行中,无法切换 preset";
|
|
172
|
+
readonly en: "Agent is running, cannot switch preset";
|
|
173
|
+
};
|
|
174
|
+
readonly 'preset-not-found': {
|
|
175
|
+
readonly zh: "Preset「{{id}}」不存在 · {{err}}";
|
|
176
|
+
readonly en: "Preset \"{{id}}\" not found · {{err}}";
|
|
177
|
+
};
|
|
178
|
+
readonly 'preset-load-failed': {
|
|
179
|
+
readonly zh: "Preset「{{id}}」无法加载 · {{broken}}";
|
|
180
|
+
readonly en: "Preset \"{{id}}\" failed to load · {{broken}}";
|
|
181
|
+
};
|
|
182
|
+
readonly 'preset-already-current': {
|
|
183
|
+
readonly zh: "当前 preset 已是:{{id}}";
|
|
184
|
+
readonly en: "Current preset already: {{id}}";
|
|
185
|
+
};
|
|
186
|
+
readonly 'preset-pref-write-failed': {
|
|
187
|
+
readonly zh: "无法写入 ~/.dsh-tui/agent-preset.json,选择未保存";
|
|
188
|
+
readonly en: "Cannot write ~/.dsh-tui/agent-preset.json, selection not saved";
|
|
189
|
+
};
|
|
190
|
+
readonly 'preset-locked-saved-default': {
|
|
191
|
+
readonly zh: "会话已开始,preset 已锁定(当前:{{current}})· 已保存为默认:{{id}}(/new 或下次启动生效)";
|
|
192
|
+
readonly en: "Session already started, preset locked (current: {{current}}) · Saved as default: {{id}} (applies on /new or next start)";
|
|
193
|
+
};
|
|
194
|
+
readonly 'preset-switch-failed': {
|
|
195
|
+
readonly zh: "Preset 切换失败 · {{err}}";
|
|
196
|
+
readonly en: "Preset switch failed · {{err}}";
|
|
197
|
+
};
|
|
198
|
+
readonly 'preset-switched-pref-failed': {
|
|
199
|
+
readonly zh: "Preset 已切换:{{id}},但默认偏好写入失败(重启后不保留)";
|
|
200
|
+
readonly en: "Preset switched: {{id}}, but writing the default preference failed (won't persist after restart)";
|
|
201
|
+
};
|
|
202
|
+
readonly 'preset-switched-saved': {
|
|
203
|
+
readonly zh: "Preset 已切换:{{id}}(已保存为默认)";
|
|
204
|
+
readonly en: "Preset switched: {{id}} (saved as default)";
|
|
205
|
+
};
|
|
206
|
+
readonly 'preset-name-standard': {
|
|
207
|
+
readonly zh: "标准模式";
|
|
208
|
+
readonly en: "Standard";
|
|
209
|
+
};
|
|
210
|
+
readonly 'preset-desc-standard': {
|
|
211
|
+
readonly zh: "功能完整的编码 Agent,支持文件编辑、Shell、文件与网页检索、Skills、计划、目标、子代理和工作流。";
|
|
212
|
+
readonly en: "Full-featured coding agent: file editing, shell, file & web search, skills, plans, goals, subagents and workflows.";
|
|
213
|
+
};
|
|
214
|
+
readonly 'preset-name-minimal': {
|
|
215
|
+
readonly zh: "极简模式";
|
|
216
|
+
readonly en: "Minimal";
|
|
217
|
+
};
|
|
218
|
+
readonly 'preset-desc-minimal': {
|
|
219
|
+
readonly zh: "仅提供持久 bash 与 str_replace_editor 的双工具编码 Agent。";
|
|
220
|
+
readonly en: "A two-tool coding agent exposing only persistent bash and str_replace_editor.";
|
|
221
|
+
};
|
|
222
|
+
readonly 'preset-name-code': {
|
|
223
|
+
readonly zh: "PTC 模式";
|
|
224
|
+
readonly en: "PTC";
|
|
225
|
+
};
|
|
226
|
+
readonly 'preset-desc-code': {
|
|
227
|
+
readonly zh: "具备标准模式的全部能力,并通过 Code Mode SDK 呈现工具,让模型用一个 TypeScript 程序组合多步操作。";
|
|
228
|
+
readonly en: "Everything standard mode offers, with tools exposed through the Code Mode SDK so the model composes multi-step operations in one TypeScript program.";
|
|
229
|
+
};
|
|
230
|
+
readonly 'preset-name-cordis': {
|
|
231
|
+
readonly zh: "创造模式";
|
|
232
|
+
readonly en: "Creation";
|
|
233
|
+
};
|
|
234
|
+
readonly 'preset-desc-cordis': {
|
|
235
|
+
readonly zh: "用于创建自定义 Agent preset:具备标准模式的全部能力,并提供运行时检查、插件实验和 preset 创作指导。";
|
|
236
|
+
readonly en: "For authoring custom agent presets: everything standard mode offers plus runtime inspection, plugin experiments and preset-authoring guidance.";
|
|
237
|
+
};
|
|
238
|
+
readonly 'preset-name-liangshen': {
|
|
239
|
+
readonly zh: "梁神模式";
|
|
240
|
+
readonly en: "Liangshen mode";
|
|
241
|
+
};
|
|
242
|
+
readonly 'preset-desc-liangshen': {
|
|
243
|
+
readonly zh: "主 Agent 与子 Agent 首轮均保持 Minimal 双工具,首次工具调用后开放完整目录,压缩后重新锚定。";
|
|
244
|
+
readonly en: "Root and delegated agents keep the minimal two-tool pair on the first turn; the full catalog opens after the first tool call and re-anchors after compaction.";
|
|
245
|
+
};
|
|
246
|
+
readonly 'mcp-none-configured': {
|
|
247
|
+
readonly zh: "未配置 MCP 服务器。";
|
|
248
|
+
readonly en: "No MCP servers configured.";
|
|
249
|
+
};
|
|
250
|
+
readonly 'mcp-insert-hint': {
|
|
251
|
+
readonly zh: "在 profile 补丁层(~/.dsh/profiles/dsh-tui/cordis.patch.yml)insert 一行即可,例:";
|
|
252
|
+
readonly en: "Insert one line in the profile patch layer (~/.dsh/profiles/dsh-tui/cordis.patch.yml), e.g.:";
|
|
253
|
+
};
|
|
254
|
+
readonly 'mcp-readme-hint': {
|
|
255
|
+
readonly zh: "详见仓库 README 的 MCP 章节。";
|
|
256
|
+
readonly en: "See the MCP section of the repo README.";
|
|
257
|
+
};
|
|
258
|
+
readonly 'mcp-server-tools': {
|
|
259
|
+
readonly zh: "{{server}}({{count}} 个工具): {{tools}}";
|
|
260
|
+
readonly en: "{{server}} ({{count}} tools): {{tools}}";
|
|
261
|
+
};
|
|
262
|
+
readonly 'child-stderr-line': {
|
|
263
|
+
readonly zh: "子进程 stderr: {{line}}";
|
|
264
|
+
readonly en: "Subprocess stderr: {{line}}";
|
|
265
|
+
};
|
|
266
|
+
readonly 'child-stderr-line-repeat': {
|
|
267
|
+
readonly zh: "子进程 stderr: {{line}}(重复 {{count}} 次)";
|
|
268
|
+
readonly en: "Subprocess stderr: {{line}} (repeated {{count}}×)";
|
|
269
|
+
};
|
|
270
|
+
readonly 'export-title': {
|
|
271
|
+
readonly zh: "# dsh-tui 会话导出";
|
|
272
|
+
readonly en: "# dsh-tui session export";
|
|
273
|
+
};
|
|
274
|
+
readonly 'export-time': {
|
|
275
|
+
readonly zh: "- 导出时间: {{time}}";
|
|
276
|
+
readonly en: "- Exported: {{time}}";
|
|
277
|
+
};
|
|
278
|
+
readonly 'export-model': {
|
|
279
|
+
readonly zh: "- 模型: {{model}}";
|
|
280
|
+
readonly en: "- Model: {{model}}";
|
|
281
|
+
};
|
|
282
|
+
readonly 'export-session': {
|
|
283
|
+
readonly zh: "- 会话: {{id}}";
|
|
284
|
+
readonly en: "- Session: {{id}}";
|
|
285
|
+
};
|
|
286
|
+
readonly 'export-dir': {
|
|
287
|
+
readonly zh: "- 目录: {{cwd}}";
|
|
288
|
+
readonly en: "- Directory: {{cwd}}";
|
|
289
|
+
};
|
|
290
|
+
readonly 'mentions-attached': {
|
|
291
|
+
readonly zh: "已附加 {{count}} 个文件引用";
|
|
292
|
+
readonly en: {
|
|
293
|
+
readonly one: "Attached {{count}} file reference";
|
|
294
|
+
readonly other: "Attached {{count}} file references";
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
readonly 'mentions-missing': {
|
|
298
|
+
readonly zh: "未找到引用: {{paths}}";
|
|
299
|
+
readonly en: "References not found: {{paths}}";
|
|
300
|
+
};
|
|
301
|
+
readonly 'selection-attached': {
|
|
302
|
+
readonly zh: "已选中 {{lines}} 行 · {{path}}";
|
|
303
|
+
readonly en: {
|
|
304
|
+
readonly one: "Selected {{lines}} line from {{path}}";
|
|
305
|
+
readonly other: "Selected {{lines}} lines from {{path}}";
|
|
306
|
+
};
|
|
307
|
+
};
|
|
308
|
+
readonly 'transcript-image': {
|
|
309
|
+
readonly zh: "图片";
|
|
310
|
+
readonly en: "Image";
|
|
311
|
+
};
|
|
312
|
+
readonly 'image-preview-previous': {
|
|
313
|
+
readonly zh: "上一张";
|
|
314
|
+
readonly en: "Previous image";
|
|
315
|
+
};
|
|
316
|
+
readonly 'image-preview-next': {
|
|
317
|
+
readonly zh: "下一张";
|
|
318
|
+
readonly en: "Next image";
|
|
319
|
+
};
|
|
320
|
+
readonly 'image-preview-open-original': {
|
|
321
|
+
readonly zh: "打开原图";
|
|
322
|
+
readonly en: "Open original";
|
|
323
|
+
};
|
|
324
|
+
readonly 'image-preview-opening': {
|
|
325
|
+
readonly zh: "正在打开原图…";
|
|
326
|
+
readonly en: "Opening original...";
|
|
327
|
+
};
|
|
328
|
+
readonly 'image-preview-open-failed': {
|
|
329
|
+
readonly zh: "原图打开失败,点击重试";
|
|
330
|
+
readonly en: "Could not open original; retry";
|
|
331
|
+
};
|
|
332
|
+
readonly 'image-preview-fit': {
|
|
333
|
+
readonly zh: "适应";
|
|
334
|
+
readonly en: "Fit";
|
|
335
|
+
};
|
|
336
|
+
readonly 'image-preview-actual': {
|
|
337
|
+
readonly zh: "100% 原像素";
|
|
338
|
+
readonly en: "Actual pixels (100%)";
|
|
339
|
+
};
|
|
340
|
+
readonly 'image-preview-no-metrics': {
|
|
341
|
+
readonly zh: "终端未报告字符格像素尺寸";
|
|
342
|
+
readonly en: "Terminal cell pixel size unavailable";
|
|
343
|
+
};
|
|
344
|
+
readonly 'image-preview-zoom-in': {
|
|
345
|
+
readonly zh: "放大";
|
|
346
|
+
readonly en: "Zoom in";
|
|
347
|
+
};
|
|
348
|
+
readonly 'image-preview-zoom-out': {
|
|
349
|
+
readonly zh: "缩小";
|
|
350
|
+
readonly en: "Zoom out";
|
|
351
|
+
};
|
|
352
|
+
readonly 'image-preview-left': {
|
|
353
|
+
readonly zh: "向左平移";
|
|
354
|
+
readonly en: "Pan left";
|
|
355
|
+
};
|
|
356
|
+
readonly 'image-preview-right': {
|
|
357
|
+
readonly zh: "向右平移";
|
|
358
|
+
readonly en: "Pan right";
|
|
359
|
+
};
|
|
360
|
+
readonly 'image-preview-up': {
|
|
361
|
+
readonly zh: "向上平移";
|
|
362
|
+
readonly en: "Pan up";
|
|
363
|
+
};
|
|
364
|
+
readonly 'image-preview-down': {
|
|
365
|
+
readonly zh: "向下平移";
|
|
366
|
+
readonly en: "Pan down";
|
|
367
|
+
};
|
|
368
|
+
readonly 'transcript-image-loading': {
|
|
369
|
+
readonly zh: "正在加载 {{name}}";
|
|
370
|
+
readonly en: "Loading {{name}}";
|
|
371
|
+
};
|
|
372
|
+
readonly 'transcript-image-ready': {
|
|
373
|
+
readonly zh: "图片 · {{name}}";
|
|
374
|
+
readonly en: "Image · {{name}}";
|
|
375
|
+
};
|
|
376
|
+
readonly 'transcript-image-unavailable': {
|
|
377
|
+
readonly zh: "无法预览 {{name}}";
|
|
378
|
+
readonly en: "Cannot preview {{name}}";
|
|
379
|
+
};
|
|
380
|
+
readonly 'transcript-image-message': {
|
|
381
|
+
readonly zh: "{{count}} 张图片";
|
|
382
|
+
readonly en: {
|
|
383
|
+
readonly one: "{{count}} image";
|
|
384
|
+
readonly other: "{{count}} images";
|
|
385
|
+
};
|
|
386
|
+
};
|
|
387
|
+
readonly 'input-image-token-stale': {
|
|
388
|
+
readonly zh: "{{token}} 已失效,发送时不会附带图片";
|
|
389
|
+
readonly en: "{{token}} is no longer staged; no image will attach";
|
|
390
|
+
};
|
|
391
|
+
readonly 'input-images-staged': {
|
|
392
|
+
readonly zh: "已附加 {{count}} 张图片";
|
|
393
|
+
readonly en: {
|
|
394
|
+
readonly one: "Attached {{count}} image";
|
|
395
|
+
readonly other: "Attached {{count}} images";
|
|
396
|
+
};
|
|
397
|
+
};
|
|
398
|
+
readonly 'input-images-staged-adapted': {
|
|
399
|
+
readonly zh: "已附加 {{count}} 张图片 · {{adapted}} 张已适配";
|
|
400
|
+
readonly en: {
|
|
401
|
+
readonly one: "Attached {{count}} image · {{adapted}} adapted";
|
|
402
|
+
readonly other: "Attached {{count}} images · {{adapted}} adapted";
|
|
403
|
+
};
|
|
404
|
+
};
|
|
405
|
+
readonly 'send-failed': {
|
|
406
|
+
readonly zh: "发送失败 · {{err}}";
|
|
407
|
+
readonly en: "Send failed · {{err}}";
|
|
408
|
+
};
|
|
409
|
+
readonly 'export-user-section': {
|
|
410
|
+
readonly zh: "## 用户";
|
|
411
|
+
readonly en: "## User";
|
|
412
|
+
};
|
|
413
|
+
readonly 'export-thinking-section': {
|
|
414
|
+
readonly zh: "## 思考";
|
|
415
|
+
readonly en: "## Thinking";
|
|
416
|
+
};
|
|
417
|
+
readonly 'export-assistant-section': {
|
|
418
|
+
readonly zh: "## 助手";
|
|
419
|
+
readonly en: "## Assistant";
|
|
420
|
+
};
|
|
421
|
+
readonly 'export-tool-section': {
|
|
422
|
+
readonly zh: "## 工具 · {{name}}";
|
|
423
|
+
readonly en: "## Tool · {{name}}";
|
|
424
|
+
};
|
|
425
|
+
readonly 'export-result-section': {
|
|
426
|
+
readonly zh: "### 结果";
|
|
427
|
+
readonly en: "### Result";
|
|
428
|
+
};
|
|
429
|
+
readonly 'agentsmd-project': {
|
|
430
|
+
readonly zh: "## 项目";
|
|
431
|
+
readonly en: "## Project";
|
|
432
|
+
};
|
|
433
|
+
readonly 'agentsmd-project-body': {
|
|
434
|
+
readonly zh: "(在此描述项目的目标、结构与约定——这份文件会注入给每个 agent 作为工作区上下文。)";
|
|
435
|
+
readonly en: "(Describe the project's goals, structure and conventions here — this file is injected to every agent as workspace context.)";
|
|
436
|
+
};
|
|
437
|
+
readonly 'agentsmd-conventions': {
|
|
438
|
+
readonly zh: "## 约定";
|
|
439
|
+
readonly en: "## Conventions";
|
|
440
|
+
};
|
|
441
|
+
readonly 'agentsmd-convention-read': {
|
|
442
|
+
readonly zh: "- 改动前先阅读相关模块";
|
|
443
|
+
readonly en: "- Read the relevant modules before making changes";
|
|
444
|
+
};
|
|
445
|
+
readonly 'agentsmd-convention-style': {
|
|
446
|
+
readonly zh: "- 保持与现有代码风格一致";
|
|
447
|
+
readonly en: "- Keep consistent with the existing code style";
|
|
448
|
+
};
|
|
449
|
+
readonly 'doctor-api-key': {
|
|
450
|
+
readonly zh: "API key: {{state}}";
|
|
451
|
+
readonly en: "API key: {{state}}";
|
|
452
|
+
};
|
|
453
|
+
readonly 'doctor-key-configured-env': {
|
|
454
|
+
readonly zh: "已配置(环境变量)";
|
|
455
|
+
readonly en: "configured (environment)";
|
|
456
|
+
};
|
|
457
|
+
readonly 'doctor-key-configured-store': {
|
|
458
|
+
readonly zh: "已配置(DSH 凭据库)";
|
|
459
|
+
readonly en: "configured (DSH credential store)";
|
|
460
|
+
};
|
|
461
|
+
readonly 'doctor-key-missing': {
|
|
462
|
+
readonly zh: "未配置(环境变量与 DSH 凭据库中都没有 DEEPSEEK_API_KEY)";
|
|
463
|
+
readonly en: "not configured (neither DEEPSEEK_API_KEY nor a DSH credential-store ref)";
|
|
464
|
+
};
|
|
465
|
+
readonly 'doctor-model': {
|
|
466
|
+
readonly zh: "模型: {{model}} · 提供方: {{provider}}";
|
|
467
|
+
readonly en: "Model: {{model}} · Provider: {{provider}}";
|
|
468
|
+
};
|
|
469
|
+
readonly 'doctor-cwd': {
|
|
470
|
+
readonly zh: "工作目录: {{cwd}}";
|
|
471
|
+
readonly en: "Working directory: {{cwd}}";
|
|
472
|
+
};
|
|
473
|
+
readonly 'doctor-context-window': {
|
|
474
|
+
readonly zh: "上下文窗口: {{window}} tokens";
|
|
475
|
+
readonly en: "Context window: {{window}} tokens";
|
|
476
|
+
};
|
|
477
|
+
readonly 'doctor-unknown': {
|
|
478
|
+
readonly zh: "未知";
|
|
479
|
+
readonly en: "unknown";
|
|
480
|
+
};
|
|
481
|
+
readonly 'doctor-session': {
|
|
482
|
+
readonly zh: "会话: {{id}}";
|
|
483
|
+
readonly en: "Session: {{id}}";
|
|
484
|
+
};
|
|
485
|
+
readonly 'doctor-config': {
|
|
486
|
+
readonly zh: "配置: {{candidate}} {{state}}";
|
|
487
|
+
readonly en: "Config: {{candidate}} {{state}}";
|
|
488
|
+
};
|
|
489
|
+
readonly 'doctor-config-missing': {
|
|
490
|
+
readonly zh: "(不存在)";
|
|
491
|
+
readonly en: "(missing)";
|
|
492
|
+
};
|
|
493
|
+
readonly 'doctor-storage': {
|
|
494
|
+
readonly zh: "会话存储: {{dir}} {{state}}";
|
|
495
|
+
readonly en: "Session storage: {{dir}} {{state}}";
|
|
496
|
+
};
|
|
497
|
+
readonly 'doctor-storage-uninit': {
|
|
498
|
+
readonly zh: "(未初始化)";
|
|
499
|
+
readonly en: "(not initialized)";
|
|
500
|
+
};
|
|
501
|
+
readonly 'subagent-not-mounted': {
|
|
502
|
+
readonly zh: "子代理服务未挂载(leaf 未启用 subagent)";
|
|
503
|
+
readonly en: "Subagent service not mounted (leaf has no subagent)";
|
|
504
|
+
};
|
|
505
|
+
readonly 'subagent-none': {
|
|
506
|
+
readonly zh: "当前会话暂无子代理";
|
|
507
|
+
readonly en: "No subagents in the current session";
|
|
508
|
+
};
|
|
509
|
+
readonly 'subagent-resumable': {
|
|
510
|
+
readonly zh: "可续";
|
|
511
|
+
readonly en: "resumable";
|
|
512
|
+
};
|
|
513
|
+
readonly 'subagent-oneshot': {
|
|
514
|
+
readonly zh: "一次性";
|
|
515
|
+
readonly en: "one-shot";
|
|
516
|
+
};
|
|
517
|
+
readonly 'subagent-row': {
|
|
518
|
+
readonly zh: "{{mode}} {{label}}{{activity}} · {{id}}";
|
|
519
|
+
readonly en: "{{mode}} {{label}}{{activity}} · {{id}}";
|
|
520
|
+
};
|
|
521
|
+
readonly 'subagent-running': {
|
|
522
|
+
readonly zh: " 运行中";
|
|
523
|
+
readonly en: " running";
|
|
524
|
+
};
|
|
525
|
+
readonly 'subagent-archived': {
|
|
526
|
+
readonly zh: " 已归档";
|
|
527
|
+
readonly en: " archived";
|
|
528
|
+
};
|
|
529
|
+
readonly 'subagent-query-failed': {
|
|
530
|
+
readonly zh: "查询失败 · {{err}}";
|
|
531
|
+
readonly en: "Query failed · {{err}}";
|
|
532
|
+
};
|
|
533
|
+
readonly 'subagent-tools': {
|
|
534
|
+
readonly zh: "工具";
|
|
535
|
+
readonly en: "Tools";
|
|
536
|
+
};
|
|
537
|
+
readonly 'subagent-status-running': {
|
|
538
|
+
readonly zh: "运行中";
|
|
539
|
+
readonly en: "running";
|
|
540
|
+
};
|
|
541
|
+
readonly 'subagent-status-completed': {
|
|
542
|
+
readonly zh: "已完成";
|
|
543
|
+
readonly en: "completed";
|
|
544
|
+
};
|
|
545
|
+
readonly 'subagent-status-failed': {
|
|
546
|
+
readonly zh: "失败";
|
|
547
|
+
readonly en: "failed";
|
|
548
|
+
};
|
|
549
|
+
readonly 'agent-preset-switched': {
|
|
550
|
+
readonly zh: "Agent preset 已切换:{{preset}}";
|
|
551
|
+
readonly en: "Agent preset switched: {{preset}}";
|
|
552
|
+
};
|
|
553
|
+
readonly 'context-low-warning': {
|
|
554
|
+
readonly zh: "上下文即将耗尽(剩余 {{percent}}%)· 运行 /clear 或新建会话";
|
|
555
|
+
readonly en: "Context low ({{percent}}% remaining) · Run /clear or start a new session";
|
|
556
|
+
};
|
|
557
|
+
readonly 'rewind-unavailable': {
|
|
558
|
+
readonly zh: "回退不可用——会话服务未加载";
|
|
559
|
+
readonly en: "Rewind unavailable — session services not loaded";
|
|
560
|
+
};
|
|
561
|
+
readonly 'rewind-settling': {
|
|
562
|
+
readonly zh: "无法回退——回合仍在收尾,请稍候再试";
|
|
563
|
+
readonly en: "Cannot rewind — the turn is still settling, try again in a moment";
|
|
564
|
+
};
|
|
565
|
+
readonly 'rewind-fork-failed': {
|
|
566
|
+
readonly zh: "无法回退到该处 · {{err}}";
|
|
567
|
+
readonly en: "Cannot rewind to this point · {{err}}";
|
|
568
|
+
};
|
|
569
|
+
readonly 'rewind-create-failed': {
|
|
570
|
+
readonly zh: "回退失败——无法创建替代会话";
|
|
571
|
+
readonly en: "Rewind failed — could not create the replacement session";
|
|
572
|
+
};
|
|
573
|
+
readonly 'rewind-attach-failed': {
|
|
574
|
+
readonly zh: "已回退,但工作区挂载失败 · {{err}}";
|
|
575
|
+
readonly en: "Session rewound, but workspace attachment failed · {{err}}";
|
|
576
|
+
};
|
|
577
|
+
readonly 'rewind-no-persistence': {
|
|
578
|
+
readonly zh: "回退不可用——持久化服务未加载";
|
|
579
|
+
readonly en: "Rewind unavailable — session persistence not loaded";
|
|
580
|
+
};
|
|
581
|
+
readonly 'rewind-load-failed': {
|
|
582
|
+
readonly zh: "无法读取该会话日志 · {{err}}";
|
|
583
|
+
readonly en: "Could not read that session log · {{err}}";
|
|
584
|
+
};
|
|
585
|
+
readonly 'rewind-first-message': {
|
|
586
|
+
readonly zh: "不能回退到第一条消息之前";
|
|
587
|
+
readonly en: "Cannot rewind past the very first message";
|
|
588
|
+
};
|
|
589
|
+
readonly 'rewind-noop': {
|
|
590
|
+
readonly zh: "该点之后没有可回退的内容";
|
|
591
|
+
readonly en: "Nothing to rewind past this point";
|
|
592
|
+
};
|
|
593
|
+
readonly 'rewind-session-changed': {
|
|
594
|
+
readonly zh: "会话已切换,回退已放弃";
|
|
595
|
+
readonly en: "The session changed; the rewind was dropped";
|
|
596
|
+
};
|
|
597
|
+
readonly 'tree-unavailable': {
|
|
598
|
+
readonly zh: "会话树不可用——持久化服务未加载";
|
|
599
|
+
readonly en: "Session tree unavailable — session persistence not loaded";
|
|
600
|
+
};
|
|
601
|
+
readonly 'fork-unavailable': {
|
|
602
|
+
readonly zh: "分叉不可用——会话服务未加载";
|
|
603
|
+
readonly en: "Fork unavailable — session services not loaded";
|
|
604
|
+
};
|
|
605
|
+
readonly 'fork-while-working': {
|
|
606
|
+
readonly zh: "回合运行中,无法分叉会话";
|
|
607
|
+
readonly en: "Cannot fork while a turn is running";
|
|
608
|
+
};
|
|
609
|
+
readonly 'fork-failed': {
|
|
610
|
+
readonly zh: "分叉失败 · {{err}}";
|
|
611
|
+
readonly en: "Fork failed · {{err}}";
|
|
612
|
+
};
|
|
613
|
+
readonly 'fork-create-failed': {
|
|
614
|
+
readonly zh: "分叉失败——无法创建分叉会话";
|
|
615
|
+
readonly en: "Fork failed — could not create the forked session";
|
|
616
|
+
};
|
|
617
|
+
readonly 'fork-attach-failed': {
|
|
618
|
+
readonly zh: "已分叉,但工作区挂载失败 · {{err}}";
|
|
619
|
+
readonly en: "Session forked, but workspace attachment failed · {{err}}";
|
|
620
|
+
};
|
|
621
|
+
readonly 'fork-done': {
|
|
622
|
+
readonly zh: "已分叉({{id}})——仍在原会话中\n新进程进入分叉:{{command}}";
|
|
623
|
+
readonly en: "Forked ({{id}}) — still in the original session\nEnter the fork in a new process: {{command}}";
|
|
624
|
+
};
|
|
625
|
+
readonly 'tree-title': {
|
|
626
|
+
readonly zh: "会话树";
|
|
627
|
+
readonly en: "Session tree";
|
|
628
|
+
};
|
|
629
|
+
readonly 'tree-sessions': {
|
|
630
|
+
readonly zh: "会话";
|
|
631
|
+
readonly en: "sessions";
|
|
632
|
+
};
|
|
633
|
+
readonly 'tree-loading': {
|
|
634
|
+
readonly zh: "正在加载会话树…";
|
|
635
|
+
readonly en: "Loading the session tree…";
|
|
636
|
+
};
|
|
637
|
+
readonly 'tree-rewinding': {
|
|
638
|
+
readonly zh: "正在分叉并切换…";
|
|
639
|
+
readonly en: "Forking and switching…";
|
|
640
|
+
};
|
|
641
|
+
readonly 'tree-empty': {
|
|
642
|
+
readonly zh: "没有可显示的条目";
|
|
643
|
+
readonly en: "No entries to show";
|
|
644
|
+
};
|
|
645
|
+
readonly 'tree-truncated': {
|
|
646
|
+
readonly zh: "已截断";
|
|
647
|
+
readonly en: "truncated";
|
|
648
|
+
};
|
|
649
|
+
readonly 'tree-search': {
|
|
650
|
+
readonly zh: "输入即搜索…";
|
|
651
|
+
readonly en: "Type to search…";
|
|
652
|
+
};
|
|
653
|
+
readonly 'tree-filter-default': {
|
|
654
|
+
readonly zh: "默认";
|
|
655
|
+
readonly en: "default";
|
|
656
|
+
};
|
|
657
|
+
readonly 'tree-filter-no-tools': {
|
|
658
|
+
readonly zh: "无工具";
|
|
659
|
+
readonly en: "no tools";
|
|
660
|
+
};
|
|
661
|
+
readonly 'tree-filter-user-only': {
|
|
662
|
+
readonly zh: "仅用户";
|
|
663
|
+
readonly en: "user only";
|
|
664
|
+
};
|
|
665
|
+
readonly 'tree-filter-all': {
|
|
666
|
+
readonly zh: "全部";
|
|
667
|
+
readonly en: "all";
|
|
668
|
+
};
|
|
669
|
+
readonly 'tree-kind-user': {
|
|
670
|
+
readonly zh: "用户消息";
|
|
671
|
+
readonly en: "user message";
|
|
672
|
+
};
|
|
673
|
+
readonly 'tree-kind-assistant': {
|
|
674
|
+
readonly zh: "助手回复";
|
|
675
|
+
readonly en: "assistant message";
|
|
676
|
+
};
|
|
677
|
+
readonly 'tree-kind-tool': {
|
|
678
|
+
readonly zh: "工具调用";
|
|
679
|
+
readonly en: "tool call";
|
|
680
|
+
};
|
|
681
|
+
readonly 'tree-kind-compact': {
|
|
682
|
+
readonly zh: "压缩检查点";
|
|
683
|
+
readonly en: "compaction";
|
|
684
|
+
};
|
|
685
|
+
readonly 'tree-kind-interrupt': {
|
|
686
|
+
readonly zh: "中断";
|
|
687
|
+
readonly en: "interrupt";
|
|
688
|
+
};
|
|
689
|
+
readonly 'tree-kind-notice': {
|
|
690
|
+
readonly zh: "通知";
|
|
691
|
+
readonly en: "notice";
|
|
692
|
+
};
|
|
693
|
+
readonly 'tree-empty-fork': {
|
|
694
|
+
readonly zh: "(空分叉)";
|
|
695
|
+
readonly en: "(empty fork)";
|
|
696
|
+
};
|
|
697
|
+
readonly 'tree-unreadable': {
|
|
698
|
+
readonly zh: "(日志无法读取)";
|
|
699
|
+
readonly en: "(unreadable log)";
|
|
700
|
+
};
|
|
701
|
+
readonly 'tree-unloaded': {
|
|
702
|
+
readonly zh: "(超出预算未加载)";
|
|
703
|
+
readonly en: "(not loaded — over budget)";
|
|
704
|
+
};
|
|
705
|
+
readonly 'tree-first-message': {
|
|
706
|
+
readonly zh: "不能回退到第一条消息之前";
|
|
707
|
+
readonly en: "Cannot rewind past the very first message";
|
|
708
|
+
};
|
|
709
|
+
readonly 'tree-adopt-live': {
|
|
710
|
+
readonly zh: "当前会话就在这条分支上";
|
|
711
|
+
readonly en: "The live session is already on this branch";
|
|
712
|
+
};
|
|
713
|
+
readonly 'tree-adopt-unavailable': {
|
|
714
|
+
readonly zh: "该分支无法整体切换(未加载到末端)";
|
|
715
|
+
readonly en: "Cannot adopt this branch (its tip was not loaded)";
|
|
716
|
+
};
|
|
717
|
+
readonly 'tree-menu-rewind': {
|
|
718
|
+
readonly zh: "回退到这里";
|
|
719
|
+
readonly en: "Rewind here";
|
|
720
|
+
};
|
|
721
|
+
readonly 'tree-menu-rewind-detail': {
|
|
722
|
+
readonly zh: "丢弃该轮对话,提示词回到输入框";
|
|
723
|
+
readonly en: "Drops that turn; its prompt returns to the input";
|
|
724
|
+
};
|
|
725
|
+
readonly 'tree-menu-fork': {
|
|
726
|
+
readonly zh: "从这分叉";
|
|
727
|
+
readonly en: "Fork here";
|
|
728
|
+
};
|
|
729
|
+
readonly 'tree-menu-fork-detail': {
|
|
730
|
+
readonly zh: "保留这条消息,从这里开新分支";
|
|
731
|
+
readonly en: "Keeps this entry and branches here";
|
|
732
|
+
};
|
|
733
|
+
readonly 'tree-menu-adopt': {
|
|
734
|
+
readonly zh: "切换到该分支";
|
|
735
|
+
readonly en: "Adopt this branch";
|
|
736
|
+
};
|
|
737
|
+
readonly 'tree-menu-adopt-detail': {
|
|
738
|
+
readonly zh: "保留整条分支并切换过去";
|
|
739
|
+
readonly en: "Switches to the whole branch, content kept";
|
|
740
|
+
};
|
|
741
|
+
readonly 'tree-menu-cancel': {
|
|
742
|
+
readonly zh: "取消";
|
|
743
|
+
readonly en: "Cancel";
|
|
744
|
+
};
|
|
745
|
+
readonly 'tree-confirm-rewind': {
|
|
746
|
+
readonly zh: "回退到「{{text}}」?";
|
|
747
|
+
readonly en: "Rewind to \"{{text}}\"?";
|
|
748
|
+
};
|
|
749
|
+
readonly 'tree-confirm-drop': {
|
|
750
|
+
readonly zh: "回退到「{{text}}」?该轮 {{n}} 条消息将丢弃";
|
|
751
|
+
readonly en: "Rewind to \"{{text}}\"? Drops that turn ({{n}} entries)";
|
|
752
|
+
};
|
|
753
|
+
readonly 'tree-confirm-adopt': {
|
|
754
|
+
readonly zh: "切换到「{{text}}」所在分支?";
|
|
755
|
+
readonly en: "Switch to the branch of \"{{text}}\"?";
|
|
756
|
+
};
|
|
757
|
+
readonly 'tree-confirm-drops-branch': {
|
|
758
|
+
readonly zh: "注意:该分支的全部内容都在这一轮里,回退后将看不到它们";
|
|
759
|
+
readonly en: "Heads-up: this branch’s whole content is that one turn — it disappears from the fork";
|
|
760
|
+
};
|
|
761
|
+
readonly 'tree-hint': {
|
|
762
|
+
readonly zh: "**Enter** 菜单 · **{{mod}}F** 从这分叉 · **{{mod}}B** 切到分支 · **{{mod}}O** 过滤 · 点击行出菜单 · 输入搜索 · Esc 退出";
|
|
763
|
+
readonly en: "**Enter** menu · **{{mod}}F** fork here · **{{mod}}B** adopt branch · **{{mod}}O** filter · click a row for the menu · type to search · Esc exits";
|
|
764
|
+
};
|
|
765
|
+
readonly 'tree-hint-short': {
|
|
766
|
+
readonly zh: "**Enter** 菜单 · 点击行出菜单 · Esc 退出";
|
|
767
|
+
readonly en: "**Enter** menu · click a row · Esc exits";
|
|
768
|
+
};
|
|
769
|
+
readonly 'tree-hint-menu': {
|
|
770
|
+
readonly zh: "**↑↓** 选择 · **Enter** 执行 · 首字母直达 · Esc 返回";
|
|
771
|
+
readonly en: "**↑↓** move · **Enter** run · letter keys jump · Esc back";
|
|
772
|
+
};
|
|
773
|
+
readonly 'tree-hint-confirm': {
|
|
774
|
+
readonly zh: "**Enter** 确认 · Esc 取消";
|
|
775
|
+
readonly en: "**Enter** to confirm · Esc to cancel";
|
|
776
|
+
};
|
|
777
|
+
readonly 'tree-refused': {
|
|
778
|
+
readonly zh: "操作未执行(原因已记录到会话通知)";
|
|
779
|
+
readonly en: "Not executed — the reason was notified to the conversation";
|
|
780
|
+
};
|
|
781
|
+
readonly 'tree-rewind-failed': {
|
|
782
|
+
readonly zh: "操作失败 · {{message}}";
|
|
783
|
+
readonly en: "Action failed · {{message}}";
|
|
784
|
+
};
|
|
785
|
+
readonly 'tree-rewound': {
|
|
786
|
+
readonly zh: "已回退——编辑后重新发送";
|
|
787
|
+
readonly en: "Earlier turn restored — edit your message to continue";
|
|
788
|
+
};
|
|
789
|
+
readonly 'tree-forked': {
|
|
790
|
+
readonly zh: "已从此处分叉";
|
|
791
|
+
readonly en: "Forked from this point";
|
|
792
|
+
};
|
|
793
|
+
readonly 'tree-adopted': {
|
|
794
|
+
readonly zh: "已切换到该分支";
|
|
795
|
+
readonly en: "Switched to that branch";
|
|
796
|
+
};
|
|
797
|
+
readonly 'tree-preview-title': {
|
|
798
|
+
readonly zh: "预览";
|
|
799
|
+
readonly en: "Preview";
|
|
800
|
+
};
|
|
801
|
+
readonly 'tree-branch-live': {
|
|
802
|
+
readonly zh: "当前会话";
|
|
803
|
+
readonly en: "live session";
|
|
804
|
+
};
|
|
805
|
+
readonly 'resume-while-working': {
|
|
806
|
+
readonly zh: "回合运行中,无法恢复会话";
|
|
807
|
+
readonly en: "Cannot resume while a turn is running";
|
|
808
|
+
};
|
|
809
|
+
readonly 'resume-unavailable': {
|
|
810
|
+
readonly zh: "恢复不可用——agents 服务未加载";
|
|
811
|
+
readonly en: "Resume unavailable — agents service not loaded";
|
|
812
|
+
};
|
|
813
|
+
readonly 'resume-session-occupied': {
|
|
814
|
+
readonly zh: "该会话正被其他 TUI 终端占用(进程 {{pid}}),无法进入";
|
|
815
|
+
readonly en: "Another TUI terminal holds this session (pid {{pid}}); cannot enter";
|
|
816
|
+
};
|
|
817
|
+
readonly 'resume-mount-busy': {
|
|
818
|
+
readonly zh: "无法确认该会话是否被其他终端占用(占用检查正忙),请稍后重试";
|
|
819
|
+
readonly en: "Could not confirm whether another terminal holds this session (the occupancy check is busy); retry in a moment";
|
|
820
|
+
};
|
|
821
|
+
readonly 'resume-mount-unavailable': {
|
|
822
|
+
readonly zh: "无法验证该会话的占用状态 · {{detail}}";
|
|
823
|
+
readonly en: "Could not verify this session's occupancy · {{detail}}";
|
|
824
|
+
};
|
|
825
|
+
readonly 'session-mount-occupied-short': {
|
|
826
|
+
readonly zh: "占用 pid {{pid}}";
|
|
827
|
+
readonly en: "held by pid {{pid}}";
|
|
828
|
+
};
|
|
829
|
+
readonly 'resume-failed': {
|
|
830
|
+
readonly zh: "恢复失败 · {{err}}";
|
|
831
|
+
readonly en: "Resume failed · {{err}}";
|
|
832
|
+
};
|
|
833
|
+
readonly 'resume-attach-failed': {
|
|
834
|
+
readonly zh: "已恢复会话,但工作区挂载失败 · {{err}}";
|
|
835
|
+
readonly en: "Session resumed, but workspace attachment failed · {{err}}";
|
|
836
|
+
};
|
|
837
|
+
readonly 'resume-session-changed': {
|
|
838
|
+
readonly zh: "会话已切换,恢复已放弃";
|
|
839
|
+
readonly en: "The session changed; the resume was dropped";
|
|
840
|
+
};
|
|
841
|
+
readonly 'new-session-while-working': {
|
|
842
|
+
readonly zh: "回合运行中,无法新建会话";
|
|
843
|
+
readonly en: "Cannot start a new session while a turn is running";
|
|
844
|
+
};
|
|
845
|
+
readonly 'new-session-unavailable': {
|
|
846
|
+
readonly zh: "新建会话不可用——agents 服务未加载";
|
|
847
|
+
readonly en: "New session unavailable — agents service not loaded";
|
|
848
|
+
};
|
|
849
|
+
readonly 'new-session-failed': {
|
|
850
|
+
readonly zh: "新建会话失败 · {{err}}";
|
|
851
|
+
readonly en: "New session failed · {{err}}";
|
|
852
|
+
};
|
|
853
|
+
readonly 'new-session-attach-failed': {
|
|
854
|
+
readonly zh: "会话已创建,但工作区挂载失败 · {{err}}";
|
|
855
|
+
readonly en: "Session created, but workspace attachment failed · {{err}}";
|
|
856
|
+
};
|
|
857
|
+
readonly 'model-switch-while-working': {
|
|
858
|
+
readonly zh: "回合运行中,无法切换模型";
|
|
859
|
+
readonly en: "Cannot switch models while a turn is running";
|
|
860
|
+
};
|
|
861
|
+
readonly 'model-switch-unavailable': {
|
|
862
|
+
readonly zh: "模型切换不可用——会话服务未加载";
|
|
863
|
+
readonly en: "Model switch unavailable — session services not loaded";
|
|
864
|
+
};
|
|
865
|
+
readonly 'model-switch-fork-failed': {
|
|
866
|
+
readonly zh: "无法切换模型 · {{err}}";
|
|
867
|
+
readonly en: "Cannot switch models · {{err}}";
|
|
868
|
+
};
|
|
869
|
+
readonly 'model-switch-failed': {
|
|
870
|
+
readonly zh: "模型切换失败 · {{err}}";
|
|
871
|
+
readonly en: "Model switch failed · {{err}}";
|
|
872
|
+
};
|
|
873
|
+
readonly 'model-switch-attach-failed': {
|
|
874
|
+
readonly zh: "模型已切换,但工作区挂载失败 · {{err}}";
|
|
875
|
+
readonly en: "Model switched, but workspace attachment failed · {{err}}";
|
|
876
|
+
};
|
|
877
|
+
readonly 'model-usage': {
|
|
878
|
+
readonly zh: "用法:/model <provider/model>(如 deepseek/deepseek-flash)";
|
|
879
|
+
readonly en: "Usage: /model <provider/model> (e.g. deepseek/deepseek-flash)";
|
|
880
|
+
};
|
|
881
|
+
readonly 'model-unknown': {
|
|
882
|
+
readonly zh: "未知模型「{{spec}}」· /model 查看全部";
|
|
883
|
+
readonly en: "Unknown model \"{{spec}}\" · /model to view all";
|
|
884
|
+
};
|
|
885
|
+
readonly 'compact-unavailable': {
|
|
886
|
+
readonly zh: "压缩不可用——当前 leaf 没有压缩服务";
|
|
887
|
+
readonly en: "Compaction unavailable · no compaction service in this leaf";
|
|
888
|
+
};
|
|
889
|
+
readonly 'compact-while-working': {
|
|
890
|
+
readonly zh: "回合运行中,无法压缩会话";
|
|
891
|
+
readonly en: "Cannot compact while a turn is running";
|
|
892
|
+
};
|
|
893
|
+
readonly 'compact-working': {
|
|
894
|
+
readonly zh: "正在压缩会话…";
|
|
895
|
+
readonly en: "Summarizing earlier turns…";
|
|
896
|
+
};
|
|
897
|
+
readonly 'compact-done': {
|
|
898
|
+
readonly zh: "会话已压缩";
|
|
899
|
+
readonly en: "Session summary is ready";
|
|
900
|
+
};
|
|
901
|
+
readonly 'compact-nothing': {
|
|
902
|
+
readonly zh: "没有可压缩的内容";
|
|
903
|
+
readonly en: "Nothing to compact";
|
|
904
|
+
};
|
|
905
|
+
readonly 'compact-failed': {
|
|
906
|
+
readonly zh: "压缩失败 · {{err}}";
|
|
907
|
+
readonly en: "Compaction failed · {{err}}";
|
|
908
|
+
};
|
|
909
|
+
readonly 'compact-flush-failed': {
|
|
910
|
+
readonly zh: "压缩已生效,但落盘检查失败——历史已由摘要替代,请留意会话状态";
|
|
911
|
+
readonly en: "Compaction took effect, but its durability flush failed — history is now the summary";
|
|
912
|
+
};
|
|
913
|
+
readonly 'compact-cancelled-switch': {
|
|
914
|
+
readonly zh: "压缩进行中,已取消并切换会话";
|
|
915
|
+
readonly en: "In-flight compaction cancelled for the session switch";
|
|
916
|
+
};
|
|
917
|
+
readonly 'turn-failed': {
|
|
918
|
+
readonly zh: "回合出错{{detail}}";
|
|
919
|
+
readonly en: "Turn error{{detail}}";
|
|
920
|
+
};
|
|
921
|
+
readonly 'prompt-debug-saved': {
|
|
922
|
+
readonly zh: "已写入 {{count}} 条最终 LLM 请求快照到 {{file}}。快照含敏感会话与提示词数据;文件位于当前工作区,若工作区在同步/共享目录请注意清理。";
|
|
923
|
+
readonly en: {
|
|
924
|
+
readonly one: "Wrote 1 final LLM request snapshot to {{file}}. It contains sensitive conversation and prompt data, and lives in the current workspace — clean it up promptly if the workspace is synced or shared.";
|
|
925
|
+
readonly other: "Wrote {{count}} final LLM request snapshots to {{file}}. It contains sensitive conversation and prompt data, and lives in the current workspace — clean it up promptly if the workspace is synced or shared.";
|
|
926
|
+
};
|
|
927
|
+
};
|
|
928
|
+
readonly 'questionnaire-answered': {
|
|
929
|
+
readonly zh: "📋 问卷已答 · {{total}} 题";
|
|
930
|
+
readonly en: "📋 Questionnaire answered · {{total}} questions";
|
|
931
|
+
};
|
|
932
|
+
readonly 'context-truncated': {
|
|
933
|
+
readonly zh: "…(已截断)";
|
|
934
|
+
readonly en: "… (truncated)";
|
|
935
|
+
};
|
|
936
|
+
readonly 'context-sections': {
|
|
937
|
+
readonly zh: "系统提示词 {{n}} 段";
|
|
938
|
+
readonly en: "System prompt {{n}} sections";
|
|
939
|
+
};
|
|
940
|
+
readonly 'context-files': {
|
|
941
|
+
readonly zh: "工作区指令 ×{{n}}";
|
|
942
|
+
readonly en: "Workspace instructions ×{{n}}";
|
|
943
|
+
};
|
|
944
|
+
readonly 'context-runtime': {
|
|
945
|
+
readonly zh: "运行时上下文 {{n}} 项";
|
|
946
|
+
readonly en: "Runtime context {{n}} items";
|
|
947
|
+
};
|
|
948
|
+
readonly 'context-skills': {
|
|
949
|
+
readonly zh: "技能 {{n}}";
|
|
950
|
+
readonly en: "Skills {{n}}";
|
|
951
|
+
};
|
|
952
|
+
readonly 'context-tools': {
|
|
953
|
+
readonly zh: "工具 {{n}}";
|
|
954
|
+
readonly en: "Tools {{n}}";
|
|
955
|
+
};
|
|
956
|
+
readonly 'skill-unavailable': {
|
|
957
|
+
readonly zh: "技能 {{name}} 已不可用或未开放用户直调";
|
|
958
|
+
readonly en: "Skill {{name}} is gone or not user-invocable";
|
|
959
|
+
};
|
|
960
|
+
readonly 'context-loaded': {
|
|
961
|
+
readonly zh: "已加载上下文";
|
|
962
|
+
readonly en: "Context loaded";
|
|
963
|
+
};
|
|
964
|
+
readonly 'context-panel-expand': {
|
|
965
|
+
readonly zh: " 展开";
|
|
966
|
+
readonly en: " to expand";
|
|
967
|
+
};
|
|
968
|
+
readonly 'context-panel-collapse': {
|
|
969
|
+
readonly zh: " 折叠";
|
|
970
|
+
readonly en: " to collapse";
|
|
971
|
+
};
|
|
972
|
+
readonly 'copied-chars': {
|
|
973
|
+
readonly zh: "已复制 {{n}} 个字符";
|
|
974
|
+
readonly en: "Copied {{n}} characters";
|
|
975
|
+
};
|
|
976
|
+
readonly 'copy-refused-stale': {
|
|
977
|
+
readonly zh: "选区内容已变化,已取消复制";
|
|
978
|
+
readonly en: "Content under the selection changed; copy cancelled";
|
|
979
|
+
};
|
|
980
|
+
readonly 'migrate-failed': {
|
|
981
|
+
readonly zh: "{{n}} 个源导入失败,详见输出";
|
|
982
|
+
readonly en: "{{n}} source(s) failed — see the output";
|
|
983
|
+
};
|
|
984
|
+
readonly 'migrate-spawn-failed': {
|
|
985
|
+
readonly zh: "无法启动迁移子进程(找不到本包 bin)";
|
|
986
|
+
readonly en: "Could not start the migration child process (package bin not found)";
|
|
987
|
+
};
|
|
988
|
+
readonly 'migrate-child-timeout': {
|
|
989
|
+
readonly zh: "(子进程超过 {{minutes}} 分钟未结束,已终止)";
|
|
990
|
+
readonly en: "(the child ran past {{minutes}} minutes and was terminated)";
|
|
991
|
+
};
|
|
992
|
+
readonly 'migrate-usage': {
|
|
993
|
+
readonly zh: "一次只能迁移一个源:/migrate <agent> [--dry-run]";
|
|
994
|
+
readonly en: "One source per run: /migrate <agent> [--dry-run]";
|
|
995
|
+
};
|
|
996
|
+
readonly 'migrate-dry-run-needs-source': {
|
|
997
|
+
readonly zh: "请指明要预览的源:/migrate <agent> --dry-run";
|
|
998
|
+
readonly en: "Name the source to preview: /migrate <agent> --dry-run";
|
|
999
|
+
};
|
|
1000
|
+
readonly 'picker-title-migrate': {
|
|
1001
|
+
readonly zh: "迁移哪个代理的对话?";
|
|
1002
|
+
readonly en: "Import conversations from which agent?";
|
|
1003
|
+
};
|
|
1004
|
+
readonly 'migrate-picker-empty': {
|
|
1005
|
+
readonly zh: "没有可用的迁移源";
|
|
1006
|
+
readonly en: "No migration sources available";
|
|
1007
|
+
};
|
|
1008
|
+
readonly 'migrate-picker-scanning': {
|
|
1009
|
+
readonly zh: "正在扫描各源…";
|
|
1010
|
+
readonly en: "Scanning sources…";
|
|
1011
|
+
};
|
|
1012
|
+
readonly 'migrate-picker-recent': {
|
|
1013
|
+
readonly zh: "{{minutes}} 分钟前刚活动过";
|
|
1014
|
+
readonly en: "active {{minutes}} min ago";
|
|
1015
|
+
};
|
|
1016
|
+
readonly 'migrate-picker-cold': {
|
|
1017
|
+
readonly zh: "最近未活动";
|
|
1018
|
+
readonly en: "not active recently";
|
|
1019
|
+
};
|
|
1020
|
+
readonly 'migrate-picker-count': {
|
|
1021
|
+
readonly zh: "{{n}} 个会话文件";
|
|
1022
|
+
readonly en: "{{n}} session files";
|
|
1023
|
+
};
|
|
1024
|
+
readonly 'migrate-hint-notify': {
|
|
1025
|
+
readonly zh: "刚刚从 {{agent}} 过来?/migrate 来快速迁移";
|
|
1026
|
+
readonly en: "Just came from {{agent}}? /migrate imports it quickly";
|
|
1027
|
+
};
|
|
1028
|
+
readonly 'migrate-picker-hint': {
|
|
1029
|
+
readonly zh: "空格 勾选 · a 全选/全不选 · Enter 确认 · Esc 关闭";
|
|
1030
|
+
readonly en: "Space toggle · a all/none · Enter confirm · Esc close";
|
|
1031
|
+
};
|
|
1032
|
+
readonly 'migrate-confirm-title': {
|
|
1033
|
+
readonly zh: "确认导入";
|
|
1034
|
+
readonly en: "Confirm import";
|
|
1035
|
+
};
|
|
1036
|
+
readonly 'migrate-confirm-line': {
|
|
1037
|
+
readonly zh: "{{label}}:将导入 {{n}} 个会话文件";
|
|
1038
|
+
readonly en: "{{label}}: {{n}} session files to import";
|
|
1039
|
+
};
|
|
1040
|
+
readonly 'migrate-confirm-note': {
|
|
1041
|
+
readonly zh: "已存在的自动跳过,可重复执行";
|
|
1042
|
+
readonly en: "Existing sessions are skipped automatically; safe to re-run";
|
|
1043
|
+
};
|
|
1044
|
+
readonly 'migrate-confirm-actions': {
|
|
1045
|
+
readonly zh: "Enter 导入 · d 干跑预览 · Esc 返回选择";
|
|
1046
|
+
readonly en: "Enter import · d dry-run · Esc back";
|
|
1047
|
+
};
|
|
1048
|
+
readonly 'migrate-importing-source': {
|
|
1049
|
+
readonly zh: "正在导入 {{label}}({{i}}/{{n}})…";
|
|
1050
|
+
readonly en: "Importing {{label}} ({{i}}/{{n}})…";
|
|
1051
|
+
};
|
|
1052
|
+
readonly 'migrate-previewing-source': {
|
|
1053
|
+
readonly zh: "正在预览 {{label}}({{i}}/{{n}})…";
|
|
1054
|
+
readonly en: "Previewing {{label}} ({{i}}/{{n}})…";
|
|
1055
|
+
};
|
|
1056
|
+
readonly 'migrate-source-done': {
|
|
1057
|
+
readonly zh: "{{label}}:导入 {{imported}} · 已存在 {{existing}}";
|
|
1058
|
+
readonly en: "{{label}}: imported {{imported}} · already present {{existing}}";
|
|
1059
|
+
};
|
|
1060
|
+
readonly 'migrate-all-done': {
|
|
1061
|
+
readonly zh: "迁移完成({{n}} 个源)";
|
|
1062
|
+
readonly en: "Migration finished ({{n}} source(s))";
|
|
1063
|
+
};
|
|
1064
|
+
readonly 'migrate-all-previewed': {
|
|
1065
|
+
readonly zh: "预览完成({{n}} 个源,未写入)";
|
|
1066
|
+
readonly en: "Preview finished ({{n}} source(s), nothing written)";
|
|
1067
|
+
};
|
|
1068
|
+
readonly 'migrate-unknown-agent': {
|
|
1069
|
+
readonly zh: "未知迁移源 {{agent}},可用源见 /migrate";
|
|
1070
|
+
readonly en: "Unknown migration source {{agent}}; see /migrate for the list";
|
|
1071
|
+
};
|
|
1072
|
+
readonly 'activity-current-preset': {
|
|
1073
|
+
readonly zh: "当前预设 {{name}}";
|
|
1074
|
+
readonly en: "Current preset {{name}}";
|
|
1075
|
+
};
|
|
1076
|
+
readonly 'activity-switch-hint': {
|
|
1077
|
+
readonly zh: "切换 /activity(选择器)或 /activity frames <名>";
|
|
1078
|
+
readonly en: "Switch /activity (picker) or /activity frames <name>";
|
|
1079
|
+
};
|
|
1080
|
+
readonly 'activity-persist-hint': {
|
|
1081
|
+
readonly zh: "持久化 ~/.dsh-tui/working-activity.json(重启后仍生效)";
|
|
1082
|
+
readonly en: "Persisted ~/.dsh-tui/working-activity.json (survives restart)";
|
|
1083
|
+
};
|
|
1084
|
+
readonly 'activity-current-direct': {
|
|
1085
|
+
readonly zh: "当前预设:{{name}} · /activity frames <名> 直接切换:";
|
|
1086
|
+
readonly en: "Current preset: {{name}} · /activity frames <name> to switch directly:";
|
|
1087
|
+
};
|
|
1088
|
+
readonly 'activity-random-each': {
|
|
1089
|
+
readonly zh: "每次随机";
|
|
1090
|
+
readonly en: "random each time";
|
|
1091
|
+
};
|
|
1092
|
+
readonly 'activity-current-marker': {
|
|
1093
|
+
readonly zh: " ← 当前";
|
|
1094
|
+
readonly en: " ← current";
|
|
1095
|
+
};
|
|
1096
|
+
readonly 'activity-usage': {
|
|
1097
|
+
readonly zh: "用法:/activity | /activity frames <名> | /activity status";
|
|
1098
|
+
readonly en: "Usage: /activity | /activity frames <name> | /activity status";
|
|
1099
|
+
};
|
|
1100
|
+
readonly 'preset-current': {
|
|
1101
|
+
readonly zh: "当前 preset {{name}}";
|
|
1102
|
+
readonly en: "Current preset {{name}}";
|
|
1103
|
+
};
|
|
1104
|
+
readonly 'preset-roster-missing': {
|
|
1105
|
+
readonly zh: "(未挂载名册)";
|
|
1106
|
+
readonly en: "(roster not mounted)";
|
|
1107
|
+
};
|
|
1108
|
+
readonly 'preset-switch-hint': {
|
|
1109
|
+
readonly zh: "切换 /preset(选择器)或 /preset <id>";
|
|
1110
|
+
readonly en: "Switch /preset (picker) or /preset <id>";
|
|
1111
|
+
};
|
|
1112
|
+
readonly 'preset-persist-hint': {
|
|
1113
|
+
readonly zh: "持久化 ~/.dsh-tui/agent-preset.json(重启后仍生效;cordis.yml preset 优先)";
|
|
1114
|
+
readonly en: "Persisted ~/.dsh-tui/agent-preset.json (survives restart; cordis.yml preset wins)";
|
|
1115
|
+
};
|
|
1116
|
+
readonly 'preset-lock-hint': {
|
|
1117
|
+
readonly zh: "锁定规则 已开始的会话不可切换(官方 blank-only 规则)";
|
|
1118
|
+
readonly en: "Lock rule started sessions cannot switch (official blank-only rule)";
|
|
1119
|
+
};
|
|
1120
|
+
readonly 'preset-roster-unmounted': {
|
|
1121
|
+
readonly zh: "当前组合未挂载 agent-presets 名册(preset 不可用)";
|
|
1122
|
+
readonly en: "The agent-presets roster is not mounted (presets unavailable)";
|
|
1123
|
+
};
|
|
1124
|
+
readonly 'theme-current': {
|
|
1125
|
+
readonly zh: "当前主题 {{name}}";
|
|
1126
|
+
readonly en: "Current theme {{name}}";
|
|
1127
|
+
};
|
|
1128
|
+
readonly 'theme-switch-hint': {
|
|
1129
|
+
readonly zh: "切换 /theme(选择器)或 /theme <名字>";
|
|
1130
|
+
readonly en: "Switch /theme (picker) or /theme <name>";
|
|
1131
|
+
};
|
|
1132
|
+
readonly 'theme-persist-hint': {
|
|
1133
|
+
readonly zh: "持久化 ~/.dsh-tui/theme.json(重启后仍生效;DSH_TUI_THEME 优先)";
|
|
1134
|
+
readonly en: "Persisted ~/.dsh-tui/theme.json (survives restart; DSH_TUI_THEME wins)";
|
|
1135
|
+
};
|
|
1136
|
+
readonly 'theme-custom-hint': {
|
|
1137
|
+
readonly zh: "自定义 静态 ~/.dsh-tui/themes/<名字>.json(插件也可提供运行时主题;见 README「自定义主题」)";
|
|
1138
|
+
readonly en: "Custom static ~/.dsh-tui/themes/<name>.json (plugins may also provide runtime themes; see README \"Custom themes\")";
|
|
1139
|
+
};
|
|
1140
|
+
readonly 'theme-auto-resolved': {
|
|
1141
|
+
readonly zh: "自动解析 当前为 {{name}}(跟随终端背景)";
|
|
1142
|
+
readonly en: "Auto-resolved currently {{name}} (follows terminal background)";
|
|
1143
|
+
};
|
|
1144
|
+
readonly 'theme-switched-saved': {
|
|
1145
|
+
readonly zh: "主题已切换:{{name}}(已保存)";
|
|
1146
|
+
readonly en: "Theme switched: {{name}} (saved)";
|
|
1147
|
+
};
|
|
1148
|
+
readonly 'theme-unknown': {
|
|
1149
|
+
readonly zh: "未知主题「{{name}}」· /theme 查看全部";
|
|
1150
|
+
readonly en: "Unknown theme \"{{name}}\" · /theme to view all";
|
|
1151
|
+
};
|
|
1152
|
+
readonly 'status-model': {
|
|
1153
|
+
readonly zh: "模型 {{model}}";
|
|
1154
|
+
readonly en: "Model {{model}}";
|
|
1155
|
+
};
|
|
1156
|
+
readonly 'status-working': {
|
|
1157
|
+
readonly zh: "工作中";
|
|
1158
|
+
readonly en: "working";
|
|
1159
|
+
};
|
|
1160
|
+
readonly 'status-idle': {
|
|
1161
|
+
readonly zh: "空闲";
|
|
1162
|
+
readonly en: "idle";
|
|
1163
|
+
};
|
|
1164
|
+
readonly 'status-state': {
|
|
1165
|
+
readonly zh: "状态 {{state}}";
|
|
1166
|
+
readonly en: "Status {{state}}";
|
|
1167
|
+
};
|
|
1168
|
+
readonly 'status-session': {
|
|
1169
|
+
readonly zh: "会话 {{id}}";
|
|
1170
|
+
readonly en: "Session {{id}}";
|
|
1171
|
+
};
|
|
1172
|
+
readonly 'status-dir': {
|
|
1173
|
+
readonly zh: "目录 {{cwd}}";
|
|
1174
|
+
readonly en: "Directory {{cwd}}";
|
|
1175
|
+
};
|
|
1176
|
+
readonly 'workspace-picker-title': {
|
|
1177
|
+
readonly zh: "工作区";
|
|
1178
|
+
readonly en: "Workspace";
|
|
1179
|
+
};
|
|
1180
|
+
readonly 'workspace-picker-hint': {
|
|
1181
|
+
readonly zh: "**Enter** 切换并新建会话 · Esc 退出 · 也可输入 /workspace open <路径或 URI>";
|
|
1182
|
+
readonly en: "**Enter** switch and start a new session · Esc to exit · or type /workspace open <path-or-URI>";
|
|
1183
|
+
};
|
|
1184
|
+
readonly 'workspace-none': {
|
|
1185
|
+
readonly zh: "没有可用工作区";
|
|
1186
|
+
readonly en: "No workspaces available";
|
|
1187
|
+
};
|
|
1188
|
+
readonly 'workspace-list-failed': {
|
|
1189
|
+
readonly zh: "读取工作区失败 · {{err}}";
|
|
1190
|
+
readonly en: "Failed to list workspaces · {{err}}";
|
|
1191
|
+
};
|
|
1192
|
+
readonly 'workspace-uri-invalid': {
|
|
1193
|
+
readonly zh: "无法解析工作区目标:{{uri}}";
|
|
1194
|
+
readonly en: "Cannot resolve workspace target: {{uri}}";
|
|
1195
|
+
};
|
|
1196
|
+
readonly 'workspace-uri-failed': {
|
|
1197
|
+
readonly zh: "加载工作区失败 · {{err}}";
|
|
1198
|
+
readonly en: "Failed to load workspace · {{err}}";
|
|
1199
|
+
};
|
|
1200
|
+
readonly 'workspace-switch-working': {
|
|
1201
|
+
readonly zh: "Agent 运行中,无法切换工作区";
|
|
1202
|
+
readonly en: "Cannot switch workspaces while the agent is running";
|
|
1203
|
+
};
|
|
1204
|
+
readonly 'workspace-open-invalid': {
|
|
1205
|
+
readonly zh: "无法打开工作区:{{target}} 不是存在的目录";
|
|
1206
|
+
readonly en: "Cannot open workspace: {{target}} is not an existing directory";
|
|
1207
|
+
};
|
|
1208
|
+
readonly 'workspace-switched': {
|
|
1209
|
+
readonly zh: "已切换工作区:{{target}}";
|
|
1210
|
+
readonly en: "Workspace switched: {{target}}";
|
|
1211
|
+
};
|
|
1212
|
+
readonly 'workspace-flow-hint': {
|
|
1213
|
+
readonly zh: "**Enter** 选择 · Esc 退出";
|
|
1214
|
+
readonly en: "**Enter** select · Esc to exit";
|
|
1215
|
+
};
|
|
1216
|
+
readonly 'workspace-flow-edit-hint': {
|
|
1217
|
+
readonly zh: "**Enter** 选择当前目录 · Tab 手动输入路径 · Esc 退出";
|
|
1218
|
+
readonly en: "**Enter** select current directory · Tab enter a path · Esc to exit";
|
|
1219
|
+
};
|
|
1220
|
+
readonly 'workspace-flow-input-hint': {
|
|
1221
|
+
readonly zh: "输入绝对路径 · **Enter** 读取目录 · Esc 返回";
|
|
1222
|
+
readonly en: "Enter an absolute path · **Enter** load directory · Esc back";
|
|
1223
|
+
};
|
|
1224
|
+
readonly 'workspace-flow-input-empty': {
|
|
1225
|
+
readonly zh: "目录路径不能为空";
|
|
1226
|
+
readonly en: "Directory path cannot be empty";
|
|
1227
|
+
};
|
|
1228
|
+
readonly 'workspace-flow-loading': {
|
|
1229
|
+
readonly zh: "正在连接并读取目录… · Esc 关闭";
|
|
1230
|
+
readonly en: "Connecting and loading directories… · Esc to close";
|
|
1231
|
+
};
|
|
1232
|
+
readonly 'workspace-menu-title': {
|
|
1233
|
+
readonly zh: "Workspace 操作";
|
|
1234
|
+
readonly en: "Workspace actions";
|
|
1235
|
+
};
|
|
1236
|
+
readonly 'workspace-menu-resume-desc': {
|
|
1237
|
+
readonly zh: "切换到另一个工作区";
|
|
1238
|
+
readonly en: "Switch to another workspace";
|
|
1239
|
+
};
|
|
1240
|
+
readonly 'workspace-menu-rename-desc': {
|
|
1241
|
+
readonly zh: "重命名当前工作区(需输入名称)";
|
|
1242
|
+
readonly en: "Rename the current workspace (needs a name)";
|
|
1243
|
+
};
|
|
1244
|
+
readonly 'workspace-menu-open-desc': {
|
|
1245
|
+
readonly zh: "打开路径或工作区 URI(需输入路径)";
|
|
1246
|
+
readonly en: "Open a path or workspace URI (needs a path)";
|
|
1247
|
+
};
|
|
1248
|
+
readonly 'workspace-open-usage': {
|
|
1249
|
+
readonly zh: "用法:/workspace open <路径或 URI>";
|
|
1250
|
+
readonly en: "Usage: /workspace open <path-or-URI>";
|
|
1251
|
+
};
|
|
1252
|
+
readonly 'workspace-rename-usage': {
|
|
1253
|
+
readonly zh: "用法:/workspace rename <名称>";
|
|
1254
|
+
readonly en: "Usage: /workspace rename <name>";
|
|
1255
|
+
};
|
|
1256
|
+
readonly 'workspace-command-unknown': {
|
|
1257
|
+
readonly zh: "未知的 workspace 子命令:{{command}}";
|
|
1258
|
+
readonly en: "Unknown workspace subcommand: {{command}}";
|
|
1259
|
+
};
|
|
1260
|
+
readonly 'workspace-command-empty': {
|
|
1261
|
+
readonly zh: "该 workspace 操作没有可选目标";
|
|
1262
|
+
readonly en: "This workspace action has no available targets";
|
|
1263
|
+
};
|
|
1264
|
+
readonly 'workspace-command-failed': {
|
|
1265
|
+
readonly zh: "workspace 操作失败 · {{err}}";
|
|
1266
|
+
readonly en: "Workspace action failed · {{err}}";
|
|
1267
|
+
};
|
|
1268
|
+
readonly 'workspace-renamed': {
|
|
1269
|
+
readonly zh: "工作区已重命名:{{title}}";
|
|
1270
|
+
readonly en: "Workspace renamed: {{title}}";
|
|
1271
|
+
};
|
|
1272
|
+
readonly 'workspace-rename-failed': {
|
|
1273
|
+
readonly zh: "工作区重命名失败 · {{err}}";
|
|
1274
|
+
readonly en: "Failed to rename workspace · {{err}}";
|
|
1275
|
+
};
|
|
1276
|
+
readonly 'workspace-removed': {
|
|
1277
|
+
readonly zh: "已从工作区列表移除:{{target}}(会话与目录保留)";
|
|
1278
|
+
readonly en: "Removed from the workspace list: {{target}} (sessions and directory kept)";
|
|
1279
|
+
};
|
|
1280
|
+
readonly 'workspace-remove-unknown': {
|
|
1281
|
+
readonly zh: "工作区列表中没有:{{target}}";
|
|
1282
|
+
readonly en: "Not in the workspace list: {{target}}";
|
|
1283
|
+
};
|
|
1284
|
+
readonly 'workspace-remove-failed': {
|
|
1285
|
+
readonly zh: "移除工作区失败 · {{err}}";
|
|
1286
|
+
readonly en: "Failed to remove the workspace · {{err}}";
|
|
1287
|
+
};
|
|
1288
|
+
readonly 'home-section-workspaces': {
|
|
1289
|
+
readonly zh: "工作区({{n}})";
|
|
1290
|
+
readonly en: "Workspaces ({{n}})";
|
|
1291
|
+
};
|
|
1292
|
+
readonly 'home-add-workspace': {
|
|
1293
|
+
readonly zh: "添加工作区";
|
|
1294
|
+
readonly en: "Add workspace";
|
|
1295
|
+
};
|
|
1296
|
+
readonly 'home-add-hint': {
|
|
1297
|
+
readonly zh: "选择目录并加入列表";
|
|
1298
|
+
readonly en: "Pick a directory and add it to the list";
|
|
1299
|
+
};
|
|
1300
|
+
readonly 'home-workspace-missing': {
|
|
1301
|
+
readonly zh: "目录不存在";
|
|
1302
|
+
readonly en: "directory missing";
|
|
1303
|
+
};
|
|
1304
|
+
readonly 'home-no-workspaces': {
|
|
1305
|
+
readonly zh: "还没有工作区 · 在任意目录启动 dsh-tui 即可自动加入";
|
|
1306
|
+
readonly en: "No workspaces yet · start dsh-tui in a directory to add it";
|
|
1307
|
+
};
|
|
1308
|
+
readonly 'home-sessions-title': {
|
|
1309
|
+
readonly zh: "{{name}} 的会话";
|
|
1310
|
+
readonly en: "Sessions in {{name}}";
|
|
1311
|
+
};
|
|
1312
|
+
readonly 'home-sessions-count': {
|
|
1313
|
+
readonly zh: "{{n}} 个会话";
|
|
1314
|
+
readonly en: {
|
|
1315
|
+
readonly one: "{{n}} session";
|
|
1316
|
+
readonly other: "{{n}} sessions";
|
|
1317
|
+
};
|
|
1318
|
+
};
|
|
1319
|
+
readonly 'home-no-sessions': {
|
|
1320
|
+
readonly zh: "这个工作区还没有会话 · Enter 新建一个";
|
|
1321
|
+
readonly en: "No sessions in this workspace yet · Enter starts one";
|
|
1322
|
+
};
|
|
1323
|
+
readonly 'home-sessions-loading': {
|
|
1324
|
+
readonly zh: "正在读取会话…";
|
|
1325
|
+
readonly en: "Loading sessions…";
|
|
1326
|
+
};
|
|
1327
|
+
readonly 'home-sessions-failed': {
|
|
1328
|
+
readonly zh: "读取会话失败 · {{err}}";
|
|
1329
|
+
readonly en: "Failed to load sessions · {{err}}";
|
|
1330
|
+
};
|
|
1331
|
+
readonly 'home-hint-list': {
|
|
1332
|
+
readonly zh: "**←/→** 切换栏位 · **↑/↓** 选择 · **Enter** 编辑 · Ctrl+N 新建 · Esc 进入会话";
|
|
1333
|
+
readonly en: "**←/→** switch pane · **↑/↓** move · **Enter** edit · Ctrl+N new · Esc enter the session";
|
|
1334
|
+
};
|
|
1335
|
+
readonly 'home-hint-menu': {
|
|
1336
|
+
readonly zh: "**↑/↓** 选择 · **Enter** 确认 · Esc 关闭";
|
|
1337
|
+
readonly en: "**↑/↓** move · **Enter** confirm · Esc close";
|
|
1338
|
+
};
|
|
1339
|
+
readonly 'home-hint-rename': {
|
|
1340
|
+
readonly zh: "输入新名称 · **Enter** 保存 · Esc 取消";
|
|
1341
|
+
readonly en: "Type a new name · **Enter** save · Esc cancel";
|
|
1342
|
+
};
|
|
1343
|
+
readonly 'home-hint-confirm-remove': {
|
|
1344
|
+
readonly zh: "**Enter** 确认移除 · Esc 取消";
|
|
1345
|
+
readonly en: "**Enter** confirm removal · Esc cancel";
|
|
1346
|
+
};
|
|
1347
|
+
readonly 'home-menu-edit': {
|
|
1348
|
+
readonly zh: "编辑";
|
|
1349
|
+
readonly en: "Edit";
|
|
1350
|
+
};
|
|
1351
|
+
readonly 'home-menu-new': {
|
|
1352
|
+
readonly zh: "在此新建会话";
|
|
1353
|
+
readonly en: "New session here";
|
|
1354
|
+
};
|
|
1355
|
+
readonly 'home-menu-rename': {
|
|
1356
|
+
readonly zh: "重命名工作区";
|
|
1357
|
+
readonly en: "Rename workspace";
|
|
1358
|
+
};
|
|
1359
|
+
readonly 'home-menu-remove': {
|
|
1360
|
+
readonly zh: "从列表移除";
|
|
1361
|
+
readonly en: "Remove from list";
|
|
1362
|
+
};
|
|
1363
|
+
readonly 'home-rename-placeholder': {
|
|
1364
|
+
readonly zh: "新名称";
|
|
1365
|
+
readonly en: "New name";
|
|
1366
|
+
};
|
|
1367
|
+
readonly 'home-rename-empty': {
|
|
1368
|
+
readonly zh: "名称不能为空";
|
|
1369
|
+
readonly en: "The name cannot be empty";
|
|
1370
|
+
};
|
|
1371
|
+
readonly 'home-rename-failed': {
|
|
1372
|
+
readonly zh: "重命名失败 · {{err}}";
|
|
1373
|
+
readonly en: "Rename failed · {{err}}";
|
|
1374
|
+
};
|
|
1375
|
+
readonly 'home-remove-title': {
|
|
1376
|
+
readonly zh: "移除工作区「{{name}}」?";
|
|
1377
|
+
readonly en: "Remove workspace \"{{name}}\"?";
|
|
1378
|
+
};
|
|
1379
|
+
readonly 'home-remove-detail': {
|
|
1380
|
+
readonly zh: "只从列表移除,会话记录与磁盘目录都会保留";
|
|
1381
|
+
readonly en: "Only the list entry goes away; sessions and the directory stay";
|
|
1382
|
+
};
|
|
1383
|
+
readonly 'supervisor-title': {
|
|
1384
|
+
readonly zh: "会话管理";
|
|
1385
|
+
readonly en: "Sessions";
|
|
1386
|
+
};
|
|
1387
|
+
readonly 'supervisor-unregistered': {
|
|
1388
|
+
readonly zh: "未登记的工作区";
|
|
1389
|
+
readonly en: "Unregistered";
|
|
1390
|
+
};
|
|
1391
|
+
readonly 'supervisor-no-matches': {
|
|
1392
|
+
readonly zh: "没有匹配的会话 · Esc 清空筛选";
|
|
1393
|
+
readonly en: "No sessions match · Esc clears the filter";
|
|
1394
|
+
};
|
|
1395
|
+
readonly 'supervisor-subtitle': {
|
|
1396
|
+
readonly zh: "本终端托管多个会话 · 切换不中断";
|
|
1397
|
+
readonly en: "This terminal hosts several sessions · switching does not stop them";
|
|
1398
|
+
};
|
|
1399
|
+
readonly 'supervisor-filter-placeholder': {
|
|
1400
|
+
readonly zh: "输入以搜索会话…";
|
|
1401
|
+
readonly en: "Type to search sessions…";
|
|
1402
|
+
};
|
|
1403
|
+
readonly 'supervisor-hint-list': {
|
|
1404
|
+
readonly zh: "**←/→** 切换栏位 · **Enter** 进入会话 · Ctrl+N 新建 · Ctrl+X 停止 · Esc 返回";
|
|
1405
|
+
readonly en: "**←/→** switch pane · **Enter** enter · Ctrl+N new · Ctrl+X stop · Esc back";
|
|
1406
|
+
};
|
|
1407
|
+
readonly 'supervisor-hint-filter': {
|
|
1408
|
+
readonly zh: "输入过滤会话 · **Enter** 进入 · Esc 清空";
|
|
1409
|
+
readonly en: "Type to filter · **Enter** enter · Esc clears";
|
|
1410
|
+
};
|
|
1411
|
+
readonly 'supervisor-occupied': {
|
|
1412
|
+
readonly zh: "被其他 TUI 终端占用(pid {{pid}}),无法进入";
|
|
1413
|
+
readonly en: "Held by another TUI terminal (pid {{pid}}) — cannot enter";
|
|
1414
|
+
};
|
|
1415
|
+
readonly 'supervisor-occupied-badge': {
|
|
1416
|
+
readonly zh: "占用 pid {{pid}}";
|
|
1417
|
+
readonly en: "held by pid {{pid}}";
|
|
1418
|
+
};
|
|
1419
|
+
readonly 'supervisor-current': {
|
|
1420
|
+
readonly zh: "当前";
|
|
1421
|
+
readonly en: "current";
|
|
1422
|
+
};
|
|
1423
|
+
readonly 'supervisor-counts': {
|
|
1424
|
+
readonly zh: "{{working}} 运行中 · {{live}} 个活跃 · 共 {{total}}";
|
|
1425
|
+
readonly en: "{{working}} working · {{live}} live · {{total}} total";
|
|
1426
|
+
};
|
|
1427
|
+
readonly 'supervisor-new-session': {
|
|
1428
|
+
readonly zh: "+ 新建会话";
|
|
1429
|
+
readonly en: "+ New session";
|
|
1430
|
+
};
|
|
1431
|
+
readonly 'supervisor-new-session-hint': {
|
|
1432
|
+
readonly zh: "在「{{name}}」新建一个会话";
|
|
1433
|
+
readonly en: "Start a session in \"{{name}}\"";
|
|
1434
|
+
};
|
|
1435
|
+
readonly 'supervisor-stopped': {
|
|
1436
|
+
readonly zh: "已停止会话「{{name}}」";
|
|
1437
|
+
readonly en: "Stopped session {{name}}";
|
|
1438
|
+
};
|
|
1439
|
+
readonly 'supervisor-stop-failed': {
|
|
1440
|
+
readonly zh: "无法停止该会话";
|
|
1441
|
+
readonly en: "Could not stop that session";
|
|
1442
|
+
};
|
|
1443
|
+
readonly 'supervisor-stop-current': {
|
|
1444
|
+
readonly zh: "不能停止当前正在使用的会话";
|
|
1445
|
+
readonly en: "The session you are attached to cannot be stopped";
|
|
1446
|
+
};
|
|
1447
|
+
readonly 'supervisor-open-failed': {
|
|
1448
|
+
readonly zh: "无法进入会话「{{name}}」· 原因见下方通知";
|
|
1449
|
+
readonly en: "Could not enter {{name}} · the reason is in the notification below";
|
|
1450
|
+
};
|
|
1451
|
+
readonly 'cost-cache-rate': {
|
|
1452
|
+
readonly zh: "缓存率 {{rate}}% · {{read}} 读 / {{write}} 写";
|
|
1453
|
+
readonly en: "Cache rate {{rate}}% · {{read}} read / {{write}} write";
|
|
1454
|
+
};
|
|
1455
|
+
readonly 'cost-context': {
|
|
1456
|
+
readonly zh: "上下文 {{pct}}%";
|
|
1457
|
+
readonly en: "Context {{pct}}%";
|
|
1458
|
+
};
|
|
1459
|
+
readonly 'status-title': {
|
|
1460
|
+
readonly zh: "标题 {{title}}";
|
|
1461
|
+
readonly en: "Title {{title}}";
|
|
1462
|
+
};
|
|
1463
|
+
readonly 'cost-cache-hit-rate': {
|
|
1464
|
+
readonly zh: "缓存命中率 {{rate}}% · 缓存 {{read}} 读 / {{write}} 写";
|
|
1465
|
+
readonly en: "Cache hit rate {{rate}}% · cache {{read}} read / {{write}} write";
|
|
1466
|
+
};
|
|
1467
|
+
readonly 'cost-note': {
|
|
1468
|
+
readonly zh: "注:DSH 不提供 API 费用计量,以上为 token 用量(按 provider 账单计费)";
|
|
1469
|
+
readonly en: "Note: DSH provides no API cost metering; the above is token usage (billed by your provider)";
|
|
1470
|
+
};
|
|
1471
|
+
readonly 'status-cost-label': {
|
|
1472
|
+
readonly zh: "≈";
|
|
1473
|
+
readonly en: "≈";
|
|
1474
|
+
};
|
|
1475
|
+
readonly 'status-cost-note': {
|
|
1476
|
+
readonly zh: "估算(官方单价,非账单)";
|
|
1477
|
+
readonly en: "estimate (official rates, not a bill)";
|
|
1478
|
+
};
|
|
1479
|
+
readonly 'cost-peak-name': {
|
|
1480
|
+
readonly zh: "梁文峰";
|
|
1481
|
+
readonly en: "peak";
|
|
1482
|
+
};
|
|
1483
|
+
readonly 'cost-idle-name': {
|
|
1484
|
+
readonly zh: "梁文谷";
|
|
1485
|
+
readonly en: "idle";
|
|
1486
|
+
};
|
|
1487
|
+
readonly 'cost-now-peak': {
|
|
1488
|
+
readonly zh: "峰";
|
|
1489
|
+
readonly en: "peak";
|
|
1490
|
+
};
|
|
1491
|
+
readonly 'cost-now-idle': {
|
|
1492
|
+
readonly zh: "谷";
|
|
1493
|
+
readonly en: "idle";
|
|
1494
|
+
};
|
|
1495
|
+
readonly 'balance-summary-loading': {
|
|
1496
|
+
readonly zh: "DeepSeek 余额 · 查询中…";
|
|
1497
|
+
readonly en: "DeepSeek balance · querying…";
|
|
1498
|
+
};
|
|
1499
|
+
readonly 'balance-summary-ok': {
|
|
1500
|
+
readonly zh: "DeepSeek 余额 ¥{{total}} · {{state}}";
|
|
1501
|
+
readonly en: "DeepSeek balance ¥{{total}} · {{state}}";
|
|
1502
|
+
};
|
|
1503
|
+
readonly 'balance-summary-state-ok': {
|
|
1504
|
+
readonly zh: "可用";
|
|
1505
|
+
readonly en: "available";
|
|
1506
|
+
};
|
|
1507
|
+
readonly 'balance-summary-state-off': {
|
|
1508
|
+
readonly zh: "不可用";
|
|
1509
|
+
readonly en: "unavailable";
|
|
1510
|
+
};
|
|
1511
|
+
readonly 'balance-summary-fail': {
|
|
1512
|
+
readonly zh: "DeepSeek 余额 · 查询失败";
|
|
1513
|
+
readonly en: "DeepSeek balance · query failed";
|
|
1514
|
+
};
|
|
1515
|
+
readonly 'balance-currency': {
|
|
1516
|
+
readonly zh: "{{currency}} 总额 ¥{{total}} · 赠送 ¥{{granted}} · 充值 ¥{{toppedUp}}";
|
|
1517
|
+
readonly en: "{{currency}} total ¥{{total}} · granted ¥{{granted}} · topped up ¥{{toppedUp}}";
|
|
1518
|
+
};
|
|
1519
|
+
readonly 'balance-no-key': {
|
|
1520
|
+
readonly zh: "未配置 DeepSeek API key(DEEPSEEK_API_KEY)";
|
|
1521
|
+
readonly en: "No DeepSeek API key configured (DEEPSEEK_API_KEY)";
|
|
1522
|
+
};
|
|
1523
|
+
readonly 'balance-unauthorized': {
|
|
1524
|
+
readonly zh: "认证失败——key 无效或已被撤销";
|
|
1525
|
+
readonly en: "Authentication failed — the key is invalid or revoked";
|
|
1526
|
+
};
|
|
1527
|
+
readonly 'balance-network-error': {
|
|
1528
|
+
readonly zh: "网络错误或请求超时";
|
|
1529
|
+
readonly en: "Network error or request timeout";
|
|
1530
|
+
};
|
|
1531
|
+
readonly 'balance-http-error': {
|
|
1532
|
+
readonly zh: "余额接口返回 HTTP {{status}}";
|
|
1533
|
+
readonly en: "Balance endpoint returned HTTP {{status}}";
|
|
1534
|
+
};
|
|
1535
|
+
readonly 'balance-invalid': {
|
|
1536
|
+
readonly zh: "余额接口响应格式异常";
|
|
1537
|
+
readonly en: "Unexpected balance endpoint response";
|
|
1538
|
+
};
|
|
1539
|
+
readonly 'balance-fail-hint': {
|
|
1540
|
+
readonly zh: "仅 DeepSeek 官方 API key 可查询;/login 可查看凭据状态";
|
|
1541
|
+
readonly en: "Only a DeepSeek official API key can be queried; /login shows credential status";
|
|
1542
|
+
};
|
|
1543
|
+
readonly 'balance-hover-tokens': {
|
|
1544
|
+
readonly zh: "本会话 tokens {{input}} in → {{output}} out · ≈¥{{cost}}({{peakName}} ¥{{peak}} / {{idleName}} ¥{{idle}})";
|
|
1545
|
+
readonly en: "Session tokens {{input}} in → {{output}} out · ≈¥{{cost}} ({{peakName}} ¥{{peak}} / {{idleName}} ¥{{idle}})";
|
|
1546
|
+
};
|
|
1547
|
+
readonly 'balance-current-rate': {
|
|
1548
|
+
readonly zh: "当前时段:{{name}} · 输入 ¥{{input}}/百万 · 输出 ¥{{output}}/百万";
|
|
1549
|
+
readonly en: "Current window: {{name}} · input ¥{{input}}/M · output ¥{{output}}/M";
|
|
1550
|
+
};
|
|
1551
|
+
readonly 'balance-refresh': {
|
|
1552
|
+
readonly zh: "点击刷新";
|
|
1553
|
+
readonly en: "click to refresh";
|
|
1554
|
+
};
|
|
1555
|
+
readonly 'balance-retry': {
|
|
1556
|
+
readonly zh: "点击重试";
|
|
1557
|
+
readonly en: "click to retry";
|
|
1558
|
+
};
|
|
1559
|
+
readonly 'balance-close': {
|
|
1560
|
+
readonly zh: "关闭";
|
|
1561
|
+
readonly en: "dismiss";
|
|
1562
|
+
};
|
|
1563
|
+
readonly 'balance-hint': {
|
|
1564
|
+
readonly zh: "余额查询免费 · 以 DeepSeek 平台为准";
|
|
1565
|
+
readonly en: "balance queries are free · authoritative on the DeepSeek platform";
|
|
1566
|
+
};
|
|
1567
|
+
readonly 'doctor-example-config': {
|
|
1568
|
+
readonly zh: "示例配置 {{path}}";
|
|
1569
|
+
readonly en: "Example config {{path}}";
|
|
1570
|
+
};
|
|
1571
|
+
readonly 'doctor-user-config': {
|
|
1572
|
+
readonly zh: "用户配置 {{path}}";
|
|
1573
|
+
readonly en: "User config {{path}}";
|
|
1574
|
+
};
|
|
1575
|
+
readonly 'doctor-launch-hint': {
|
|
1576
|
+
readonly zh: "启动方式 dsh-tui.cmd / dsh --profile dsh-tui";
|
|
1577
|
+
readonly en: "Launch dsh-tui.cmd / dsh --profile dsh-tui";
|
|
1578
|
+
};
|
|
1579
|
+
readonly 'doctor-route-hint': {
|
|
1580
|
+
readonly zh: "模型路由 由 cordis.yml 的 llm-deepseek 段决定(/model 仅提示重启生效)";
|
|
1581
|
+
readonly en: "Model route set by the llm-deepseek block in cordis.yml (/model only hints at restart)";
|
|
1582
|
+
};
|
|
1583
|
+
readonly 'export-failed': {
|
|
1584
|
+
readonly zh: "导出失败(无法写入工作目录)";
|
|
1585
|
+
readonly en: "Export failed (cannot write to working directory)";
|
|
1586
|
+
};
|
|
1587
|
+
readonly 'export-saved': {
|
|
1588
|
+
readonly zh: "已导出: {{target}}(文件位于当前工作区,若工作区在同步/共享目录请注意清理)";
|
|
1589
|
+
readonly en: "Exported: {{target}} (the file lives in the current workspace — clean it up promptly if the workspace is synced or shared)";
|
|
1590
|
+
};
|
|
1591
|
+
readonly 'agentsmd-create-failed': {
|
|
1592
|
+
readonly zh: "创建 AGENTS.md 失败";
|
|
1593
|
+
readonly en: "Failed to create AGENTS.md";
|
|
1594
|
+
};
|
|
1595
|
+
readonly 'agentsmd-exists': {
|
|
1596
|
+
readonly zh: "AGENTS.md 已存在,未覆盖";
|
|
1597
|
+
readonly en: "AGENTS.md already exists, not overwritten";
|
|
1598
|
+
};
|
|
1599
|
+
readonly 'agentsmd-created': {
|
|
1600
|
+
readonly zh: "已创建 {{result}}";
|
|
1601
|
+
readonly en: "Created {{result}}";
|
|
1602
|
+
};
|
|
1603
|
+
readonly 'login-api-key': {
|
|
1604
|
+
readonly zh: "API key: {{status}}";
|
|
1605
|
+
readonly en: "API key: {{status}}";
|
|
1606
|
+
};
|
|
1607
|
+
readonly 'login-key-configured': {
|
|
1608
|
+
readonly zh: "已配置({{ref}})";
|
|
1609
|
+
readonly en: "configured ({{ref}})";
|
|
1610
|
+
};
|
|
1611
|
+
readonly 'login-key-missing': {
|
|
1612
|
+
readonly zh: "未配置(DEEPSEEK_API_KEY)";
|
|
1613
|
+
readonly en: "not configured (DEEPSEEK_API_KEY)";
|
|
1614
|
+
};
|
|
1615
|
+
readonly 'login-credentials-unavailable': {
|
|
1616
|
+
readonly zh: "无法检查(credentials service 不可用)";
|
|
1617
|
+
readonly en: "unavailable (credentials service unavailable)";
|
|
1618
|
+
};
|
|
1619
|
+
readonly 'login-credential-source': {
|
|
1620
|
+
readonly zh: "凭据来源: {{source}}";
|
|
1621
|
+
readonly en: "Credential source: {{source}}";
|
|
1622
|
+
};
|
|
1623
|
+
readonly 'login-source-none': {
|
|
1624
|
+
readonly zh: "无";
|
|
1625
|
+
readonly en: "none";
|
|
1626
|
+
};
|
|
1627
|
+
readonly 'login-credential-storage': {
|
|
1628
|
+
readonly zh: "凭据存储: {{mode}}";
|
|
1629
|
+
readonly en: "Credential storage: {{mode}}";
|
|
1630
|
+
};
|
|
1631
|
+
readonly 'login-storage-writable': {
|
|
1632
|
+
readonly zh: "可写";
|
|
1633
|
+
readonly en: "writable";
|
|
1634
|
+
};
|
|
1635
|
+
readonly 'login-storage-read-only': {
|
|
1636
|
+
readonly zh: "只读";
|
|
1637
|
+
readonly en: "read-only";
|
|
1638
|
+
};
|
|
1639
|
+
readonly 'login-base-url': {
|
|
1640
|
+
readonly zh: "Base URL: {{url}}";
|
|
1641
|
+
readonly en: "Base URL: {{url}}";
|
|
1642
|
+
};
|
|
1643
|
+
readonly 'login-official-endpoint': {
|
|
1644
|
+
readonly zh: "官方端点";
|
|
1645
|
+
readonly en: "official endpoint";
|
|
1646
|
+
};
|
|
1647
|
+
readonly 'login-logout-hint': {
|
|
1648
|
+
readonly zh: "使用 /provider 管理 DSH 凭据;若来源为 env,请删除对应环境变量并重启 dsh-tui";
|
|
1649
|
+
readonly en: "Manage DSH credentials with /provider; for env sources, remove the corresponding environment variable and restart dsh-tui";
|
|
1650
|
+
};
|
|
1651
|
+
readonly 'login-oauth-heading': {
|
|
1652
|
+
readonly zh: "提供商认证:";
|
|
1653
|
+
readonly en: "Provider authentication:";
|
|
1654
|
+
};
|
|
1655
|
+
readonly 'login-oauth-row': {
|
|
1656
|
+
readonly zh: " {{provider}} — {{state}}";
|
|
1657
|
+
readonly en: " {{provider}} — {{state}}";
|
|
1658
|
+
};
|
|
1659
|
+
readonly 'login-oauth-in': {
|
|
1660
|
+
readonly zh: "已登录 · 令牌到期 {{time}}";
|
|
1661
|
+
readonly en: "signed in · token expires {{time}}";
|
|
1662
|
+
};
|
|
1663
|
+
readonly 'login-auth-in': {
|
|
1664
|
+
readonly zh: "已登录";
|
|
1665
|
+
readonly en: "signed in";
|
|
1666
|
+
};
|
|
1667
|
+
readonly 'login-oauth-expired': {
|
|
1668
|
+
readonly zh: "已登录但令牌已过期,重新登录可恢复";
|
|
1669
|
+
readonly en: "signed in but the token expired — sign in again to restore";
|
|
1670
|
+
};
|
|
1671
|
+
readonly 'login-oauth-signed-out': {
|
|
1672
|
+
readonly zh: "未登录";
|
|
1673
|
+
readonly en: "not signed in";
|
|
1674
|
+
};
|
|
1675
|
+
readonly 'login-oauth-hint': {
|
|
1676
|
+
readonly zh: " 登录/登出:/provider 提供商认证,或 /auth login <provider>";
|
|
1677
|
+
readonly en: " Sign in/out: /provider authentication, or /auth login <provider>";
|
|
1678
|
+
};
|
|
1679
|
+
readonly 'permission-policy-hint': {
|
|
1680
|
+
readonly zh: "DSH 权限策略由 fs-policy / bash-sandbox 配置决定(当前 leaf:workspace 内读写、写入需已读文件)。";
|
|
1681
|
+
readonly en: "DSH permission policy is set by fs-policy / bash-sandbox config (current leaf: read/write in workspace, writes need a prior read).";
|
|
1682
|
+
};
|
|
1683
|
+
readonly 'permission-approval-hint': {
|
|
1684
|
+
readonly zh: "审批通道已挂载:命令申请权限提升(sandbox_permissions)时弹出审批条,Yes 放行一次、No / Esc 拒绝。";
|
|
1685
|
+
readonly en: "The approval channel is mounted: sandbox escalations (sandbox_permissions) raise an approval bar — Yes allows once, No / Esc rejects.";
|
|
1686
|
+
};
|
|
1687
|
+
readonly 'permission-root-hint': {
|
|
1688
|
+
readonly zh: "当前文件系统策略以工作目录为根:{{cwd}}";
|
|
1689
|
+
readonly en: "Current filesystem policy is rooted at the working directory: {{cwd}}";
|
|
1690
|
+
};
|
|
1691
|
+
readonly 'permission-path-hint': {
|
|
1692
|
+
readonly zh: "模型工具相对路径均解析自该目录;跨目录访问由 fs-policy 拦截。";
|
|
1693
|
+
readonly en: "Relative paths of model tools resolve from this directory; cross-directory access is blocked by fs-policy.";
|
|
1694
|
+
};
|
|
1695
|
+
readonly 'permission-current': {
|
|
1696
|
+
readonly zh: "当前预设 {{name}}";
|
|
1697
|
+
readonly en: "Current preset {{name}}";
|
|
1698
|
+
};
|
|
1699
|
+
readonly 'permission-roster-unavailable': {
|
|
1700
|
+
readonly zh: "权限预设名册不可用";
|
|
1701
|
+
readonly en: "Permission preset roster unavailable";
|
|
1702
|
+
};
|
|
1703
|
+
readonly 'permission-picker-title': {
|
|
1704
|
+
readonly zh: "权限预设";
|
|
1705
|
+
readonly en: "Permission preset";
|
|
1706
|
+
};
|
|
1707
|
+
readonly 'permission-preset-readonly': {
|
|
1708
|
+
readonly zh: "只读";
|
|
1709
|
+
readonly en: "Read-only";
|
|
1710
|
+
};
|
|
1711
|
+
readonly 'permission-preset-readonly-desc': {
|
|
1712
|
+
readonly zh: "会话只读:不写文件、不执行命令";
|
|
1713
|
+
readonly en: "Read-only session: no file writes, no commands";
|
|
1714
|
+
};
|
|
1715
|
+
readonly 'permission-preset-workspace-write': {
|
|
1716
|
+
readonly zh: "工作区读写";
|
|
1717
|
+
readonly en: "Workspace read/write";
|
|
1718
|
+
};
|
|
1719
|
+
readonly 'permission-preset-workspace-write-desc': {
|
|
1720
|
+
readonly zh: "工作区内读写;写入需先读该文件";
|
|
1721
|
+
readonly en: "Read/write inside the workspace; writes need a prior read";
|
|
1722
|
+
};
|
|
1723
|
+
readonly 'permission-preset-full-access': {
|
|
1724
|
+
readonly zh: "完全访问";
|
|
1725
|
+
readonly en: "Full access";
|
|
1726
|
+
};
|
|
1727
|
+
readonly 'permission-preset-full-access-desc': {
|
|
1728
|
+
readonly zh: "不受限读写,无需审批";
|
|
1729
|
+
readonly en: "Unrestricted access, no approvals";
|
|
1730
|
+
};
|
|
1731
|
+
readonly 'plan-picker-title': {
|
|
1732
|
+
readonly zh: "计划模式";
|
|
1733
|
+
readonly en: "Plan mode";
|
|
1734
|
+
};
|
|
1735
|
+
readonly 'plan-mode-on': {
|
|
1736
|
+
readonly zh: "开启";
|
|
1737
|
+
readonly en: "On";
|
|
1738
|
+
};
|
|
1739
|
+
readonly 'plan-mode-on-desc': {
|
|
1740
|
+
readonly zh: "进入计划模式:只读,先规划后动手";
|
|
1741
|
+
readonly en: "Enter plan mode: read-only, plan before acting";
|
|
1742
|
+
};
|
|
1743
|
+
readonly 'plan-mode-off': {
|
|
1744
|
+
readonly zh: "关闭";
|
|
1745
|
+
readonly en: "Off";
|
|
1746
|
+
};
|
|
1747
|
+
readonly 'plan-mode-off-desc': {
|
|
1748
|
+
readonly zh: "退出计划模式,恢复正常执行";
|
|
1749
|
+
readonly en: "Exit plan mode, back to normal execution";
|
|
1750
|
+
};
|
|
1751
|
+
readonly 'hooks-not-mounted': {
|
|
1752
|
+
readonly zh: "DSH hooks(dsh-hooks-claude / dsh-hooks-codex)未在本 leaf 挂载。";
|
|
1753
|
+
readonly en: "DSH hooks (dsh-hooks-claude / dsh-hooks-codex) are not mounted in this leaf.";
|
|
1754
|
+
};
|
|
1755
|
+
readonly 'hooks-mount-hint': {
|
|
1756
|
+
readonly zh: "需要时可在 cordis.yml 挂载对应 hooks 插件。";
|
|
1757
|
+
readonly en: "Mount the matching hooks plugin in cordis.yml when needed.";
|
|
1758
|
+
};
|
|
1759
|
+
readonly 'update-unavailable': {
|
|
1760
|
+
readonly zh: "当前运行方式不支持自动更新(需经 dsh --profile 启动),请在终端执行 dsh plugin --profile <name> update dsh-cli";
|
|
1761
|
+
readonly en: "Automatic update is unavailable in this launch mode (needs dsh --profile). Run dsh plugin --profile <name> update dsh-cli in a terminal.";
|
|
1762
|
+
};
|
|
1763
|
+
readonly 'update-working': {
|
|
1764
|
+
readonly zh: "当前回合仍在运行,请等待完成后再更新 TUI。";
|
|
1765
|
+
readonly en: "The current turn is still running. Wait for it to finish before updating the TUI.";
|
|
1766
|
+
};
|
|
1767
|
+
readonly 'update-starting': {
|
|
1768
|
+
readonly zh: "正在更新 dsh-cli,完成后会自动重启并恢复当前会话……";
|
|
1769
|
+
readonly en: "Updating dsh-cli. The TUI will restart and resume this session when finished…";
|
|
1770
|
+
};
|
|
1771
|
+
readonly 'update-available': {
|
|
1772
|
+
readonly zh: "发现新版本:v{{latest}}(当前 v{{current}})· 输入 /update 更新 TUI";
|
|
1773
|
+
readonly en: "New version available: v{{latest}} (current v{{current}}) · type /update to update the TUI";
|
|
1774
|
+
};
|
|
1775
|
+
readonly 'update-already-latest': {
|
|
1776
|
+
readonly zh: "当前已是最新版本(v{{current}})。";
|
|
1777
|
+
readonly en: "Already on the latest version (v{{current}}).";
|
|
1778
|
+
};
|
|
1779
|
+
readonly 'update-check-failed': {
|
|
1780
|
+
readonly zh: "无法确认新版本(网络或 registry 不可达),已尝试直接更新……";
|
|
1781
|
+
readonly en: "Could not confirm a newer version (network or registry unreachable); attempting the update anyway…";
|
|
1782
|
+
};
|
|
1783
|
+
readonly 'update-refused-deadlock': {
|
|
1784
|
+
readonly zh: "已取消更新:镜像 registry 目前只能装到 v{{latest}},而该版本在旧全局启动器的 patch 下会启动死锁(#183/#307);官方最新为 v{{authoritative}},待镜像同步后再 /update。";
|
|
1785
|
+
readonly en: "Update cancelled: the mirror registry can only serve v{{latest}}, which deadlocks boot under older global-launcher patches (#183/#307); official latest is v{{authoritative}} — retry /update after the mirror syncs.";
|
|
1786
|
+
};
|
|
1787
|
+
readonly 'update-mirror-lag': {
|
|
1788
|
+
readonly zh: "镜像 registry 滞后:本次安装 v{{latest}};官方最新 v{{authoritative}},镜像同步后可再 /update。";
|
|
1789
|
+
readonly en: "Mirror registry lag: installing v{{latest}} now; official latest is v{{authoritative}} — run /update again once the mirror syncs.";
|
|
1790
|
+
};
|
|
1791
|
+
readonly 'update-standalone-available': {
|
|
1792
|
+
readonly zh: "发现便携包新版本:v{{latest}}(当前 v{{current}})· 输入 /update 自动更新";
|
|
1793
|
+
readonly en: "New standalone version available: v{{latest}} (current v{{current}}) · type /update to update";
|
|
1794
|
+
};
|
|
1795
|
+
readonly 'update-standalone-no-checksum': {
|
|
1796
|
+
readonly zh: "该版本未发布 SHA256 校验和,更新包完整性无法验证";
|
|
1797
|
+
readonly en: "this release publishes no SHA256 checksums; the update payload cannot be integrity-verified";
|
|
1798
|
+
};
|
|
1799
|
+
readonly 'update-standalone-starting': {
|
|
1800
|
+
readonly zh: "正在下载便携包新版本并自动替换,完成后会自动重启并恢复当前会话……";
|
|
1801
|
+
readonly en: "Downloading and replacing standalone binary. The TUI will restart and resume this session when finished…";
|
|
1802
|
+
};
|
|
1803
|
+
readonly 'reload-header': {
|
|
1804
|
+
readonly zh: "已重读偏好文件:";
|
|
1805
|
+
readonly en: "Preferences reloaded:";
|
|
1806
|
+
};
|
|
1807
|
+
readonly 'reload-applied': {
|
|
1808
|
+
readonly zh: "{{kind}} {{from}} → {{to}}(已应用)";
|
|
1809
|
+
readonly en: "{{kind}} {{from}} → {{to}} (applied)";
|
|
1810
|
+
};
|
|
1811
|
+
readonly 'reload-unchanged': {
|
|
1812
|
+
readonly zh: "{{kind}} 无变化";
|
|
1813
|
+
readonly en: "{{kind}} unchanged";
|
|
1814
|
+
};
|
|
1815
|
+
readonly 'reload-skipped-env': {
|
|
1816
|
+
readonly zh: "{{kind}} 跳过:环境变量优先";
|
|
1817
|
+
readonly en: "{{kind}} skipped: env override wins";
|
|
1818
|
+
};
|
|
1819
|
+
readonly 'reload-skipped-config': {
|
|
1820
|
+
readonly zh: "{{kind}} 跳过:显式配置优先";
|
|
1821
|
+
readonly en: "{{kind}} skipped: explicit config wins";
|
|
1822
|
+
};
|
|
1823
|
+
readonly 'reload-skipped-invalid': {
|
|
1824
|
+
readonly zh: "{{kind}} 跳过:文件缺失或无效";
|
|
1825
|
+
readonly en: "{{kind}} skipped: missing or invalid file";
|
|
1826
|
+
};
|
|
1827
|
+
readonly 'reload-footer': {
|
|
1828
|
+
readonly zh: "提示:settings.yaml / cordis.patch.yml 由 watcher 自动热重载;cordis.yml 根配置改动需 /restart";
|
|
1829
|
+
readonly en: "Note: settings.yaml / cordis.patch.yml hot-reload via watchers; cordis.yml root config changes need /restart";
|
|
1830
|
+
};
|
|
1831
|
+
readonly 'reload-kind-theme': {
|
|
1832
|
+
readonly zh: "主题";
|
|
1833
|
+
readonly en: "theme";
|
|
1834
|
+
};
|
|
1835
|
+
readonly 'reload-kind-lang': {
|
|
1836
|
+
readonly zh: "语言";
|
|
1837
|
+
readonly en: "language";
|
|
1838
|
+
};
|
|
1839
|
+
readonly 'reload-kind-preset': {
|
|
1840
|
+
readonly zh: "预设";
|
|
1841
|
+
readonly en: "preset";
|
|
1842
|
+
};
|
|
1843
|
+
readonly 'reload-kind-model': {
|
|
1844
|
+
readonly zh: "模型";
|
|
1845
|
+
readonly en: "model";
|
|
1846
|
+
};
|
|
1847
|
+
readonly 'reload-kind-activity': {
|
|
1848
|
+
readonly zh: "活动指示";
|
|
1849
|
+
readonly en: "activity";
|
|
1850
|
+
};
|
|
1851
|
+
readonly 'restart-starting': {
|
|
1852
|
+
readonly zh: "正在重启 dsh-tui,完成后自动恢复当前会话……";
|
|
1853
|
+
readonly en: "Restarting dsh-tui. The session resumes when it comes back…";
|
|
1854
|
+
};
|
|
1855
|
+
readonly 'restart-unavailable': {
|
|
1856
|
+
readonly zh: "当前运行方式不支持进程内重启(未挂载重启通道)。";
|
|
1857
|
+
readonly en: "Restart is unavailable in this launch mode (no restart channel mounted).";
|
|
1858
|
+
};
|
|
1859
|
+
readonly 'streaming-folded': {
|
|
1860
|
+
readonly zh: "…(前 {{count}} 字符流式期间已折叠,落定后完整显示)";
|
|
1861
|
+
readonly en: "…(first {{count}} chars folded while streaming; full text renders once the turn settles)";
|
|
1862
|
+
};
|
|
1863
|
+
readonly 'mermaid-too-wide': {
|
|
1864
|
+
readonly zh: "(图需要 {{width}} 列,当前宽度不足,显示源码)";
|
|
1865
|
+
readonly en: "(diagram needs {{width}} columns; showing the source)";
|
|
1866
|
+
};
|
|
1867
|
+
readonly 'vim-on': {
|
|
1868
|
+
readonly zh: "vim 模式已开启(Esc 切 normal,i/a/o 回 insert)";
|
|
1869
|
+
readonly en: "vim mode on (Esc = normal, i/a/o = insert)";
|
|
1870
|
+
};
|
|
1871
|
+
readonly 'vim-off': {
|
|
1872
|
+
readonly zh: "vim 模式已关闭";
|
|
1873
|
+
readonly en: "vim mode off";
|
|
1874
|
+
};
|
|
1875
|
+
readonly 'terminal-setup-hint': {
|
|
1876
|
+
readonly zh: "推荐 Windows Terminal(≥110 列、等宽字体、TrueColor)。";
|
|
1877
|
+
readonly en: "Recommended: Windows Terminal (≥110 columns, monospace, TrueColor).";
|
|
1878
|
+
};
|
|
1879
|
+
readonly 'terminal-paste-hint': {
|
|
1880
|
+
readonly zh: "{{mod}}V 或 Alt+V 粘贴文本、文件路径或图片;Ctrl+Shift+V 终端原生粘贴;右键粘贴同样可用;快捷键可在 /settings 修改。";
|
|
1881
|
+
readonly en: "{{mod}}V or Alt+V pastes text, file paths, or images; Ctrl+Shift+V is native terminal paste; right-click paste also works; remappable via /settings.";
|
|
1882
|
+
};
|
|
1883
|
+
readonly 'connect-none': {
|
|
1884
|
+
readonly zh: "当前环境未提供远程连接服务。";
|
|
1885
|
+
readonly en: "No remote connection service is available in this environment.";
|
|
1886
|
+
};
|
|
1887
|
+
readonly 'theme-switch-failed': {
|
|
1888
|
+
readonly zh: "主题「{{name}}」切换失败(无法写入 ~/.dsh-tui/theme.json)";
|
|
1889
|
+
readonly en: "Theme \"{{name}}\" switch failed (cannot write ~/.dsh-tui/theme.json)";
|
|
1890
|
+
};
|
|
1891
|
+
readonly 'interrupt-delivered': {
|
|
1892
|
+
readonly zh: "已打断当前回合,{{n}} 条消息立即处理";
|
|
1893
|
+
readonly en: "Interrupted current turn, {{n}} messages processed immediately";
|
|
1894
|
+
};
|
|
1895
|
+
readonly 'btw-usage': {
|
|
1896
|
+
readonly zh: "用法:/btw <问题> —— 不打断当前对话的快速侧问";
|
|
1897
|
+
readonly en: "Usage: /btw <question> — quick side question without interrupting the conversation";
|
|
1898
|
+
};
|
|
1899
|
+
readonly 'btw-answering': {
|
|
1900
|
+
readonly zh: "思考中…";
|
|
1901
|
+
readonly en: "Answering…";
|
|
1902
|
+
};
|
|
1903
|
+
readonly 'btw-hint-loading': {
|
|
1904
|
+
readonly zh: "Esc 取消";
|
|
1905
|
+
readonly en: "Esc cancel";
|
|
1906
|
+
};
|
|
1907
|
+
readonly 'btw-hint-done': {
|
|
1908
|
+
readonly zh: "↑/↓ 滚动 · Space/Enter/Esc 关闭 · c 复制";
|
|
1909
|
+
readonly en: "↑/↓ scroll · Space/Enter/Esc dismiss · c copy";
|
|
1910
|
+
};
|
|
1911
|
+
readonly 'btw-llm-unavailable': {
|
|
1912
|
+
readonly zh: "侧问不可用(llm 服务未挂载)";
|
|
1913
|
+
readonly en: "Side question unavailable (llm service not mounted)";
|
|
1914
|
+
};
|
|
1915
|
+
readonly 'recap-llm-unavailable': {
|
|
1916
|
+
readonly zh: "recap 不可用(llm 服务未挂载)";
|
|
1917
|
+
readonly en: "Recap unavailable (llm service not mounted)";
|
|
1918
|
+
};
|
|
1919
|
+
readonly 'recap-no-activity': {
|
|
1920
|
+
readonly zh: "会话还没有可总结的活动";
|
|
1921
|
+
readonly en: "No session activity to recap yet";
|
|
1922
|
+
};
|
|
1923
|
+
readonly 'recap-answering': {
|
|
1924
|
+
readonly zh: "正在总结最近活动…";
|
|
1925
|
+
readonly en: "Summarizing recent activity…";
|
|
1926
|
+
};
|
|
1927
|
+
readonly 'recap-title-label': {
|
|
1928
|
+
readonly zh: "建议标题";
|
|
1929
|
+
readonly en: "Suggested title";
|
|
1930
|
+
};
|
|
1931
|
+
readonly 'recap-apply-title': {
|
|
1932
|
+
readonly zh: "应用";
|
|
1933
|
+
readonly en: "Apply";
|
|
1934
|
+
};
|
|
1935
|
+
readonly 'recap-title-applied': {
|
|
1936
|
+
readonly zh: "已应用";
|
|
1937
|
+
readonly en: "Applied";
|
|
1938
|
+
};
|
|
1939
|
+
readonly 'recap-title-applied-notify': {
|
|
1940
|
+
readonly zh: "已将会话标题设为「{{title}}」";
|
|
1941
|
+
readonly en: "Session title set to \"{{title}}\"";
|
|
1942
|
+
};
|
|
1943
|
+
readonly 'recap-hint': {
|
|
1944
|
+
readonly zh: "↑/↓ 滚动 · Space/Enter/Esc 关闭 · c 复制{{apply}}";
|
|
1945
|
+
readonly en: "↑/↓ scroll · Space/Enter/Esc dismiss · c copy{{apply}}";
|
|
1946
|
+
};
|
|
1947
|
+
readonly 'recap-auto-hint': {
|
|
1948
|
+
readonly zh: "点击展开查看/应用";
|
|
1949
|
+
readonly en: "Click to expand & apply";
|
|
1950
|
+
};
|
|
1951
|
+
readonly 'recap-auto-close': {
|
|
1952
|
+
readonly zh: "关闭";
|
|
1953
|
+
readonly en: "Dismiss";
|
|
1954
|
+
};
|
|
1955
|
+
readonly 'recap-auto-line': {
|
|
1956
|
+
readonly zh: "回顾:{{summary}}";
|
|
1957
|
+
readonly en: "Recap: {{summary}}";
|
|
1958
|
+
};
|
|
1959
|
+
readonly 'recap-panel-title': {
|
|
1960
|
+
readonly zh: "会话回顾";
|
|
1961
|
+
readonly en: "Session recap";
|
|
1962
|
+
};
|
|
1963
|
+
readonly 'recap-panel-subtitle': {
|
|
1964
|
+
readonly zh: "最近活动的快速复盘";
|
|
1965
|
+
readonly en: "A quick recap of recent activity";
|
|
1966
|
+
};
|
|
1967
|
+
readonly 'color-current': {
|
|
1968
|
+
readonly zh: "当前会话颜色 {{name}}";
|
|
1969
|
+
readonly en: "Current session color {{name}}";
|
|
1970
|
+
};
|
|
1971
|
+
readonly 'color-current-none': {
|
|
1972
|
+
readonly zh: "当前会话未设置颜色(用主题默认)";
|
|
1973
|
+
readonly en: "No session color set (theme default)";
|
|
1974
|
+
};
|
|
1975
|
+
readonly 'color-usage': {
|
|
1976
|
+
readonly zh: "用法:/color <{{list}}|reset> —— 颜色按会话保存,resume 后仍在";
|
|
1977
|
+
readonly en: "Usage: /color <{{list}}|reset> — per-session, survives resume";
|
|
1978
|
+
};
|
|
1979
|
+
readonly 'color-reset': {
|
|
1980
|
+
readonly zh: "已清除会话颜色,恢复主题默认";
|
|
1981
|
+
readonly en: "Session color cleared — back to the theme default";
|
|
1982
|
+
};
|
|
1983
|
+
readonly 'color-unknown': {
|
|
1984
|
+
readonly zh: "未知颜色「{{name}}」· 可选:{{list}}";
|
|
1985
|
+
readonly en: "Unknown color \"{{name}}\" · available: {{list}}";
|
|
1986
|
+
};
|
|
1987
|
+
readonly 'color-set': {
|
|
1988
|
+
readonly zh: "会话颜色已设为 {{name}}";
|
|
1989
|
+
readonly en: "Session color set to {{name}}";
|
|
1990
|
+
};
|
|
1991
|
+
readonly 'exit-press-again': {
|
|
1992
|
+
readonly zh: "再次按 Ctrl+C 退出";
|
|
1993
|
+
readonly en: "Press Ctrl+C again to exit";
|
|
1994
|
+
};
|
|
1995
|
+
readonly 'esc-again-rewind': {
|
|
1996
|
+
readonly zh: "再次按 Esc 时间回溯";
|
|
1997
|
+
readonly en: "Press Esc again to rewind";
|
|
1998
|
+
};
|
|
1999
|
+
readonly 'esc-again-clear': {
|
|
2000
|
+
readonly zh: "再次按 Esc 清空";
|
|
2001
|
+
readonly en: "Press Esc again to clear";
|
|
2002
|
+
};
|
|
2003
|
+
readonly 'new-session-started': {
|
|
2004
|
+
readonly zh: "已新建会话";
|
|
2005
|
+
readonly en: "New session started";
|
|
2006
|
+
};
|
|
2007
|
+
readonly 'command-not-found': {
|
|
2008
|
+
readonly zh: "/{{name}}:没有这个命令";
|
|
2009
|
+
readonly en: "/{{name}}: no such command";
|
|
2010
|
+
};
|
|
2011
|
+
readonly 'command-images-unsupported': {
|
|
2012
|
+
readonly zh: "/{{name}} 不接受图片;草稿已保留";
|
|
2013
|
+
readonly en: "/{{name}} does not accept images; the draft was preserved";
|
|
2014
|
+
};
|
|
2015
|
+
readonly 'command-images-runtime-unsupported': {
|
|
2016
|
+
readonly zh: "/{{name}}:当前命令运行时不支持图片;草稿已保留";
|
|
2017
|
+
readonly en: "/{{name}}: this command runtime cannot accept images; the draft was preserved";
|
|
2018
|
+
};
|
|
2019
|
+
readonly 'command-images-limit': {
|
|
2020
|
+
readonly zh: "/{{name}}:图片数量或总大小超过当前 profile 限制;草稿已保留";
|
|
2021
|
+
readonly en: "/{{name}}: the image batch exceeds this profile's limits; the draft was preserved";
|
|
2022
|
+
};
|
|
2023
|
+
readonly 'command-images-missing': {
|
|
2024
|
+
readonly zh: "/{{name}}:图片已失效或不可读取({{paths}});草稿已保留";
|
|
2025
|
+
readonly en: "/{{name}}: images are stale or unreadable ({{paths}}); the draft was preserved";
|
|
2026
|
+
};
|
|
2027
|
+
readonly 'command-running': {
|
|
2028
|
+
readonly zh: "命令仍在执行,请等待本次结果";
|
|
2029
|
+
readonly en: "The command is still running; wait for this attempt to settle";
|
|
2030
|
+
};
|
|
2031
|
+
readonly 'command-changed': {
|
|
2032
|
+
readonly zh: "/{{name}} 在图片准备期间发生变化;未执行,草稿已保留";
|
|
2033
|
+
readonly en: "/{{name}} changed while its images were prepared; it was not run and the draft was preserved";
|
|
2034
|
+
};
|
|
2035
|
+
readonly 'shell-images-unsupported': {
|
|
2036
|
+
readonly zh: "Shell 命令不接受图片;草稿已保留";
|
|
2037
|
+
readonly en: "Shell commands do not accept images; the draft was preserved";
|
|
2038
|
+
};
|
|
2039
|
+
readonly 'thinking-toggled': {
|
|
2040
|
+
readonly zh: "思考过程:{{state}}";
|
|
2041
|
+
readonly en: "Thinking display: {{state}}";
|
|
2042
|
+
};
|
|
2043
|
+
readonly 'thinking-on': {
|
|
2044
|
+
readonly zh: "显示";
|
|
2045
|
+
readonly en: "shown";
|
|
2046
|
+
};
|
|
2047
|
+
readonly 'thinking-off': {
|
|
2048
|
+
readonly zh: "隐藏";
|
|
2049
|
+
readonly en: "hidden";
|
|
2050
|
+
};
|
|
2051
|
+
readonly 'tokens-usage': {
|
|
2052
|
+
readonly zh: "Tokens:{{in}} 输入 · {{out}} 输出";
|
|
2053
|
+
readonly en: "Tokens: {{in}} in · {{out}} out";
|
|
2054
|
+
};
|
|
2055
|
+
readonly 'tokens-usage-context': {
|
|
2056
|
+
readonly zh: "{{usage}} · 上下文 {{percent}}%";
|
|
2057
|
+
readonly en: "{{usage}} · {{percent}}% of context";
|
|
2058
|
+
};
|
|
2059
|
+
readonly 'update-aborted-no-profile': {
|
|
2060
|
+
readonly zh: "dsh-tui 更新中止:未解析到 dsh profile。";
|
|
2061
|
+
readonly en: "dsh-tui update aborted: no dsh profile resolved.";
|
|
2062
|
+
};
|
|
2063
|
+
readonly 'update-launcher-align-unknown': {
|
|
2064
|
+
readonly zh: "Profile 已更新到 v{{version}}。如果你平时使用全局 dsh-tui 命令启动,请同步更新全局启动器:\n npm install -g --legacy-peer-deps dsh-cli@{{version}}\n(--legacy-peer-deps 可绕过 npm 12 的 peer 解析崩溃,全局启动器是瘦壳,跳过全局 peer 解析是安全的)";
|
|
2065
|
+
readonly en: "The profile is now v{{version}}. If you normally launch with the global dsh-tui command, align the global launcher too:\n npm install -g --legacy-peer-deps dsh-cli@{{version}}\n(--legacy-peer-deps works around an npm 12 peer-resolution crash; the global launcher is a thin shim, so skipping global peer resolution is safe.)";
|
|
2066
|
+
};
|
|
2067
|
+
readonly 'update-launcher-outdated': {
|
|
2068
|
+
readonly zh: "Profile 已更新到 v{{profile}},但全局启动器仍是 v{{launcher}}。请同步更新:\n npm install -g --legacy-peer-deps dsh-cli@{{profile}}\n(--legacy-peer-deps 可绕过 npm 12 的 peer 解析崩溃,见 #459)";
|
|
2069
|
+
readonly en: "The profile is now v{{profile}}, but the global launcher is still v{{launcher}}. Align it with:\n npm install -g --legacy-peer-deps dsh-cli@{{profile}}\n(--legacy-peer-deps works around an npm 12 peer-resolution crash, see #459.)";
|
|
2070
|
+
};
|
|
2071
|
+
readonly 'activity-ctx-warn': {
|
|
2072
|
+
readonly zh: "⚠ 上下文";
|
|
2073
|
+
readonly en: "⚠ ctx ";
|
|
2074
|
+
};
|
|
2075
|
+
readonly 'activity-random-each-preset': {
|
|
2076
|
+
readonly zh: "每次随机一个预设";
|
|
2077
|
+
readonly en: "random preset each time";
|
|
2078
|
+
};
|
|
2079
|
+
readonly 'preset-default-tag': {
|
|
2080
|
+
readonly zh: "(默认)";
|
|
2081
|
+
readonly en: " (default)";
|
|
2082
|
+
};
|
|
2083
|
+
readonly 'preset-broken-tag': {
|
|
2084
|
+
readonly zh: "(无法加载)";
|
|
2085
|
+
readonly en: " (failed to load)";
|
|
2086
|
+
};
|
|
2087
|
+
readonly 'effort-unavailable': {
|
|
2088
|
+
readonly zh: "推理等级切换不可用(llm 服务未挂载)";
|
|
2089
|
+
readonly en: "Reasoning effort switching unavailable (llm service not mounted)";
|
|
2090
|
+
};
|
|
2091
|
+
readonly 'effort-read-failed': {
|
|
2092
|
+
readonly zh: "推理等级读取失败 · {{error}}";
|
|
2093
|
+
readonly en: "Failed to read reasoning efforts · {{error}}";
|
|
2094
|
+
};
|
|
2095
|
+
readonly 'effort-single-tier': {
|
|
2096
|
+
readonly zh: "当前模型只有一档推理等级({{name}})";
|
|
2097
|
+
readonly en: "Current model has a single reasoning effort ({{name}})";
|
|
2098
|
+
};
|
|
2099
|
+
readonly 'effort-unsupported': {
|
|
2100
|
+
readonly zh: "当前模型不支持推理等级切换";
|
|
2101
|
+
readonly en: "Current model does not support reasoning effort switching";
|
|
2102
|
+
};
|
|
2103
|
+
readonly 'effort-preference-downgraded': {
|
|
2104
|
+
readonly zh: "偏好推理强度 {{preferred}} 不被当前模型支持,已就近降档至 {{applied}}";
|
|
2105
|
+
readonly en: "Preferred reasoning effort {{preferred}} is unavailable on this model; fell back to the nearest lower tier {{applied}}";
|
|
2106
|
+
};
|
|
2107
|
+
readonly 'effort-preference-unsupported': {
|
|
2108
|
+
readonly zh: "偏好推理强度 {{preferred}} 不被当前模型支持,且无更低可用档,保持模型默认";
|
|
2109
|
+
readonly en: "Preferred reasoning effort {{preferred}} is unavailable on this model with no lower tier; keeping the model default";
|
|
2110
|
+
};
|
|
2111
|
+
readonly 'effort-switched': {
|
|
2112
|
+
readonly zh: "推理强度 → {{name}}";
|
|
2113
|
+
readonly en: "Reasoning effort → {{name}}";
|
|
2114
|
+
};
|
|
2115
|
+
readonly 'effort-invalid': {
|
|
2116
|
+
readonly zh: "未知推理等级 {{id}}(当前模型可选:{{ids}})";
|
|
2117
|
+
readonly en: "Unknown reasoning effort {{id}} (this model offers: {{ids}})";
|
|
2118
|
+
};
|
|
2119
|
+
readonly 'effort-current': {
|
|
2120
|
+
readonly zh: "当前推理强度 {{name}}";
|
|
2121
|
+
readonly en: "Current reasoning effort {{name}}";
|
|
2122
|
+
};
|
|
2123
|
+
readonly 'effort-usage': {
|
|
2124
|
+
readonly zh: "用法:/effort(滑杆)| /effort <id> | /effort status";
|
|
2125
|
+
readonly en: "Usage: /effort (slider) | /effort <id> | /effort status";
|
|
2126
|
+
};
|
|
2127
|
+
readonly 'mode-switched': {
|
|
2128
|
+
readonly zh: "模式 → {{name}}";
|
|
2129
|
+
readonly en: "Mode → {{name}}";
|
|
2130
|
+
};
|
|
2131
|
+
readonly 'mode-default': {
|
|
2132
|
+
readonly zh: "默认";
|
|
2133
|
+
readonly en: "default";
|
|
2134
|
+
};
|
|
2135
|
+
readonly 'mode-plan': {
|
|
2136
|
+
readonly zh: "计划模式";
|
|
2137
|
+
readonly en: "plan mode";
|
|
2138
|
+
};
|
|
2139
|
+
readonly 'mode-full': {
|
|
2140
|
+
readonly zh: "完全访问";
|
|
2141
|
+
readonly en: "full access";
|
|
2142
|
+
};
|
|
2143
|
+
readonly 'mode-plan-unavailable': {
|
|
2144
|
+
readonly zh: "当前 preset 未注册 /plan 命令,无法切换计划模式";
|
|
2145
|
+
readonly en: "The active preset does not register /plan; cannot toggle plan mode";
|
|
2146
|
+
};
|
|
2147
|
+
readonly 'mode-permission-unregistered': {
|
|
2148
|
+
readonly zh: "当前 preset 未注册 /permission 命令,无法切换权限模式";
|
|
2149
|
+
readonly en: "The active preset does not register /permission; cannot switch the permission mode";
|
|
2150
|
+
};
|
|
2151
|
+
readonly 'mode-permission-invoke-failed': {
|
|
2152
|
+
readonly zh: "/permission 切换失败,请重试或查看日志";
|
|
2153
|
+
readonly en: "/permission switch failed; retry or check the logs";
|
|
2154
|
+
};
|
|
2155
|
+
readonly 'mode-permission-unconfirmed': {
|
|
2156
|
+
readonly zh: "权限切换未被 DSH 确认,模式未改变";
|
|
2157
|
+
readonly en: "The permission switch was not confirmed by DSH; the mode is unchanged";
|
|
2158
|
+
};
|
|
2159
|
+
readonly 'mode-permission-no-canonical': {
|
|
2160
|
+
readonly zh: "模式「{{name}}」的 sandbox/approval 组合没有对应权限预设,无法安全切换";
|
|
2161
|
+
readonly en: "Mode \"{{name}}\" has no matching permission preset for its sandbox/approval combo; cannot switch safely";
|
|
2162
|
+
};
|
|
2163
|
+
readonly 'cmd-desc-permission': {
|
|
2164
|
+
readonly zh: "切换权限预设(沙箱模式 + 审批策略)";
|
|
2165
|
+
readonly en: "Switch the permission preset (sandbox mode + approval policy)";
|
|
2166
|
+
};
|
|
2167
|
+
readonly 'logo-tagline': {
|
|
2168
|
+
readonly zh: "探索未至之境!";
|
|
2169
|
+
readonly en: "Explore the uncharted!";
|
|
2170
|
+
};
|
|
2171
|
+
readonly 'logo-tip-prefix': {
|
|
2172
|
+
readonly zh: "提示:";
|
|
2173
|
+
readonly en: "Tip: ";
|
|
2174
|
+
};
|
|
2175
|
+
readonly 'logo-tip-more': {
|
|
2176
|
+
readonly zh: "更多技巧";
|
|
2177
|
+
readonly en: "more tips";
|
|
2178
|
+
};
|
|
2179
|
+
readonly 'logo-drift-newer': {
|
|
2180
|
+
readonly zh: "dsh 引擎为 {{installed}},比本界面验证过的 {{validated}} 新,可能出现兼容问题;求稳可执行 npm i -g @deepseek-ai/dsh@{{primary}} 降级,或等待 dsh-tui 适配新版。";
|
|
2181
|
+
readonly en: "The dsh engine ({{installed}}) is newer than the {{validated}} this UI is validated against, so issues are possible; downgrade via npm i -g @deepseek-ai/dsh@{{primary}} for stability, or wait for a dsh-tui update.";
|
|
2182
|
+
};
|
|
2183
|
+
readonly 'logo-drift-older': {
|
|
2184
|
+
readonly zh: "dsh 引擎为 {{installed}},低于本界面验证过的 {{validated}},部分功能可能不可用;建议执行 npm i -g @deepseek-ai/dsh@{{primary}} 升级。";
|
|
2185
|
+
readonly en: "The dsh engine ({{installed}}) is older than the {{validated}} this UI is validated against; some features may be missing. Upgrade via npm i -g @deepseek-ai/dsh@{{primary}}.";
|
|
2186
|
+
};
|
|
2187
|
+
readonly 'logo-drift-mixed': {
|
|
2188
|
+
readonly zh: "检测到 dsh 引擎多版本混装({{installed}}),容易出现奇怪问题;建议执行 npm i -g @deepseek-ai/dsh@{{primary}} 统一版本。";
|
|
2189
|
+
readonly en: "Mixed dsh engine versions detected ({{installed}}), which can cause odd behavior; unify them via npm i -g @deepseek-ai/dsh@{{primary}}.";
|
|
2190
|
+
};
|
|
2191
|
+
readonly 'logo-drift-broken': {
|
|
2192
|
+
readonly zh: "dsh 引擎版本异常({{installed}}),本界面验证过 {{validated}};建议执行 npm i -g @deepseek-ai/dsh@{{primary}} 重装。";
|
|
2193
|
+
readonly en: "Unexpected dsh engine versions ({{installed}}); this UI is validated against {{validated}}. Reinstall via npm i -g @deepseek-ai/dsh@{{primary}}.";
|
|
2194
|
+
};
|
|
2195
|
+
readonly 'input-sent-after-turn': {
|
|
2196
|
+
readonly zh: "已发送,当前回合结束后处理";
|
|
2197
|
+
readonly en: "Sent, processed after the current turn";
|
|
2198
|
+
};
|
|
2199
|
+
readonly 'input-injected': {
|
|
2200
|
+
readonly zh: "已从编辑器发送";
|
|
2201
|
+
readonly en: "Sent from editor";
|
|
2202
|
+
};
|
|
2203
|
+
readonly 'input-interrupted-next': {
|
|
2204
|
+
readonly zh: "已插话 · 下一步立即处理";
|
|
2205
|
+
readonly en: "Interrupted · processed next";
|
|
2206
|
+
};
|
|
2207
|
+
readonly 'input-queued-after-turn': {
|
|
2208
|
+
readonly zh: "已排队 · 回合结束后处理";
|
|
2209
|
+
readonly en: "Queued · processed after the turn";
|
|
2210
|
+
};
|
|
2211
|
+
readonly 'input-cannot-retract': {
|
|
2212
|
+
readonly zh: "无法撤回:消息可能已被处理,或当前版本不支持";
|
|
2213
|
+
readonly en: "Cannot retract: the message may already be processed, or this version doesn't support it";
|
|
2214
|
+
};
|
|
2215
|
+
readonly 'input-retracted': {
|
|
2216
|
+
readonly zh: "已撤回,可编辑后重新发送";
|
|
2217
|
+
readonly en: "Retracted, editable and resendable";
|
|
2218
|
+
};
|
|
2219
|
+
readonly 'input-empty': {
|
|
2220
|
+
readonly zh: "输入为空,没有可发送的内容";
|
|
2221
|
+
readonly en: "Empty input, nothing to send";
|
|
2222
|
+
};
|
|
2223
|
+
readonly 'input-interrupt-immediate': {
|
|
2224
|
+
readonly zh: "已打断当前回合,正在立即处理";
|
|
2225
|
+
readonly en: "Interrupted current turn, processing immediately";
|
|
2226
|
+
};
|
|
2227
|
+
readonly 'input-clipboard-empty': {
|
|
2228
|
+
readonly zh: "剪贴板为空";
|
|
2229
|
+
readonly en: "Clipboard is empty";
|
|
2230
|
+
};
|
|
2231
|
+
readonly 'input-editor-unavailable': {
|
|
2232
|
+
readonly zh: "错误:未配置编辑器。请设置 $VISUAL 或 $EDITOR 环境变量。";
|
|
2233
|
+
readonly en: "Error: No editor configured. Set $VISUAL or $EDITOR environment variable.";
|
|
2234
|
+
};
|
|
2235
|
+
readonly 'input-editor-failed': {
|
|
2236
|
+
readonly zh: "外部编辑器失败:{{name}}";
|
|
2237
|
+
readonly en: "External editor failed: {{name}}";
|
|
2238
|
+
};
|
|
2239
|
+
readonly 'input-clipboard-read-failed': {
|
|
2240
|
+
readonly zh: "读取剪贴板失败";
|
|
2241
|
+
readonly en: "Failed to read the clipboard";
|
|
2242
|
+
};
|
|
2243
|
+
readonly 'input-clipboard-unavailable': {
|
|
2244
|
+
readonly zh: "无法读取剪贴板:没有可用的 wl-paste / xclip / xsel(未安装或会话不可连接)";
|
|
2245
|
+
readonly en: "Cannot read clipboard: no usable wl-paste / xclip / xsel (not installed or session unreachable)";
|
|
2246
|
+
};
|
|
2247
|
+
readonly 'input-image-pasted': {
|
|
2248
|
+
readonly zh: "已粘贴图片 {{token}}";
|
|
2249
|
+
readonly en: "Pasted image {{token}}";
|
|
2250
|
+
};
|
|
2251
|
+
readonly 'input-image-pasted-adjusted': {
|
|
2252
|
+
readonly zh: "已粘贴图片 {{token}}({{detail}})";
|
|
2253
|
+
readonly en: "Pasted image {{token}} ({{detail}})";
|
|
2254
|
+
};
|
|
2255
|
+
readonly 'input-image-detail-resized': {
|
|
2256
|
+
readonly zh: "已缩放至 {{width}}×{{height}}";
|
|
2257
|
+
readonly en: "resized to {{width}}×{{height}}";
|
|
2258
|
+
};
|
|
2259
|
+
readonly 'input-image-detail-converted': {
|
|
2260
|
+
readonly zh: "{{from}} 已转 {{to}}";
|
|
2261
|
+
readonly en: "{{from}} converted to {{to}}";
|
|
2262
|
+
};
|
|
2263
|
+
readonly 'input-image-detail-converted-flattened': {
|
|
2264
|
+
readonly zh: "{{from}} 已转 {{to}},透明区域已填白";
|
|
2265
|
+
readonly en: "{{from}} converted to {{to}}, transparency filled white";
|
|
2266
|
+
};
|
|
2267
|
+
readonly 'input-image-paste-failed': {
|
|
2268
|
+
readonly zh: "粘贴图片失败:{{err}}";
|
|
2269
|
+
readonly en: "Could not paste image: {{err}}";
|
|
2270
|
+
};
|
|
2271
|
+
readonly 'input-image-paste-limit': {
|
|
2272
|
+
readonly zh: "图片数量超过当前配置的单条消息上限";
|
|
2273
|
+
readonly en: "Image count exceeds the per-message limit for this profile";
|
|
2274
|
+
};
|
|
2275
|
+
readonly 'input-image-format-unsupported': {
|
|
2276
|
+
readonly zh: "剪贴板图片格式不受支持;请使用 PNG、JPEG、WebP 或 GIF";
|
|
2277
|
+
readonly en: "Clipboard image format is unsupported; use PNG, JPEG, WebP, or GIF";
|
|
2278
|
+
};
|
|
2279
|
+
readonly 'input-pending-steer-label': {
|
|
2280
|
+
readonly zh: "插话 · 下一步送达";
|
|
2281
|
+
readonly en: "Steer · delivered next";
|
|
2282
|
+
};
|
|
2283
|
+
readonly 'input-pending-queue-label': {
|
|
2284
|
+
readonly zh: "排队 · 回合结束后送达";
|
|
2285
|
+
readonly en: "Queued · delivered after the turn";
|
|
2286
|
+
};
|
|
2287
|
+
readonly 'input-pending-actions-hint': {
|
|
2288
|
+
readonly zh: "撤回 · Esc 打断并立即发送";
|
|
2289
|
+
readonly en: "Retract · Esc interrupts and sends immediately";
|
|
2290
|
+
};
|
|
2291
|
+
readonly 'input-fold-stats': {
|
|
2292
|
+
readonly zh: "{{lines}} 行・{{chars}} 字";
|
|
2293
|
+
readonly en: "{{lines}} lines・{{chars}} chars";
|
|
2294
|
+
};
|
|
2295
|
+
readonly 'input-fold-hover': {
|
|
2296
|
+
readonly zh: "悬停查看";
|
|
2297
|
+
readonly en: "hover to peek";
|
|
2298
|
+
};
|
|
2299
|
+
readonly 'input-fold-peek-footer': {
|
|
2300
|
+
readonly zh: "… 共 {{lines}} 行・点击展开编辑";
|
|
2301
|
+
readonly en: "… {{lines}} lines total・click to edit";
|
|
2302
|
+
};
|
|
2303
|
+
readonly 'input-expand-editor-title': {
|
|
2304
|
+
readonly zh: "草稿编辑";
|
|
2305
|
+
readonly en: "Draft editor";
|
|
2306
|
+
};
|
|
2307
|
+
readonly 'input-expand-editor-position': {
|
|
2308
|
+
readonly zh: "行 {{line}} · 列 {{col}}";
|
|
2309
|
+
readonly en: "Ln {{line}}, Col {{col}}";
|
|
2310
|
+
};
|
|
2311
|
+
readonly 'input-expand-editor-scroll': {
|
|
2312
|
+
readonly zh: "滚轮翻动 · 光标行自动跟随";
|
|
2313
|
+
readonly en: "wheel scrolls · caret row follows";
|
|
2314
|
+
};
|
|
2315
|
+
readonly 'input-expand-editor-send': {
|
|
2316
|
+
readonly zh: "发送";
|
|
2317
|
+
readonly en: "Send";
|
|
2318
|
+
};
|
|
2319
|
+
readonly 'input-expand-editor-collapse': {
|
|
2320
|
+
readonly zh: "收起";
|
|
2321
|
+
readonly en: "Collapse";
|
|
2322
|
+
};
|
|
2323
|
+
readonly 'input-expand-editor-hint-send': {
|
|
2324
|
+
readonly zh: "Ctrl+Enter 发送";
|
|
2325
|
+
readonly en: "Ctrl+Enter sends";
|
|
2326
|
+
};
|
|
2327
|
+
readonly 'input-expand-editor-hint-collapse': {
|
|
2328
|
+
readonly zh: "Esc 收起";
|
|
2329
|
+
readonly en: "Esc collapses";
|
|
2330
|
+
};
|
|
2331
|
+
readonly 'tool-tip-started': {
|
|
2332
|
+
readonly zh: "开始 {{time}}";
|
|
2333
|
+
readonly en: "started {{time}}";
|
|
2334
|
+
};
|
|
2335
|
+
readonly 'tool-tip-finished': {
|
|
2336
|
+
readonly zh: "结束 {{time}}";
|
|
2337
|
+
readonly en: "finished {{time}}";
|
|
2338
|
+
};
|
|
2339
|
+
readonly 'tool-tip-failed': {
|
|
2340
|
+
readonly zh: "失败 {{time}}";
|
|
2341
|
+
readonly en: "failed {{time}}";
|
|
2342
|
+
};
|
|
2343
|
+
readonly 'tool-tip-exit': {
|
|
2344
|
+
readonly zh: "退出码 {{code}}";
|
|
2345
|
+
readonly en: "exit {{code}}";
|
|
2346
|
+
};
|
|
2347
|
+
readonly 'tool-tip-signal': {
|
|
2348
|
+
readonly zh: "信号 {{name}}";
|
|
2349
|
+
readonly en: "signal {{name}}";
|
|
2350
|
+
};
|
|
2351
|
+
readonly 'tool-name-bash': {
|
|
2352
|
+
readonly zh: "Bash";
|
|
2353
|
+
readonly en: "Bash";
|
|
2354
|
+
};
|
|
2355
|
+
readonly 'tool-name-powershell': {
|
|
2356
|
+
readonly zh: "PowerShell";
|
|
2357
|
+
readonly en: "PowerShell";
|
|
2358
|
+
};
|
|
2359
|
+
readonly 'tool-name-read': {
|
|
2360
|
+
readonly zh: "读取";
|
|
2361
|
+
readonly en: "Read";
|
|
2362
|
+
};
|
|
2363
|
+
readonly 'tool-name-glob': {
|
|
2364
|
+
readonly zh: "文件搜索";
|
|
2365
|
+
readonly en: "Glob";
|
|
2366
|
+
};
|
|
2367
|
+
readonly 'tool-name-grep': {
|
|
2368
|
+
readonly zh: "内容搜索";
|
|
2369
|
+
readonly en: "Grep";
|
|
2370
|
+
};
|
|
2371
|
+
readonly 'tool-name-write': {
|
|
2372
|
+
readonly zh: "写入";
|
|
2373
|
+
readonly en: "Write";
|
|
2374
|
+
};
|
|
2375
|
+
readonly 'tool-name-edit': {
|
|
2376
|
+
readonly zh: "编辑";
|
|
2377
|
+
readonly en: "Edit";
|
|
2378
|
+
};
|
|
2379
|
+
readonly 'tool-name-todo_write': {
|
|
2380
|
+
readonly zh: "待办清单";
|
|
2381
|
+
readonly en: "TodoWrite";
|
|
2382
|
+
};
|
|
2383
|
+
readonly 'tool-name-subagent': {
|
|
2384
|
+
readonly zh: "子代理";
|
|
2385
|
+
readonly en: "Task";
|
|
2386
|
+
};
|
|
2387
|
+
readonly 'tool-name-web_search': {
|
|
2388
|
+
readonly zh: "联网搜索";
|
|
2389
|
+
readonly en: "WebSearch";
|
|
2390
|
+
};
|
|
2391
|
+
readonly 'tool-exit-code': {
|
|
2392
|
+
readonly zh: "退出码 {{code}}";
|
|
2393
|
+
readonly en: "Exit code {{code}}";
|
|
2394
|
+
};
|
|
2395
|
+
readonly 'tool-killed-signal': {
|
|
2396
|
+
readonly zh: "被信号 {{name}} 终止";
|
|
2397
|
+
readonly en: "Killed by signal {{name}}";
|
|
2398
|
+
};
|
|
2399
|
+
readonly 'tool-running-elapsed': {
|
|
2400
|
+
readonly zh: "运行中…({{duration}})";
|
|
2401
|
+
readonly en: "Running… ({{duration}})";
|
|
2402
|
+
};
|
|
2403
|
+
readonly 'search-results-total': {
|
|
2404
|
+
readonly zh: "…(共 {{n}} 条)";
|
|
2405
|
+
readonly en: "… ({{n}} total)";
|
|
2406
|
+
};
|
|
2407
|
+
readonly 'lines-folded-expand': {
|
|
2408
|
+
readonly zh: "… +{{n}} 行(ctrl+o 展开)";
|
|
2409
|
+
readonly en: "… +{{n}} lines (ctrl+o to expand)";
|
|
2410
|
+
};
|
|
2411
|
+
readonly 'sugg-commands-title': {
|
|
2412
|
+
readonly zh: "命令";
|
|
2413
|
+
readonly en: "commands";
|
|
2414
|
+
};
|
|
2415
|
+
readonly 'sugg-files-title': {
|
|
2416
|
+
readonly zh: "文件";
|
|
2417
|
+
readonly en: "files";
|
|
2418
|
+
};
|
|
2419
|
+
readonly 'sugg-count': {
|
|
2420
|
+
readonly zh: "共 {{n}} 项";
|
|
2421
|
+
readonly en: "{{n}} items";
|
|
2422
|
+
};
|
|
2423
|
+
readonly 'sugg-more-above': {
|
|
2424
|
+
readonly zh: "↑{{n}}";
|
|
2425
|
+
readonly en: "↑{{n}}";
|
|
2426
|
+
};
|
|
2427
|
+
readonly 'sugg-more-below': {
|
|
2428
|
+
readonly zh: "↓{{n}}";
|
|
2429
|
+
readonly en: "↓{{n}}";
|
|
2430
|
+
};
|
|
2431
|
+
readonly 'sugg-status-desc': {
|
|
2432
|
+
readonly zh: "显示当前选择";
|
|
2433
|
+
readonly en: "Show the current choice";
|
|
2434
|
+
};
|
|
2435
|
+
readonly 'sugg-lang-zh-desc': {
|
|
2436
|
+
readonly zh: "切换界面语言到中文";
|
|
2437
|
+
readonly en: "Switch the UI language to Chinese";
|
|
2438
|
+
};
|
|
2439
|
+
readonly 'sugg-lang-en-desc': {
|
|
2440
|
+
readonly zh: "切换界面语言到英文";
|
|
2441
|
+
readonly en: "Switch the UI language to English";
|
|
2442
|
+
};
|
|
2443
|
+
readonly 'sugg-theme-auto-desc': {
|
|
2444
|
+
readonly zh: "跟随终端背景自动切换";
|
|
2445
|
+
readonly en: "Follow the terminal background";
|
|
2446
|
+
};
|
|
2447
|
+
readonly 'sugg-theme-builtin-desc': {
|
|
2448
|
+
readonly zh: "内置主题";
|
|
2449
|
+
readonly en: "Built-in theme";
|
|
2450
|
+
};
|
|
2451
|
+
readonly 'sugg-theme-user-desc': {
|
|
2452
|
+
readonly zh: "用户主题({{base}} 基底)";
|
|
2453
|
+
readonly en: "User theme ({{base}} base)";
|
|
2454
|
+
};
|
|
2455
|
+
readonly 'sugg-theme-plugin-desc': {
|
|
2456
|
+
readonly zh: "插件主题({{base}} 基底)";
|
|
2457
|
+
readonly en: "Plugin theme ({{base}} base)";
|
|
2458
|
+
};
|
|
2459
|
+
readonly 'sugg-effort-level-desc': {
|
|
2460
|
+
readonly zh: "思考强度档位";
|
|
2461
|
+
readonly en: "Reasoning effort level";
|
|
2462
|
+
};
|
|
2463
|
+
readonly 'sugg-activity-frames-desc': {
|
|
2464
|
+
readonly zh: "列出或切换动画帧预设";
|
|
2465
|
+
readonly en: "List or switch frame presets";
|
|
2466
|
+
};
|
|
2467
|
+
readonly 'sugg-activity-frame-desc': {
|
|
2468
|
+
readonly zh: "动画帧预设";
|
|
2469
|
+
readonly en: "Animation frame preset";
|
|
2470
|
+
};
|
|
2471
|
+
readonly 'sugg-color-reset-desc': {
|
|
2472
|
+
readonly zh: "清除会话颜色,恢复主题默认";
|
|
2473
|
+
readonly en: "Clear the session color";
|
|
2474
|
+
};
|
|
2475
|
+
readonly 'sugg-color-name-desc': {
|
|
2476
|
+
readonly zh: "会话强调色";
|
|
2477
|
+
readonly en: "Session accent color";
|
|
2478
|
+
};
|
|
2479
|
+
readonly 'settings-fullscreen-restart': {
|
|
2480
|
+
readonly zh: "全屏设置已保存,重启 dsh-tui 后生效";
|
|
2481
|
+
readonly en: "Fullscreen preference saved — restart dsh-tui to apply";
|
|
2482
|
+
};
|
|
2483
|
+
readonly 'settings-terminal-images-restart': {
|
|
2484
|
+
readonly zh: "图片预览设置已保存,使用 /restart 重启 TUI 后生效";
|
|
2485
|
+
readonly en: "Image preview preference saved — use /restart to apply";
|
|
2486
|
+
};
|
|
2487
|
+
readonly 'settings-fullscreen-migrated': {
|
|
2488
|
+
readonly zh: "全屏已是出厂默认(已清除更新前的 inline 选择);偏好 inline 可在 /settings 改回";
|
|
2489
|
+
readonly en: "Fullscreen is now the factory default (pre-update inline choice cleared); prefer inline? Switch back in /settings";
|
|
2490
|
+
};
|
|
2491
|
+
readonly 'help-for-commands': {
|
|
2492
|
+
readonly zh: "/ 查看命令";
|
|
2493
|
+
readonly en: "/ for commands";
|
|
2494
|
+
};
|
|
2495
|
+
readonly 'help-this-help': {
|
|
2496
|
+
readonly zh: "? 查看本帮助";
|
|
2497
|
+
readonly en: "? for this help";
|
|
2498
|
+
};
|
|
2499
|
+
readonly 'help-verbose-output': {
|
|
2500
|
+
readonly zh: "{{mod}}o 详细输出";
|
|
2501
|
+
readonly en: "{{mod}}o for verbose output";
|
|
2502
|
+
};
|
|
2503
|
+
readonly 'help-open-trajectory': {
|
|
2504
|
+
readonly zh: "{{mod}}t 打开会话轨迹";
|
|
2505
|
+
readonly en: "{{mod}}t to open trajectory";
|
|
2506
|
+
};
|
|
2507
|
+
readonly 'help-search-history': {
|
|
2508
|
+
readonly zh: "{{mod}}r 搜索历史";
|
|
2509
|
+
readonly en: "{{mod}}r to search history";
|
|
2510
|
+
};
|
|
2511
|
+
readonly 'help-interrupt': {
|
|
2512
|
+
readonly zh: "ctrl+c 打断";
|
|
2513
|
+
readonly en: "ctrl+c to interrupt";
|
|
2514
|
+
};
|
|
2515
|
+
readonly 'help-exit': {
|
|
2516
|
+
readonly zh: "ctrl+d 退出";
|
|
2517
|
+
readonly en: "ctrl+d to exit";
|
|
2518
|
+
};
|
|
2519
|
+
readonly 'help-redraw': {
|
|
2520
|
+
readonly zh: "{{mod}}l 重绘";
|
|
2521
|
+
readonly en: "{{mod}}l to redraw";
|
|
2522
|
+
};
|
|
2523
|
+
readonly 'help-clear-input': {
|
|
2524
|
+
readonly zh: "esc 清空输入";
|
|
2525
|
+
readonly en: "esc to clear input";
|
|
2526
|
+
};
|
|
2527
|
+
readonly 'help-history-nav': {
|
|
2528
|
+
readonly zh: "↑/↓ 历史";
|
|
2529
|
+
readonly en: "↑/↓ for history";
|
|
2530
|
+
};
|
|
2531
|
+
readonly 'help-move-cursor': {
|
|
2532
|
+
readonly zh: "←/→ 移动光标";
|
|
2533
|
+
readonly en: "←/→ to move cursor";
|
|
2534
|
+
};
|
|
2535
|
+
readonly 'help-word-jumps': {
|
|
2536
|
+
readonly zh: "{{mod}}←/→ 按词跳转";
|
|
2537
|
+
readonly en: "{{mod}}←/→ for word jumps";
|
|
2538
|
+
};
|
|
2539
|
+
readonly 'help-complete-command': {
|
|
2540
|
+
readonly zh: "tab 补全命令";
|
|
2541
|
+
readonly en: "tab to complete command";
|
|
2542
|
+
};
|
|
2543
|
+
readonly 'help-cycle-mode': {
|
|
2544
|
+
readonly zh: "shift+tab 切换模式";
|
|
2545
|
+
readonly en: "shift+tab to cycle mode";
|
|
2546
|
+
};
|
|
2547
|
+
readonly 'help-open-editor': {
|
|
2548
|
+
readonly zh: "ctrl+g 打开编辑器";
|
|
2549
|
+
readonly en: "ctrl+g to open editor";
|
|
2550
|
+
};
|
|
2551
|
+
readonly 'help-fold-todos': {
|
|
2552
|
+
readonly zh: "{{mod}}q 折叠待办";
|
|
2553
|
+
readonly en: "{{mod}}q to fold todos";
|
|
2554
|
+
};
|
|
2555
|
+
readonly 'goal-todo-fold-hint': {
|
|
2556
|
+
readonly zh: "{{mod}}q 折叠";
|
|
2557
|
+
readonly en: "{{mod}}q to fold";
|
|
2558
|
+
};
|
|
2559
|
+
readonly 'help-commands-title': {
|
|
2560
|
+
readonly zh: "命令:";
|
|
2561
|
+
readonly en: "commands:";
|
|
2562
|
+
};
|
|
2563
|
+
readonly 'help-scroll-hint': {
|
|
2564
|
+
readonly zh: "↑/↓ 滚动 · PgUp/PgDn 翻页 · Home/End 首尾 · Esc 关闭";
|
|
2565
|
+
readonly en: "↑/↓ scroll · PgUp/PgDn page · Home/End jump · Esc close";
|
|
2566
|
+
};
|
|
2567
|
+
readonly 'tips-title': {
|
|
2568
|
+
readonly zh: "使用技巧(快捷键 · 命令 · 工作流 · 个性化 · 避坑)";
|
|
2569
|
+
readonly en: "Usage tips (shortcuts · commands · workflow · display · gotchas)";
|
|
2570
|
+
};
|
|
2571
|
+
readonly 'tips-hint': {
|
|
2572
|
+
readonly zh: "↑/↓ 滚动 · Esc 关闭";
|
|
2573
|
+
readonly en: "↑/↓ scroll · Esc to close";
|
|
2574
|
+
};
|
|
2575
|
+
readonly 'interrupted-by-user': {
|
|
2576
|
+
readonly zh: "已打断 ";
|
|
2577
|
+
readonly en: "Interrupted ";
|
|
2578
|
+
};
|
|
2579
|
+
readonly 'interrupted-ask-next': {
|
|
2580
|
+
readonly zh: "· 接下来想让 DeepSeek 做什么?";
|
|
2581
|
+
readonly en: "· What should DeepSeek do instead?";
|
|
2582
|
+
};
|
|
2583
|
+
readonly 'load-earlier': {
|
|
2584
|
+
readonly zh: " ↑ 加载更早消息(会话日志完整,/export 导出全文) ";
|
|
2585
|
+
readonly en: " ↑ load earlier messages (full session log; /export for full text) ";
|
|
2586
|
+
};
|
|
2587
|
+
readonly 'show-previous-messages': {
|
|
2588
|
+
readonly zh: " ctrl+e 显示前 {{n}} 条消息 ";
|
|
2589
|
+
readonly en: " ctrl+e to show {{n}} previous messages ";
|
|
2590
|
+
};
|
|
2591
|
+
readonly 'resume-resumed': {
|
|
2592
|
+
readonly zh: "已恢复会话";
|
|
2593
|
+
readonly en: "Session resumed";
|
|
2594
|
+
};
|
|
2595
|
+
readonly 'agentview-empty-prompt': {
|
|
2596
|
+
readonly zh: "派发内容不能为空";
|
|
2597
|
+
readonly en: "Dispatch prompt cannot be empty";
|
|
2598
|
+
};
|
|
2599
|
+
readonly 'agentview-dispatch-unavailable': {
|
|
2600
|
+
readonly zh: "无法派发后台会话——agent 服务不可用";
|
|
2601
|
+
readonly en: "Cannot dispatch a background session — the agent service is unavailable";
|
|
2602
|
+
};
|
|
2603
|
+
readonly 'agentview-dispatch-failed': {
|
|
2604
|
+
readonly zh: "后台会话创建失败 · {{err}}";
|
|
2605
|
+
readonly en: "Background session creation failed · {{err}}";
|
|
2606
|
+
};
|
|
2607
|
+
readonly 'agentview-reply-empty': {
|
|
2608
|
+
readonly zh: "回复内容为空";
|
|
2609
|
+
readonly en: "Reply is empty";
|
|
2610
|
+
};
|
|
2611
|
+
readonly 'agentview-reply-stopped': {
|
|
2612
|
+
readonly zh: "该会话未运行——回车切换进去后回复";
|
|
2613
|
+
readonly en: "This session is not running — press Enter to attach and reply";
|
|
2614
|
+
};
|
|
2615
|
+
readonly 'approval-background-agent': {
|
|
2616
|
+
readonly zh: "来自后台会话 {{id}} 的审批请求";
|
|
2617
|
+
readonly en: "Approval request from background session {{id}}";
|
|
2618
|
+
};
|
|
2619
|
+
readonly 'input-background-hint-count': {
|
|
2620
|
+
readonly zh: "← {{n}} 个会话等待输入";
|
|
2621
|
+
readonly en: "← {{n}} agents";
|
|
2622
|
+
};
|
|
2623
|
+
readonly 'input-background-hint-idle': {
|
|
2624
|
+
readonly zh: "← 会话总览";
|
|
2625
|
+
readonly en: "← for agents";
|
|
2626
|
+
};
|
|
2627
|
+
readonly 'settings-title': {
|
|
2628
|
+
readonly zh: "插件设置";
|
|
2629
|
+
readonly en: "Plugin settings";
|
|
2630
|
+
};
|
|
2631
|
+
readonly 'settings-unavailable': {
|
|
2632
|
+
readonly zh: "设置服务未挂载——只读";
|
|
2633
|
+
readonly en: "settings service absent — read-only";
|
|
2634
|
+
};
|
|
2635
|
+
readonly 'settings-empty': {
|
|
2636
|
+
readonly zh: "没有可配置的插件设置(尚无插件注册设置区块)";
|
|
2637
|
+
readonly en: "No configurable plugin settings (no plugin has registered a section)";
|
|
2638
|
+
};
|
|
2639
|
+
readonly 'settings-group-empty': {
|
|
2640
|
+
readonly zh: "此分组没有可配置字段";
|
|
2641
|
+
readonly en: "No configurable fields in this group";
|
|
2642
|
+
};
|
|
2643
|
+
readonly 'settings-section-unavailable': {
|
|
2644
|
+
readonly zh: "命名空间未注册";
|
|
2645
|
+
readonly en: "namespace not served";
|
|
2646
|
+
};
|
|
2647
|
+
readonly 'settings-badge-restart': {
|
|
2648
|
+
readonly zh: "重启生效";
|
|
2649
|
+
readonly en: "applies on restart";
|
|
2650
|
+
};
|
|
2651
|
+
readonly 'settings-badge-dirty': {
|
|
2652
|
+
readonly zh: "未保存";
|
|
2653
|
+
readonly en: "unsaved";
|
|
2654
|
+
};
|
|
2655
|
+
readonly 'settings-badge-saving': {
|
|
2656
|
+
readonly zh: "保存中";
|
|
2657
|
+
readonly en: "saving";
|
|
2658
|
+
};
|
|
2659
|
+
readonly 'settings-badge-failed': {
|
|
2660
|
+
readonly zh: "保存失败";
|
|
2661
|
+
readonly en: "save failed";
|
|
2662
|
+
};
|
|
2663
|
+
readonly 'settings-field-customized': {
|
|
2664
|
+
readonly zh: "已自定义";
|
|
2665
|
+
readonly en: "customized";
|
|
2666
|
+
};
|
|
2667
|
+
readonly 'settings-field-empty': {
|
|
2668
|
+
readonly zh: "(未设置)";
|
|
2669
|
+
readonly en: "(unset)";
|
|
2670
|
+
};
|
|
2671
|
+
readonly 'settings-field-invalid': {
|
|
2672
|
+
readonly zh: "无效输入";
|
|
2673
|
+
readonly en: "invalid";
|
|
2674
|
+
};
|
|
2675
|
+
readonly 'settings-secret-set': {
|
|
2676
|
+
readonly zh: "●●●●●●(已配置)";
|
|
2677
|
+
readonly en: "●●●●●● (configured)";
|
|
2678
|
+
};
|
|
2679
|
+
readonly 'settings-secret-unset': {
|
|
2680
|
+
readonly zh: "(未配置)";
|
|
2681
|
+
readonly en: "(not configured)";
|
|
2682
|
+
};
|
|
2683
|
+
readonly 'settings-secret-staged': {
|
|
2684
|
+
readonly zh: "(待保存)";
|
|
2685
|
+
readonly en: "(pending save)";
|
|
2686
|
+
};
|
|
2687
|
+
readonly 'settings-saved': {
|
|
2688
|
+
readonly zh: "已保存 {{ns}}";
|
|
2689
|
+
readonly en: "Saved {{ns}}";
|
|
2690
|
+
};
|
|
2691
|
+
readonly 'settings-save-failed': {
|
|
2692
|
+
readonly zh: "保存 {{ns}} 失败——请重试";
|
|
2693
|
+
readonly en: "Saving {{ns}} failed — please retry";
|
|
2694
|
+
};
|
|
2695
|
+
readonly 'settings-secret-ref-reserved': {
|
|
2696
|
+
readonly zh: "凭据 {{ref}} 由宿主保留,写入被拒绝:第三方设置区块不能覆盖宿主共享凭据";
|
|
2697
|
+
readonly en: "Credential {{ref}} is reserved by the host; write rejected: third-party settings sections cannot overwrite host-shared credentials";
|
|
2698
|
+
};
|
|
2699
|
+
readonly 'settings-hint-list': {
|
|
2700
|
+
readonly zh: "**Enter** 进入/编辑/切换(改动即保存) · Esc 退出";
|
|
2701
|
+
readonly en: "**Enter** open/edit/toggle (auto-saves) · Esc exit";
|
|
2702
|
+
};
|
|
2703
|
+
readonly 'settings-hint-group': {
|
|
2704
|
+
readonly zh: "**Enter** 编辑/切换(改动即保存) · Esc 返回";
|
|
2705
|
+
readonly en: "**Enter** edit/toggle (auto-saves) · Esc back";
|
|
2706
|
+
};
|
|
2707
|
+
readonly 'settings-hint-edit': {
|
|
2708
|
+
readonly zh: "**Enter** 确认并保存 · Esc 取消";
|
|
2709
|
+
readonly en: "**Enter** to confirm & save · Esc to cancel";
|
|
2710
|
+
};
|
|
2711
|
+
readonly 'session-resume-failed': {
|
|
2712
|
+
readonly zh: "恢复会话失败 · {{err}}";
|
|
2713
|
+
readonly en: "Resuming the session failed · {{err}}";
|
|
2714
|
+
};
|
|
2715
|
+
readonly 'session-when-now': {
|
|
2716
|
+
readonly zh: "刚刚";
|
|
2717
|
+
readonly en: "just now";
|
|
2718
|
+
};
|
|
2719
|
+
readonly 'session-when-minutes': {
|
|
2720
|
+
readonly zh: "{{n}} 分钟前";
|
|
2721
|
+
readonly en: "{{n}}m ago";
|
|
2722
|
+
};
|
|
2723
|
+
readonly 'session-when-hours': {
|
|
2724
|
+
readonly zh: "{{n}} 小时前";
|
|
2725
|
+
readonly en: "{{n}}h ago";
|
|
2726
|
+
};
|
|
2727
|
+
readonly 'session-when-days': {
|
|
2728
|
+
readonly zh: "{{n}} 天前";
|
|
2729
|
+
readonly en: "{{n}}d ago";
|
|
2730
|
+
};
|
|
2731
|
+
readonly 'session-when-date': {
|
|
2732
|
+
readonly zh: "{{month}} 月 {{day}} 日";
|
|
2733
|
+
readonly en: "{{month}}/{{day}}";
|
|
2734
|
+
};
|
|
2735
|
+
readonly 'session-children': {
|
|
2736
|
+
readonly zh: "{{n}} 个子运行";
|
|
2737
|
+
readonly en: "{{n}} runs";
|
|
2738
|
+
};
|
|
2739
|
+
readonly 'session-kind-root': {
|
|
2740
|
+
readonly zh: "对话";
|
|
2741
|
+
readonly en: "Conversation";
|
|
2742
|
+
};
|
|
2743
|
+
readonly 'session-kind-fork': {
|
|
2744
|
+
readonly zh: "回溯分支";
|
|
2745
|
+
readonly en: "Rewound branch";
|
|
2746
|
+
};
|
|
2747
|
+
readonly 'session-kind-subagent': {
|
|
2748
|
+
readonly zh: "子 agent 运行";
|
|
2749
|
+
readonly en: "Sub-agent run";
|
|
2750
|
+
};
|
|
2751
|
+
readonly 'session-project-unknown': {
|
|
2752
|
+
readonly zh: "(未记录目录)";
|
|
2753
|
+
readonly en: "(no directory recorded)";
|
|
2754
|
+
};
|
|
2755
|
+
readonly 'session-workspace-all': {
|
|
2756
|
+
readonly zh: "全部工作目录";
|
|
2757
|
+
readonly en: "All working directories";
|
|
2758
|
+
};
|
|
2759
|
+
readonly 'session-workspace-current': {
|
|
2760
|
+
readonly zh: "当前";
|
|
2761
|
+
readonly en: "current";
|
|
2762
|
+
};
|
|
2763
|
+
readonly 'session-workspace-project-count': {
|
|
2764
|
+
readonly zh: "{{n}} 个目录";
|
|
2765
|
+
readonly en: "{{n}} directories";
|
|
2766
|
+
};
|
|
2767
|
+
readonly 'session-workspace-all-detail': {
|
|
2768
|
+
readonly zh: "跨目录浏览 · {{n}} 个会话";
|
|
2769
|
+
readonly en: "browse across directories · {{n}} sessions";
|
|
2770
|
+
};
|
|
2771
|
+
readonly 'session-workspace-empty': {
|
|
2772
|
+
readonly zh: "暂无历史会话";
|
|
2773
|
+
readonly en: "no history yet";
|
|
2774
|
+
};
|
|
2775
|
+
readonly 'resume-menu-pin': {
|
|
2776
|
+
readonly zh: "固定到顶部";
|
|
2777
|
+
readonly en: "Pin to top";
|
|
2778
|
+
};
|
|
2779
|
+
readonly 'resume-menu-unpin': {
|
|
2780
|
+
readonly zh: "取消固定";
|
|
2781
|
+
readonly en: "Unpin";
|
|
2782
|
+
};
|
|
2783
|
+
readonly 'resume-pin-save-failed': {
|
|
2784
|
+
readonly zh: "固定状态保存失败,未应用更改";
|
|
2785
|
+
readonly en: "Could not save pin; no change was applied";
|
|
2786
|
+
};
|
|
2787
|
+
readonly 'session-count-shown': {
|
|
2788
|
+
readonly zh: "{{n}} 个会话";
|
|
2789
|
+
readonly en: "{{n}} sessions";
|
|
2790
|
+
};
|
|
2791
|
+
readonly 'session-preview-times': {
|
|
2792
|
+
readonly zh: "创建于 {{created}} · 最后活动 {{updated}}";
|
|
2793
|
+
readonly en: "created {{created}} · last active {{updated}}";
|
|
2794
|
+
};
|
|
2795
|
+
readonly 'session-preview-loading': {
|
|
2796
|
+
readonly zh: "正在读取会话结尾…";
|
|
2797
|
+
readonly en: "Reading the end of this session…";
|
|
2798
|
+
};
|
|
2799
|
+
readonly 'session-preview-empty': {
|
|
2800
|
+
readonly zh: "这个会话没有可预览的往来消息";
|
|
2801
|
+
readonly en: "No exchanges to preview in this session";
|
|
2802
|
+
};
|
|
2803
|
+
readonly 'hint-confirm-exit': {
|
|
2804
|
+
readonly zh: "**Enter** 确认 · Esc 退出";
|
|
2805
|
+
readonly en: "**Enter** to confirm · Esc to exit";
|
|
2806
|
+
};
|
|
2807
|
+
readonly 'hint-select-exit': {
|
|
2808
|
+
readonly zh: "**Enter** 选择 · Esc 退出";
|
|
2809
|
+
readonly en: "**Enter** to select · Esc to exit";
|
|
2810
|
+
};
|
|
2811
|
+
readonly 'hint-fill-exit': {
|
|
2812
|
+
readonly zh: "**Enter** 填入命令 · Esc 退出";
|
|
2813
|
+
readonly en: "**Enter** to insert · Esc to exit";
|
|
2814
|
+
};
|
|
2815
|
+
readonly 'hint-rewind-back': {
|
|
2816
|
+
readonly zh: "**Enter** 回退 · Esc 返回";
|
|
2817
|
+
readonly en: "**Enter** to rewind · Esc to back";
|
|
2818
|
+
};
|
|
2819
|
+
readonly 'statusline-hint-select': {
|
|
2820
|
+
readonly zh: "esc 返回输入";
|
|
2821
|
+
readonly en: "esc to return to input";
|
|
2822
|
+
};
|
|
2823
|
+
readonly 'statusline-hint-working': {
|
|
2824
|
+
readonly zh: "esc 中断";
|
|
2825
|
+
readonly en: "esc to interrupt";
|
|
2826
|
+
};
|
|
2827
|
+
readonly 'statusline-hint-shortcuts': {
|
|
2828
|
+
readonly zh: "? 查看快捷键";
|
|
2829
|
+
readonly en: "? for shortcuts";
|
|
2830
|
+
};
|
|
2831
|
+
readonly 'status-detail-session-id': {
|
|
2832
|
+
readonly zh: "会话日志目录与此 id 同名";
|
|
2833
|
+
readonly en: "the session log directory is named after this id";
|
|
2834
|
+
};
|
|
2835
|
+
readonly 'hint-ext-dialog-input': {
|
|
2836
|
+
readonly zh: "**Enter** 确认 · Esc 取消";
|
|
2837
|
+
readonly en: "**Enter** to confirm · Esc to cancel";
|
|
2838
|
+
};
|
|
2839
|
+
readonly 'hint-adjust-done': {
|
|
2840
|
+
readonly zh: "**←/→** 调整 · Enter/Esc 完成";
|
|
2841
|
+
readonly en: "**←/→** to adjust · Enter/Esc to done";
|
|
2842
|
+
};
|
|
2843
|
+
readonly 'hint-history-search': {
|
|
2844
|
+
readonly zh: "↑/↓ 选择 · **Enter** 确认 · Esc 取消";
|
|
2845
|
+
readonly en: "↑/↓ to navigate · **Enter** to select · Esc to cancel";
|
|
2846
|
+
};
|
|
2847
|
+
readonly 'hint-expand-ctrl-o': {
|
|
2848
|
+
readonly zh: "(ctrl+o 展开)";
|
|
2849
|
+
readonly en: "(ctrl+o to expand)";
|
|
2850
|
+
};
|
|
2851
|
+
readonly 'long-line-folded': {
|
|
2852
|
+
readonly zh: "… 已折叠 {{n}} 字符(点击或 ctrl+o 展开)";
|
|
2853
|
+
readonly en: "… {{n}} chars folded (click or ctrl+o to expand)";
|
|
2854
|
+
};
|
|
2855
|
+
readonly 'file-actions-title': {
|
|
2856
|
+
readonly zh: "文件操作";
|
|
2857
|
+
readonly en: "File actions";
|
|
2858
|
+
};
|
|
2859
|
+
readonly 'file-actions-open': {
|
|
2860
|
+
readonly zh: "打开文件";
|
|
2861
|
+
readonly en: "Open file";
|
|
2862
|
+
};
|
|
2863
|
+
readonly 'file-actions-open-dir': {
|
|
2864
|
+
readonly zh: "打开文件夹";
|
|
2865
|
+
readonly en: "Open folder";
|
|
2866
|
+
};
|
|
2867
|
+
readonly 'file-actions-reveal': {
|
|
2868
|
+
readonly zh: "打开所在文件夹";
|
|
2869
|
+
readonly en: "Reveal in folder";
|
|
2870
|
+
};
|
|
2871
|
+
readonly 'file-actions-copy': {
|
|
2872
|
+
readonly zh: "复制绝对路径";
|
|
2873
|
+
readonly en: "Copy absolute path";
|
|
2874
|
+
};
|
|
2875
|
+
readonly 'picker-title-model': {
|
|
2876
|
+
readonly zh: "模型";
|
|
2877
|
+
readonly en: "Model";
|
|
2878
|
+
};
|
|
2879
|
+
readonly 'picker-group-recent': {
|
|
2880
|
+
readonly zh: "最近使用";
|
|
2881
|
+
readonly en: "Recently used";
|
|
2882
|
+
};
|
|
2883
|
+
readonly 'picker-group-count': {
|
|
2884
|
+
readonly zh: "{{count}} 个模型";
|
|
2885
|
+
readonly en: "{{count}} models";
|
|
2886
|
+
};
|
|
2887
|
+
readonly 'hint-model-groups': {
|
|
2888
|
+
readonly zh: "**Enter** 查看模型 · Esc 退出";
|
|
2889
|
+
readonly en: "**Enter** to view models · Esc to exit";
|
|
2890
|
+
};
|
|
2891
|
+
readonly 'hint-model-back': {
|
|
2892
|
+
readonly zh: "**Enter** 切换模型 · Esc/⌫ 返回上级";
|
|
2893
|
+
readonly en: "**Enter** to switch · Esc/⌫ to go back";
|
|
2894
|
+
};
|
|
2895
|
+
readonly 'picker-title-skills': {
|
|
2896
|
+
readonly zh: "技能";
|
|
2897
|
+
readonly en: "Skills";
|
|
2898
|
+
};
|
|
2899
|
+
readonly 'skills-loading': {
|
|
2900
|
+
readonly zh: "正在加载技能";
|
|
2901
|
+
readonly en: "Loading skills";
|
|
2902
|
+
};
|
|
2903
|
+
readonly 'skills-loading-subtitle': {
|
|
2904
|
+
readonly zh: "正在查询技能注册表…";
|
|
2905
|
+
readonly en: "Querying the skill registry…";
|
|
2906
|
+
};
|
|
2907
|
+
readonly 'skills-empty': {
|
|
2908
|
+
readonly zh: "当前会话没有可用技能";
|
|
2909
|
+
readonly en: "No skills available in this session";
|
|
2910
|
+
};
|
|
2911
|
+
readonly 'skills-load-failed': {
|
|
2912
|
+
readonly zh: "技能列表加载失败";
|
|
2913
|
+
readonly en: "Failed to load the skill list";
|
|
2914
|
+
};
|
|
2915
|
+
readonly 'skills-unknown': {
|
|
2916
|
+
readonly zh: "未知技能「{{name}}」";
|
|
2917
|
+
readonly en: "Unknown skill \"{{name}}\"";
|
|
2918
|
+
};
|
|
2919
|
+
readonly 'skills-not-invocable': {
|
|
2920
|
+
readonly zh: "技能「{{name}}」不可直接调用";
|
|
2921
|
+
readonly en: "Skill \"{{name}}\" is not directly invocable";
|
|
2922
|
+
};
|
|
2923
|
+
readonly 'plugin-scene-crashed': {
|
|
2924
|
+
readonly zh: "插件场景「{{id}}」渲染崩溃:{{err}}(已自动关闭)";
|
|
2925
|
+
readonly en: "Plugin scene \"{{id}}\" crashed while rendering: {{err}} (closed)";
|
|
2926
|
+
};
|
|
2927
|
+
readonly 'skills-source-bundled': {
|
|
2928
|
+
readonly zh: "内置";
|
|
2929
|
+
readonly en: "built-in";
|
|
2930
|
+
};
|
|
2931
|
+
readonly 'skills-source-user': {
|
|
2932
|
+
readonly zh: "用户";
|
|
2933
|
+
readonly en: "user";
|
|
2934
|
+
};
|
|
2935
|
+
readonly 'skills-source-project': {
|
|
2936
|
+
readonly zh: "项目";
|
|
2937
|
+
readonly en: "project";
|
|
2938
|
+
};
|
|
2939
|
+
readonly 'skills-source-runtime': {
|
|
2940
|
+
readonly zh: "运行时";
|
|
2941
|
+
readonly en: "runtime";
|
|
2942
|
+
};
|
|
2943
|
+
readonly 'skills-source-custom': {
|
|
2944
|
+
readonly zh: "自定义";
|
|
2945
|
+
readonly en: "custom";
|
|
2946
|
+
};
|
|
2947
|
+
readonly 'picker-title-theme': {
|
|
2948
|
+
readonly zh: "颜色主题";
|
|
2949
|
+
readonly en: "Color theme";
|
|
2950
|
+
};
|
|
2951
|
+
readonly 'picker-title-activity': {
|
|
2952
|
+
readonly zh: "指示器预设";
|
|
2953
|
+
readonly en: "Indicator preset";
|
|
2954
|
+
};
|
|
2955
|
+
readonly 'picker-title-color': {
|
|
2956
|
+
readonly zh: "会话强调色";
|
|
2957
|
+
readonly en: "Session accent color";
|
|
2958
|
+
};
|
|
2959
|
+
readonly 'picker-title-effort': {
|
|
2960
|
+
readonly zh: "推理强度";
|
|
2961
|
+
readonly en: "Reasoning effort";
|
|
2962
|
+
};
|
|
2963
|
+
readonly 'model-loading': {
|
|
2964
|
+
readonly zh: "正在加载模型";
|
|
2965
|
+
readonly en: "Loading models";
|
|
2966
|
+
};
|
|
2967
|
+
readonly 'model-loading-subtitle': {
|
|
2968
|
+
readonly zh: "正在查询 provider…";
|
|
2969
|
+
readonly en: "Querying the provider…";
|
|
2970
|
+
};
|
|
2971
|
+
readonly 'model-switching': {
|
|
2972
|
+
readonly zh: "正在切换模型到 {{name}}…";
|
|
2973
|
+
readonly en: "Switching model to {{name}}…";
|
|
2974
|
+
};
|
|
2975
|
+
readonly 'model-switched': {
|
|
2976
|
+
readonly zh: "模型已切换为 {{name}}";
|
|
2977
|
+
readonly en: "Model switched to {{name}}";
|
|
2978
|
+
};
|
|
2979
|
+
readonly 'rewind-title': {
|
|
2980
|
+
readonly zh: "回退";
|
|
2981
|
+
readonly en: "Rewind";
|
|
2982
|
+
};
|
|
2983
|
+
readonly 'rewind-subtitle': {
|
|
2984
|
+
readonly zh: "选择一条消息,将对话回退到该处";
|
|
2985
|
+
readonly en: "Pick a message to rewind the conversation to";
|
|
2986
|
+
};
|
|
2987
|
+
readonly 'rewind-confirm-title': {
|
|
2988
|
+
readonly zh: "将对话回退到这条消息?";
|
|
2989
|
+
readonly en: "Rewind conversation to this message?";
|
|
2990
|
+
};
|
|
2991
|
+
readonly 'rewind-confirm-desc': {
|
|
2992
|
+
readonly zh: "对话从此处重新开始";
|
|
2993
|
+
readonly en: "conversation restarts here";
|
|
2994
|
+
};
|
|
2995
|
+
readonly 'rewind-empty': {
|
|
2996
|
+
readonly zh: "没有可回退的消息";
|
|
2997
|
+
readonly en: "No messages to rewind to";
|
|
2998
|
+
};
|
|
2999
|
+
readonly 'rewind-last-message': {
|
|
3000
|
+
readonly zh: "最近一条消息";
|
|
3001
|
+
readonly en: "last message";
|
|
3002
|
+
};
|
|
3003
|
+
readonly 'rewind-none': {
|
|
3004
|
+
readonly zh: "还没有可回退的消息";
|
|
3005
|
+
readonly en: "Nothing to rewind yet";
|
|
3006
|
+
};
|
|
3007
|
+
readonly 'rewind-done': {
|
|
3008
|
+
readonly zh: "已回退——编辑后按 Enter 重新发送";
|
|
3009
|
+
readonly en: "Rewound — edit and press Enter to resend";
|
|
3010
|
+
};
|
|
3011
|
+
readonly 'rewind-mode-default': {
|
|
3012
|
+
readonly zh: "仅回退会话";
|
|
3013
|
+
readonly en: "Conversation only";
|
|
3014
|
+
};
|
|
3015
|
+
readonly 'rewind-waiting-plugins': {
|
|
3016
|
+
readonly zh: "正在等待插件决定…(Esc 放弃等待)";
|
|
3017
|
+
readonly en: "Waiting for plugins… (Esc to stop waiting)";
|
|
3018
|
+
};
|
|
3019
|
+
readonly 'ext-action-cancelled': {
|
|
3020
|
+
readonly zh: "操作已被插件取消";
|
|
3021
|
+
readonly en: "Action cancelled by a plugin";
|
|
3022
|
+
};
|
|
3023
|
+
readonly 'ext-action-handled': {
|
|
3024
|
+
readonly zh: "输入已由插件处理";
|
|
3025
|
+
readonly en: "Input handled by a plugin";
|
|
3026
|
+
};
|
|
3027
|
+
readonly 'ext-decision-pending': {
|
|
3028
|
+
readonly zh: "正在等待插件决定({{event}})…";
|
|
3029
|
+
readonly en: "Waiting for a plugin decision ({{event}})…";
|
|
3030
|
+
};
|
|
3031
|
+
readonly 'ext-stale-dropped': {
|
|
3032
|
+
readonly zh: "等待插件期间会话已切换,该条输入已丢弃";
|
|
3033
|
+
readonly en: "Session switched while a plugin decided — the input was dropped";
|
|
3034
|
+
};
|
|
3035
|
+
readonly 'ext-compact-stale': {
|
|
3036
|
+
readonly zh: "等待插件期间会话已切换,压缩已取消";
|
|
3037
|
+
readonly en: "Session switched while a plugin decided — compaction abandoned";
|
|
3038
|
+
};
|
|
3039
|
+
readonly 'ext-shortcut-failed': {
|
|
3040
|
+
readonly zh: "插件快捷键 {{combo}} 执行失败";
|
|
3041
|
+
readonly en: "Plugin shortcut {{combo}} failed";
|
|
3042
|
+
};
|
|
3043
|
+
readonly 'command-invoke-denied': {
|
|
3044
|
+
readonly zh: "命令调用已被授权文件拒绝(commands.invoke 已撤销)";
|
|
3045
|
+
readonly en: "Command invocation denied by the grants file (commands.invoke revoked)";
|
|
3046
|
+
};
|
|
3047
|
+
readonly 'command-invoke-denied-owner': {
|
|
3048
|
+
readonly zh: "命令 \"/{{name}}\" 的调用已被拒绝——注册它的插件 \"{{owner}}\" 已被撤销 commands.invoke";
|
|
3049
|
+
readonly en: "Command \"/{{name}}\" invocation denied — its owner plugin \"{{owner}}\" lost commands.invoke";
|
|
3050
|
+
};
|
|
3051
|
+
readonly 'plugins-trust-banner': {
|
|
3052
|
+
readonly zh: "插件与宿主同进程运行:授权是行为约束而非安全隔离;通过校验 ≠ 插件安全(C-070)。";
|
|
3053
|
+
readonly en: "Plugins run in-process with the host: grants are behavioral constraints, not a security boundary; passing validation ≠ a safe plugin (C-070).";
|
|
3054
|
+
};
|
|
3055
|
+
readonly 'plugins-host-unavailable': {
|
|
3056
|
+
readonly zh: "plugin-host 行未挂载:Host Descriptor 与授权矩阵按无信息降级。";
|
|
3057
|
+
readonly en: "plugin-host row not mounted: Host Descriptor and grant matrix degraded to no-data.";
|
|
3058
|
+
};
|
|
3059
|
+
readonly 'plugins-contract-dropped': {
|
|
3060
|
+
readonly zh: "已剔除(vendored 哈希漂移)";
|
|
3061
|
+
readonly en: "dropped (vendored hash drift)";
|
|
3062
|
+
};
|
|
3063
|
+
readonly 'plugins-matrix-note': {
|
|
3064
|
+
readonly zh: "授权矩阵(✓ 允许 / · 拒绝;仅显示有足迹的插件——授权文件、效果台账与存储目录的并集):";
|
|
3065
|
+
readonly en: "Grant matrix (✓ allowed / · denied; plugins with footprints only — union of the grants file, effect ledger, and storage directory):";
|
|
3066
|
+
};
|
|
3067
|
+
readonly 'plugins-matrix-no-registry': {
|
|
3068
|
+
readonly zh: "(权限注册表不可用)";
|
|
3069
|
+
readonly en: "(permission registry unavailable)";
|
|
3070
|
+
};
|
|
3071
|
+
readonly 'plugins-matrix-empty': {
|
|
3072
|
+
readonly zh: "(暂无插件足迹)";
|
|
3073
|
+
readonly en: "(no plugin footprints yet)";
|
|
3074
|
+
};
|
|
3075
|
+
readonly 'plugins-footprint-overflow': {
|
|
3076
|
+
readonly zh: "…另有 {{count}} 个插件未显示";
|
|
3077
|
+
readonly en: {
|
|
3078
|
+
readonly one: "…{{count}} more plugin not shown";
|
|
3079
|
+
readonly other: "…{{count}} more plugins not shown";
|
|
3080
|
+
};
|
|
3081
|
+
};
|
|
3082
|
+
readonly 'plugins-ledger-empty': {
|
|
3083
|
+
readonly zh: "效果台账为空。";
|
|
3084
|
+
readonly en: "The effect ledger is empty.";
|
|
3085
|
+
};
|
|
3086
|
+
readonly 'plugins-ledger-header': {
|
|
3087
|
+
readonly zh: "效果台账({{file}})尾 5 条:";
|
|
3088
|
+
readonly en: "Effect ledger ({{file}}), last 5 records:";
|
|
3089
|
+
};
|
|
3090
|
+
readonly 'plugins-unknown-subcommand': {
|
|
3091
|
+
readonly zh: "未知子命令:{{sub}}(支持:check <路径>)";
|
|
3092
|
+
readonly en: "Unknown subcommand: {{sub}} (supported: check <path>)";
|
|
3093
|
+
};
|
|
3094
|
+
readonly 'plugins-check-usage': {
|
|
3095
|
+
readonly zh: "用法:/plugins check <dsh-plugin.json 路径>";
|
|
3096
|
+
readonly en: "Usage: /plugins check <path-to-dsh-plugin.json>";
|
|
3097
|
+
};
|
|
3098
|
+
readonly 'plugins-check-not-found': {
|
|
3099
|
+
readonly zh: "文件不存在:{{path}}";
|
|
3100
|
+
readonly en: "File not found: {{path}}";
|
|
3101
|
+
};
|
|
3102
|
+
readonly 'plugins-check-invalid-json': {
|
|
3103
|
+
readonly zh: "不是可解析的 JSON:{{err}}";
|
|
3104
|
+
readonly en: "Not parseable JSON: {{err}}";
|
|
3105
|
+
};
|
|
3106
|
+
readonly 'plugins-check-spec-unavailable': {
|
|
3107
|
+
readonly zh: "vendored 规范数据不可用(dsh-ecosystem-spec/),无法校验。";
|
|
3108
|
+
readonly en: "Vendored spec data unavailable (dsh-ecosystem-spec/); cannot validate.";
|
|
3109
|
+
};
|
|
3110
|
+
readonly 'plugins-check-schema-failed': {
|
|
3111
|
+
readonly zh: "schema 校验失败:{{err}}";
|
|
3112
|
+
readonly en: "Schema validation failed: {{err}}";
|
|
3113
|
+
};
|
|
3114
|
+
readonly 'plugins-check-invalid': {
|
|
3115
|
+
readonly zh: "语义校验失败:{{err}}";
|
|
3116
|
+
readonly en: "Semantic validation failed: {{err}}";
|
|
3117
|
+
};
|
|
3118
|
+
readonly 'plugins-check-state': {
|
|
3119
|
+
readonly zh: "协商结果:{{state}}";
|
|
3120
|
+
readonly en: "Negotiation decision: {{state}}";
|
|
3121
|
+
};
|
|
3122
|
+
readonly 'plugins-grant-hint': {
|
|
3123
|
+
readonly zh: "授权方法:在 ~/.dsh-tui/extension-grants.json 的 \"grants\" 段为插件 id 添加规则(如 { \"name\": \"<权限>\", \"scope\": \"<范围>\" }),保存即生效、无需重启。";
|
|
3124
|
+
readonly en: "To grant: add a rule for the plugin id under \"grants\" in ~/.dsh-tui/extension-grants.json (e.g. { \"name\": \"<permission>\", \"scope\": \"<scope>\" }); saved changes apply immediately, no restart.";
|
|
3125
|
+
};
|
|
3126
|
+
readonly 'plugins-check-grant-hint': {
|
|
3127
|
+
readonly zh: "授权方法:在 ~/.dsh-tui/extension-grants.json 的 \"grants\" 段加入 \"{{id}}\": [{ \"name\": \"<权限>\", \"scope\": \"<范围>\" }];待授权权限:{{perms}}。";
|
|
3128
|
+
readonly en: "To authorize: add \"{{id}}\": [{ \"name\": \"<permission>\", \"scope\": \"<scope>\" }] under \"grants\" in ~/.dsh-tui/extension-grants.json; pending permissions: {{perms}}.";
|
|
3129
|
+
};
|
|
3130
|
+
readonly 'plugins-check-dropped': {
|
|
3131
|
+
readonly zh: "(宿主描述符已剔除漂移契约:{{dropped}})";
|
|
3132
|
+
readonly en: "(host descriptor dropped drifted contracts: {{dropped}})";
|
|
3133
|
+
};
|
|
3134
|
+
readonly 'plugins-check-host-unavailable': {
|
|
3135
|
+
readonly zh: "当前没有 live Host Descriptor;只做静态 manifest 校验,不进行协议支持声明/协商。";
|
|
3136
|
+
readonly en: "No live Host Descriptor is available; only static manifest validation was performed, no protocol support declaration/negotiation.";
|
|
3137
|
+
};
|
|
3138
|
+
readonly 'doctor-plugin-generation': {
|
|
3139
|
+
readonly zh: "插件运行时 generation:{{id}}";
|
|
3140
|
+
readonly en: "Plugin runtime generation: {{id}}";
|
|
3141
|
+
};
|
|
3142
|
+
readonly 'doctor-plugin-registry': {
|
|
3143
|
+
readonly zh: "插件规范注册表自检:{{state}}";
|
|
3144
|
+
readonly en: "Plugin-spec registry self-check: {{state}}";
|
|
3145
|
+
};
|
|
3146
|
+
readonly 'doctor-plugin-host-missing': {
|
|
3147
|
+
readonly zh: "plugin-host 行未挂载";
|
|
3148
|
+
readonly en: "plugin-host row not mounted";
|
|
3149
|
+
};
|
|
3150
|
+
readonly 'ext-dialog-yes': {
|
|
3151
|
+
readonly zh: "是";
|
|
3152
|
+
readonly en: "Yes";
|
|
3153
|
+
};
|
|
3154
|
+
readonly 'ext-dialog-no': {
|
|
3155
|
+
readonly zh: "否";
|
|
3156
|
+
readonly en: "No";
|
|
3157
|
+
};
|
|
3158
|
+
readonly 'thinking-title': {
|
|
3159
|
+
readonly zh: "思考过程显示";
|
|
3160
|
+
readonly en: "Thinking display";
|
|
3161
|
+
};
|
|
3162
|
+
readonly 'thinking-subtitle': {
|
|
3163
|
+
readonly zh: "只控制思考过程是否显示,不改变模型的思考行为。";
|
|
3164
|
+
readonly en: "Only controls whether reasoning is shown; it does not change model behavior.";
|
|
3165
|
+
};
|
|
3166
|
+
readonly 'thinking-enabled': {
|
|
3167
|
+
readonly zh: "显示";
|
|
3168
|
+
readonly en: "Shown";
|
|
3169
|
+
};
|
|
3170
|
+
readonly 'thinking-enabled-desc': {
|
|
3171
|
+
readonly zh: "在对话中显示 DeepSeek 的思考过程";
|
|
3172
|
+
readonly en: "Show DeepSeek's reasoning in the conversation";
|
|
3173
|
+
};
|
|
3174
|
+
readonly 'thinking-disabled': {
|
|
3175
|
+
readonly zh: "隐藏";
|
|
3176
|
+
readonly en: "Hidden";
|
|
3177
|
+
};
|
|
3178
|
+
readonly 'thinking-disabled-desc': {
|
|
3179
|
+
readonly zh: "隐藏思考过程;模型仍会照常思考";
|
|
3180
|
+
readonly en: "Hide reasoning; the model will still think as usual";
|
|
3181
|
+
};
|
|
3182
|
+
readonly 'thinking-label': {
|
|
3183
|
+
readonly zh: "思考";
|
|
3184
|
+
readonly en: "Thinking";
|
|
3185
|
+
};
|
|
3186
|
+
readonly 'history-search-title': {
|
|
3187
|
+
readonly zh: "搜索历史";
|
|
3188
|
+
readonly en: "Search history";
|
|
3189
|
+
};
|
|
3190
|
+
readonly 'history-search-placeholder': {
|
|
3191
|
+
readonly zh: "输入以搜索…";
|
|
3192
|
+
readonly en: "Type to search…";
|
|
3193
|
+
};
|
|
3194
|
+
readonly 'history-search-empty': {
|
|
3195
|
+
readonly zh: "没有匹配的命令";
|
|
3196
|
+
readonly en: "No matching commands";
|
|
3197
|
+
};
|
|
3198
|
+
readonly 'time-now': {
|
|
3199
|
+
readonly zh: "刚刚";
|
|
3200
|
+
readonly en: "now";
|
|
3201
|
+
};
|
|
3202
|
+
readonly 'time-minutes-ago': {
|
|
3203
|
+
readonly zh: "{{n}} 分钟前";
|
|
3204
|
+
readonly en: "{{n}}m ago";
|
|
3205
|
+
};
|
|
3206
|
+
readonly 'time-hours-ago': {
|
|
3207
|
+
readonly zh: "{{n}} 小时前";
|
|
3208
|
+
readonly en: "{{n}}h ago";
|
|
3209
|
+
};
|
|
3210
|
+
readonly 'time-days-ago': {
|
|
3211
|
+
readonly zh: "{{n}} 天前";
|
|
3212
|
+
readonly en: "{{n}}d ago";
|
|
3213
|
+
};
|
|
3214
|
+
readonly 'search-no-matches': {
|
|
3215
|
+
readonly zh: "无匹配";
|
|
3216
|
+
readonly en: "no matches";
|
|
3217
|
+
};
|
|
3218
|
+
readonly 'rename-usage': {
|
|
3219
|
+
readonly zh: "用法 /rename <新名称>";
|
|
3220
|
+
readonly en: "Usage /rename <new title>";
|
|
3221
|
+
};
|
|
3222
|
+
readonly 'rename-current': {
|
|
3223
|
+
readonly zh: "当前名称 {{title}}";
|
|
3224
|
+
readonly en: "Current title {{title}}";
|
|
3225
|
+
};
|
|
3226
|
+
readonly 'rename-done': {
|
|
3227
|
+
readonly zh: "已重命名为「{{title}}」";
|
|
3228
|
+
readonly en: "Renamed to \"{{title}}\"";
|
|
3229
|
+
};
|
|
3230
|
+
readonly 'compact-summary-folded': {
|
|
3231
|
+
readonly zh: "摘要已折叠";
|
|
3232
|
+
readonly en: "Summary folded";
|
|
3233
|
+
};
|
|
3234
|
+
readonly 'new-message': {
|
|
3235
|
+
readonly zh: "↓ {{n}} 条新消息";
|
|
3236
|
+
readonly en: "↓ 1 new message";
|
|
3237
|
+
};
|
|
3238
|
+
readonly 'new-messages': {
|
|
3239
|
+
readonly zh: "↓ {{n}} 条新消息";
|
|
3240
|
+
readonly en: "↓ {{n}} new messages";
|
|
3241
|
+
};
|
|
3242
|
+
readonly 'back-to-bottom': {
|
|
3243
|
+
readonly zh: "↓ 回到底部(Enter/End)";
|
|
3244
|
+
readonly en: "↓ back to bottom (Enter/End)";
|
|
3245
|
+
};
|
|
3246
|
+
readonly 'theme-builtin-base': {
|
|
3247
|
+
readonly zh: "内置 · {{name}} 基底";
|
|
3248
|
+
readonly en: "Built-in · {{name}} base";
|
|
3249
|
+
};
|
|
3250
|
+
readonly 'theme-auto-base': {
|
|
3251
|
+
readonly zh: "内置 · 跟随系统/终端背景自动选择 light/dark";
|
|
3252
|
+
readonly en: "Built-in · follows the system/terminal background (light/dark)";
|
|
3253
|
+
};
|
|
3254
|
+
readonly 'theme-user-base': {
|
|
3255
|
+
readonly zh: "{{base}} 基底 · ~/.dsh-tui/themes/{{name}}.json";
|
|
3256
|
+
readonly en: "{{base}} base · ~/.dsh-tui/themes/{{name}}.json";
|
|
3257
|
+
};
|
|
3258
|
+
readonly 'theme-plugin-base': {
|
|
3259
|
+
readonly zh: "插件 · {{base}} 基底 · {{name}}";
|
|
3260
|
+
readonly en: "Plugin · {{base}} base · {{name}}";
|
|
3261
|
+
};
|
|
3262
|
+
readonly 'context-unavailable': {
|
|
3263
|
+
readonly zh: "当前会话没有已加载的上下文";
|
|
3264
|
+
readonly en: "No loaded context is available for this session";
|
|
3265
|
+
};
|
|
3266
|
+
readonly 'context-panel-sections': {
|
|
3267
|
+
readonly zh: "系统提示词 · {{n}} 段";
|
|
3268
|
+
readonly en: "System prompt · {{n}} sections";
|
|
3269
|
+
};
|
|
3270
|
+
readonly 'context-panel-files': {
|
|
3271
|
+
readonly zh: "工作区指令 · {{n}} 个文件";
|
|
3272
|
+
readonly en: "Workspace instructions · {{n}} files";
|
|
3273
|
+
};
|
|
3274
|
+
readonly 'context-panel-runtime': {
|
|
3275
|
+
readonly zh: "运行时上下文 · {{n}} 项";
|
|
3276
|
+
readonly en: "Runtime context · {{n}} items";
|
|
3277
|
+
};
|
|
3278
|
+
readonly 'context-panel-skills': {
|
|
3279
|
+
readonly zh: "技能 · {{n}}";
|
|
3280
|
+
readonly en: "Skills · {{n}}";
|
|
3281
|
+
};
|
|
3282
|
+
readonly 'context-panel-tools': {
|
|
3283
|
+
readonly zh: "工具 · {{n}}";
|
|
3284
|
+
readonly en: "Tools · {{n}}";
|
|
3285
|
+
};
|
|
3286
|
+
readonly 'question-provider-occupied': {
|
|
3287
|
+
readonly zh: "⚠️ 问卷通道已被非宿主组件 {{id}} 占用,模型提问可能被代答(本界面未接入问卷)";
|
|
3288
|
+
readonly en: "⚠️ The questionnaire channel is held by a non-host component ({{id}}); model questions may be answered by it (this UI did not take the seat)";
|
|
3289
|
+
};
|
|
3290
|
+
readonly 'question-provider-occupied-unverified': {
|
|
3291
|
+
readonly zh: "⚠️ 问卷通道被一个自报为 {{id}} 的组件占用——身份未经宿主验证,模型提问可能被代答(本界面未接入问卷)";
|
|
3292
|
+
readonly en: "⚠️ The questionnaire channel is held by a component self-reporting as {{id}} — identity not host-verified; model questions may be answered by it (this UI did not take the seat)";
|
|
3293
|
+
};
|
|
3294
|
+
readonly 'question-provider-occupied-unknown': {
|
|
3295
|
+
readonly zh: "身份未知";
|
|
3296
|
+
readonly en: "identity unknown";
|
|
3297
|
+
};
|
|
3298
|
+
readonly 'question-select-or-answer': {
|
|
3299
|
+
readonly zh: "至少选择一个选项,或在最后一行输入回答";
|
|
3300
|
+
readonly en: "Select at least one option, or type an answer on the last line";
|
|
3301
|
+
};
|
|
3302
|
+
readonly 'question-answer-or-check': {
|
|
3303
|
+
readonly zh: "输入回答或勾选选项后再提交";
|
|
3304
|
+
readonly en: "Type an answer or check options before submitting";
|
|
3305
|
+
};
|
|
3306
|
+
readonly 'question-type-answer-first': {
|
|
3307
|
+
readonly zh: "先输入回答内容再提交";
|
|
3308
|
+
readonly en: "Type your answer before submitting";
|
|
3309
|
+
};
|
|
3310
|
+
readonly 'question-header-progress': {
|
|
3311
|
+
readonly zh: " 📋 提问 · 第 {{position}}/{{total}} 题{{remaining}} ";
|
|
3312
|
+
readonly en: " 📋 Question {{position}}/{{total}} {{remaining}} ";
|
|
3313
|
+
};
|
|
3314
|
+
readonly 'question-remaining-more': {
|
|
3315
|
+
readonly zh: " · 还剩 {{n}} 题";
|
|
3316
|
+
readonly en: " · {{n}} left";
|
|
3317
|
+
};
|
|
3318
|
+
readonly 'question-hint-type': {
|
|
3319
|
+
readonly zh: "输入回答";
|
|
3320
|
+
readonly en: "Type answer";
|
|
3321
|
+
};
|
|
3322
|
+
readonly 'question-hint-paste': {
|
|
3323
|
+
readonly zh: "Ctrl+V 粘贴";
|
|
3324
|
+
readonly en: "Ctrl+V paste";
|
|
3325
|
+
};
|
|
3326
|
+
readonly 'question-hint-enter': {
|
|
3327
|
+
readonly zh: "Enter 提交";
|
|
3328
|
+
readonly en: "Enter submit";
|
|
3329
|
+
};
|
|
3330
|
+
readonly 'question-hint-back': {
|
|
3331
|
+
readonly zh: "↑ 返回选项";
|
|
3332
|
+
readonly en: "↑ back to options";
|
|
3333
|
+
};
|
|
3334
|
+
readonly 'question-hint-esc': {
|
|
3335
|
+
readonly zh: "Esc 中断";
|
|
3336
|
+
readonly en: "Esc cancel";
|
|
3337
|
+
};
|
|
3338
|
+
readonly 'question-hint-previous': {
|
|
3339
|
+
readonly zh: "Esc 上一题";
|
|
3340
|
+
readonly en: "Esc previous question";
|
|
3341
|
+
};
|
|
3342
|
+
readonly 'question-hint-cancel': {
|
|
3343
|
+
readonly zh: "Ctrl+C 取消整批";
|
|
3344
|
+
readonly en: "Ctrl+C cancel batch";
|
|
3345
|
+
};
|
|
3346
|
+
readonly 'question-hint-selected': {
|
|
3347
|
+
readonly zh: "已选 {{n}}";
|
|
3348
|
+
readonly en: "Selected {{n}}";
|
|
3349
|
+
};
|
|
3350
|
+
readonly 'question-hint-select': {
|
|
3351
|
+
readonly zh: "↑/↓ 选择";
|
|
3352
|
+
readonly en: "↑/↓ select";
|
|
3353
|
+
};
|
|
3354
|
+
readonly 'question-hint-multi': {
|
|
3355
|
+
readonly zh: "Space 多选";
|
|
3356
|
+
readonly en: "Space multi-select";
|
|
3357
|
+
};
|
|
3358
|
+
readonly 'question-hint-attach': {
|
|
3359
|
+
readonly zh: "输入文字附带回答";
|
|
3360
|
+
readonly en: "Type text to attach an answer";
|
|
3361
|
+
};
|
|
3362
|
+
readonly 'question-fold-waiting': {
|
|
3363
|
+
readonly zh: "正在等你回答";
|
|
3364
|
+
readonly en: "Waiting for your answer";
|
|
3365
|
+
};
|
|
3366
|
+
readonly 'question-fold-expand': {
|
|
3367
|
+
readonly zh: "{{combo}} 展开";
|
|
3368
|
+
readonly en: "{{combo}} to expand";
|
|
3369
|
+
};
|
|
3370
|
+
readonly 'question-fold-hint': {
|
|
3371
|
+
readonly zh: "{{combo}} 折叠 / 点标题行收起";
|
|
3372
|
+
readonly en: "{{combo}} to fold / click the header";
|
|
3373
|
+
};
|
|
3374
|
+
readonly 'question-submit-selection': {
|
|
3375
|
+
readonly zh: "提交选择(Enter)";
|
|
3376
|
+
readonly en: "Submit selection (Enter)";
|
|
3377
|
+
};
|
|
3378
|
+
readonly 'question-custom-tab': {
|
|
3379
|
+
readonly zh: "自定义回答";
|
|
3380
|
+
readonly en: "Custom answer";
|
|
3381
|
+
};
|
|
3382
|
+
readonly 'question-attached-label': {
|
|
3383
|
+
readonly zh: "(附加:{{label}})";
|
|
3384
|
+
readonly en: "(attached: {{label}})";
|
|
3385
|
+
};
|
|
3386
|
+
readonly 'question-direct-input': {
|
|
3387
|
+
readonly zh: "直接输入…";
|
|
3388
|
+
readonly en: "Type directly…";
|
|
3389
|
+
};
|
|
3390
|
+
readonly 'question-paste-not-text': {
|
|
3391
|
+
readonly zh: "剪贴板内容是图片或文件,无法作为文字粘贴";
|
|
3392
|
+
readonly en: "Clipboard holds an image or file — not pastable as text";
|
|
3393
|
+
};
|
|
3394
|
+
readonly 'question-paste-too-long': {
|
|
3395
|
+
readonly zh: "粘贴内容过长(最多 {{n}} 个字符),请精简后再试";
|
|
3396
|
+
readonly en: "Pasted content is too long (max {{n}} characters) — trim it and try again";
|
|
3397
|
+
};
|
|
3398
|
+
readonly 'approval-waiting': {
|
|
3399
|
+
readonly zh: " ⏳ 等待审批 · {{tool}} ";
|
|
3400
|
+
readonly en: " Awaiting approval · {{tool}} ";
|
|
3401
|
+
};
|
|
3402
|
+
readonly 'approval-external-hint': {
|
|
3403
|
+
readonly zh: "外部来源:该审批未关联当前会话的活跃工具调用,命令文本可能被伪造,请核实后再决定";
|
|
3404
|
+
readonly en: "External origin: this approval is not tied to a live tool call of this session — the command text may be forged; verify before deciding";
|
|
3405
|
+
};
|
|
3406
|
+
readonly 'approval-proceed': {
|
|
3407
|
+
readonly zh: "要允许这次操作吗?";
|
|
3408
|
+
readonly en: "Allow this operation?";
|
|
3409
|
+
};
|
|
3410
|
+
readonly 'approval-yes': {
|
|
3411
|
+
readonly zh: "允许(仅本次)";
|
|
3412
|
+
readonly en: "Yes, allow once";
|
|
3413
|
+
};
|
|
3414
|
+
readonly 'approval-no': {
|
|
3415
|
+
readonly zh: "拒绝";
|
|
3416
|
+
readonly en: "No";
|
|
3417
|
+
};
|
|
3418
|
+
readonly 'approval-hint': {
|
|
3419
|
+
readonly zh: "↑/↓ 选择 · Enter 确认 · Esc 拒绝";
|
|
3420
|
+
readonly en: "↑/↓ select · Enter confirm · Esc reject";
|
|
3421
|
+
};
|
|
3422
|
+
readonly 'subagent-model': {
|
|
3423
|
+
readonly zh: "模型";
|
|
3424
|
+
readonly en: "Model";
|
|
3425
|
+
};
|
|
3426
|
+
readonly 'subagent-duration': {
|
|
3427
|
+
readonly zh: "时长";
|
|
3428
|
+
readonly en: "Duration";
|
|
3429
|
+
};
|
|
3430
|
+
readonly 'subagent-status-label': {
|
|
3431
|
+
readonly zh: "状态";
|
|
3432
|
+
readonly en: "Status";
|
|
3433
|
+
};
|
|
3434
|
+
readonly 'subagent-status-cancelled': {
|
|
3435
|
+
readonly zh: "已取消";
|
|
3436
|
+
readonly en: "Cancelled";
|
|
3437
|
+
};
|
|
3438
|
+
readonly 'subagent-count-running': {
|
|
3439
|
+
readonly zh: "运行中";
|
|
3440
|
+
readonly en: "running";
|
|
3441
|
+
};
|
|
3442
|
+
readonly 'subagent-count-completed': {
|
|
3443
|
+
readonly zh: "已完成";
|
|
3444
|
+
readonly en: "completed";
|
|
3445
|
+
};
|
|
3446
|
+
readonly 'subagent-count-failed': {
|
|
3447
|
+
readonly zh: "失败";
|
|
3448
|
+
readonly en: "failed";
|
|
3449
|
+
};
|
|
3450
|
+
readonly 'subagent-started': {
|
|
3451
|
+
readonly zh: "开始时间";
|
|
3452
|
+
readonly en: "Started";
|
|
3453
|
+
};
|
|
3454
|
+
readonly 'subagent-completed': {
|
|
3455
|
+
readonly zh: "完成时间";
|
|
3456
|
+
readonly en: "Completed";
|
|
3457
|
+
};
|
|
3458
|
+
readonly 'subagent-error-label': {
|
|
3459
|
+
readonly zh: "错误";
|
|
3460
|
+
readonly en: "Error";
|
|
3461
|
+
};
|
|
3462
|
+
readonly 'subagent-output-label': {
|
|
3463
|
+
readonly zh: "输出";
|
|
3464
|
+
readonly en: "Output";
|
|
3465
|
+
};
|
|
3466
|
+
readonly 'subagent-no-output': {
|
|
3467
|
+
readonly zh: "暂无输出";
|
|
3468
|
+
readonly en: "No output yet";
|
|
3469
|
+
};
|
|
3470
|
+
readonly 'subagent-dashboard-title': {
|
|
3471
|
+
readonly zh: " 子代理面板 ";
|
|
3472
|
+
readonly en: " Subagent Dashboard ";
|
|
3473
|
+
};
|
|
3474
|
+
readonly 'subagent-dashboard-hint-basic': {
|
|
3475
|
+
readonly zh: "↑/↓ 浏览 · Esc 关闭";
|
|
3476
|
+
readonly en: "↑/↓ browse · Esc close";
|
|
3477
|
+
};
|
|
3478
|
+
readonly 'subagent-dashboard-hint-detail': {
|
|
3479
|
+
readonly zh: "↑/↓ 选择 · Enter 查看详情 · Esc 关闭";
|
|
3480
|
+
readonly en: "↑/↓ select · Enter view detail · Esc close";
|
|
3481
|
+
};
|
|
3482
|
+
readonly 'subagent-card-prefix': {
|
|
3483
|
+
readonly zh: "子代理:";
|
|
3484
|
+
readonly en: "Subagent: ";
|
|
3485
|
+
};
|
|
3486
|
+
readonly 'subagent-tab-summary': {
|
|
3487
|
+
readonly zh: "摘要";
|
|
3488
|
+
readonly en: "Summary";
|
|
3489
|
+
};
|
|
3490
|
+
readonly 'subagent-no-summary': {
|
|
3491
|
+
readonly zh: "暂无摘要";
|
|
3492
|
+
readonly en: "No summary yet";
|
|
3493
|
+
};
|
|
3494
|
+
readonly 'subagent-no-tools': {
|
|
3495
|
+
readonly zh: "暂无工具调用";
|
|
3496
|
+
readonly en: "No tool calls";
|
|
3497
|
+
};
|
|
3498
|
+
readonly 'subagent-hint-page': {
|
|
3499
|
+
readonly zh: "切页";
|
|
3500
|
+
readonly en: "page";
|
|
3501
|
+
};
|
|
3502
|
+
readonly 'subagent-hint-scroll': {
|
|
3503
|
+
readonly zh: "滚动";
|
|
3504
|
+
readonly en: "scroll";
|
|
3505
|
+
};
|
|
3506
|
+
readonly 'subagent-hint-back': {
|
|
3507
|
+
readonly zh: "返回";
|
|
3508
|
+
readonly en: "back";
|
|
3509
|
+
};
|
|
3510
|
+
readonly 'subagent-empty-hint': {
|
|
3511
|
+
readonly zh: "让主代理发起 Task 后,子代理会出现在这里";
|
|
3512
|
+
readonly en: "Subagents appear here once the main agent starts Task delegations";
|
|
3513
|
+
};
|
|
3514
|
+
readonly 'jobs-card-prefix': {
|
|
3515
|
+
readonly zh: "任务:";
|
|
3516
|
+
readonly en: "job: ";
|
|
3517
|
+
};
|
|
3518
|
+
readonly 'jobs-status-running': {
|
|
3519
|
+
readonly zh: "运行中";
|
|
3520
|
+
readonly en: "running";
|
|
3521
|
+
};
|
|
3522
|
+
readonly 'jobs-status-stopping': {
|
|
3523
|
+
readonly zh: "停止中";
|
|
3524
|
+
readonly en: "stopping";
|
|
3525
|
+
};
|
|
3526
|
+
readonly 'jobs-status-completed': {
|
|
3527
|
+
readonly zh: "已完成";
|
|
3528
|
+
readonly en: "completed";
|
|
3529
|
+
};
|
|
3530
|
+
readonly 'jobs-status-failed': {
|
|
3531
|
+
readonly zh: "失败";
|
|
3532
|
+
readonly en: "failed";
|
|
3533
|
+
};
|
|
3534
|
+
readonly 'jobs-status-killed': {
|
|
3535
|
+
readonly zh: "已停止";
|
|
3536
|
+
readonly en: "killed";
|
|
3537
|
+
};
|
|
3538
|
+
readonly 'jobs-panel-title': {
|
|
3539
|
+
readonly zh: " 后台任务 ";
|
|
3540
|
+
readonly en: " Background Jobs ";
|
|
3541
|
+
};
|
|
3542
|
+
readonly 'jobs-panel-count-running': {
|
|
3543
|
+
readonly zh: "运行中";
|
|
3544
|
+
readonly en: "running";
|
|
3545
|
+
};
|
|
3546
|
+
readonly 'jobs-panel-count-completed': {
|
|
3547
|
+
readonly zh: "已完成";
|
|
3548
|
+
readonly en: "completed";
|
|
3549
|
+
};
|
|
3550
|
+
readonly 'jobs-panel-count-failed': {
|
|
3551
|
+
readonly zh: "失败";
|
|
3552
|
+
readonly en: "failed";
|
|
3553
|
+
};
|
|
3554
|
+
readonly 'jobs-panel-empty': {
|
|
3555
|
+
readonly zh: "当前会话暂无后台任务";
|
|
3556
|
+
readonly en: "No background jobs in the current session";
|
|
3557
|
+
};
|
|
3558
|
+
readonly 'jobs-panel-empty-hint': {
|
|
3559
|
+
readonly zh: "后台运行的命令(run_in_background)会出现在这里";
|
|
3560
|
+
readonly en: "Commands the agent runs in the background appear here";
|
|
3561
|
+
};
|
|
3562
|
+
readonly 'jobs-panel-hint': {
|
|
3563
|
+
readonly zh: "↑/↓ 选择(聚焦行显示详情)· k 停止选中任务 · Esc 关闭";
|
|
3564
|
+
readonly en: "↑/↓ select (focused row shows details) · k kill focused job · Esc close";
|
|
3565
|
+
};
|
|
3566
|
+
readonly 'jobs-panel-started': {
|
|
3567
|
+
readonly zh: "开始";
|
|
3568
|
+
readonly en: "started";
|
|
3569
|
+
};
|
|
3570
|
+
readonly 'jobs-panel-finished': {
|
|
3571
|
+
readonly zh: "结束";
|
|
3572
|
+
readonly en: "finished";
|
|
3573
|
+
};
|
|
3574
|
+
readonly 'jobs-panel-command': {
|
|
3575
|
+
readonly zh: "命令";
|
|
3576
|
+
readonly en: "command";
|
|
3577
|
+
};
|
|
3578
|
+
readonly 'jobs-panel-output-at': {
|
|
3579
|
+
readonly zh: "输出更新于";
|
|
3580
|
+
readonly en: "output updated";
|
|
3581
|
+
};
|
|
3582
|
+
readonly 'jobs-panel-no-output-yet': {
|
|
3583
|
+
readonly zh: "(暂无镜像输出——agent 读取后显示)";
|
|
3584
|
+
readonly en: "(no mirrored output yet — appears when the agent reads it)";
|
|
3585
|
+
};
|
|
3586
|
+
readonly 'jobs-toast-completed': {
|
|
3587
|
+
readonly zh: "后台任务完成:{{label}}({{id}} · 用时 {{duration}})";
|
|
3588
|
+
readonly en: "Background job completed: {{label}} ({{id}} · {{duration}})";
|
|
3589
|
+
};
|
|
3590
|
+
readonly 'jobs-toast-failed': {
|
|
3591
|
+
readonly zh: "后台任务失败:{{label}}({{id}} · {{detail}})";
|
|
3592
|
+
readonly en: "Background job failed: {{label}} ({{id}} · {{detail}})";
|
|
3593
|
+
};
|
|
3594
|
+
readonly 'jobs-toast-killed': {
|
|
3595
|
+
readonly zh: "后台任务已停止:{{label}}({{id}} · 用时 {{duration}})";
|
|
3596
|
+
readonly en: "Background job killed: {{label}} ({{id}} · {{duration}})";
|
|
3597
|
+
};
|
|
3598
|
+
readonly 'jobs-kill-failed': {
|
|
3599
|
+
readonly zh: "无法停止任务 {{id}}(任务不存在或任务服务未挂载)";
|
|
3600
|
+
readonly en: "Could not kill job {{id}} (unknown job or jobs service not mounted)";
|
|
3601
|
+
};
|
|
3602
|
+
readonly 'jobs-steer-killed': {
|
|
3603
|
+
readonly zh: "我通过 /jobs 面板停止了后台任务 {{id}}({{label}})";
|
|
3604
|
+
readonly en: "I killed background job {{id}} ({{label}}) via the /jobs panel";
|
|
3605
|
+
};
|
|
3606
|
+
readonly 'plan-review-fallback-header': {
|
|
3607
|
+
readonly zh: "计划评审";
|
|
3608
|
+
readonly en: "Plan review";
|
|
3609
|
+
};
|
|
3610
|
+
readonly 'plan-review-feedback-placeholder': {
|
|
3611
|
+
readonly zh: "输入反馈,告诉模型要改什么…";
|
|
3612
|
+
readonly en: "Tell the model what to change…";
|
|
3613
|
+
};
|
|
3614
|
+
readonly 'plan-review-approve-needs-empty': {
|
|
3615
|
+
readonly zh: "请先清空反馈再批准(或在输入行回车提交反馈)";
|
|
3616
|
+
readonly en: "Clear the feedback to approve (or press Enter on the input row to send it)";
|
|
3617
|
+
};
|
|
3618
|
+
readonly 'plan-review-hint': {
|
|
3619
|
+
readonly zh: "↑/↓ 选择 · 1/2 快选 · 打字输入反馈 · Ctrl+V 粘贴 · Enter 提交 · Esc 打断评审";
|
|
3620
|
+
readonly en: "↑/↓ select · 1/2 quick-pick · type feedback · Ctrl+V paste · Enter submit · Esc dismiss";
|
|
3621
|
+
};
|
|
3622
|
+
readonly 'provider-unavailable': {
|
|
3623
|
+
readonly zh: "/provider 需要经 dsh profile 启动(settings / credentials / llm-pi-ai 服务未挂载)";
|
|
3624
|
+
readonly en: "/provider requires starting through a dsh profile (settings / credentials / llm-pi-ai services not mounted)";
|
|
3625
|
+
};
|
|
3626
|
+
readonly 'provider-q-mode': {
|
|
3627
|
+
readonly zh: "要添加哪种模型提供方?";
|
|
3628
|
+
readonly en: "Which kind of model provider do you want to add?";
|
|
3629
|
+
};
|
|
3630
|
+
readonly 'provider-opt-catalog': {
|
|
3631
|
+
readonly zh: "内置 provider";
|
|
3632
|
+
readonly en: "Built-in provider";
|
|
3633
|
+
};
|
|
3634
|
+
readonly 'provider-opt-catalog-desc': {
|
|
3635
|
+
readonly zh: "openai、anthropic、deepseek 等内置目录,自动继承端点与协议";
|
|
3636
|
+
readonly en: "Built-in catalog such as openai, anthropic, deepseek — endpoint and protocol inherited";
|
|
3637
|
+
};
|
|
3638
|
+
readonly 'provider-opt-custom': {
|
|
3639
|
+
readonly zh: "自定义 API 端点";
|
|
3640
|
+
readonly en: "Custom API endpoint";
|
|
3641
|
+
};
|
|
3642
|
+
readonly 'provider-opt-custom-desc': {
|
|
3643
|
+
readonly zh: "OpenAI / Anthropic 兼容的网关或自建服务";
|
|
3644
|
+
readonly en: "An OpenAI/Anthropic-compatible gateway or self-hosted server";
|
|
3645
|
+
};
|
|
3646
|
+
readonly 'provider-q-catalog': {
|
|
3647
|
+
readonly zh: "选择 provider";
|
|
3648
|
+
readonly en: "Choose a provider";
|
|
3649
|
+
};
|
|
3650
|
+
readonly 'provider-opt-other-route': {
|
|
3651
|
+
readonly zh: "其他(手动输入路由名)";
|
|
3652
|
+
readonly en: "Other (enter a route name)";
|
|
3653
|
+
};
|
|
3654
|
+
readonly 'provider-opt-other-route-desc': {
|
|
3655
|
+
readonly zh: "目录里没列出的 catalog 路由";
|
|
3656
|
+
readonly en: "A catalog route not listed above";
|
|
3657
|
+
};
|
|
3658
|
+
readonly 'provider-q-route-id': {
|
|
3659
|
+
readonly zh: "输入路由名";
|
|
3660
|
+
readonly en: "Enter a route name";
|
|
3661
|
+
};
|
|
3662
|
+
readonly 'provider-q-route-id-detail': {
|
|
3663
|
+
readonly zh: "小写字母开头,可含数字与连字符,如 my-gateway";
|
|
3664
|
+
readonly en: "Lowercase letter first, digits and dashes allowed, e.g. my-gateway";
|
|
3665
|
+
};
|
|
3666
|
+
readonly 'provider-route-id-invalid': {
|
|
3667
|
+
readonly zh: "路由名不合法:须以小写字母开头,仅含小写字母 / 数字 / 连字符";
|
|
3668
|
+
readonly en: "Invalid route name: must start with a lowercase letter, only lowercase letters / digits / dashes";
|
|
3669
|
+
};
|
|
3670
|
+
readonly 'provider-q-apikey': {
|
|
3671
|
+
readonly zh: "输入 API key";
|
|
3672
|
+
readonly en: "Enter the API key";
|
|
3673
|
+
};
|
|
3674
|
+
readonly 'provider-q-apikey-detail': {
|
|
3675
|
+
readonly zh: "密钥将写入 ~/.dsh/.credentials.yaml(权限 0600),不会出现在会话记录中";
|
|
3676
|
+
readonly en: "The key is stored in ~/.dsh/.credentials.yaml (mode 0600) and never shown in the transcript";
|
|
3677
|
+
};
|
|
3678
|
+
readonly 'provider-q-baseurl-choice': {
|
|
3679
|
+
readonly zh: "是否覆盖默认 API 端点(baseURL)?";
|
|
3680
|
+
readonly en: "Override the default API endpoint (baseURL)?";
|
|
3681
|
+
};
|
|
3682
|
+
readonly 'provider-opt-baseurl-skip': {
|
|
3683
|
+
readonly zh: "跳过,使用默认端点";
|
|
3684
|
+
readonly en: "Skip — use the default endpoint";
|
|
3685
|
+
};
|
|
3686
|
+
readonly 'provider-opt-baseurl-input': {
|
|
3687
|
+
readonly zh: "现在输入 baseURL";
|
|
3688
|
+
readonly en: "Enter a baseURL now";
|
|
3689
|
+
};
|
|
3690
|
+
readonly 'provider-q-baseurl': {
|
|
3691
|
+
readonly zh: "输入 baseURL";
|
|
3692
|
+
readonly en: "Enter the baseURL";
|
|
3693
|
+
};
|
|
3694
|
+
readonly 'provider-q-protocol': {
|
|
3695
|
+
readonly zh: "选择 API 协议";
|
|
3696
|
+
readonly en: "Choose the wire protocol";
|
|
3697
|
+
};
|
|
3698
|
+
readonly 'provider-protocol-completions-desc': {
|
|
3699
|
+
readonly zh: "OpenAI Chat Completions 兼容(大多数网关)";
|
|
3700
|
+
readonly en: "OpenAI Chat Completions compatible (most gateways)";
|
|
3701
|
+
};
|
|
3702
|
+
readonly 'provider-protocol-responses-desc': {
|
|
3703
|
+
readonly zh: "OpenAI Responses API";
|
|
3704
|
+
readonly en: "OpenAI Responses API";
|
|
3705
|
+
};
|
|
3706
|
+
readonly 'provider-protocol-anthropic-desc': {
|
|
3707
|
+
readonly zh: "Anthropic Messages API";
|
|
3708
|
+
readonly en: "Anthropic Messages API";
|
|
3709
|
+
};
|
|
3710
|
+
readonly 'provider-discovery-running': {
|
|
3711
|
+
readonly zh: "正在探测该端点公布的模型…";
|
|
3712
|
+
readonly en: "Discovering the models this endpoint advertises…";
|
|
3713
|
+
};
|
|
3714
|
+
readonly 'provider-discovery-failed': {
|
|
3715
|
+
readonly zh: "模型探测失败,改为手动输入模型 id";
|
|
3716
|
+
readonly en: "Model discovery failed — enter model ids manually instead";
|
|
3717
|
+
};
|
|
3718
|
+
readonly 'provider-q-models': {
|
|
3719
|
+
readonly zh: "选择要启用的模型(可在输入行逗号分隔补充)";
|
|
3720
|
+
readonly en: "Select the models to enable (add more comma-separated on the input row)";
|
|
3721
|
+
};
|
|
3722
|
+
readonly 'provider-q-models-fallback': {
|
|
3723
|
+
readonly zh: "输入模型 id(逗号分隔)";
|
|
3724
|
+
readonly en: "Enter model ids (comma-separated)";
|
|
3725
|
+
};
|
|
3726
|
+
readonly 'provider-models-required': {
|
|
3727
|
+
readonly zh: "自定义端点至少需要一个模型 id";
|
|
3728
|
+
readonly en: "A custom endpoint needs at least one model id";
|
|
3729
|
+
};
|
|
3730
|
+
readonly 'provider-q-confirm': {
|
|
3731
|
+
readonly zh: "确认写入该 provider 配置?";
|
|
3732
|
+
readonly en: "Write this provider configuration?";
|
|
3733
|
+
};
|
|
3734
|
+
readonly 'provider-route-exists-warning': {
|
|
3735
|
+
readonly zh: "⚠ 该路由已有配置,写入将覆盖现有设置";
|
|
3736
|
+
readonly en: "⚠ This route is already configured — writing overwrites it";
|
|
3737
|
+
};
|
|
3738
|
+
readonly 'provider-opt-confirm-write': {
|
|
3739
|
+
readonly zh: "写入并启用";
|
|
3740
|
+
readonly en: "Write and enable";
|
|
3741
|
+
};
|
|
3742
|
+
readonly 'provider-opt-confirm-cancel': {
|
|
3743
|
+
readonly zh: "取消";
|
|
3744
|
+
readonly en: "Cancel";
|
|
3745
|
+
};
|
|
3746
|
+
readonly 'provider-line-route': {
|
|
3747
|
+
readonly zh: "路由:{{route}}";
|
|
3748
|
+
readonly en: "Route: {{route}}";
|
|
3749
|
+
};
|
|
3750
|
+
readonly 'provider-line-keyref': {
|
|
3751
|
+
readonly zh: "密钥引用:{{ref}}(已写入 ~/.dsh/.credentials.yaml)";
|
|
3752
|
+
readonly en: "Key ref: {{ref}} (stored in ~/.dsh/.credentials.yaml)";
|
|
3753
|
+
};
|
|
3754
|
+
readonly 'provider-line-keyref-env': {
|
|
3755
|
+
readonly zh: "密钥引用:{{ref}}(进程环境已提供同名变量,跳过写入)";
|
|
3756
|
+
readonly en: "Key ref: {{ref}} (already in the process environment, write skipped)";
|
|
3757
|
+
};
|
|
3758
|
+
readonly 'provider-line-baseurl': {
|
|
3759
|
+
readonly zh: "baseURL:{{url}}";
|
|
3760
|
+
readonly en: "baseURL: {{url}}";
|
|
3761
|
+
};
|
|
3762
|
+
readonly 'provider-line-protocol': {
|
|
3763
|
+
readonly zh: "协议:{{api}}";
|
|
3764
|
+
readonly en: "Protocol: {{api}}";
|
|
3765
|
+
};
|
|
3766
|
+
readonly 'provider-line-models': {
|
|
3767
|
+
readonly zh: "模型:{{models}}";
|
|
3768
|
+
readonly en: "Models: {{models}}";
|
|
3769
|
+
};
|
|
3770
|
+
readonly 'provider-line-models-catalog': {
|
|
3771
|
+
readonly zh: "模型:整个 catalog(未收窄)";
|
|
3772
|
+
readonly en: "Models: the whole catalog (not narrowed)";
|
|
3773
|
+
};
|
|
3774
|
+
readonly 'provider-rollback-ok': {
|
|
3775
|
+
readonly zh: "已回滚刚写入的密钥";
|
|
3776
|
+
readonly en: "Rolled back the just-written key";
|
|
3777
|
+
};
|
|
3778
|
+
readonly 'provider-rollback-failed': {
|
|
3779
|
+
readonly zh: "密钥回滚失败,请手动检查 ~/.dsh/.credentials.yaml";
|
|
3780
|
+
readonly en: "Key rollback failed — check ~/.dsh/.credentials.yaml manually";
|
|
3781
|
+
};
|
|
3782
|
+
readonly 'provider-write-failed': {
|
|
3783
|
+
readonly zh: "provider 配置写入失败 · {{{err}}}";
|
|
3784
|
+
readonly en: "Failed to write the provider configuration · {{{err}}}";
|
|
3785
|
+
};
|
|
3786
|
+
readonly 'provider-cancelled': {
|
|
3787
|
+
readonly zh: "已取消添加 provider";
|
|
3788
|
+
readonly en: "Provider setup cancelled";
|
|
3789
|
+
};
|
|
3790
|
+
readonly 'provider-success': {
|
|
3791
|
+
readonly zh: "provider {{route}} 已添加";
|
|
3792
|
+
readonly en: "Provider {{route}} added";
|
|
3793
|
+
};
|
|
3794
|
+
readonly 'provider-switch-hint': {
|
|
3795
|
+
readonly zh: "运行 /model 可切换到新 provider 的模型";
|
|
3796
|
+
readonly en: "Run /model to switch to the new provider’s models";
|
|
3797
|
+
};
|
|
3798
|
+
readonly 'provider-q-switch': {
|
|
3799
|
+
readonly zh: "立即切换到新 provider?";
|
|
3800
|
+
readonly en: "Switch to the new provider now?";
|
|
3801
|
+
};
|
|
3802
|
+
readonly 'provider-opt-switch-now': {
|
|
3803
|
+
readonly zh: "切换到 {{model}}";
|
|
3804
|
+
readonly en: "Switch to {{model}}";
|
|
3805
|
+
};
|
|
3806
|
+
readonly 'provider-opt-switch-keep': {
|
|
3807
|
+
readonly zh: "保持当前模型";
|
|
3808
|
+
readonly en: "Keep the current model";
|
|
3809
|
+
};
|
|
3810
|
+
readonly 'provider-opt-oauth': {
|
|
3811
|
+
readonly zh: "提供商认证";
|
|
3812
|
+
readonly en: "Provider authentication";
|
|
3813
|
+
};
|
|
3814
|
+
readonly 'provider-opt-oauth-desc': {
|
|
3815
|
+
readonly zh: "管理已挂载提供商的 OAuth 或 API key";
|
|
3816
|
+
readonly en: "Manage OAuth or API keys for mounted providers";
|
|
3817
|
+
};
|
|
3818
|
+
readonly 'provider-q-oauth': {
|
|
3819
|
+
readonly zh: "认证哪个提供商?";
|
|
3820
|
+
readonly en: "Authenticate which provider?";
|
|
3821
|
+
};
|
|
3822
|
+
readonly 'provider-oauth-state-in': {
|
|
3823
|
+
readonly zh: "已登录 · 令牌到期 {{time}}";
|
|
3824
|
+
readonly en: "Signed in · token expires {{time}}";
|
|
3825
|
+
};
|
|
3826
|
+
readonly 'provider-auth-state-in': {
|
|
3827
|
+
readonly zh: "已登录";
|
|
3828
|
+
readonly en: "Signed in";
|
|
3829
|
+
};
|
|
3830
|
+
readonly 'provider-oauth-state-expired': {
|
|
3831
|
+
readonly zh: "已登录但令牌已过期,重新登录即可恢复";
|
|
3832
|
+
readonly en: "Signed in but the token expired — sign in again to restore";
|
|
3833
|
+
};
|
|
3834
|
+
readonly 'provider-q-oauth-signed': {
|
|
3835
|
+
readonly zh: "{{provider}} 已登录,接下来?";
|
|
3836
|
+
readonly en: "{{provider}} is signed in — what next?";
|
|
3837
|
+
};
|
|
3838
|
+
readonly 'provider-opt-oauth-relogin': {
|
|
3839
|
+
readonly zh: "重新登录";
|
|
3840
|
+
readonly en: "Sign in again";
|
|
3841
|
+
};
|
|
3842
|
+
readonly 'provider-opt-oauth-relogin-desc': {
|
|
3843
|
+
readonly zh: "更换账号或刷新已有凭据";
|
|
3844
|
+
readonly en: "Switch accounts or refresh the stored credential";
|
|
3845
|
+
};
|
|
3846
|
+
readonly 'provider-opt-oauth-logout': {
|
|
3847
|
+
readonly zh: "登出";
|
|
3848
|
+
readonly en: "Sign out";
|
|
3849
|
+
};
|
|
3850
|
+
readonly 'provider-opt-oauth-logout-desc': {
|
|
3851
|
+
readonly zh: "删除本地保存的认证凭据";
|
|
3852
|
+
readonly en: "Remove the locally stored credential";
|
|
3853
|
+
};
|
|
3854
|
+
readonly 'provider-oauth-none': {
|
|
3855
|
+
readonly zh: "没有可认证的 provider(检查 dsh-auth 插件是否挂载)";
|
|
3856
|
+
readonly en: "No authenticatable providers (check whether the dsh-auth plugin is mounted)";
|
|
3857
|
+
};
|
|
3858
|
+
readonly 'provider-oauth-login-ok': {
|
|
3859
|
+
readonly zh: "{{provider}} 登录成功";
|
|
3860
|
+
readonly en: "Signed in to {{provider}}";
|
|
3861
|
+
};
|
|
3862
|
+
readonly 'provider-oauth-login-failed': {
|
|
3863
|
+
readonly zh: "认证失败 · {{{err}}}";
|
|
3864
|
+
readonly en: "Authentication failed · {{{err}}}";
|
|
3865
|
+
};
|
|
3866
|
+
readonly 'provider-oauth-logout-ok': {
|
|
3867
|
+
readonly zh: "{{provider}} 已登出";
|
|
3868
|
+
readonly en: "Signed out of {{provider}}";
|
|
3869
|
+
};
|
|
3870
|
+
readonly 'provider-line-oauth-provider': {
|
|
3871
|
+
readonly zh: "路由:{{provider}}";
|
|
3872
|
+
readonly en: "Route: {{provider}}";
|
|
3873
|
+
};
|
|
3874
|
+
readonly 'provider-line-oauth-flow': {
|
|
3875
|
+
readonly zh: "登录方式:{{flow}}";
|
|
3876
|
+
readonly en: "Sign-in: {{flow}}";
|
|
3877
|
+
};
|
|
3878
|
+
readonly 'provider-line-oauth-expires': {
|
|
3879
|
+
readonly zh: "令牌到期:{{time}}";
|
|
3880
|
+
readonly en: "Token expires: {{time}}";
|
|
3881
|
+
};
|
|
3882
|
+
readonly 'provider-auth-model-warning': {
|
|
3883
|
+
readonly zh: "凭据已保存,但模型列表不可用:{{{err}}}";
|
|
3884
|
+
readonly en: "Credential saved, but models are unavailable: {{{err}}}";
|
|
3885
|
+
};
|
|
3886
|
+
readonly 'provider-line-oauth-out': {
|
|
3887
|
+
readonly zh: "已登出,本地凭据已删除";
|
|
3888
|
+
readonly en: "Signed out — the stored credential was removed";
|
|
3889
|
+
};
|
|
3890
|
+
readonly 'provider-q-action': {
|
|
3891
|
+
readonly zh: "要做什么?";
|
|
3892
|
+
readonly en: "What do you want to do?";
|
|
3893
|
+
};
|
|
3894
|
+
readonly 'provider-opt-action-add': {
|
|
3895
|
+
readonly zh: "添加新 provider";
|
|
3896
|
+
readonly en: "Add a new provider";
|
|
3897
|
+
};
|
|
3898
|
+
readonly 'provider-opt-action-add-desc': {
|
|
3899
|
+
readonly zh: "内置目录或自定义 API 端点";
|
|
3900
|
+
readonly en: "Built-in catalog or a custom API endpoint";
|
|
3901
|
+
};
|
|
3902
|
+
readonly 'provider-opt-action-edit': {
|
|
3903
|
+
readonly zh: "编辑已有 provider";
|
|
3904
|
+
readonly en: "Edit an existing provider";
|
|
3905
|
+
};
|
|
3906
|
+
readonly 'provider-opt-action-edit-desc': {
|
|
3907
|
+
readonly zh: "修改密钥、端点、协议、模型,或删除该 provider";
|
|
3908
|
+
readonly en: "Change the key, endpoint, protocol, or models — or delete the provider";
|
|
3909
|
+
};
|
|
3910
|
+
readonly 'provider-q-edit': {
|
|
3911
|
+
readonly zh: "选择要编辑的 provider";
|
|
3912
|
+
readonly en: "Choose a provider to edit";
|
|
3913
|
+
};
|
|
3914
|
+
readonly 'provider-none-configured': {
|
|
3915
|
+
readonly zh: "没有已配置的 provider,先用「添加新 provider」创建";
|
|
3916
|
+
readonly en: "No configured providers — create one with “Add a new provider” first";
|
|
3917
|
+
};
|
|
3918
|
+
readonly 'provider-row-models': {
|
|
3919
|
+
readonly zh: "{{n}} 个模型";
|
|
3920
|
+
readonly en: "{{n}} models";
|
|
3921
|
+
};
|
|
3922
|
+
readonly 'provider-row-catalog': {
|
|
3923
|
+
readonly zh: "整个 catalog";
|
|
3924
|
+
readonly en: "whole catalog";
|
|
3925
|
+
};
|
|
3926
|
+
readonly 'provider-row-key-shadowed': {
|
|
3927
|
+
readonly zh: "密钥来自环境变量";
|
|
3928
|
+
readonly en: "key from the environment";
|
|
3929
|
+
};
|
|
3930
|
+
readonly 'provider-q-edit-menu': {
|
|
3931
|
+
readonly zh: "{{route}} 要编辑哪一项?";
|
|
3932
|
+
readonly en: "What would you like to change for {{route}}?";
|
|
3933
|
+
};
|
|
3934
|
+
readonly 'provider-opt-edit-key': {
|
|
3935
|
+
readonly zh: "编辑 API Key";
|
|
3936
|
+
readonly en: "Edit API Key";
|
|
3937
|
+
};
|
|
3938
|
+
readonly 'provider-opt-edit-baseurl': {
|
|
3939
|
+
readonly zh: "编辑 Base URL";
|
|
3940
|
+
readonly en: "Edit Base URL";
|
|
3941
|
+
};
|
|
3942
|
+
readonly 'provider-opt-edit-protocol': {
|
|
3943
|
+
readonly zh: "编辑 wire protocol";
|
|
3944
|
+
readonly en: "Edit wire protocol";
|
|
3945
|
+
};
|
|
3946
|
+
readonly 'provider-opt-edit-models': {
|
|
3947
|
+
readonly zh: "编辑模型列表";
|
|
3948
|
+
readonly en: "Edit model list";
|
|
3949
|
+
};
|
|
3950
|
+
readonly 'provider-opt-edit-delete': {
|
|
3951
|
+
readonly zh: "删除该 provider";
|
|
3952
|
+
readonly en: "Delete this provider";
|
|
3953
|
+
};
|
|
3954
|
+
readonly 'provider-opt-edit-delete-desc': {
|
|
3955
|
+
readonly zh: "移除配置与 API key";
|
|
3956
|
+
readonly en: "Remove the configuration and the API key";
|
|
3957
|
+
};
|
|
3958
|
+
readonly 'provider-key-env-not-editable': {
|
|
3959
|
+
readonly zh: "{{route}} 的 API key 来自环境变量({{ref}}),无法在此修改";
|
|
3960
|
+
readonly en: "{{route}}’s API key comes from the environment ({{ref}}) and cannot be edited here";
|
|
3961
|
+
};
|
|
3962
|
+
readonly 'provider-key-no-ref': {
|
|
3963
|
+
readonly zh: "{{route}} 未配置密钥引用(没有可持久化的 API key),无法在此修改";
|
|
3964
|
+
readonly en: "{{route}} has no credential ref (no persisted API key) and cannot be edited here";
|
|
3965
|
+
};
|
|
3966
|
+
readonly 'provider-line-key-none': {
|
|
3967
|
+
readonly zh: "密钥:未配置(无密钥引用,环境提供时按需读取)";
|
|
3968
|
+
readonly en: "Key: none configured (no credential ref; resolved from environment when present)";
|
|
3969
|
+
};
|
|
3970
|
+
readonly 'provider-key-empty': {
|
|
3971
|
+
readonly zh: "API key 不能为空,未作修改";
|
|
3972
|
+
readonly en: "API key cannot be empty — no change made";
|
|
3973
|
+
};
|
|
3974
|
+
readonly 'provider-q-key-overwrite-confirm': {
|
|
3975
|
+
readonly zh: "密钥 {{ref}} 被多个 provider 共用,确认覆盖?";
|
|
3976
|
+
readonly en: "Key ref {{ref}} is shared by several providers — overwrite it?";
|
|
3977
|
+
};
|
|
3978
|
+
readonly 'provider-opt-key-overwrite-yes': {
|
|
3979
|
+
readonly zh: "覆盖共用密钥";
|
|
3980
|
+
readonly en: "Overwrite the shared key";
|
|
3981
|
+
};
|
|
3982
|
+
readonly 'provider-key-overwrite-warning': {
|
|
3983
|
+
readonly zh: "⚠ 该密钥还被 {{routes}} 使用,写入新 key 会同时替换它们的凭据";
|
|
3984
|
+
readonly en: "⚠ This key is also used by {{routes}}; writing a new one rotates the credential for all of them";
|
|
3985
|
+
};
|
|
3986
|
+
readonly 'provider-row-model-missing': {
|
|
3987
|
+
readonly zh: "本次未发现(保留现有配置)";
|
|
3988
|
+
readonly en: "not found in this discovery (kept as configured)";
|
|
3989
|
+
};
|
|
3990
|
+
readonly 'provider-edit-no-changes': {
|
|
3991
|
+
readonly zh: "没有做任何修改";
|
|
3992
|
+
readonly en: "No changes made";
|
|
3993
|
+
};
|
|
3994
|
+
readonly 'provider-line-key-kept': {
|
|
3995
|
+
readonly zh: "密钥:保持不变({{ref}})";
|
|
3996
|
+
readonly en: "Key: unchanged ({{ref}})";
|
|
3997
|
+
};
|
|
3998
|
+
readonly 'provider-line-key-updated': {
|
|
3999
|
+
readonly zh: "密钥引用:{{ref}}(已更新)";
|
|
4000
|
+
readonly en: "Key ref: {{ref}} (updated)";
|
|
4001
|
+
};
|
|
4002
|
+
readonly 'provider-edit-current': {
|
|
4003
|
+
readonly zh: "当前值:{{value}}";
|
|
4004
|
+
readonly en: "Current: {{value}}";
|
|
4005
|
+
};
|
|
4006
|
+
readonly 'provider-edit-success': {
|
|
4007
|
+
readonly zh: "provider {{route}} 已更新";
|
|
4008
|
+
readonly en: "Provider {{route}} updated";
|
|
4009
|
+
};
|
|
4010
|
+
readonly 'provider-edit-cancelled': {
|
|
4011
|
+
readonly zh: "已取消编辑 provider";
|
|
4012
|
+
readonly en: "Provider edit cancelled";
|
|
4013
|
+
};
|
|
4014
|
+
readonly 'provider-q-delete-confirm': {
|
|
4015
|
+
readonly zh: "确认删除 provider {{route}}?";
|
|
4016
|
+
readonly en: "Delete provider {{route}}?";
|
|
4017
|
+
};
|
|
4018
|
+
readonly 'provider-opt-delete-yes': {
|
|
4019
|
+
readonly zh: "删除配置和密钥";
|
|
4020
|
+
readonly en: "Delete config and key";
|
|
4021
|
+
};
|
|
4022
|
+
readonly 'provider-delete-cancelled': {
|
|
4023
|
+
readonly zh: "已取消删除 provider";
|
|
4024
|
+
readonly en: "Provider deletion cancelled";
|
|
4025
|
+
};
|
|
4026
|
+
readonly 'provider-delete-success': {
|
|
4027
|
+
readonly zh: "provider {{route}} 已删除";
|
|
4028
|
+
readonly en: "Provider {{route}} deleted";
|
|
4029
|
+
};
|
|
4030
|
+
readonly 'provider-delete-failed': {
|
|
4031
|
+
readonly zh: "删除失败 · {{{err}}}";
|
|
4032
|
+
readonly en: "Failed to delete · {{{err}}}";
|
|
4033
|
+
};
|
|
4034
|
+
readonly 'provider-line-deleted-key': {
|
|
4035
|
+
readonly zh: "已删除密钥引用 {{ref}}";
|
|
4036
|
+
readonly en: "Removed key ref {{ref}}";
|
|
4037
|
+
};
|
|
4038
|
+
readonly 'provider-line-deleted-key-shadowed': {
|
|
4039
|
+
readonly zh: "密钥引用 {{ref}} 来自环境变量,未删除";
|
|
4040
|
+
readonly en: "Key ref {{ref}} comes from the environment; not removed";
|
|
4041
|
+
};
|
|
4042
|
+
readonly 'provider-delete-shared-warning': {
|
|
4043
|
+
readonly zh: "⚠ 密钥 {{ref}} 与 {{routes}} 共用,删除本 provider 不会移除该密钥";
|
|
4044
|
+
readonly en: "⚠ Key ref {{ref}} is shared with {{routes}}; deleting this provider keeps the key";
|
|
4045
|
+
};
|
|
4046
|
+
readonly 'provider-line-deleted-key-shared': {
|
|
4047
|
+
readonly zh: "密钥引用 {{ref}} 仍被 {{routes}} 使用,未删除";
|
|
4048
|
+
readonly en: "Key ref {{ref}} is still used by {{routes}}; not removed";
|
|
4049
|
+
};
|
|
4050
|
+
readonly 'provider-line-deleted-key-reserved': {
|
|
4051
|
+
readonly zh: "密钥引用 {{ref}} 属于宿主保留命名空间,未删除";
|
|
4052
|
+
readonly en: "Key ref {{ref}} is in the host-reserved credential namespace; not removed";
|
|
4053
|
+
};
|
|
4054
|
+
readonly 'provider-unknown-ref-users': {
|
|
4055
|
+
readonly zh: "(引用查询不可用)";
|
|
4056
|
+
readonly en: "(ref query unavailable)";
|
|
4057
|
+
};
|
|
4058
|
+
readonly 'provider-line-deleted-key-cleanup-failed': {
|
|
4059
|
+
readonly zh: "密钥引用 {{ref}} 清理失败,请手动检查 ~/.dsh/.credentials.yaml";
|
|
4060
|
+
readonly en: "Failed to remove key ref {{ref}} — check ~/.dsh/.credentials.yaml manually";
|
|
4061
|
+
};
|
|
4062
|
+
readonly 'provider-delete-key-cleanup-failed': {
|
|
4063
|
+
readonly zh: "provider {{route}} 已删除,但密钥 {{ref}} 清理失败,请手动处理";
|
|
4064
|
+
readonly en: "Provider {{route}} deleted, but removing key {{ref}} failed — clean it up manually";
|
|
4065
|
+
};
|
|
4066
|
+
readonly 'cmd-desc-new': {
|
|
4067
|
+
readonly zh: "新开会话";
|
|
4068
|
+
};
|
|
4069
|
+
readonly 'cmd-desc-clear': {
|
|
4070
|
+
readonly zh: "清空当前会话";
|
|
4071
|
+
};
|
|
4072
|
+
readonly 'cmd-desc-compact': {
|
|
4073
|
+
readonly zh: "压缩会话历史";
|
|
4074
|
+
};
|
|
4075
|
+
readonly 'cmd-desc-resume': {
|
|
4076
|
+
readonly zh: "恢复历史会话";
|
|
4077
|
+
};
|
|
4078
|
+
readonly 'cmd-desc-agentview': {
|
|
4079
|
+
readonly zh: "打开会话总览";
|
|
4080
|
+
};
|
|
4081
|
+
readonly 'cmd-desc-bg': {
|
|
4082
|
+
readonly zh: "当前会话转入后台并打开总览";
|
|
4083
|
+
};
|
|
4084
|
+
readonly 'cmd-desc-background': {
|
|
4085
|
+
readonly zh: "当前会话转入后台并打开总览";
|
|
4086
|
+
};
|
|
4087
|
+
readonly 'cmd-desc-rename': {
|
|
4088
|
+
readonly zh: "重命名当前会话";
|
|
4089
|
+
};
|
|
4090
|
+
readonly 'cmd-desc-recap': {
|
|
4091
|
+
readonly zh: "生成最近会话活动摘要(可应用建议标题)";
|
|
4092
|
+
};
|
|
4093
|
+
readonly 'cmd-desc-quit': {
|
|
4094
|
+
readonly zh: "退出 dsh-tui";
|
|
4095
|
+
};
|
|
4096
|
+
readonly 'cmd-desc-q': {
|
|
4097
|
+
readonly zh: "退出 dsh-tui";
|
|
4098
|
+
};
|
|
4099
|
+
readonly 'cmd-desc-rewind': {
|
|
4100
|
+
readonly zh: "回退会话到历史消息";
|
|
4101
|
+
};
|
|
4102
|
+
readonly 'cmd-desc-tree': {
|
|
4103
|
+
readonly zh: "浏览会话分叉树(回退/分叉/切分支)";
|
|
4104
|
+
};
|
|
4105
|
+
readonly 'cmd-desc-fork': {
|
|
4106
|
+
readonly zh: "把当前会话分叉为可恢复副本";
|
|
4107
|
+
};
|
|
4108
|
+
readonly 'cmd-desc-export': {
|
|
4109
|
+
readonly zh: "导出会话为 Markdown 文件";
|
|
4110
|
+
};
|
|
4111
|
+
readonly 'cmd-desc-context': {
|
|
4112
|
+
readonly zh: "查看已加载的上下文明细";
|
|
4113
|
+
};
|
|
4114
|
+
readonly 'cmd-desc-status': {
|
|
4115
|
+
readonly zh: "查看会话状态";
|
|
4116
|
+
};
|
|
4117
|
+
readonly 'cmd-desc-cost': {
|
|
4118
|
+
readonly zh: "查看会话 token 用量";
|
|
4119
|
+
};
|
|
4120
|
+
readonly 'cmd-desc-balance': {
|
|
4121
|
+
readonly zh: "查看 DeepSeek 账户余额";
|
|
4122
|
+
};
|
|
4123
|
+
readonly 'cmd-desc-config': {
|
|
4124
|
+
readonly zh: "查看 dsh-tui 配置来源";
|
|
4125
|
+
};
|
|
4126
|
+
readonly 'cmd-desc-reload': {
|
|
4127
|
+
readonly zh: "重读偏好文件并立即生效";
|
|
4128
|
+
};
|
|
4129
|
+
readonly 'cmd-desc-settings': {
|
|
4130
|
+
readonly zh: "查看和编辑插件设置";
|
|
4131
|
+
};
|
|
4132
|
+
readonly 'cmd-desc-doctor': {
|
|
4133
|
+
readonly zh: "运行环境检查";
|
|
4134
|
+
};
|
|
4135
|
+
readonly 'cmd-desc-migrate': {
|
|
4136
|
+
readonly zh: "从其他编程代理导入对话(claude-code/codex/omp/zcode/grok-build)";
|
|
4137
|
+
};
|
|
4138
|
+
readonly 'cmd-desc-init': {
|
|
4139
|
+
readonly zh: "在工作目录创建 AGENTS.md";
|
|
4140
|
+
};
|
|
4141
|
+
readonly 'cmd-desc-agents': {
|
|
4142
|
+
readonly zh: "查看本会话的子代理";
|
|
4143
|
+
};
|
|
4144
|
+
readonly 'cmd-desc-jobs': {
|
|
4145
|
+
readonly zh: "查看本会话的后台任务";
|
|
4146
|
+
};
|
|
4147
|
+
readonly 'cmd-desc-activity': {
|
|
4148
|
+
readonly zh: "切换工作状态指示器预设";
|
|
4149
|
+
};
|
|
4150
|
+
readonly 'cmd-desc-preset': {
|
|
4151
|
+
readonly zh: "切换 Agent 预设(含梁神模式)";
|
|
4152
|
+
};
|
|
4153
|
+
readonly 'cmd-desc-theme': {
|
|
4154
|
+
readonly zh: "切换配色主题(auto 跟随系统,或内置/静态 JSON/插件主题)";
|
|
4155
|
+
};
|
|
4156
|
+
readonly 'cmd-desc-color': {
|
|
4157
|
+
readonly zh: "设置当前会话强调色(输入框边框与会话标签)";
|
|
4158
|
+
};
|
|
4159
|
+
readonly 'cmd-desc-lang': {
|
|
4160
|
+
readonly zh: "切换界面语言(en / zh)";
|
|
4161
|
+
};
|
|
4162
|
+
readonly 'cmd-desc-model': {
|
|
4163
|
+
readonly zh: "查看当前模型";
|
|
4164
|
+
};
|
|
4165
|
+
readonly 'cmd-desc-thinking': {
|
|
4166
|
+
readonly zh: "显示或隐藏思考过程";
|
|
4167
|
+
};
|
|
4168
|
+
readonly 'cmd-desc-tokens': {
|
|
4169
|
+
readonly zh: "查看会话 token 用量";
|
|
4170
|
+
};
|
|
4171
|
+
readonly 'cmd-desc-provider': {
|
|
4172
|
+
readonly zh: "添加、编辑或删除模型提供方(内置目录或自定义 API 端点)";
|
|
4173
|
+
};
|
|
4174
|
+
readonly 'cmd-desc-login': {
|
|
4175
|
+
readonly zh: "查看 API 凭证状态";
|
|
4176
|
+
};
|
|
4177
|
+
readonly 'cmd-desc-logout': {
|
|
4178
|
+
readonly zh: "清除 API 凭证";
|
|
4179
|
+
};
|
|
4180
|
+
readonly 'cmd-desc-add-dir': {
|
|
4181
|
+
readonly zh: "查看文件系统策略范围";
|
|
4182
|
+
};
|
|
4183
|
+
readonly 'cmd-desc-hooks': {
|
|
4184
|
+
readonly zh: "查看 hooks 状态";
|
|
4185
|
+
};
|
|
4186
|
+
readonly 'cmd-desc-mcp': {
|
|
4187
|
+
readonly zh: "查看 MCP 状态";
|
|
4188
|
+
};
|
|
4189
|
+
readonly 'cmd-desc-skills': {
|
|
4190
|
+
readonly zh: "列出所有可用技能";
|
|
4191
|
+
};
|
|
4192
|
+
readonly 'cmd-desc-plugins': {
|
|
4193
|
+
readonly zh: "显示插件契约、授权与台账诊断";
|
|
4194
|
+
};
|
|
4195
|
+
readonly 'cmd-desc-update': {
|
|
4196
|
+
readonly zh: "更新 dsh-tui 并重启";
|
|
4197
|
+
};
|
|
4198
|
+
readonly 'cmd-desc-vim': {
|
|
4199
|
+
readonly zh: "切换 vim 模式";
|
|
4200
|
+
};
|
|
4201
|
+
readonly 'cmd-desc-terminal-setup': {
|
|
4202
|
+
readonly zh: "查看终端配置建议";
|
|
4203
|
+
};
|
|
4204
|
+
readonly 'cmd-desc-connect': {
|
|
4205
|
+
readonly zh: "连接远程机器";
|
|
4206
|
+
};
|
|
4207
|
+
readonly 'cmd-desc-workspace': {
|
|
4208
|
+
readonly zh: "切换、重命名或打开工作区";
|
|
4209
|
+
};
|
|
4210
|
+
readonly 'cmd-desc-workspace-resume': {
|
|
4211
|
+
readonly zh: "切换到另一个工作区";
|
|
4212
|
+
readonly en: "Switch to another workspace";
|
|
4213
|
+
};
|
|
4214
|
+
readonly 'cmd-desc-workspace-rename': {
|
|
4215
|
+
readonly zh: "重命名当前工作区";
|
|
4216
|
+
readonly en: "Rename the current workspace";
|
|
4217
|
+
};
|
|
4218
|
+
readonly 'cmd-desc-workspace-open': {
|
|
4219
|
+
readonly zh: "打开路径或工作区 URI";
|
|
4220
|
+
readonly en: "Open a path or workspace URI";
|
|
4221
|
+
};
|
|
4222
|
+
readonly 'cmd-desc-help': {
|
|
4223
|
+
readonly zh: "查看快捷键与命令";
|
|
4224
|
+
};
|
|
4225
|
+
readonly 'cmd-desc-restart': {
|
|
4226
|
+
readonly zh: "重启 dsh-tui 并恢复当前会话";
|
|
4227
|
+
};
|
|
4228
|
+
readonly 'cmd-desc-exit': {
|
|
4229
|
+
readonly zh: "退出 dsh-tui";
|
|
4230
|
+
};
|
|
4231
|
+
readonly 'cmd-desc-plan': {
|
|
4232
|
+
readonly zh: "切换计划模式(/plan off 退出)";
|
|
4233
|
+
};
|
|
4234
|
+
readonly 'cmd-desc-goal': {
|
|
4235
|
+
readonly zh: "设置或查看会话目标";
|
|
4236
|
+
};
|
|
4237
|
+
readonly 'cmd-desc-feedback': {
|
|
4238
|
+
readonly zh: "提交使用反馈";
|
|
4239
|
+
};
|
|
4240
|
+
readonly 'lang-current': {
|
|
4241
|
+
readonly zh: "当前语言 {{lang}}";
|
|
4242
|
+
readonly en: "Current language {{lang}}";
|
|
4243
|
+
};
|
|
4244
|
+
readonly 'lang-switch-hint': {
|
|
4245
|
+
readonly zh: "切换 /lang en | /lang zh";
|
|
4246
|
+
readonly en: "Switch /lang en | /lang zh";
|
|
4247
|
+
};
|
|
4248
|
+
readonly 'lang-persist-hint': {
|
|
4249
|
+
readonly zh: "持久化 ~/.dsh-tui/lang.json(重启后仍生效;DSH_TUI_LANG 优先)";
|
|
4250
|
+
readonly en: "Persisted ~/.dsh-tui/lang.json (survives restart; DSH_TUI_LANG wins)";
|
|
4251
|
+
};
|
|
4252
|
+
readonly 'lang-switched': {
|
|
4253
|
+
readonly zh: "语言已切换:{{lang}}(已保存)";
|
|
4254
|
+
readonly en: "Language switched: {{lang}} (saved)";
|
|
4255
|
+
};
|
|
4256
|
+
readonly 'lang-unknown': {
|
|
4257
|
+
readonly zh: "未知语言「{{lang}}」· /lang 查看全部(en / zh)";
|
|
4258
|
+
readonly en: "Unknown language \"{{lang}}\" · /lang to view all (en / zh)";
|
|
4259
|
+
};
|
|
4260
|
+
readonly 'lang-switch-failed': {
|
|
4261
|
+
readonly zh: "语言「{{lang}}」切换失败(无法写入 ~/.dsh-tui/lang.json)";
|
|
4262
|
+
readonly en: "Language \"{{lang}}\" switch failed (cannot write ~/.dsh-tui/lang.json)";
|
|
4263
|
+
};
|
|
4264
|
+
readonly 'lang-picker-title': {
|
|
4265
|
+
readonly zh: "界面语言";
|
|
4266
|
+
readonly en: "UI language";
|
|
4267
|
+
};
|
|
4268
|
+
readonly 'lang-zh-desc': {
|
|
4269
|
+
readonly zh: "简体中文(默认)";
|
|
4270
|
+
readonly en: "Simplified Chinese (default)";
|
|
4271
|
+
};
|
|
4272
|
+
readonly 'lang-en-desc': {
|
|
4273
|
+
readonly zh: "English(英文)";
|
|
4274
|
+
readonly en: "English";
|
|
4275
|
+
};
|
|
4276
|
+
readonly 'status-cache-label': {
|
|
4277
|
+
readonly zh: "缓存 ";
|
|
4278
|
+
readonly en: "cache ";
|
|
4279
|
+
};
|
|
4280
|
+
readonly 'traj-title': {
|
|
4281
|
+
readonly zh: "轨迹";
|
|
4282
|
+
readonly en: "Trajectory";
|
|
4283
|
+
};
|
|
4284
|
+
readonly 'traj-totals': {
|
|
4285
|
+
readonly zh: "{{turns}} 轮 · {{steps}} 步";
|
|
4286
|
+
readonly en: "{{turns}} turns · {{steps}} rows";
|
|
4287
|
+
};
|
|
4288
|
+
readonly 'traj-errors': {
|
|
4289
|
+
readonly zh: "{{n}} 错";
|
|
4290
|
+
readonly en: "{{n}} failed";
|
|
4291
|
+
};
|
|
4292
|
+
readonly 'traj-retries': {
|
|
4293
|
+
readonly zh: "{{n}} 重试";
|
|
4294
|
+
readonly en: "{{n}} retries";
|
|
4295
|
+
};
|
|
4296
|
+
readonly 'traj-matches': {
|
|
4297
|
+
readonly zh: "{{n}}/{{total}} 匹配";
|
|
4298
|
+
readonly en: "{{n}}/{{total}} matched";
|
|
4299
|
+
};
|
|
4300
|
+
readonly 'traj-tab-timeline': {
|
|
4301
|
+
readonly zh: "时序";
|
|
4302
|
+
readonly en: "Timeline";
|
|
4303
|
+
};
|
|
4304
|
+
readonly 'traj-tab-hotspot': {
|
|
4305
|
+
readonly zh: "热点";
|
|
4306
|
+
readonly en: "Hotspot";
|
|
4307
|
+
};
|
|
4308
|
+
readonly 'traj-hot-tools': {
|
|
4309
|
+
readonly zh: "工具";
|
|
4310
|
+
readonly en: "Tools";
|
|
4311
|
+
};
|
|
4312
|
+
readonly 'traj-hot-model': {
|
|
4313
|
+
readonly zh: "模型";
|
|
4314
|
+
readonly en: "Model";
|
|
4315
|
+
};
|
|
4316
|
+
readonly 'traj-hot-turns': {
|
|
4317
|
+
readonly zh: "轮次";
|
|
4318
|
+
readonly en: "Turns";
|
|
4319
|
+
};
|
|
4320
|
+
readonly 'traj-sort-duration': {
|
|
4321
|
+
readonly zh: "按耗时";
|
|
4322
|
+
readonly en: "by duration";
|
|
4323
|
+
};
|
|
4324
|
+
readonly 'traj-sort-count': {
|
|
4325
|
+
readonly zh: "按次数";
|
|
4326
|
+
readonly en: "by count";
|
|
4327
|
+
};
|
|
4328
|
+
readonly 'traj-sort-tokens': {
|
|
4329
|
+
readonly zh: "按 token";
|
|
4330
|
+
readonly en: "by tokens";
|
|
4331
|
+
};
|
|
4332
|
+
readonly 'traj-proj-sequence': {
|
|
4333
|
+
readonly zh: "序号等宽";
|
|
4334
|
+
readonly en: "even";
|
|
4335
|
+
};
|
|
4336
|
+
readonly 'traj-proj-time': {
|
|
4337
|
+
readonly zh: "真实墙钟";
|
|
4338
|
+
readonly en: "wall-clock";
|
|
4339
|
+
};
|
|
4340
|
+
readonly 'traj-proj-compressed': {
|
|
4341
|
+
readonly zh: "压缩空闲";
|
|
4342
|
+
readonly en: "compressed";
|
|
4343
|
+
};
|
|
4344
|
+
readonly 'traj-hint-timeline': {
|
|
4345
|
+
readonly zh: "**↑/↓** 移动 · **←/→** 视图 · **[ ]** 跳错 · **{ }** 跳轮 · **/** 查询 · **m** 投影 · **enter** 详情 · **q** 退出";
|
|
4346
|
+
readonly en: "**↑/↓** move · **←/→** view · **[ ]** failures · **{ }** turns · **/** query · **m** projection · **enter** detail · **q** exit";
|
|
4347
|
+
};
|
|
4348
|
+
readonly 'traj-hint-hotspot': {
|
|
4349
|
+
readonly zh: "**↑/↓** 移动 · **←/→** 视图 · **t** 排序 · **enter** 回时序定位 · **q** 退出";
|
|
4350
|
+
readonly en: "**↑/↓** move · **←/→** view · **t** sort · **enter** locate in timeline · **q** exit";
|
|
4351
|
+
};
|
|
4352
|
+
readonly 'traj-hint-query': {
|
|
4353
|
+
readonly zh: "**tool:** **kind:** **turn:** **err:** **run:** **>10s** **tok>1k** · 裸词全文 · **enter** 确认 · **esc** 清除";
|
|
4354
|
+
readonly en: "**tool:** **kind:** **turn:** **err:** **run:** **>10s** **tok>1k** · bare word = full text · **enter** apply · **esc** clear";
|
|
4355
|
+
};
|
|
4356
|
+
readonly 'traj-hint-expanded': {
|
|
4357
|
+
readonly zh: "**j/k** 翻页 · **enter/esc** 收起 · **q** 退出";
|
|
4358
|
+
readonly en: "**j/k** page · **enter/esc** collapse · **q** exit";
|
|
4359
|
+
};
|
|
4360
|
+
readonly 'traj-hint-failure': {
|
|
4361
|
+
readonly zh: "{{key}} 看完整轨迹";
|
|
4362
|
+
readonly en: "{{key}} for the full trajectory";
|
|
4363
|
+
};
|
|
4364
|
+
};
|
|
4365
|
+
export type I18nKey = keyof typeof dict;
|
|
4366
|
+
export type I18nParams = Record<string, string | number>;
|
|
4367
|
+
/** Emitted on every language switch so React screens can re-render. */
|
|
4368
|
+
type Listener = () => void;
|
|
4369
|
+
/** Subscribe to language switches (mirrors themePrefs subscription style). */
|
|
4370
|
+
export declare function subscribeLang(listener: Listener): () => void;
|
|
4371
|
+
/** The currently active language. */
|
|
4372
|
+
export declare function getLang(): Lang;
|
|
4373
|
+
/** Switch the active language and notify subscribers. */
|
|
4374
|
+
export declare function setLang(lang: Lang): void;
|
|
4375
|
+
/** Is a string a valid shipped language code? */
|
|
4376
|
+
export declare function isLang(value: unknown): value is Lang;
|
|
4377
|
+
/**
|
|
4378
|
+
* Translate a dictionary key into the active language, substituting
|
|
4379
|
+
* `{{name}}` placeholders with params. Missing keys render the key itself
|
|
4380
|
+
* so a typo is visible instead of silently blank.
|
|
4381
|
+
* @param key - Dictionary key (see dict).
|
|
4382
|
+
* @param params - Placeholder values.
|
|
4383
|
+
*/
|
|
4384
|
+
export declare function t(key: I18nKey, params?: I18nParams): string;
|
|
4385
|
+
/**
|
|
4386
|
+
* Translate a runtime-computed key (e.g. `cmd-desc-${name}`), falling back
|
|
4387
|
+
* to the given text when the key is missing or has no entry in the active
|
|
4388
|
+
* language — unlike {@link t}, which renders the key itself. Used where the
|
|
4389
|
+
* fallback holds the authoritative text (command descriptions: the en copy
|
|
4390
|
+
* lives in `LOCAL_COMMANDS` / the DSH registry, the dict carries zh only).
|
|
4391
|
+
* @param key - Dictionary key, computed at runtime so it is not type-checked.
|
|
4392
|
+
* @param fallback - Text used when no translation exists.
|
|
4393
|
+
* @param params - Placeholder values substituted into whichever text wins.
|
|
4394
|
+
*/
|
|
4395
|
+
export declare function tOr(key: string, fallback: string, params?: I18nParams): string;
|
|
4396
|
+
/** Read-only view of the dictionary for audits (scripts/verify-i18n.ts). */
|
|
4397
|
+
export declare const i18nDict: Readonly<Record<string, {
|
|
4398
|
+
readonly zh?: I18nText;
|
|
4399
|
+
readonly en?: I18nText;
|
|
4400
|
+
}>>;
|
|
4401
|
+
/**
|
|
4402
|
+
* Parse a persisted `{ lang }` value; anything else yields undefined.
|
|
4403
|
+
* @param text - Raw file contents.
|
|
4404
|
+
*/
|
|
4405
|
+
export declare function parseLangPref(text: string): Lang | undefined;
|
|
4406
|
+
/** The persisted `/lang` choice, or undefined when unset or invalid. */
|
|
4407
|
+
export declare function readLangPref(dir?: string): Lang | undefined;
|
|
4408
|
+
/** Persist the chosen language (best effort). */
|
|
4409
|
+
export declare function writeLangPref(lang: Lang, dir?: string): boolean;
|
|
4410
|
+
/**
|
|
4411
|
+
* Guess the user's language from the OS locale (`LC_ALL`, `LC_MESSAGES`,
|
|
4412
|
+
* `LANG`). Only consulted when nothing else (env var, cordis.yml `lang`,
|
|
4413
|
+
* persisted `/lang` choice) pinned a language. `zh*` maps to zh; every
|
|
4414
|
+
* other stated locale (en, but also fr/de/ja/…) maps to en — English is
|
|
4415
|
+
* the lingua-franca fallback for a locale we don't ship, and a German
|
|
4416
|
+
* user must not get a Chinese UI. The POSIX/C locale means "no locale
|
|
4417
|
+
* selected" and conventionally maps to English — importantly it is what
|
|
4418
|
+
* CI runners (LANG=C.UTF-8) report, so tests asserting English UI copy
|
|
4419
|
+
* stay deterministic. Only an ABSENT locale (typical on Windows, where
|
|
4420
|
+
* these POSIX vars don't exist and imply nothing about the user) keeps
|
|
4421
|
+
* the zh default.
|
|
4422
|
+
*/
|
|
4423
|
+
export declare function detectLocaleLang(): Lang;
|
|
4424
|
+
/**
|
|
4425
|
+
* Resolve the startup language: `DSH_TUI_LANG` when it holds a valid value
|
|
4426
|
+
* (pinned at process start — the repro/verify scripts rely on this for
|
|
4427
|
+
* deterministic UI copy), else the persisted `/lang` choice, else the OS
|
|
4428
|
+
* locale guess, else `zh` (the original hard-coded language). The
|
|
4429
|
+
* cordis.yml `lang` precedence lives in plugin.apply.
|
|
4430
|
+
*/
|
|
4431
|
+
export declare function resolveStartupLang(): Lang;
|
|
4432
|
+
export {};
|
|
4433
|
+
//# sourceMappingURL=i18n.d.ts.map
|