/** * Minimal user-facing string tables for `dsh-connect`. Every message a user * can see (menus, command replies, status lines, hints) lives here in both * `zh` and `en`; the configured `language` picks the active table. Keep this * file free of imports from the runner so it can be shared by any module. * @module dsh-connect/i18n */ export type Language = "zh" | "en"; /** All user-visible strings, as template functions where they interpolate. */ export interface Messages { reasonCompleted: string; reasonAborted: string; reasonBlocked: string; reasonError: string; reasonMaxTokens: string; reasonInterrupted: string; reasonUnknown: string; menuRoot: string; menuWorkspace: string; menuChat: string; menuSettings: string; menuModel: string; menuReasoning: string; menuNotify: string; rootSectionWorkspace: string; rootSectionChat: string; rootSectionTask: string; rootSectionSystem: string; rootMenuFooter: string; thinkingHint: string; toolCalling(name: string, summary: string | undefined): string; processingHeartbeat(minutes: number): string; processingFailed(detail: string): string; processingStarted(preview: string): string; progressReminder(minutes: number, status: string): string; progressThinking: string; /** Tool-free milestone for the progress reminder: how much work happened, not which tools. */ toolProgress(count: number): string; progressMenuTitle: string; progressOff: string; progressMinutes(n: number): string; progressSet(label: string): string; progressSetting(label: string): string; menuSettingsProgress: string; helpProgress: string; /** `/autocompact` help line. */ helpAutocompact: string; /** Auto-compaction turned on for this chat. */ autocompactOn(pct: string): string; /** Auto-compaction turned off for this chat. */ autocompactOff: string; /** Threshold changed. */ autocompactThresholdSet(pct: string): string; /** The argument was not a usable percentage. */ autocompactUsage: string; /** Current state, reported by a bare `/autocompact`. */ autocompactStatus(on: boolean, pct: string): string; compactStarted: string; compactDone: string; questionCardTitle: string; questionCardHint: string; questionMultiHint: string; questionStep(index: number, total: number): string; questionTextHint(question: string): string; questionWaiting(question: string): string; approvalCardTitle: string; approvalAsk(toolName: string, reason: string | undefined): string; approveLabel: string; rejectLabel: string; answerReceived: string; /** Header of the closed question card, once every question has been answered. */ answersSubmitted(summary: string): string; /** Placeholder in the recap for a question that was answered with nothing. */ answerNotProvided: string; /** Shown when a tap cannot be matched to any option of the question on screen. */ answerNotRecognised: string; questionToolCall(text: string): string; /** Card summary shown after an approval decision was accepted. */ approvalDone(outcome: "allowed-once" | "rejected", toolName: string): string; /** Card summary shown when the approval is no longer actionable (stale / already handled). */ approvalStale: string; /** Shown when answering an interactive question failed (e.g. it was already answered elsewhere). */ questionStale: string; welcomeTitle: string; welcomeBody(workdir: string): string; errorAdvicePermission: string; errorAdviceNetwork: string; errorAdviceModel: string; errorAdviceGeneric: string; processingFailedAdvice(detail: string, advice: string): string; confirmTitle: string; confirmYes: string; confirmNo: string; confirmClearText: string; confirmNewText: string; actionCancelled: string; toolStepLabel(n: number, name: string): string; queuedHint(n: number): string; /** The stored session could not be resumed, so this turn starts a new one. */ resumeFallback(reason: string): string; psUsage: string; psReceived(text: string): string; psNoActiveSession: string; psAppendLabel(text: string): string; busyHint(text: string): string; contextHighPrompt(pct: number): string; contextHighTitle: string; compactQueued: string; notifyFull: string; notifyImportant: string; notifyResult: string; notifyFullDesc: string; notifyImportantDesc: string; notifyResultDesc: string; notifySet(level: string, description: string): string; taskStatsHeader(duration: string): string; taskStatsModel(providerModel: string): string; taskStatsTokensIn(tokens: string, cached: string | undefined): string; taskStatsTokensOut(tokens: string): string; taskStatsSteps(count: number): string; taskStatsContext(usedPct: string, window: string): string; /** Context size in tokens when the window is unknown, so the row is never silently absent. */ taskStatsContextUnknown(tokens: string): string; taskStatsCompactOk: string; taskStatsCompactSuggest: string; /** Auto-compaction is on and armed; `pct` is the configured threshold. */ taskStatsAutocompactArmed(pct: string): string; /** Auto-compaction is on and this turn reached the threshold. */ taskStatsAutocompactDue(pct: string): string; taskDuration(ms: number): string; imageDownloadFailed(imageError: string): string; fileDownloadFailed(fileError: string): string; imagesStaged(locations: string, description: string): string; visionPrompt: string; filesStaged(count: number, locations: string): string; taskEnded(reasonLabel: string): string; errorCode(code: string): string; reasonMessage(message: string): string; produced(text: string): string; newChatDone: string; chatCleared: string; stopRequested: string; sessionSwitched(title: string): string; modelSet(name: string): string; reasoningSet(name: string): string; languageAlready(name: string): string; dirUsage: string; dirNotExists(path: string): string; dirNotExistsHint(path: string): string; dirUnreadable(path: string): string; dirSwitched(path: string): string; workspaceUsage: string; menuClosed: string; menuExit: string; menuBack: string; menuWorkspaceAction: string; menuChatAction: string; menuStatusAction: string; menuTaskAction: string; menuHistoryAction: string; menuGoalsAction: string; menuScheduleAction: string; menuCompactAction: string; menuPluginsAction: string; menuSettingsAction: string; menuNewChat: string; menuSettingsModel: string; menuSettingsReasoning: string; menuSettingsNotify: string; menuSettingsOverview: string; menuSettingsLanguage: string; languageZh: string; languageEn: string; languageSet(lang: string): string; statusNoSession(workdir: string): string; statusRunning: string; statusIdle: string; statusExecuting: string; /** Reported when the session holds a turn this process never drove (restart mid-task). */ statusOrphaned: string; statusWaiting: string; statusField(status: string): string; modelField(model: string): string; workdirField(workdir: string): string; queuedField(n: number): string; queueEmpty: string; queueDetail(n: number): string; lastTurnReason(reason: string): string; lastTurnTime(time: string): string; noTurnHistory: string; sessionField(id: string): string; contextField(total: number, surface: number): string; noTodos: string; currentTodos(n: number, list: string): string; /** The line under a subtask list saying when it was last accurate. */ subtasksUpdatedAt(at: string): string; settingsHeader: string; modelSetting(model: string): string; reasoningSetting(effort: string): string; agentPresetSetting(preset: string): string; workdirSetting(workdir: string): string; workspacesSetting: string; notConfigured: string; chatCountField(n: number): string; allowUsersField(n: number, all: boolean): string; allowChatsField(n: number, all: boolean): string; stateDirField(dir: string): string; noModelsFound: string; defaultLabel: string; modelName(name: string, provider: string): string; effortLow: string; effortMedium: string; effortHigh: string; effortDefault: string; noPlugins: string; pluginDisabled: string; pluginEnabled: string; pluginsTruncated(all: number, shown: number): string; pluginsCount(n: number): string; workspaceServiceUnavailable: string; workspaceCreated(title: string, path: string): string; createFailed(error: string): string; noActiveSessionCompact: string; sessionRunning: string; compactionUnavailable: string; nothingToCompact: string; compactFailed(message: string): string; noActiveSession: string; noMessagesYet: string; recentMessages(n: number, list: string): string; noActiveGoals: string; goalPhaseActive: string; goalPhasePaused: string; goalPhaseBlocked: string; goalPhaseComplete: string; goalObjective(objective: string): string; goalStatus(status: string): string; goalRounds(started: number, max: number): string; goalAutoRun(armed: boolean): string; goalBlockedReason(message: string): string; noReminders: string; reminderDue: string; reminderClock: string; reminderEvery(minutes: number): string; reminderOnce: string; reminderLine(state: string, id: string, prompt: string, kind: string, when: string): string; remindersCount(n: number, list: string): string; reminderFired(text: string): string; reminderSet(atDisplay: string, text: string): string; /** Appended to a reminder confirmation whose store write failed. */ reminderNotPersisted: string; reminderNoText: string; reminderParseFailed(arg: string): string; reminderPersistedHeader: string; broadcastUsage: string; broadcastNotAdmin: string; broadcastDisabled: string; broadcastSent(n: number): string; broadcastUnsupported: string; sendUsage: string; sendNotFound(path: string): string; sendIsDir(path: string): string; sendTooLarge(path: string): string; sendUnsupported: string; sendSent(path: string): string; sendFailed(detail: string): string; noWorkspaces: string; workspaceSessions(n: number): string; workspacesCount(n: number, list: string): string; noSessionsInWorkdir(workdir: string): string; historySessions(n: number, list: string): string; currentDir: string; mirrorCreated(sessionId: string): string; mirrorNotConfigured: string; sessionLockedBy(channel: string): string; lockTimeoutReleased(minutes: number): string; unlockSuccess: string; unlockNoLock: string; lockRenewed(minutes: number): string; messageQueued(position: number): string; queueProcessed(count: number): string; exportMarkdown(path: string): string; exportNoSession: string; exportFailed(error: string): string; mirrorStatus(sessionId: string, lockedBy?: string, timeoutMin?: number, queuedCount?: number): string; webMirrorIndicator: string; helpHeader: string; helpMenu: string; helpSettings: string; helpStatus: string; helpTask: string; helpChat: string; helpDir: string; helpWorkspace: string; helpPlugins: string; helpCompact: string; helpHistory: string; helpGoals: string; helpSchedule: string; helpModel: string; helpNotify: string; helpWorkspaces: string; helpNew: string; helpClear: string; helpStop: string; helpOther: string; helpMirror: string; helpUnlock: string; helpRenew: string; helpExport: string; helpPs: string; helpRemind: string; helpSend: string; helpBroadcast: string; } export declare function messages(lang: Language): Messages; //# sourceMappingURL=i18n.d.ts.map