@grinev/opencode-telegram-bot 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/i18n/en.js CHANGED
@@ -3,6 +3,7 @@ export const en = {
3
3
  "cmd.description.new": "Create a new session",
4
4
  "cmd.description.stop": "Stop current action",
5
5
  "cmd.description.sessions": "List sessions",
6
+ "cmd.description.tts": "Toggle audio replies",
6
7
  "cmd.description.projects": "List projects",
7
8
  "cmd.description.task": "Create a scheduled task",
8
9
  "cmd.description.tasklist": "List scheduled tasks",
@@ -32,8 +33,8 @@ export const en = {
32
33
  "inline.cancelled_callback": "Cancelled",
33
34
  "common.unknown": "unknown",
34
35
  "common.unknown_error": "unknown error",
35
- "start.welcome": "👋 Welcome to OpenCode Telegram Bot!\n\nUse commands:\n/projects — select project\n/sessions — session list\n/new — new session\n/task — scheduled task\n/tasklist — scheduled tasks\n/status — status\n/help — help\n\nUse the bottom buttons to select agent mode, model, and variant.",
36
- "help.keyboard_hint": "💡 Use the bottom keyboard buttons for agent mode, model, variant, and context actions.",
36
+ "start.welcome": "👋 Welcome to OpenCode Telegram Bot!\n\nUse commands:\n/projects — select project\n/sessions — session list\n/new — new session\n/task — scheduled task\n/tasklist — scheduled tasks\n/status — status\n/help — help\n\nUse the bottom buttons to select the agent, model, and variant.",
37
+ "help.keyboard_hint": "💡 Use the bottom keyboard buttons for the agent, model, variant, and context actions.",
37
38
  "help.text": "📖 **Help**\n\n/status - Check server status\n/sessions - Session list\n/new - Create new session\n/help - Help",
38
39
  "bot.thinking": "💭 Thinking...",
39
40
  "bot.project_not_selected": "🏗 Project is not selected.\n\nFirst select a project with /projects.",
@@ -65,8 +66,11 @@ export const en = {
65
66
  "status.line.managed_no": "Started by bot: No",
66
67
  "status.line.pid": "PID: {pid}",
67
68
  "status.line.uptime_sec": "Uptime: {seconds} sec",
68
- "status.line.mode": "Mode: {mode}",
69
+ "status.line.mode": "Agent: {mode}",
69
70
  "status.line.model": "Model: {model}",
71
+ "status.line.tts": "TTS replies: {tts}",
72
+ "status.tts.on": "On",
73
+ "status.tts.off": "Off",
70
74
  "status.agent_not_set": "not set",
71
75
  "status.project_selected": "Project: {project}",
72
76
  "status.project_not_selected": "Project: not selected",
@@ -75,6 +79,10 @@ export const en = {
75
79
  "status.session_not_selected": "Current session: not selected",
76
80
  "status.session_hint": "Use /sessions to select one or /new to create one",
77
81
  "status.server_unavailable": "🔴 OpenCode Server is unavailable\n\nUse /opencode_start to start the server.",
82
+ "tts.enabled": "🔊 Audio replies enabled globally.",
83
+ "tts.not_configured": "⚠️ Audio replies are unavailable. Set `TTS_API_URL` and `TTS_API_KEY` first.",
84
+ "tts.disabled": "🔇 Audio replies disabled globally.",
85
+ "tts.failed": "⚠️ Failed to generate audio reply.",
78
86
  "projects.empty": "📭 No projects found.\n\nOpen a directory in OpenCode and create at least one session, then it will appear here.",
79
87
  "projects.select": "Select a project:",
80
88
  "projects.select_with_current": "Select a project:\n\nCurrent: 🏗 {project}",
@@ -127,11 +135,11 @@ export const en = {
127
135
  "opencode_stop.stop_error": "🔴 Failed to stop OpenCode Server\n\nError: {error}",
128
136
  "opencode_stop.success": "✅ OpenCode Server stopped successfully",
129
137
  "opencode_stop.error": "🔴 An error occurred while stopping server.\n\nCheck application logs for details.",
130
- "agent.changed_callback": "Mode changed: {name}",
131
- "agent.changed_message": "✅ Mode changed to: {name}",
132
- "agent.change_error_callback": "Failed to change mode",
133
- "agent.menu.current": "Current mode: {name}\n\nSelect mode:",
134
- "agent.menu.select": "Select work mode:",
138
+ "agent.changed_callback": "Agent changed: {name}",
139
+ "agent.changed_message": "✅ Agent changed to: {name}",
140
+ "agent.change_error_callback": "Failed to change agent",
141
+ "agent.menu.current": "Current agent: {name}\n\nSelect agent:",
142
+ "agent.menu.select": "Select agent:",
135
143
  "agent.menu.empty": "⚠️ No available agents",
136
144
  "agent.menu.error": "🔴 Failed to get agents list",
137
145
  "model.changed_callback": "Model changed: {name}",
@@ -205,7 +213,7 @@ export const en = {
205
213
  "question.summary.title": "✅ Poll completed!\n\n",
206
214
  "question.summary.question": "Question {index}:\n{question}\n\n",
207
215
  "question.summary.answer": "Answer:\n{answer}\n\n",
208
- "keyboard.agent_mode": "{emoji} {name} Mode",
216
+ "keyboard.agent_mode": "{emoji} {name} Agent",
209
217
  "keyboard.context": "📊 {used} / {limit} ({percent}%)",
210
218
  "keyboard.context_empty": "📊 0",
211
219
  "keyboard.variant": "💭 {name}",
package/dist/i18n/es.js CHANGED
@@ -3,6 +3,7 @@ export const es = {
3
3
  "cmd.description.new": "Crear una sesión nueva",
4
4
  "cmd.description.stop": "Detener la acción actual",
5
5
  "cmd.description.sessions": "Listar sesiones",
6
+ "cmd.description.tts": "Alternar respuestas de audio",
6
7
  "cmd.description.projects": "Listar proyectos",
7
8
  "cmd.description.task": "Crear tarea programada",
8
9
  "cmd.description.tasklist": "Ver tareas programadas",
@@ -32,8 +33,8 @@ export const es = {
32
33
  "inline.cancelled_callback": "Cancelado",
33
34
  "common.unknown": "desconocido",
34
35
  "common.unknown_error": "error desconocido",
35
- "start.welcome": "👋 ¡Bienvenido a OpenCode Telegram Bot!\n\nUsa los comandos:\n/projects — seleccionar proyecto\n/sessions — lista de sesiones\n/new — sesión nueva\n/task — tarea programada\n/tasklist — tareas programadas\n/status — estado\n/help — ayuda\n\nUsa los botones inferiores para elegir modo, modelo y variante.",
36
- "help.keyboard_hint": "💡 Usa los botones inferiores para modo del agente, modelo, variante y acciones de contexto.",
36
+ "start.welcome": "👋 ¡Bienvenido a OpenCode Telegram Bot!\n\nUsa los comandos:\n/projects — seleccionar proyecto\n/sessions — lista de sesiones\n/new — sesión nueva\n/task — tarea programada\n/tasklist — tareas programadas\n/status — estado\n/help — ayuda\n\nUsa los botones inferiores para elegir agente, modelo y variante.",
37
+ "help.keyboard_hint": "💡 Usa los botones inferiores para agente, modelo, variante y acciones de contexto.",
37
38
  "help.text": "📖 **Ayuda**\n\n/status - Ver estado del servidor\n/sessions - Lista de sesiones\n/new - Crear una sesión nueva\n/help - Ayuda",
38
39
  "bot.thinking": "💭 Pensando...",
39
40
  "bot.project_not_selected": "🏗 No hay un proyecto seleccionado.\n\nPrimero selecciona un proyecto con /projects.",
@@ -65,8 +66,11 @@ export const es = {
65
66
  "status.line.managed_no": "Iniciado por el bot: No",
66
67
  "status.line.pid": "PID: {pid}",
67
68
  "status.line.uptime_sec": "Tiempo activo: {seconds} s",
68
- "status.line.mode": "Modo: {mode}",
69
+ "status.line.mode": "Agente: {mode}",
69
70
  "status.line.model": "Modelo: {model}",
71
+ "status.line.tts": "Respuestas TTS: {tts}",
72
+ "status.tts.on": "Activadas",
73
+ "status.tts.off": "Desactivadas",
70
74
  "status.agent_not_set": "no configurado",
71
75
  "status.project_selected": "Proyecto: {project}",
72
76
  "status.project_not_selected": "Proyecto: no seleccionado",
@@ -75,6 +79,10 @@ export const es = {
75
79
  "status.session_not_selected": "Sesión actual: no seleccionada",
76
80
  "status.session_hint": "Usa /sessions para elegir una o /new para crear una",
77
81
  "status.server_unavailable": "🔴 OpenCode Server no está disponible\n\nUsa /opencode_start para iniciar el servidor.",
82
+ "tts.enabled": "🔊 Respuestas de audio activadas globalmente.",
83
+ "tts.not_configured": "⚠️ Las respuestas de audio no estan disponibles. Configura primero `TTS_API_URL` y `TTS_API_KEY`.",
84
+ "tts.disabled": "🔇 Respuestas de audio desactivadas globalmente.",
85
+ "tts.failed": "⚠️ No se pudo generar la respuesta de audio.",
78
86
  "projects.empty": "📭 No se encontraron proyectos.\n\nAbre un directorio en OpenCode y crea al menos una sesión; entonces aparecerá aquí.",
79
87
  "projects.select": "Selecciona un proyecto:",
80
88
  "projects.select_with_current": "Selecciona un proyecto:\n\nActual: 🏗 {project}",
@@ -127,11 +135,11 @@ export const es = {
127
135
  "opencode_stop.stop_error": "🔴 No se pudo detener OpenCode Server\n\nError: {error}",
128
136
  "opencode_stop.success": "✅ OpenCode Server detenido correctamente",
129
137
  "opencode_stop.error": "🔴 Ocurrió un error al detener el servidor.\n\nRevisa los logs de la aplicación para más detalles.",
130
- "agent.changed_callback": "Modo cambiado: {name}",
131
- "agent.changed_message": "✅ Modo cambiado a: {name}",
132
- "agent.change_error_callback": "No se pudo cambiar el modo",
133
- "agent.menu.current": "Modo actual: {name}\n\nSelecciona el modo:",
134
- "agent.menu.select": "Selecciona el modo de trabajo:",
138
+ "agent.changed_callback": "Agente cambiado: {name}",
139
+ "agent.changed_message": "✅ Agente cambiado a: {name}",
140
+ "agent.change_error_callback": "No se pudo cambiar el agente",
141
+ "agent.menu.current": "Agente actual: {name}\n\nSelecciona el agente:",
142
+ "agent.menu.select": "Selecciona el agente:",
135
143
  "agent.menu.empty": "⚠️ No hay agentes disponibles",
136
144
  "agent.menu.error": "🔴 No se pudo obtener la lista de agentes",
137
145
  "model.changed_callback": "Modelo cambiado: {name}",
@@ -205,7 +213,7 @@ export const es = {
205
213
  "question.summary.title": "✅ ¡Encuesta completada!\n\n",
206
214
  "question.summary.question": "Pregunta {index}:\n{question}\n\n",
207
215
  "question.summary.answer": "Respuesta:\n{answer}\n\n",
208
- "keyboard.agent_mode": "{emoji} Modo {name}",
216
+ "keyboard.agent_mode": "{emoji} {name} Agent",
209
217
  "keyboard.context": "📊 {used} / {limit} ({percent}%)",
210
218
  "keyboard.context_empty": "📊 0",
211
219
  "keyboard.variant": "💭 {name}",
package/dist/i18n/fr.js CHANGED
@@ -3,6 +3,7 @@ export const fr = {
3
3
  "cmd.description.new": "Créer une nouvelle session",
4
4
  "cmd.description.stop": "Arrêter l'action en cours",
5
5
  "cmd.description.sessions": "Lister les sessions",
6
+ "cmd.description.tts": "Basculer les réponses audio",
6
7
  "cmd.description.projects": "Lister les projets",
7
8
  "cmd.description.task": "Créer une tâche planifiée",
8
9
  "cmd.description.tasklist": "Afficher les tâches planifiées",
@@ -32,8 +33,8 @@ export const fr = {
32
33
  "inline.cancelled_callback": "Annulé",
33
34
  "common.unknown": "inconnu",
34
35
  "common.unknown_error": "erreur inconnue",
35
- "start.welcome": "👋 Bienvenue dans OpenCode Telegram Bot !\n\nUtilisez les commandes :\n/projects — sélectionner un projet\n/sessions — liste des sessions\n/new — nouvelle session\n/task — tâche planifiée\n/tasklist — tâches planifiées\n/status — statut\n/help — aide\n\nUtilisez les boutons du bas pour choisir le mode d'agent, le modèle et la variante.",
36
- "help.keyboard_hint": "💡 Utilisez les boutons du bas pour le mode d'agent, le modèle, la variante et les actions de contexte.",
36
+ "start.welcome": "👋 Bienvenue dans OpenCode Telegram Bot !\n\nUtilisez les commandes :\n/projects — sélectionner un projet\n/sessions — liste des sessions\n/new — nouvelle session\n/task — tâche planifiée\n/tasklist — tâches planifiées\n/status — statut\n/help — aide\n\nUtilisez les boutons du bas pour choisir l'agent, le modèle et la variante.",
37
+ "help.keyboard_hint": "💡 Utilisez les boutons du bas pour l'agent, le modèle, la variante et les actions de contexte.",
37
38
  "help.text": "📖 **Aide**\n\n/status - Vérifier l'état du serveur\n/sessions - Liste des sessions\n/new - Créer une nouvelle session\n/help - Aide",
38
39
  "bot.thinking": "💭 Réflexion en cours...",
39
40
  "bot.project_not_selected": "🏗 Aucun projet n'est sélectionné.\n\nSélectionnez d'abord un projet avec /projects.",
@@ -65,8 +66,11 @@ export const fr = {
65
66
  "status.line.managed_no": "Démarré par le bot : Non",
66
67
  "status.line.pid": "PID : {pid}",
67
68
  "status.line.uptime_sec": "Temps de fonctionnement : {seconds} sec",
68
- "status.line.mode": "Mode : {mode}",
69
+ "status.line.mode": "Agent : {mode}",
69
70
  "status.line.model": "Modèle : {model}",
71
+ "status.line.tts": "Réponses TTS : {tts}",
72
+ "status.tts.on": "Activées",
73
+ "status.tts.off": "Désactivées",
70
74
  "status.agent_not_set": "non défini",
71
75
  "status.project_selected": "Projet : {project}",
72
76
  "status.project_not_selected": "Projet : non sélectionné",
@@ -75,6 +79,10 @@ export const fr = {
75
79
  "status.session_not_selected": "Session actuelle : non sélectionnée",
76
80
  "status.session_hint": "Utilisez /sessions pour en sélectionner une ou /new pour en créer une",
77
81
  "status.server_unavailable": "🔴 Le serveur OpenCode est indisponible\n\nUtilisez /opencode_start pour démarrer le serveur.",
82
+ "tts.enabled": "🔊 Réponses audio activées globalement.",
83
+ "tts.not_configured": "⚠️ Les réponses audio ne sont pas disponibles. Définissez d'abord `TTS_API_URL` et `TTS_API_KEY`.",
84
+ "tts.disabled": "🔇 Réponses audio désactivées globalement.",
85
+ "tts.failed": "⚠️ Impossible de générer la réponse audio.",
78
86
  "projects.empty": "📭 Aucun projet trouvé.\n\nOuvrez un répertoire dans OpenCode et créez au moins une session, il apparaîtra ensuite ici.",
79
87
  "projects.select": "Sélectionnez un projet :",
80
88
  "projects.select_with_current": "Sélectionnez un projet :\n\nActuel : 🏗 {project}",
@@ -127,11 +135,11 @@ export const fr = {
127
135
  "opencode_stop.stop_error": "🔴 Impossible d'arrêter le serveur OpenCode\n\nErreur : {error}",
128
136
  "opencode_stop.success": "✅ Serveur OpenCode arrêté avec succès",
129
137
  "opencode_stop.error": "🔴 Une erreur s'est produite lors de l'arrêt du serveur.\n\nConsultez les logs de l'application pour plus de détails.",
130
- "agent.changed_callback": "Mode modifié : {name}",
131
- "agent.changed_message": "✅ Mode défini sur : {name}",
132
- "agent.change_error_callback": "Impossible de modifier le mode",
133
- "agent.menu.current": "Mode actuel : {name}\n\nSélectionnez un mode :",
134
- "agent.menu.select": "Sélectionnez un mode de travail :",
138
+ "agent.changed_callback": "Agent modifié : {name}",
139
+ "agent.changed_message": "✅ Agent défini sur : {name}",
140
+ "agent.change_error_callback": "Impossible de modifier l'agent",
141
+ "agent.menu.current": "Agent actuel : {name}\n\nSélectionnez un agent :",
142
+ "agent.menu.select": "Sélectionnez un agent :",
135
143
  "agent.menu.empty": "⚠️ Aucun mode disponible",
136
144
  "agent.menu.error": "🔴 Impossible de récupérer la liste des modes",
137
145
  "model.changed_callback": "Modèle modifié : {name}",
@@ -205,7 +213,7 @@ export const fr = {
205
213
  "question.summary.title": "✅ Sondage terminé !\n\n",
206
214
  "question.summary.question": "Question {index} :\n{question}\n\n",
207
215
  "question.summary.answer": "Réponse :\n{answer}\n\n",
208
- "keyboard.agent_mode": "{emoji} Mode {name}",
216
+ "keyboard.agent_mode": "{emoji} {name} Agent",
209
217
  "keyboard.context": "📊 {used} / {limit} ({percent}%)",
210
218
  "keyboard.context_empty": "📊 0",
211
219
  "keyboard.variant": "💭 {name}",
package/dist/i18n/ru.js CHANGED
@@ -3,6 +3,7 @@ export const ru = {
3
3
  "cmd.description.new": "Создать новую сессию",
4
4
  "cmd.description.stop": "Прервать текущее действие",
5
5
  "cmd.description.sessions": "Список сессий",
6
+ "cmd.description.tts": "Переключить аудиоответы",
6
7
  "cmd.description.projects": "Список проектов",
7
8
  "cmd.description.task": "Создать задачу по расписанию",
8
9
  "cmd.description.tasklist": "Список задач по расписанию",
@@ -32,8 +33,8 @@ export const ru = {
32
33
  "inline.cancelled_callback": "Отменено",
33
34
  "common.unknown": "неизвестна",
34
35
  "common.unknown_error": "неизвестная ошибка",
35
- "start.welcome": "👋 Добро пожаловать в OpenCode Telegram Bot!\n\nИспользуйте команды:\n/projects — выбрать проект\n/sessions — список сессий\n/new — новая сессия\n/task — задача по расписанию\n/tasklist — список задач по расписанию\n/status — статус\n/help — справка\n\nРежим, модель и вариант выбираются кнопками внизу.",
36
- "help.keyboard_hint": "💡 Режим, модель, вариант и действия с контекстом доступны через нижние кнопки клавиатуры.",
36
+ "start.welcome": "👋 Добро пожаловать в OpenCode Telegram Bot!\n\nИспользуйте команды:\n/projects — выбрать проект\n/sessions — список сессий\n/new — новая сессия\n/task — задача по расписанию\n/tasklist — список задач по расписанию\n/status — статус\n/help — справка\n\nАгент, модель и вариант выбираются кнопками внизу.",
37
+ "help.keyboard_hint": "💡 Агент, модель, вариант и действия с контекстом доступны через нижние кнопки клавиатуры.",
37
38
  "help.text": "📖 **Справка**\n\n/status - Проверить статус сервера\n/sessions - Список сессий\n/new - Создать новую сессию\n/help - Справка",
38
39
  "bot.thinking": "💭 Думаю...",
39
40
  "bot.project_not_selected": "🏗 Проект не выбран.\n\nСначала выберите проект командой /projects.",
@@ -65,8 +66,11 @@ export const ru = {
65
66
  "status.line.managed_no": "Запущен ботом: Нет",
66
67
  "status.line.pid": "PID: {pid}",
67
68
  "status.line.uptime_sec": "Uptime: {seconds} сек",
68
- "status.line.mode": "Режим: {mode}",
69
+ "status.line.mode": "Агент: {mode}",
69
70
  "status.line.model": "Модель: {model}",
71
+ "status.line.tts": "TTS-ответы: {tts}",
72
+ "status.tts.on": "Вкл",
73
+ "status.tts.off": "Выкл",
70
74
  "status.agent_not_set": "не установлен",
71
75
  "status.project_selected": "Проект: {project}",
72
76
  "status.project_not_selected": "Проект: не выбран",
@@ -75,6 +79,10 @@ export const ru = {
75
79
  "status.session_not_selected": "Текущая сессия: не выбрана",
76
80
  "status.session_hint": "Используйте /sessions для выбора или /new для создания",
77
81
  "status.server_unavailable": "🔴 OpenCode Server недоступен\n\nИспользуйте /opencode_start для запуска сервера.",
82
+ "tts.enabled": "🔊 Аудиоответы включены глобально.",
83
+ "tts.not_configured": "⚠️ Аудиоответы недоступны. Сначала укажите `TTS_API_URL` и `TTS_API_KEY`.",
84
+ "tts.disabled": "🔇 Аудиоответы выключены глобально.",
85
+ "tts.failed": "⚠️ Не удалось создать аудиоответ.",
78
86
  "projects.empty": "📭 Проектов нет.\n\nОткройте директорию в OpenCode и создайте хотя бы одну сессию, после этого она появится здесь.",
79
87
  "projects.select": "Выберите проект:",
80
88
  "projects.select_with_current": "Выберите проект:\n\nТекущий: 🏗 {project}",
@@ -127,11 +135,11 @@ export const ru = {
127
135
  "opencode_stop.stop_error": "🔴 Не удалось остановить OpenCode Server\n\nОшибка: {error}",
128
136
  "opencode_stop.success": "✅ OpenCode Server успешно остановлен",
129
137
  "opencode_stop.error": "🔴 Произошла ошибка при остановке сервера.\n\nПроверьте логи приложения для подробностей.",
130
- "agent.changed_callback": "Режим изменен: {name}",
131
- "agent.changed_message": "✅ Режим изменен на: {name}",
132
- "agent.change_error_callback": "Ошибка при смене режима",
133
- "agent.menu.current": "Текущий режим: {name}\n\nВыберите режим:",
134
- "agent.menu.select": "Выберите режим работы:",
138
+ "agent.changed_callback": "Агент изменен: {name}",
139
+ "agent.changed_message": "✅ Агент изменен на: {name}",
140
+ "agent.change_error_callback": "Ошибка при смене агента",
141
+ "agent.menu.current": "Текущий агент: {name}\n\nВыберите агента:",
142
+ "agent.menu.select": "Выберите агента:",
135
143
  "agent.menu.empty": "⚠️ Нет доступных агентов",
136
144
  "agent.menu.error": "🔴 Не удалось получить список агентов",
137
145
  "model.changed_callback": "Модель изменена: {name}",
@@ -205,7 +213,7 @@ export const ru = {
205
213
  "question.summary.title": "✅ Опрос завершен!\n\n",
206
214
  "question.summary.question": "Вопрос {index}:\n{question}\n\n",
207
215
  "question.summary.answer": "Ответ:\n{answer}\n\n",
208
- "keyboard.agent_mode": "{emoji} {name} Mode",
216
+ "keyboard.agent_mode": "{emoji} {name} Agent",
209
217
  "keyboard.context": "📊 {used} / {limit} ({percent}%)",
210
218
  "keyboard.context_empty": "📊 0",
211
219
  "keyboard.variant": "💭 {name}",
package/dist/i18n/zh.js CHANGED
@@ -3,6 +3,7 @@ export const zh = {
3
3
  "cmd.description.new": "创建新会话",
4
4
  "cmd.description.stop": "停止当前操作",
5
5
  "cmd.description.sessions": "列出会话",
6
+ "cmd.description.tts": "切换语音回复",
6
7
  "cmd.description.projects": "列出项目",
7
8
  "cmd.description.task": "创建定时任务",
8
9
  "cmd.description.tasklist": "查看定时任务",
@@ -32,8 +33,8 @@ export const zh = {
32
33
  "inline.cancelled_callback": "已取消",
33
34
  "common.unknown": "未知",
34
35
  "common.unknown_error": "未知错误",
35
- "start.welcome": "👋 欢迎使用 OpenCode Telegram Bot!\n\n可用命令:\n/projects — 选择项目\n/sessions — 会话列表\n/new — 新建会话\n/task — 定时任务\n/tasklist — 定时任务列表\n/status — 状态\n/help — 帮助\n\n请使用底部按钮选择模式、模型和变体。",
36
- "help.keyboard_hint": "💡 代理模式、模型、变体和上下文操作请使用底部键盘按钮。",
36
+ "start.welcome": "👋 欢迎使用 OpenCode Telegram Bot!\n\n可用命令:\n/projects — 选择项目\n/sessions — 会话列表\n/new — 新建会话\n/task — 定时任务\n/tasklist — 定时任务列表\n/status — 状态\n/help — 帮助\n\n请使用底部按钮选择 Agent、模型和变体。",
37
+ "help.keyboard_hint": "💡 Agent、模型、变体和上下文操作请使用底部键盘按钮。",
37
38
  "help.text": "📖 **帮助**\n\n/status - 查看服务器状态\n/sessions - 会话列表\n/new - 创建新会话\n/help - 帮助",
38
39
  "bot.thinking": "💭 思考中...",
39
40
  "bot.project_not_selected": "🏗 未选择项目。\n\n请先使用 /projects 选择一个项目。",
@@ -65,8 +66,11 @@ export const zh = {
65
66
  "status.line.managed_no": "由机器人启动:否",
66
67
  "status.line.pid": "PID:{pid}",
67
68
  "status.line.uptime_sec": "运行时间:{seconds} 秒",
68
- "status.line.mode": "模式:{mode}",
69
+ "status.line.mode": "Agent:{mode}",
69
70
  "status.line.model": "模型:{model}",
71
+ "status.line.tts": "TTS 回复:{tts}",
72
+ "status.tts.on": "开启",
73
+ "status.tts.off": "关闭",
70
74
  "status.agent_not_set": "未设置",
71
75
  "status.project_selected": "项目:{project}",
72
76
  "status.project_not_selected": "项目:未选择",
@@ -75,6 +79,10 @@ export const zh = {
75
79
  "status.session_not_selected": "当前会话:未选择",
76
80
  "status.session_hint": "使用 /sessions 选择一个会话,或 /new 创建",
77
81
  "status.server_unavailable": "🔴 OpenCode 服务器不可用\n\n使用 /opencode_start 启动服务器。",
82
+ "tts.enabled": "🔊 已全局启用语音回复。",
83
+ "tts.not_configured": "⚠️ 语音回复暂不可用。请先设置 `TTS_API_URL` 和 `TTS_API_KEY`。",
84
+ "tts.disabled": "🔇 已全局关闭语音回复。",
85
+ "tts.failed": "⚠️ 生成语音回复失败。",
78
86
  "projects.empty": "📭 未找到项目。\n\n在 OpenCode 中打开一个目录并至少创建一个会话,然后它会出现在这里。",
79
87
  "projects.select": "请选择一个项目:",
80
88
  "projects.select_with_current": "请选择一个项目:\n\n当前:🏗 {project}",
@@ -127,11 +135,11 @@ export const zh = {
127
135
  "opencode_stop.stop_error": "🔴 停止 OpenCode 服务器失败\n\n错误:{error}",
128
136
  "opencode_stop.success": "✅ OpenCode 服务器已成功停止",
129
137
  "opencode_stop.error": "🔴 停止服务器时发生错误。\n\n请查看应用日志了解详情。",
130
- "agent.changed_callback": "模式已更改:{name}",
131
- "agent.changed_message": "✅ 模式已切换为:{name}",
132
- "agent.change_error_callback": "切换模式失败",
133
- "agent.menu.current": "当前模式:{name}\n\n请选择模式:",
134
- "agent.menu.select": "请选择工作模式:",
138
+ "agent.changed_callback": "Agent 已更改:{name}",
139
+ "agent.changed_message": "✅ Agent 已切换为:{name}",
140
+ "agent.change_error_callback": "切换 Agent 失败",
141
+ "agent.menu.current": "当前 Agent:{name}\n\n请选择 Agent:",
142
+ "agent.menu.select": "请选择 Agent:",
135
143
  "agent.menu.empty": "⚠️ 没有可用的代理",
136
144
  "agent.menu.error": "🔴 获取代理列表失败",
137
145
  "model.changed_callback": "模型已更改:{name}",
@@ -205,7 +213,7 @@ export const zh = {
205
213
  "question.summary.title": "✅ 投票已完成!\n\n",
206
214
  "question.summary.question": "问题 {index}:\n{question}\n\n",
207
215
  "question.summary.answer": "回答:\n{answer}\n\n",
208
- "keyboard.agent_mode": "{emoji} {name} 模式",
216
+ "keyboard.agent_mode": "{emoji} {name} Agent",
209
217
  "keyboard.context": "📊 {used} / {limit} ({percent}%)",
210
218
  "keyboard.context_empty": "📊 0",
211
219
  "keyboard.variant": "💭 {name}",