hammoc 1.1.5 → 1.1.6

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.
Files changed (83) hide show
  1. package/package.json +1 -1
  2. package/packages/client/dist/assets/{index-BG1rX4_v.js → index-BQASJJka.js} +1 -1
  3. package/packages/client/dist/assets/index-Dr2X4keZ.css +32 -0
  4. package/packages/client/dist/assets/index-zjjTVZ6W.js +1418 -0
  5. package/packages/client/dist/index.html +2 -2
  6. package/packages/client/dist/sw.js +1 -1
  7. package/packages/server/dist/controllers/authController.d.ts +5 -0
  8. package/packages/server/dist/controllers/authController.d.ts.map +1 -1
  9. package/packages/server/dist/controllers/authController.js +61 -0
  10. package/packages/server/dist/controllers/authController.js.map +1 -1
  11. package/packages/server/dist/controllers/boardController.d.ts +2 -1
  12. package/packages/server/dist/controllers/boardController.d.ts.map +1 -1
  13. package/packages/server/dist/controllers/boardController.js +29 -4
  14. package/packages/server/dist/controllers/boardController.js.map +1 -1
  15. package/packages/server/dist/controllers/projectController.d.ts +6 -0
  16. package/packages/server/dist/controllers/projectController.d.ts.map +1 -1
  17. package/packages/server/dist/controllers/projectController.js +62 -0
  18. package/packages/server/dist/controllers/projectController.js.map +1 -1
  19. package/packages/server/dist/controllers/queueTemplateController.d.ts.map +1 -1
  20. package/packages/server/dist/controllers/queueTemplateController.js +1 -15
  21. package/packages/server/dist/controllers/queueTemplateController.js.map +1 -1
  22. package/packages/server/dist/controllers/serverController.d.ts.map +1 -1
  23. package/packages/server/dist/controllers/serverController.js +63 -67
  24. package/packages/server/dist/controllers/serverController.js.map +1 -1
  25. package/packages/server/dist/controllers/sessionController.d.ts.map +1 -1
  26. package/packages/server/dist/controllers/sessionController.js +5 -0
  27. package/packages/server/dist/controllers/sessionController.js.map +1 -1
  28. package/packages/server/dist/handlers/websocket.d.ts.map +1 -1
  29. package/packages/server/dist/handlers/websocket.js +12 -4
  30. package/packages/server/dist/handlers/websocket.js.map +1 -1
  31. package/packages/server/dist/locales/en/server.json +5 -1
  32. package/packages/server/dist/locales/es/server.json +309 -305
  33. package/packages/server/dist/locales/ja/server.json +309 -305
  34. package/packages/server/dist/locales/ko/server.json +5 -1
  35. package/packages/server/dist/locales/pt/server.json +309 -305
  36. package/packages/server/dist/locales/zh-CN/server.json +309 -305
  37. package/packages/server/dist/routes/auth.d.ts.map +1 -1
  38. package/packages/server/dist/routes/auth.js +2 -0
  39. package/packages/server/dist/routes/auth.js.map +1 -1
  40. package/packages/server/dist/routes/board.d.ts.map +1 -1
  41. package/packages/server/dist/routes/board.js +3 -1
  42. package/packages/server/dist/routes/board.js.map +1 -1
  43. package/packages/server/dist/routes/projects.d.ts.map +1 -1
  44. package/packages/server/dist/routes/projects.js +2 -0
  45. package/packages/server/dist/routes/projects.js.map +1 -1
  46. package/packages/server/dist/services/bmadStatusService.d.ts.map +1 -1
  47. package/packages/server/dist/services/bmadStatusService.js +15 -25
  48. package/packages/server/dist/services/bmadStatusService.js.map +1 -1
  49. package/packages/server/dist/services/chatService.d.ts.map +1 -1
  50. package/packages/server/dist/services/chatService.js +1 -0
  51. package/packages/server/dist/services/chatService.js.map +1 -1
  52. package/packages/server/dist/services/issueService.d.ts +10 -2
  53. package/packages/server/dist/services/issueService.d.ts.map +1 -1
  54. package/packages/server/dist/services/issueService.js +90 -23
  55. package/packages/server/dist/services/issueService.js.map +1 -1
  56. package/packages/server/dist/services/rateLimitProbeService.d.ts +5 -0
  57. package/packages/server/dist/services/rateLimitProbeService.d.ts.map +1 -1
  58. package/packages/server/dist/services/rateLimitProbeService.js +7 -0
  59. package/packages/server/dist/services/rateLimitProbeService.js.map +1 -1
  60. package/packages/server/dist/services/sessionService.d.ts.map +1 -1
  61. package/packages/server/dist/services/sessionService.js +75 -35
  62. package/packages/server/dist/services/sessionService.js.map +1 -1
  63. package/packages/shared/dist/index.d.ts +1 -0
  64. package/packages/shared/dist/index.d.ts.map +1 -1
  65. package/packages/shared/dist/index.js.map +1 -1
  66. package/packages/shared/dist/types/auth.d.ts +15 -0
  67. package/packages/shared/dist/types/auth.d.ts.map +1 -1
  68. package/packages/shared/dist/types/auth.js.map +1 -1
  69. package/packages/shared/dist/types/bmadStatus.d.ts +1 -2
  70. package/packages/shared/dist/types/bmadStatus.d.ts.map +1 -1
  71. package/packages/shared/dist/types/bmadStatus.js.map +1 -1
  72. package/packages/shared/dist/types/preferences.d.ts +4 -1
  73. package/packages/shared/dist/types/preferences.d.ts.map +1 -1
  74. package/packages/shared/dist/types/preferences.js.map +1 -1
  75. package/packages/shared/dist/types/queue.d.ts +3 -3
  76. package/packages/shared/dist/types/queue.d.ts.map +1 -1
  77. package/packages/shared/dist/types/sdk.d.ts +6 -0
  78. package/packages/shared/dist/types/sdk.d.ts.map +1 -1
  79. package/packages/shared/dist/types/sdk.js.map +1 -1
  80. package/packages/shared/dist/types/websocket.d.ts +5 -1
  81. package/packages/shared/dist/types/websocket.d.ts.map +1 -1
  82. package/packages/client/dist/assets/index-B1mDkqlY.css +0 -32
  83. package/packages/client/dist/assets/index-B_NOAvK3.js +0 -1380
@@ -1,305 +1,309 @@
1
- {
2
- "error": {
3
- "notFound": "Recurso no encontrado",
4
- "unauthorized": "No autorizado",
5
- "internal": "Error interno del servidor",
6
- "requestFailed": "Solicitud fallida ({{status}} {{statusText}})",
7
- "rateLimit": "Se alcanzó el límite de solicitudes de API. Inténtelo de nuevo más tarde.",
8
- "authRequired": "Se requiere autenticación de Claude Code CLI. Ejecute \"claude login\".",
9
- "networkError": "Problema de conexión de red. Verifique su conexión a Internet.",
10
- "invalidPath": "Ruta inválida: {{path}}",
11
- "serviceUnavailable": "El servicio de Claude no está disponible. Inténtelo de nuevo más tarde.",
12
- "aborted": "Operación cancelada."
13
- },
14
- "auth": {
15
- "validation": {
16
- "passwordRequired": "La contraseña es obligatoria.",
17
- "passwordMinLength": "La contraseña debe tener al menos {{value}} caracteres.",
18
- "passwordConfirmRequired": "La confirmación de contraseña es obligatoria.",
19
- "invalidRequest": "Solicitud inválida."
20
- },
21
- "login": {
22
- "success": "Inicio de sesión exitoso",
23
- "serverError": "Error del servidor durante el inicio de sesión",
24
- "invalidPassword": "Contraseña inválida.",
25
- "rateLimitExceeded": "Demasiados intentos de inicio de sesión. Inténtelo de nuevo más tarde."
26
- },
27
- "password": {
28
- "alreadySet": "La contraseña ya está configurada.",
29
- "mismatch": "Las contraseñas no coinciden.",
30
- "setSuccess": "Contraseña establecida.",
31
- "setError": "Error del servidor al establecer la contraseña."
32
- },
33
- "logout": {
34
- "success": "Cierre de sesión exitoso",
35
- "error": "Error al cerrar sesión"
36
- }
37
- },
38
- "project": {
39
- "validation": {
40
- "pathRequired": "La ruta del proyecto es obligatoria.",
41
- "slugRequired": "El identificador del proyecto es obligatorio.",
42
- "invalidPermissionMode": "Modo de permiso inválido: {{value}}",
43
- "invalidModelId": "ID de modelo inválido.",
44
- "invalidPathFormat": "Formato de ruta inválido.",
45
- "pathIsFile": "La ruta es un archivo, no un directorio.",
46
- "pathParameterRequired": "La ruta es obligatoria."
47
- },
48
- "error": {
49
- "createFailed": "Error al crear el proyecto.",
50
- "bmadVersionsFailed": "Error al obtener la lista de versiones de BMad.",
51
- "notFound": "Proyecto no encontrado.",
52
- "deleteFailed": "Error al eliminar el proyecto.",
53
- "bmadSetupFailed": "Error durante la configuración de BMad.",
54
- "validatePathFailed": "Error al validar la ruta.",
55
- "settingsLoadFailed": "Error al cargar la configuración.",
56
- "settingsSaveFailed": "Error al guardar la configuración.",
57
- "systemPromptFailed": "Error al obtener el prompt del sistema.",
58
- "scanError": "Error al escanear proyectos.",
59
- "dirNotFound": "Directorio no encontrado.",
60
- "permissionDenied": "Permiso denegado.",
61
- "invalidSessionIndex": "Índice de sesión inválido.",
62
- "pathNotFound": "Ruta no encontrada.",
63
- "pathNotDirectory": "La ruta no es un directorio.",
64
- "alreadyBmad": "Ya es un proyecto BMad.",
65
- "alreadyExists": "El proyecto ya existe."
66
- }
67
- },
68
- "board": {
69
- "error": {
70
- "projectNotFound": "Proyecto no encontrado: {{value}}",
71
- "internal": "Error interno del servidor",
72
- "issueNotFound": "Incidencia no encontrada: {{value}}",
73
- "storyNotFound": "Story no encontrada: {{value}}",
74
- "statusNotFound": "Estado no encontrado para story: {{value}}"
75
- },
76
- "validation": {
77
- "titleRequired": "El título es obligatorio",
78
- "invalidSeverity": "Severidad inválida: {{value}}",
79
- "invalidIssueType": "Tipo de incidencia inválido: {{value}}",
80
- "invalidStatus": "Estado inválido: {{value}}",
81
- "invalidIssueId": "ID de incidencia inválido",
82
- "fileRequired": "El archivo es obligatorio",
83
- "invalidFileType": "Tipo de archivo no soportado",
84
- "fileTooLarge": "El archivo supera el límite de 10MB",
85
- "maxAttachments": "Cantidad máxima de adjuntos alcanzada",
86
- "invalidFilename": "Nombre de archivo inválido"
87
- },
88
- "success": {
89
- "issueDeleted": "Incidencia eliminada"
90
- }
91
- },
92
- "session": {
93
- "validation": {
94
- "deleteIdsRequired": "Se requiere la lista de IDs de sesión a eliminar."
95
- },
96
- "error": {
97
- "saveNameFailed": "Error al guardar el nombre de sesión.",
98
- "projectNotFound": "Proyecto no encontrado.",
99
- "listError": "Error al listar sesiones.",
100
- "invalidPath": "Se detectó una ruta inválida.",
101
- "parseError": "Error al analizar datos de sesión.",
102
- "deleteError": "Error al eliminar sesión.",
103
- "nameError": "Error al actualizar nombre de sesión."
104
- }
105
- },
106
- "fs": {
107
- "validation": {
108
- "slugRequired": "El identificador del proyecto es obligatorio.",
109
- "pathRequired": "El parámetro de consulta path es obligatorio",
110
- "contentRequired": "content debe ser una cadena en el cuerpo de la solicitud",
111
- "typeRequired": "type debe ser \"file\" o \"directory\"",
112
- "newPathRequired": "El parámetro de consulta newPath es obligatorio",
113
- "queryRequired": "El parámetro query es obligatorio"
114
- },
115
- "error": {
116
- "pathTraversal": "Se detectó traversal de ruta.",
117
- "fileNotFound": "Archivo no encontrado.",
118
- "directoryNotFound": "Directorio no encontrado.",
119
- "notADirectory": "No es un directorio.",
120
- "readError": "Error de lectura de archivo.",
121
- "writeError": "Error de escritura de archivo.",
122
- "fileAlreadyExists": "El archivo ya existe.",
123
- "protectedPath": "Ruta protegida.",
124
- "renameTargetExists": "El destino del renombrado ya existe.",
125
- "parentNotFound": "Directorio padre no encontrado."
126
- }
127
- },
128
- "git": {
129
- "validation": {
130
- "slugRequired": "projectSlug es obligatorio",
131
- "fileRequired": "El parámetro de consulta file es obligatorio",
132
- "filesRequired": "El array files es obligatorio y no puede estar vacío",
133
- "commitMessageRequired": "El mensaje de commit es obligatorio y no puede estar vacío",
134
- "commitMessageTooLong": "El mensaje de commit excede la longitud máxima de 10,000 caracteres",
135
- "branchRequired": "El nombre de rama es obligatorio",
136
- "invalidBranchName": "Nombre de rama inválido: contiene caracteres no válidos",
137
- "invalidStartPoint": "startPoint inválido: contiene caracteres no válidos",
138
- "startPointFormat": "startPoint debe ser una cadena no vacía si se proporciona"
139
- },
140
- "success": {
141
- "initialized": "Repositorio Git inicializado",
142
- "staged": "Archivos preparados exitosamente",
143
- "unstaged": "Archivos des-preparados exitosamente",
144
- "committed": "Cambios confirmados exitosamente",
145
- "pushed": "Enviado al remoto exitosamente",
146
- "pulled": "Obtenido del remoto exitosamente",
147
- "switchedBranch": "Cambiado a la rama {{value}}",
148
- "branchCreated": "Rama {{value}} creada exitosamente"
149
- },
150
- "error": {
151
- "operationFailed": "La operación Git falló.",
152
- "notInitialized": "El repositorio Git no está inicializado.",
153
- "conflict": "Se detectó un conflicto de Git.",
154
- "nothingToCommit": "No hay nada para confirmar.",
155
- "branchExists": "La rama ya existe."
156
- }
157
- },
158
- "queue": {
159
- "validation": {
160
- "slugRequired": "projectSlug es obligatorio",
161
- "itemsRequired": "El array items no puede estar vacío",
162
- "invalidInput": "Entrada de cola inválida: {{value}}"
163
- },
164
- "error": {
165
- "alreadyRunning": "La cola ya está en ejecución para este proyecto",
166
- "noRunningQueue": "No hay cola en ejecución para este proyecto",
167
- "sdkError": "Error SDK: {{value}}",
168
- "queueStopDetected": "QUEUE_STOP detectado en la respuesta",
169
- "sessionNotFound": "Nombre de sesión \"{{value}}\" no encontrado",
170
- "sessionBusy": "La sesión está transmitiendo actualmente — cola pausada para evitar conflictos"
171
- },
172
- "pause": {
173
- "userPaused": "Pausado por el usuario",
174
- "waitingForPermission": "Esperando {{value}}: {{toolName}}",
175
- "userAnswer": "respuesta del usuario",
176
- "permissionApproval": "permiso"
177
- }
178
- },
179
- "queueTemplate": {
180
- "error": {
181
- "listFailed": "Error al listar plantillas",
182
- "createFailed": "Error al crear plantilla",
183
- "updateFailed": "Error al actualizar plantilla",
184
- "deleteFailed": "Error al eliminar plantilla",
185
- "notFound": "Plantilla no encontrada",
186
- "projectPathFailed": "Error al resolver ruta del proyecto",
187
- "bmadConfigNotFound": "Configuración BMad no encontrada para este proyecto",
188
- "prdNotFound": "Archivo PRD no encontrado"
189
- },
190
- "validation": {
191
- "nameTemplateRequired": "name y template son cadenas obligatorias no vacías"
192
- }
193
- },
194
- "notification": {
195
- "permission": {
196
- "title": "Permiso requerido"
197
- },
198
- "question": {
199
- "title": "Pregunta"
200
- },
201
- "complete": {
202
- "title": "Completado",
203
- "lastMessage": "Última respuesta:",
204
- "queueProgress": "Cola: {{current}}/{{total}} ({{pct}}%)"
205
- },
206
- "error": {
207
- "title": "Error",
208
- "configRequired": "Se deben configurar tanto el Bot Token como el Chat ID."
209
- },
210
- "queueStart": {
211
- "title": "Cola iniciada",
212
- "body": "{{value}} elementos a ejecutar"
213
- },
214
- "queueComplete": {
215
- "title": "Cola completada",
216
- "body": "Todos los elementos procesados"
217
- },
218
- "queuePaused": {
219
- "title": "Cola pausada"
220
- },
221
- "inputRequired": {
222
- "title": "Entrada requerida",
223
- "body": "Esperando respuesta del usuario"
224
- },
225
- "test": {
226
- "message": "Esta es una notificación de prueba. ¡Las notificaciones de Telegram funcionan correctamente!"
227
- }
228
- },
229
- "ws": {
230
- "error": {
231
- "queueSessionLocked": "No se pueden enviar mensajes a una sesión donde hay una cola en ejecución.",
232
- "queueAlreadyRunning": "La cola ya está en ejecución para este proyecto",
233
- "maxImages": "Puede adjuntar hasta {{value}} imágenes.",
234
- "unsupportedImageFormat": "Formato de imagen no soportado: {{value}}",
235
- "imageSizeExceeded": "El tamaño de la imagen excede 10MB: {{value}}",
236
- "projectPathNotFound": "La ruta del proyecto especificada no existe.",
237
- "sessionNotFound": "Sesión no encontrada. Inicie una nueva sesión.",
238
- "timeout": "Tiempo de respuesta agotado. Inténtelo de nuevo.",
239
- "sessionListFailed": "Error al cargar la lista de sesiones.",
240
- "terminalDisabled": "La función de terminal está deshabilitada",
241
- "terminalProjectNotFound": "No se encontró la ruta del proyecto para el terminal",
242
- "terminalAccessDenied": "El acceso al terminal no está disponible fuera de la red local por razones de seguridad",
243
- "terminalNotFound": "Terminal no encontrado",
244
- "ptySpawnError": "Error al iniciar el proceso del terminal",
245
- "chainContentTooLong": "El contenido del prompt de la cadena excede la longitud máxima.",
246
- "chainMaxExceeded": "Se permiten un máximo de 10 elementos en la cadena."
247
- }
248
- },
249
- "pathGuard": {
250
- "nullByte": "Ruta inválida: se detectó un byte nulo",
251
- "absolutePath": "Ruta inválida: las rutas absolutas no están permitidas",
252
- "traversal": "Ruta inválida: se detectó traversal de ruta"
253
- },
254
- "dashboard": {
255
- "error": {
256
- "statusFailed": "Error al obtener el estado del panel"
257
- }
258
- },
259
- "cli": {
260
- "error": {
261
- "executionFailed": "Se produjo un error al ejecutar el CLI."
262
- }
263
- },
264
- "command": {
265
- "error": {
266
- "listFailed": "Error al listar comandos"
267
- }
268
- },
269
- "server": {
270
- "error": {
271
- "rebuildDevOnly": "La reconstrucción solo está disponible en modo desarrollo.",
272
- "buildInProgress": "La compilación ya está en progreso.",
273
- "updateCheckDevOnly": "La verificación de actualizaciones no está disponible en modo desarrollo.",
274
- "npmCheckFailed": "Error al verificar el registro npm.",
275
- "useRebuildInDev": "Use reconstruir y reiniciar en modo desarrollo.",
276
- "operationInProgress": "Ya hay una operación en progreso."
277
- },
278
- "info": {
279
- "buildStarted": "Compilación iniciada. Consulte /api/server/build-status para ver el progreso.",
280
- "updateStarted": "Actualización iniciada. Consulte /api/server/build-status para ver el progreso."
281
- }
282
- },
283
- "bmadStatus": {
284
- "error": {
285
- "notBmadProject": "No es un proyecto BMad.",
286
- "configParseError": "Error al analizar core-config.yaml.",
287
- "scanError": "Error al escanear el estado del proyecto."
288
- }
289
- },
290
- "preferences": {
291
- "readError": "Error al leer las preferencias.",
292
- "writeError": "Error al guardar las preferencias.",
293
- "telegram": {
294
- "readError": "Error al cargar la configuración de Telegram.",
295
- "invalidBotToken": "Bot Token inválido.",
296
- "invalidChatId": "Chat ID inválido.",
297
- "writeError": "Error al guardar la configuración de Telegram.",
298
- "testError": "Error del servidor al enviar la notificación de prueba."
299
- },
300
- "rateLimit": {
301
- "projectCreate": "Demasiadas solicitudes de creación de proyecto. Inténtelo de nuevo más tarde.",
302
- "pathValidation": "Demasiadas solicitudes de validación de ruta. Inténtelo de nuevo más tarde."
303
- }
304
- }
305
- }
1
+ {
2
+ "error": {
3
+ "notFound": "Recurso no encontrado",
4
+ "unauthorized": "No autorizado",
5
+ "internal": "Error interno del servidor",
6
+ "requestFailed": "Solicitud fallida ({{status}} {{statusText}})",
7
+ "rateLimit": "Se alcanzó el límite de solicitudes de API. Inténtelo de nuevo más tarde.",
8
+ "authRequired": "Se requiere autenticación de Claude Code CLI. Ejecute \"claude login\".",
9
+ "networkError": "Problema de conexión de red. Verifique su conexión a Internet.",
10
+ "invalidPath": "Ruta inválida: {{path}}",
11
+ "serviceUnavailable": "El servicio de Claude no está disponible. Inténtelo de nuevo más tarde.",
12
+ "aborted": "Operación cancelada."
13
+ },
14
+ "auth": {
15
+ "validation": {
16
+ "passwordRequired": "La contraseña es obligatoria.",
17
+ "passwordMinLength": "La contraseña debe tener al menos {{value}} caracteres.",
18
+ "passwordConfirmRequired": "La confirmación de contraseña es obligatoria.",
19
+ "invalidRequest": "Solicitud inválida."
20
+ },
21
+ "login": {
22
+ "success": "Inicio de sesión exitoso",
23
+ "serverError": "Error del servidor durante el inicio de sesión",
24
+ "invalidPassword": "Contraseña inválida.",
25
+ "rateLimitExceeded": "Demasiados intentos de inicio de sesión. Inténtelo de nuevo más tarde."
26
+ },
27
+ "password": {
28
+ "alreadySet": "La contraseña ya está configurada.",
29
+ "mismatch": "Las contraseñas no coinciden.",
30
+ "setSuccess": "Contraseña establecida.",
31
+ "setError": "Error del servidor al establecer la contraseña.",
32
+ "changeSuccess": "Contraseña cambiada. Inicie sesión de nuevo.",
33
+ "changeError": "Error del servidor al cambiar la contraseña."
34
+ },
35
+ "logout": {
36
+ "success": "Cierre de sesión exitoso",
37
+ "error": "Error al cerrar sesión"
38
+ }
39
+ },
40
+ "project": {
41
+ "validation": {
42
+ "pathRequired": "La ruta del proyecto es obligatoria.",
43
+ "slugRequired": "El identificador del proyecto es obligatorio.",
44
+ "invalidPermissionMode": "Modo de permiso inválido: {{value}}",
45
+ "invalidModelId": "ID de modelo inválido.",
46
+ "invalidPathFormat": "Formato de ruta inválido.",
47
+ "pathIsFile": "La ruta es un archivo, no un directorio.",
48
+ "pathParameterRequired": "La ruta es obligatoria."
49
+ },
50
+ "error": {
51
+ "createFailed": "Error al crear el proyecto.",
52
+ "bmadVersionsFailed": "Error al obtener la lista de versiones de BMad.",
53
+ "notFound": "Proyecto no encontrado.",
54
+ "deleteFailed": "Error al eliminar el proyecto.",
55
+ "bmadSetupFailed": "Error durante la configuración de BMad.",
56
+ "validatePathFailed": "Error al validar la ruta.",
57
+ "settingsLoadFailed": "Error al cargar la configuración.",
58
+ "settingsSaveFailed": "Error al guardar la configuración.",
59
+ "systemPromptFailed": "Error al obtener el prompt del sistema.",
60
+ "openExplorerLocalOnly": "Abrir el explorador de archivos solo está disponible desde localhost.",
61
+ "openExplorerFailed": "Error al abrir el explorador de archivos.",
62
+ "scanError": "Error al escanear proyectos.",
63
+ "dirNotFound": "Directorio no encontrado.",
64
+ "permissionDenied": "Permiso denegado.",
65
+ "invalidSessionIndex": "Índice de sesión inválido.",
66
+ "pathNotFound": "Ruta no encontrada.",
67
+ "pathNotDirectory": "La ruta no es un directorio.",
68
+ "alreadyBmad": "Ya es un proyecto BMad.",
69
+ "alreadyExists": "El proyecto ya existe."
70
+ }
71
+ },
72
+ "board": {
73
+ "error": {
74
+ "projectNotFound": "Proyecto no encontrado: {{value}}",
75
+ "internal": "Error interno del servidor",
76
+ "issueNotFound": "Incidencia no encontrada: {{value}}",
77
+ "storyNotFound": "Story no encontrada: {{value}}",
78
+ "statusNotFound": "Estado no encontrado para story: {{value}}"
79
+ },
80
+ "validation": {
81
+ "titleRequired": "El título es obligatorio",
82
+ "invalidSeverity": "Severidad inválida: {{value}}",
83
+ "invalidIssueType": "Tipo de incidencia inválido: {{value}}",
84
+ "invalidStatus": "Estado inválido: {{value}}",
85
+ "invalidIssueId": "ID de incidencia inválido",
86
+ "fileRequired": "El archivo es obligatorio",
87
+ "invalidFileType": "Tipo de archivo no soportado",
88
+ "fileTooLarge": "El archivo supera el límite de 10MB",
89
+ "maxAttachments": "Cantidad máxima de adjuntos alcanzada",
90
+ "invalidFilename": "Nombre de archivo inválido"
91
+ },
92
+ "success": {
93
+ "issueDeleted": "Incidencia eliminada"
94
+ }
95
+ },
96
+ "session": {
97
+ "validation": {
98
+ "deleteIdsRequired": "Se requiere la lista de IDs de sesión a eliminar."
99
+ },
100
+ "error": {
101
+ "saveNameFailed": "Error al guardar el nombre de sesión.",
102
+ "projectNotFound": "Proyecto no encontrado.",
103
+ "listError": "Error al listar sesiones.",
104
+ "invalidPath": "Se detectó una ruta inválida.",
105
+ "parseError": "Error al analizar datos de sesión.",
106
+ "deleteError": "Error al eliminar sesión.",
107
+ "nameError": "Error al actualizar nombre de sesión."
108
+ }
109
+ },
110
+ "fs": {
111
+ "validation": {
112
+ "slugRequired": "El identificador del proyecto es obligatorio.",
113
+ "pathRequired": "El parámetro de consulta path es obligatorio",
114
+ "contentRequired": "content debe ser una cadena en el cuerpo de la solicitud",
115
+ "typeRequired": "type debe ser \"file\" o \"directory\"",
116
+ "newPathRequired": "El parámetro de consulta newPath es obligatorio",
117
+ "queryRequired": "El parámetro query es obligatorio"
118
+ },
119
+ "error": {
120
+ "pathTraversal": "Se detectó traversal de ruta.",
121
+ "fileNotFound": "Archivo no encontrado.",
122
+ "directoryNotFound": "Directorio no encontrado.",
123
+ "notADirectory": "No es un directorio.",
124
+ "readError": "Error de lectura de archivo.",
125
+ "writeError": "Error de escritura de archivo.",
126
+ "fileAlreadyExists": "El archivo ya existe.",
127
+ "protectedPath": "Ruta protegida.",
128
+ "renameTargetExists": "El destino del renombrado ya existe.",
129
+ "parentNotFound": "Directorio padre no encontrado."
130
+ }
131
+ },
132
+ "git": {
133
+ "validation": {
134
+ "slugRequired": "projectSlug es obligatorio",
135
+ "fileRequired": "El parámetro de consulta file es obligatorio",
136
+ "filesRequired": "El array files es obligatorio y no puede estar vacío",
137
+ "commitMessageRequired": "El mensaje de commit es obligatorio y no puede estar vacío",
138
+ "commitMessageTooLong": "El mensaje de commit excede la longitud máxima de 10,000 caracteres",
139
+ "branchRequired": "El nombre de rama es obligatorio",
140
+ "invalidBranchName": "Nombre de rama inválido: contiene caracteres no válidos",
141
+ "invalidStartPoint": "startPoint inválido: contiene caracteres no válidos",
142
+ "startPointFormat": "startPoint debe ser una cadena no vacía si se proporciona"
143
+ },
144
+ "success": {
145
+ "initialized": "Repositorio Git inicializado",
146
+ "staged": "Archivos preparados exitosamente",
147
+ "unstaged": "Archivos des-preparados exitosamente",
148
+ "committed": "Cambios confirmados exitosamente",
149
+ "pushed": "Enviado al remoto exitosamente",
150
+ "pulled": "Obtenido del remoto exitosamente",
151
+ "switchedBranch": "Cambiado a la rama {{value}}",
152
+ "branchCreated": "Rama {{value}} creada exitosamente"
153
+ },
154
+ "error": {
155
+ "operationFailed": "La operación Git falló.",
156
+ "notInitialized": "El repositorio Git no está inicializado.",
157
+ "conflict": "Se detectó un conflicto de Git.",
158
+ "nothingToCommit": "No hay nada para confirmar.",
159
+ "branchExists": "La rama ya existe."
160
+ }
161
+ },
162
+ "queue": {
163
+ "validation": {
164
+ "slugRequired": "projectSlug es obligatorio",
165
+ "itemsRequired": "El array items no puede estar vacío",
166
+ "invalidInput": "Entrada de cola inválida: {{value}}"
167
+ },
168
+ "error": {
169
+ "alreadyRunning": "La cola ya está en ejecución para este proyecto",
170
+ "noRunningQueue": "No hay cola en ejecución para este proyecto",
171
+ "sdkError": "Error SDK: {{value}}",
172
+ "queueStopDetected": "QUEUE_STOP detectado en la respuesta",
173
+ "sessionNotFound": "Nombre de sesión \"{{value}}\" no encontrado",
174
+ "sessionBusy": "La sesión está transmitiendo actualmente — cola pausada para evitar conflictos"
175
+ },
176
+ "pause": {
177
+ "userPaused": "Pausado por el usuario",
178
+ "waitingForPermission": "Esperando {{value}}: {{toolName}}",
179
+ "userAnswer": "respuesta del usuario",
180
+ "permissionApproval": "permiso"
181
+ }
182
+ },
183
+ "queueTemplate": {
184
+ "error": {
185
+ "listFailed": "Error al listar plantillas",
186
+ "createFailed": "Error al crear plantilla",
187
+ "updateFailed": "Error al actualizar plantilla",
188
+ "deleteFailed": "Error al eliminar plantilla",
189
+ "notFound": "Plantilla no encontrada",
190
+ "projectPathFailed": "Error al resolver ruta del proyecto",
191
+ "bmadConfigNotFound": "Configuración BMad no encontrada para este proyecto",
192
+ "prdNotFound": "Archivo PRD no encontrado"
193
+ },
194
+ "validation": {
195
+ "nameTemplateRequired": "name y template son cadenas obligatorias no vacías"
196
+ }
197
+ },
198
+ "notification": {
199
+ "permission": {
200
+ "title": "Permiso requerido"
201
+ },
202
+ "question": {
203
+ "title": "Pregunta"
204
+ },
205
+ "complete": {
206
+ "title": "Completado",
207
+ "lastMessage": "Última respuesta:",
208
+ "queueProgress": "Cola: {{current}}/{{total}} ({{pct}}%)"
209
+ },
210
+ "error": {
211
+ "title": "Error",
212
+ "configRequired": "Se deben configurar tanto el Bot Token como el Chat ID."
213
+ },
214
+ "queueStart": {
215
+ "title": "Cola iniciada",
216
+ "body": "{{value}} elementos a ejecutar"
217
+ },
218
+ "queueComplete": {
219
+ "title": "Cola completada",
220
+ "body": "Todos los elementos procesados"
221
+ },
222
+ "queuePaused": {
223
+ "title": "Cola pausada"
224
+ },
225
+ "inputRequired": {
226
+ "title": "Entrada requerida",
227
+ "body": "Esperando respuesta del usuario"
228
+ },
229
+ "test": {
230
+ "message": "Esta es una notificación de prueba. ¡Las notificaciones de Telegram funcionan correctamente!"
231
+ }
232
+ },
233
+ "ws": {
234
+ "error": {
235
+ "queueSessionLocked": "No se pueden enviar mensajes a una sesión donde hay una cola en ejecución.",
236
+ "queueAlreadyRunning": "La cola ya está en ejecución para este proyecto",
237
+ "maxImages": "Puede adjuntar hasta {{value}} imágenes.",
238
+ "unsupportedImageFormat": "Formato de imagen no soportado: {{value}}",
239
+ "imageSizeExceeded": "El tamaño de la imagen excede 10MB: {{value}}",
240
+ "projectPathNotFound": "La ruta del proyecto especificada no existe.",
241
+ "sessionNotFound": "Sesión no encontrada. Inicie una nueva sesión.",
242
+ "timeout": "Tiempo de respuesta agotado. Inténtelo de nuevo.",
243
+ "sessionListFailed": "Error al cargar la lista de sesiones.",
244
+ "terminalDisabled": "La función de terminal está deshabilitada",
245
+ "terminalProjectNotFound": "No se encontró la ruta del proyecto para el terminal",
246
+ "terminalAccessDenied": "El acceso al terminal no está disponible fuera de la red local por razones de seguridad",
247
+ "terminalNotFound": "Terminal no encontrado",
248
+ "ptySpawnError": "Error al iniciar el proceso del terminal",
249
+ "chainContentTooLong": "El contenido del prompt de la cadena excede la longitud máxima.",
250
+ "chainMaxExceeded": "Se permiten un máximo de 10 elementos en la cadena."
251
+ }
252
+ },
253
+ "pathGuard": {
254
+ "nullByte": "Ruta inválida: se detectó un byte nulo",
255
+ "absolutePath": "Ruta inválida: las rutas absolutas no están permitidas",
256
+ "traversal": "Ruta inválida: se detectó traversal de ruta"
257
+ },
258
+ "dashboard": {
259
+ "error": {
260
+ "statusFailed": "Error al obtener el estado del panel"
261
+ }
262
+ },
263
+ "cli": {
264
+ "error": {
265
+ "executionFailed": "Se produjo un error al ejecutar el CLI."
266
+ }
267
+ },
268
+ "command": {
269
+ "error": {
270
+ "listFailed": "Error al listar comandos"
271
+ }
272
+ },
273
+ "server": {
274
+ "error": {
275
+ "rebuildDevOnly": "La reconstrucción solo está disponible en modo desarrollo.",
276
+ "buildInProgress": "La compilación ya está en progreso.",
277
+ "updateCheckDevOnly": "La verificación de actualizaciones no está disponible en modo desarrollo.",
278
+ "npmCheckFailed": "Error al verificar el registro npm.",
279
+ "useRebuildInDev": "Use reconstruir y reiniciar en modo desarrollo.",
280
+ "operationInProgress": "Ya hay una operación en progreso."
281
+ },
282
+ "info": {
283
+ "buildStarted": "Compilación iniciada. Consulte /api/server/build-status para ver el progreso.",
284
+ "updateStarted": "Actualización iniciada. Consulte /api/server/build-status para ver el progreso."
285
+ }
286
+ },
287
+ "bmadStatus": {
288
+ "error": {
289
+ "notBmadProject": "No es un proyecto BMad.",
290
+ "configParseError": "Error al analizar core-config.yaml.",
291
+ "scanError": "Error al escanear el estado del proyecto."
292
+ }
293
+ },
294
+ "preferences": {
295
+ "readError": "Error al leer las preferencias.",
296
+ "writeError": "Error al guardar las preferencias.",
297
+ "telegram": {
298
+ "readError": "Error al cargar la configuración de Telegram.",
299
+ "invalidBotToken": "Bot Token inválido.",
300
+ "invalidChatId": "Chat ID inválido.",
301
+ "writeError": "Error al guardar la configuración de Telegram.",
302
+ "testError": "Error del servidor al enviar la notificación de prueba."
303
+ },
304
+ "rateLimit": {
305
+ "projectCreate": "Demasiadas solicitudes de creación de proyecto. Inténtelo de nuevo más tarde.",
306
+ "pathValidation": "Demasiadas solicitudes de validación de ruta. Inténtelo de nuevo más tarde."
307
+ }
308
+ }
309
+ }