hammoc 1.1.4 → 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 (93) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/packages/client/dist/assets/{index-CJJ7qZd7.js → index-BQASJJka.js} +1 -1
  4. package/packages/client/dist/assets/index-Dr2X4keZ.css +32 -0
  5. package/packages/client/dist/assets/index-zjjTVZ6W.js +1418 -0
  6. package/packages/client/dist/index.html +2 -2
  7. package/packages/client/dist/sw.js +1 -1
  8. package/packages/server/dist/controllers/authController.d.ts +5 -0
  9. package/packages/server/dist/controllers/authController.d.ts.map +1 -1
  10. package/packages/server/dist/controllers/authController.js +61 -0
  11. package/packages/server/dist/controllers/authController.js.map +1 -1
  12. package/packages/server/dist/controllers/boardController.d.ts +2 -1
  13. package/packages/server/dist/controllers/boardController.d.ts.map +1 -1
  14. package/packages/server/dist/controllers/boardController.js +29 -4
  15. package/packages/server/dist/controllers/boardController.js.map +1 -1
  16. package/packages/server/dist/controllers/projectController.d.ts +6 -0
  17. package/packages/server/dist/controllers/projectController.d.ts.map +1 -1
  18. package/packages/server/dist/controllers/projectController.js +62 -0
  19. package/packages/server/dist/controllers/projectController.js.map +1 -1
  20. package/packages/server/dist/controllers/queueTemplateController.d.ts.map +1 -1
  21. package/packages/server/dist/controllers/queueTemplateController.js +1 -15
  22. package/packages/server/dist/controllers/queueTemplateController.js.map +1 -1
  23. package/packages/server/dist/controllers/serverController.d.ts.map +1 -1
  24. package/packages/server/dist/controllers/serverController.js +63 -67
  25. package/packages/server/dist/controllers/serverController.js.map +1 -1
  26. package/packages/server/dist/controllers/sessionController.d.ts.map +1 -1
  27. package/packages/server/dist/controllers/sessionController.js +5 -0
  28. package/packages/server/dist/controllers/sessionController.js.map +1 -1
  29. package/packages/server/dist/handlers/websocket.d.ts.map +1 -1
  30. package/packages/server/dist/handlers/websocket.js +45 -4
  31. package/packages/server/dist/handlers/websocket.js.map +1 -1
  32. package/packages/server/dist/locales/en/server.json +5 -1
  33. package/packages/server/dist/locales/es/server.json +309 -305
  34. package/packages/server/dist/locales/ja/server.json +309 -305
  35. package/packages/server/dist/locales/ko/server.json +5 -1
  36. package/packages/server/dist/locales/pt/server.json +309 -305
  37. package/packages/server/dist/locales/zh-CN/server.json +309 -305
  38. package/packages/server/dist/routes/auth.d.ts.map +1 -1
  39. package/packages/server/dist/routes/auth.js +2 -0
  40. package/packages/server/dist/routes/auth.js.map +1 -1
  41. package/packages/server/dist/routes/board.d.ts.map +1 -1
  42. package/packages/server/dist/routes/board.js +3 -1
  43. package/packages/server/dist/routes/board.js.map +1 -1
  44. package/packages/server/dist/routes/projects.d.ts.map +1 -1
  45. package/packages/server/dist/routes/projects.js +2 -0
  46. package/packages/server/dist/routes/projects.js.map +1 -1
  47. package/packages/server/dist/services/bmadStatusService.d.ts.map +1 -1
  48. package/packages/server/dist/services/bmadStatusService.js +15 -25
  49. package/packages/server/dist/services/bmadStatusService.js.map +1 -1
  50. package/packages/server/dist/services/chatService.d.ts.map +1 -1
  51. package/packages/server/dist/services/chatService.js +1 -0
  52. package/packages/server/dist/services/chatService.js.map +1 -1
  53. package/packages/server/dist/services/issueService.d.ts +10 -2
  54. package/packages/server/dist/services/issueService.d.ts.map +1 -1
  55. package/packages/server/dist/services/issueService.js +90 -23
  56. package/packages/server/dist/services/issueService.js.map +1 -1
  57. package/packages/server/dist/services/queueService.d.ts +16 -0
  58. package/packages/server/dist/services/queueService.d.ts.map +1 -1
  59. package/packages/server/dist/services/queueService.js +112 -12
  60. package/packages/server/dist/services/queueService.js.map +1 -1
  61. package/packages/server/dist/services/rateLimitProbeService.d.ts +5 -0
  62. package/packages/server/dist/services/rateLimitProbeService.d.ts.map +1 -1
  63. package/packages/server/dist/services/rateLimitProbeService.js +7 -0
  64. package/packages/server/dist/services/rateLimitProbeService.js.map +1 -1
  65. package/packages/server/dist/services/sessionService.d.ts.map +1 -1
  66. package/packages/server/dist/services/sessionService.js +75 -35
  67. package/packages/server/dist/services/sessionService.js.map +1 -1
  68. package/packages/shared/dist/index.d.ts +2 -1
  69. package/packages/shared/dist/index.d.ts.map +1 -1
  70. package/packages/shared/dist/index.js +1 -1
  71. package/packages/shared/dist/index.js.map +1 -1
  72. package/packages/shared/dist/types/auth.d.ts +15 -0
  73. package/packages/shared/dist/types/auth.d.ts.map +1 -1
  74. package/packages/shared/dist/types/auth.js.map +1 -1
  75. package/packages/shared/dist/types/bmadStatus.d.ts +1 -2
  76. package/packages/shared/dist/types/bmadStatus.d.ts.map +1 -1
  77. package/packages/shared/dist/types/bmadStatus.js.map +1 -1
  78. package/packages/shared/dist/types/preferences.d.ts +4 -1
  79. package/packages/shared/dist/types/preferences.d.ts.map +1 -1
  80. package/packages/shared/dist/types/preferences.js.map +1 -1
  81. package/packages/shared/dist/types/queue.d.ts +13 -3
  82. package/packages/shared/dist/types/queue.d.ts.map +1 -1
  83. package/packages/shared/dist/types/sdk.d.ts +6 -0
  84. package/packages/shared/dist/types/sdk.d.ts.map +1 -1
  85. package/packages/shared/dist/types/sdk.js.map +1 -1
  86. package/packages/shared/dist/types/websocket.d.ts +21 -1
  87. package/packages/shared/dist/types/websocket.d.ts.map +1 -1
  88. package/packages/shared/dist/utils/queueParser.d.ts +3 -1
  89. package/packages/shared/dist/utils/queueParser.d.ts.map +1 -1
  90. package/packages/shared/dist/utils/queueParser.js +29 -0
  91. package/packages/shared/dist/utils/queueParser.js.map +1 -1
  92. package/packages/client/dist/assets/index-Beq1jpLo.js +0 -1360
  93. package/packages/client/dist/assets/index-DpoqnoQn.css +0 -32
@@ -1,305 +1,309 @@
1
- {
2
- "error": {
3
- "notFound": "Recurso não encontrado",
4
- "unauthorized": "Não autorizado",
5
- "internal": "Erro interno do servidor",
6
- "requestFailed": "Requisição falhou ({{status}} {{statusText}})",
7
- "rateLimit": "Limite de requisições da API atingido. Tente novamente mais tarde.",
8
- "authRequired": "Autenticação do Claude Code CLI é necessária. Execute \"claude login\".",
9
- "networkError": "Problema de conexão de rede. Verifique sua conexão com a Internet.",
10
- "invalidPath": "Caminho inválido: {{path}}",
11
- "serviceUnavailable": "O serviço Claude está indisponível. Tente novamente mais tarde.",
12
- "aborted": "Operação cancelada."
13
- },
14
- "auth": {
15
- "validation": {
16
- "passwordRequired": "A senha é obrigatória.",
17
- "passwordMinLength": "A senha deve ter pelo menos {{value}} caracteres.",
18
- "passwordConfirmRequired": "A confirmação da senha é obrigatória.",
19
- "invalidRequest": "Requisição inválida."
20
- },
21
- "login": {
22
- "success": "Login realizado com sucesso",
23
- "serverError": "Erro do servidor durante o login",
24
- "invalidPassword": "Senha inválida.",
25
- "rateLimitExceeded": "Muitas tentativas de login. Tente novamente mais tarde."
26
- },
27
- "password": {
28
- "alreadySet": "A senha já está configurada.",
29
- "mismatch": "As senhas não coincidem.",
30
- "setSuccess": "Senha definida.",
31
- "setError": "Erro do servidor ao definir a senha."
32
- },
33
- "logout": {
34
- "success": "Logout realizado com sucesso",
35
- "error": "Erro ao fazer logout"
36
- }
37
- },
38
- "project": {
39
- "validation": {
40
- "pathRequired": "O caminho do projeto é obrigatório.",
41
- "slugRequired": "O identificador do projeto é obrigatório.",
42
- "invalidPermissionMode": "Modo de permissão inválido: {{value}}",
43
- "invalidModelId": "ID do modelo inválido.",
44
- "invalidPathFormat": "Formato de caminho inválido.",
45
- "pathIsFile": "O caminho é um arquivo, não um diretório.",
46
- "pathParameterRequired": "O caminho é obrigatório."
47
- },
48
- "error": {
49
- "createFailed": "Erro ao criar o projeto.",
50
- "bmadVersionsFailed": "Erro ao obter a lista de versões do BMad.",
51
- "notFound": "Projeto não encontrado.",
52
- "deleteFailed": "Erro ao excluir o projeto.",
53
- "bmadSetupFailed": "Erro durante a configuração do BMad.",
54
- "validatePathFailed": "Erro ao validar o caminho.",
55
- "settingsLoadFailed": "Erro ao carregar configurações.",
56
- "settingsSaveFailed": "Erro ao salvar configurações.",
57
- "systemPromptFailed": "Erro ao obter o prompt do sistema.",
58
- "scanError": "Erro ao escanear projetos.",
59
- "dirNotFound": "Diretório não encontrado.",
60
- "permissionDenied": "Permissão negada.",
61
- "invalidSessionIndex": "Índice de sessão inválido.",
62
- "pathNotFound": "Caminho não encontrado.",
63
- "pathNotDirectory": "O caminho não é um diretório.",
64
- "alreadyBmad": " é um projeto BMad.",
65
- "alreadyExists": "O projeto existe."
66
- }
67
- },
68
- "board": {
69
- "error": {
70
- "projectNotFound": "Projeto não encontrado: {{value}}",
71
- "internal": "Erro interno do servidor",
72
- "issueNotFound": "Issue não encontrada: {{value}}",
73
- "storyNotFound": "Story não encontrada: {{value}}",
74
- "statusNotFound": "Status não encontrado para story: {{value}}"
75
- },
76
- "validation": {
77
- "titleRequired": "O título é obrigatório",
78
- "invalidSeverity": "Severidade inválida: {{value}}",
79
- "invalidIssueType": "Tipo de issue inválido: {{value}}",
80
- "invalidStatus": "Status inválido: {{value}}",
81
- "invalidIssueId": "ID de issue inválido",
82
- "fileRequired": "O arquivo é obrigatório",
83
- "invalidFileType": "Tipo de arquivo não suportado",
84
- "fileTooLarge": "O arquivo excede o limite de 10MB",
85
- "maxAttachments": "Quantidade máxima de anexos atingida",
86
- "invalidFilename": "Nome de arquivo inválido"
87
- },
88
- "success": {
89
- "issueDeleted": "Issue excluída"
90
- }
91
- },
92
- "session": {
93
- "validation": {
94
- "deleteIdsRequired": "A lista de IDs de sessão para exclusão é obrigatória."
95
- },
96
- "error": {
97
- "saveNameFailed": "Erro ao salvar nome da sessão.",
98
- "projectNotFound": "Projeto não encontrado.",
99
- "listError": "Erro ao listar sessões.",
100
- "invalidPath": "Caminho inválido detectado.",
101
- "parseError": "Erro ao analisar dados da sessão.",
102
- "deleteError": "Erro ao excluir sessão.",
103
- "nameError": "Erro ao atualizar nome da sessão."
104
- }
105
- },
106
- "fs": {
107
- "validation": {
108
- "slugRequired": "O identificador do projeto é obrigatório.",
109
- "pathRequired": "O parâmetro de consulta path é obrigatório",
110
- "contentRequired": "content deve ser uma string no corpo da requisição",
111
- "typeRequired": "type deve ser \"file\" ou \"directory\"",
112
- "newPathRequired": "O parâmetro de consulta newPath é obrigatório",
113
- "queryRequired": "O parâmetro query é obrigatório"
114
- },
115
- "error": {
116
- "pathTraversal": "Traversal de caminho detectado.",
117
- "fileNotFound": "Arquivo não encontrado.",
118
- "directoryNotFound": "Diretório não encontrado.",
119
- "notADirectory": "Não é um diretório.",
120
- "readError": "Erro de leitura do arquivo.",
121
- "writeError": "Erro de escrita do arquivo.",
122
- "fileAlreadyExists": "O arquivo já existe.",
123
- "protectedPath": "Caminho protegido.",
124
- "renameTargetExists": "O destino da renomeação já existe.",
125
- "parentNotFound": "Diretório pai não encontrado."
126
- }
127
- },
128
- "git": {
129
- "validation": {
130
- "slugRequired": "projectSlug é obrigatório",
131
- "fileRequired": "O parâmetro de consulta file é obrigatório",
132
- "filesRequired": "O array files é obrigatório e não pode estar vazio",
133
- "commitMessageRequired": "A mensagem de commit é obrigatória e não pode estar vazia",
134
- "commitMessageTooLong": "A mensagem de commit excede o comprimento máximo de 10.000 caracteres",
135
- "branchRequired": "O nome da branch é obrigatório",
136
- "invalidBranchName": "Nome de branch inválido: contém caracteres inválidos",
137
- "invalidStartPoint": "startPoint inválido: contém caracteres inválidos",
138
- "startPointFormat": "startPoint deve ser uma string não vazia se fornecido"
139
- },
140
- "success": {
141
- "initialized": "Repositório Git inicializado",
142
- "staged": "Arquivos preparados com sucesso",
143
- "unstaged": "Arquivos removidos da preparação com sucesso",
144
- "committed": "Alterações commitadas com sucesso",
145
- "pushed": "Push para o remoto realizado com sucesso",
146
- "pulled": "Pull do remoto realizado com sucesso",
147
- "switchedBranch": "Alterado para a branch {{value}}",
148
- "branchCreated": "Branch {{value}} criada com sucesso"
149
- },
150
- "error": {
151
- "operationFailed": "A operação Git falhou.",
152
- "notInitialized": "O repositório Git não está inicializado.",
153
- "conflict": "Conflito de Git detectado.",
154
- "nothingToCommit": "Nada para commitar.",
155
- "branchExists": "A branch existe."
156
- }
157
- },
158
- "queue": {
159
- "validation": {
160
- "slugRequired": "projectSlug é obrigatório",
161
- "itemsRequired": "O array items não pode estar vazio",
162
- "invalidInput": "Entrada de fila inválida: {{value}}"
163
- },
164
- "error": {
165
- "alreadyRunning": "A fila está em execução para este projeto",
166
- "noRunningQueue": "Não fila em execução para este projeto",
167
- "sdkError": "Erro SDK: {{value}}",
168
- "queueStopDetected": "QUEUE_STOP detectado na resposta",
169
- "sessionNotFound": "Nome de sessão \"{{value}}\" não encontrado",
170
- "sessionBusy": "A sessão está transmitindo no momento — fila pausada para evitar conflitos"
171
- },
172
- "pause": {
173
- "userPaused": "Pausado pelo usuário",
174
- "waitingForPermission": "Aguardando {{value}}: {{toolName}}",
175
- "userAnswer": "resposta do usuário",
176
- "permissionApproval": "permissão"
177
- }
178
- },
179
- "queueTemplate": {
180
- "error": {
181
- "listFailed": "Falha ao listar templates",
182
- "createFailed": "Falha ao criar template",
183
- "updateFailed": "Falha ao atualizar template",
184
- "deleteFailed": "Falha ao excluir template",
185
- "notFound": "Template não encontrado",
186
- "projectPathFailed": "Falha ao resolver caminho do projeto",
187
- "bmadConfigNotFound": "Configuração BMad não encontrada para este projeto",
188
- "prdNotFound": "Arquivo PRD não encontrado"
189
- },
190
- "validation": {
191
- "nameTemplateRequired": "name e template são strings obrigatórias não vazias"
192
- }
193
- },
194
- "notification": {
195
- "permission": {
196
- "title": "Permissão necessária"
197
- },
198
- "question": {
199
- "title": "Pergunta"
200
- },
201
- "complete": {
202
- "title": "Concluído",
203
- "lastMessage": "Última resposta:",
204
- "queueProgress": "Fila: {{current}}/{{total}} ({{pct}}%)"
205
- },
206
- "error": {
207
- "title": "Erro",
208
- "configRequired": "Tanto o Bot Token quanto o Chat ID devem estar configurados."
209
- },
210
- "queueStart": {
211
- "title": "Fila iniciada",
212
- "body": "{{value}} itens para executar"
213
- },
214
- "queueComplete": {
215
- "title": "Fila concluída",
216
- "body": "Todos os itens processados"
217
- },
218
- "queuePaused": {
219
- "title": "Fila pausada"
220
- },
221
- "inputRequired": {
222
- "title": "Entrada necessária",
223
- "body": "Aguardando resposta do usuário"
224
- },
225
- "test": {
226
- "message": "Esta é uma notificação de teste. As notificações do Telegram estão funcionando corretamente!"
227
- }
228
- },
229
- "ws": {
230
- "error": {
231
- "queueSessionLocked": "Não é possível enviar mensagens para uma sessão onde uma fila está em execução.",
232
- "queueAlreadyRunning": "A fila já está em execução para este projeto",
233
- "maxImages": "Você pode anexar até {{value}} imagens.",
234
- "unsupportedImageFormat": "Formato de imagem não suportado: {{value}}",
235
- "imageSizeExceeded": "O tamanho da imagem excede 10MB: {{value}}",
236
- "projectPathNotFound": "O caminho do projeto especificado não existe.",
237
- "sessionNotFound": "Sessão não encontrada. Inicie uma nova sessão.",
238
- "timeout": "Tempo de resposta esgotado. Tente novamente.",
239
- "sessionListFailed": "Falha ao carregar a lista de sessões.",
240
- "terminalDisabled": "O recurso de terminal está desabilitado",
241
- "terminalProjectNotFound": "Caminho do projeto não encontrado para o terminal",
242
- "terminalAccessDenied": "O acesso ao terminal não está disponível fora da rede local por motivos de segurança",
243
- "terminalNotFound": "Terminal não encontrado",
244
- "ptySpawnError": "Falha ao iniciar o processo do terminal",
245
- "chainContentTooLong": "O conteúdo do prompt da cadeia excede o comprimento máximo.",
246
- "chainMaxExceeded": "Máximo de 10 itens na cadeia permitidos."
247
- }
248
- },
249
- "pathGuard": {
250
- "nullByte": "Caminho inválido: byte nulo detectado",
251
- "absolutePath": "Caminho inválido: caminhos absolutos não são permitidos",
252
- "traversal": "Caminho inválido: traversal de caminho detectado"
253
- },
254
- "dashboard": {
255
- "error": {
256
- "statusFailed": "Falha ao obter o status do painel"
257
- }
258
- },
259
- "cli": {
260
- "error": {
261
- "executionFailed": "Ocorreu um erro ao executar o CLI."
262
- }
263
- },
264
- "command": {
265
- "error": {
266
- "listFailed": "Falha ao listar comandos"
267
- }
268
- },
269
- "server": {
270
- "error": {
271
- "rebuildDevOnly": "A reconstrução está disponível apenas no modo de desenvolvimento.",
272
- "buildInProgress": "A compilação já está em andamento.",
273
- "updateCheckDevOnly": "A verificação de atualização não está disponível no modo de desenvolvimento.",
274
- "npmCheckFailed": "Falha ao verificar o registro npm.",
275
- "useRebuildInDev": "Use reconstruir e reiniciar no modo de desenvolvimento.",
276
- "operationInProgress": "Uma operação já está em andamento."
277
- },
278
- "info": {
279
- "buildStarted": "Compilação iniciada. Consulte /api/server/build-status para acompanhar o progresso.",
280
- "updateStarted": "Atualização iniciada. Consulte /api/server/build-status para acompanhar o progresso."
281
- }
282
- },
283
- "bmadStatus": {
284
- "error": {
285
- "notBmadProject": "Este não é um projeto BMad.",
286
- "configParseError": "Erro ao analisar core-config.yaml.",
287
- "scanError": "Erro ao escanear o status do projeto."
288
- }
289
- },
290
- "preferences": {
291
- "readError": "Erro ao ler preferências.",
292
- "writeError": "Erro ao salvar preferências.",
293
- "telegram": {
294
- "readError": "Erro ao carregar configurações do Telegram.",
295
- "invalidBotToken": "Bot Token inválido.",
296
- "invalidChatId": "Chat ID inválido.",
297
- "writeError": "Erro ao salvar configurações do Telegram.",
298
- "testError": "Erro do servidor ao enviar notificação de teste."
299
- },
300
- "rateLimit": {
301
- "projectCreate": "Muitas solicitações de criação de projeto. Tente novamente mais tarde.",
302
- "pathValidation": "Muitas solicitações de validação de caminho. Tente novamente mais tarde."
303
- }
304
- }
305
- }
1
+ {
2
+ "error": {
3
+ "notFound": "Recurso não encontrado",
4
+ "unauthorized": "Não autorizado",
5
+ "internal": "Erro interno do servidor",
6
+ "requestFailed": "Requisição falhou ({{status}} {{statusText}})",
7
+ "rateLimit": "Limite de requisições da API atingido. Tente novamente mais tarde.",
8
+ "authRequired": "Autenticação do Claude Code CLI é necessária. Execute \"claude login\".",
9
+ "networkError": "Problema de conexão de rede. Verifique sua conexão com a Internet.",
10
+ "invalidPath": "Caminho inválido: {{path}}",
11
+ "serviceUnavailable": "O serviço Claude está indisponível. Tente novamente mais tarde.",
12
+ "aborted": "Operação cancelada."
13
+ },
14
+ "auth": {
15
+ "validation": {
16
+ "passwordRequired": "A senha é obrigatória.",
17
+ "passwordMinLength": "A senha deve ter pelo menos {{value}} caracteres.",
18
+ "passwordConfirmRequired": "A confirmação da senha é obrigatória.",
19
+ "invalidRequest": "Requisição inválida."
20
+ },
21
+ "login": {
22
+ "success": "Login realizado com sucesso",
23
+ "serverError": "Erro do servidor durante o login",
24
+ "invalidPassword": "Senha inválida.",
25
+ "rateLimitExceeded": "Muitas tentativas de login. Tente novamente mais tarde."
26
+ },
27
+ "password": {
28
+ "alreadySet": "A senha já está configurada.",
29
+ "mismatch": "As senhas não coincidem.",
30
+ "setSuccess": "Senha definida.",
31
+ "setError": "Erro do servidor ao definir a senha.",
32
+ "changeSuccess": "Senha alterada. Faça login novamente.",
33
+ "changeError": "Erro do servidor ao alterar a senha."
34
+ },
35
+ "logout": {
36
+ "success": "Logout realizado com sucesso",
37
+ "error": "Erro ao fazer logout"
38
+ }
39
+ },
40
+ "project": {
41
+ "validation": {
42
+ "pathRequired": "O caminho do projeto é obrigatório.",
43
+ "slugRequired": "O identificador do projeto é obrigatório.",
44
+ "invalidPermissionMode": "Modo de permissão inválido: {{value}}",
45
+ "invalidModelId": "ID do modelo inválido.",
46
+ "invalidPathFormat": "Formato de caminho inválido.",
47
+ "pathIsFile": "O caminho é um arquivo, não um diretório.",
48
+ "pathParameterRequired": "O caminho é obrigatório."
49
+ },
50
+ "error": {
51
+ "createFailed": "Erro ao criar o projeto.",
52
+ "bmadVersionsFailed": "Erro ao obter a lista de versões do BMad.",
53
+ "notFound": "Projeto não encontrado.",
54
+ "deleteFailed": "Erro ao excluir o projeto.",
55
+ "bmadSetupFailed": "Erro durante a configuração do BMad.",
56
+ "validatePathFailed": "Erro ao validar o caminho.",
57
+ "settingsLoadFailed": "Erro ao carregar configurações.",
58
+ "settingsSaveFailed": "Erro ao salvar configurações.",
59
+ "systemPromptFailed": "Erro ao obter o prompt do sistema.",
60
+ "openExplorerLocalOnly": "Abrir o explorador de arquivos está disponível apenas no localhost.",
61
+ "openExplorerFailed": "Falha ao abrir o explorador de arquivos.",
62
+ "scanError": "Erro ao escanear projetos.",
63
+ "dirNotFound": "Diretório não encontrado.",
64
+ "permissionDenied": "Permissão negada.",
65
+ "invalidSessionIndex": "Índice de sessão inválido.",
66
+ "pathNotFound": "Caminho não encontrado.",
67
+ "pathNotDirectory": "O caminho não é um diretório.",
68
+ "alreadyBmad": "Já é um projeto BMad.",
69
+ "alreadyExists": "O projeto já existe."
70
+ }
71
+ },
72
+ "board": {
73
+ "error": {
74
+ "projectNotFound": "Projeto não encontrado: {{value}}",
75
+ "internal": "Erro interno do servidor",
76
+ "issueNotFound": "Issue não encontrada: {{value}}",
77
+ "storyNotFound": "Story não encontrada: {{value}}",
78
+ "statusNotFound": "Status não encontrado para story: {{value}}"
79
+ },
80
+ "validation": {
81
+ "titleRequired": "O título é obrigatório",
82
+ "invalidSeverity": "Severidade inválida: {{value}}",
83
+ "invalidIssueType": "Tipo de issue inválido: {{value}}",
84
+ "invalidStatus": "Status inválido: {{value}}",
85
+ "invalidIssueId": "ID de issue inválido",
86
+ "fileRequired": "O arquivo é obrigatório",
87
+ "invalidFileType": "Tipo de arquivo não suportado",
88
+ "fileTooLarge": "O arquivo excede o limite de 10MB",
89
+ "maxAttachments": "Quantidade máxima de anexos atingida",
90
+ "invalidFilename": "Nome de arquivo inválido"
91
+ },
92
+ "success": {
93
+ "issueDeleted": "Issue excluída"
94
+ }
95
+ },
96
+ "session": {
97
+ "validation": {
98
+ "deleteIdsRequired": "A lista de IDs de sessão para exclusão é obrigatória."
99
+ },
100
+ "error": {
101
+ "saveNameFailed": "Erro ao salvar nome da sessão.",
102
+ "projectNotFound": "Projeto não encontrado.",
103
+ "listError": "Erro ao listar sessões.",
104
+ "invalidPath": "Caminho inválido detectado.",
105
+ "parseError": "Erro ao analisar dados da sessão.",
106
+ "deleteError": "Erro ao excluir sessão.",
107
+ "nameError": "Erro ao atualizar nome da sessão."
108
+ }
109
+ },
110
+ "fs": {
111
+ "validation": {
112
+ "slugRequired": "O identificador do projeto é obrigatório.",
113
+ "pathRequired": "O parâmetro de consulta path é obrigatório",
114
+ "contentRequired": "content deve ser uma string no corpo da requisição",
115
+ "typeRequired": "type deve ser \"file\" ou \"directory\"",
116
+ "newPathRequired": "O parâmetro de consulta newPath é obrigatório",
117
+ "queryRequired": "O parâmetro query é obrigatório"
118
+ },
119
+ "error": {
120
+ "pathTraversal": "Traversal de caminho detectado.",
121
+ "fileNotFound": "Arquivo não encontrado.",
122
+ "directoryNotFound": "Diretório não encontrado.",
123
+ "notADirectory": "Não é um diretório.",
124
+ "readError": "Erro de leitura do arquivo.",
125
+ "writeError": "Erro de escrita do arquivo.",
126
+ "fileAlreadyExists": "O arquivo já existe.",
127
+ "protectedPath": "Caminho protegido.",
128
+ "renameTargetExists": "O destino da renomeação já existe.",
129
+ "parentNotFound": "Diretório pai não encontrado."
130
+ }
131
+ },
132
+ "git": {
133
+ "validation": {
134
+ "slugRequired": "projectSlug é obrigatório",
135
+ "fileRequired": "O parâmetro de consulta file é obrigatório",
136
+ "filesRequired": "O array files é obrigatório e não pode estar vazio",
137
+ "commitMessageRequired": "A mensagem de commit é obrigatória e não pode estar vazia",
138
+ "commitMessageTooLong": "A mensagem de commit excede o comprimento máximo de 10.000 caracteres",
139
+ "branchRequired": "O nome da branch é obrigatório",
140
+ "invalidBranchName": "Nome de branch inválido: contém caracteres inválidos",
141
+ "invalidStartPoint": "startPoint inválido: contém caracteres inválidos",
142
+ "startPointFormat": "startPoint deve ser uma string não vazia se fornecido"
143
+ },
144
+ "success": {
145
+ "initialized": "Repositório Git inicializado",
146
+ "staged": "Arquivos preparados com sucesso",
147
+ "unstaged": "Arquivos removidos da preparação com sucesso",
148
+ "committed": "Alterações commitadas com sucesso",
149
+ "pushed": "Push para o remoto realizado com sucesso",
150
+ "pulled": "Pull do remoto realizado com sucesso",
151
+ "switchedBranch": "Alterado para a branch {{value}}",
152
+ "branchCreated": "Branch {{value}} criada com sucesso"
153
+ },
154
+ "error": {
155
+ "operationFailed": "A operação Git falhou.",
156
+ "notInitialized": "O repositório Git não está inicializado.",
157
+ "conflict": "Conflito de Git detectado.",
158
+ "nothingToCommit": "Nada para commitar.",
159
+ "branchExists": "A branch já existe."
160
+ }
161
+ },
162
+ "queue": {
163
+ "validation": {
164
+ "slugRequired": "projectSlug é obrigatório",
165
+ "itemsRequired": "O array items não pode estar vazio",
166
+ "invalidInput": "Entrada de fila inválida: {{value}}"
167
+ },
168
+ "error": {
169
+ "alreadyRunning": "A fila está em execução para este projeto",
170
+ "noRunningQueue": "Não fila em execução para este projeto",
171
+ "sdkError": "Erro SDK: {{value}}",
172
+ "queueStopDetected": "QUEUE_STOP detectado na resposta",
173
+ "sessionNotFound": "Nome de sessão \"{{value}}\" não encontrado",
174
+ "sessionBusy": "A sessão está transmitindo no momento — fila pausada para evitar conflitos"
175
+ },
176
+ "pause": {
177
+ "userPaused": "Pausado pelo usuário",
178
+ "waitingForPermission": "Aguardando {{value}}: {{toolName}}",
179
+ "userAnswer": "resposta do usuário",
180
+ "permissionApproval": "permissão"
181
+ }
182
+ },
183
+ "queueTemplate": {
184
+ "error": {
185
+ "listFailed": "Falha ao listar templates",
186
+ "createFailed": "Falha ao criar template",
187
+ "updateFailed": "Falha ao atualizar template",
188
+ "deleteFailed": "Falha ao excluir template",
189
+ "notFound": "Template não encontrado",
190
+ "projectPathFailed": "Falha ao resolver caminho do projeto",
191
+ "bmadConfigNotFound": "Configuração BMad não encontrada para este projeto",
192
+ "prdNotFound": "Arquivo PRD não encontrado"
193
+ },
194
+ "validation": {
195
+ "nameTemplateRequired": "name e template são strings obrigatórias não vazias"
196
+ }
197
+ },
198
+ "notification": {
199
+ "permission": {
200
+ "title": "Permissão necessária"
201
+ },
202
+ "question": {
203
+ "title": "Pergunta"
204
+ },
205
+ "complete": {
206
+ "title": "Concluído",
207
+ "lastMessage": "Última resposta:",
208
+ "queueProgress": "Fila: {{current}}/{{total}} ({{pct}}%)"
209
+ },
210
+ "error": {
211
+ "title": "Erro",
212
+ "configRequired": "Tanto o Bot Token quanto o Chat ID devem estar configurados."
213
+ },
214
+ "queueStart": {
215
+ "title": "Fila iniciada",
216
+ "body": "{{value}} itens para executar"
217
+ },
218
+ "queueComplete": {
219
+ "title": "Fila concluída",
220
+ "body": "Todos os itens processados"
221
+ },
222
+ "queuePaused": {
223
+ "title": "Fila pausada"
224
+ },
225
+ "inputRequired": {
226
+ "title": "Entrada necessária",
227
+ "body": "Aguardando resposta do usuário"
228
+ },
229
+ "test": {
230
+ "message": "Esta é uma notificação de teste. As notificações do Telegram estão funcionando corretamente!"
231
+ }
232
+ },
233
+ "ws": {
234
+ "error": {
235
+ "queueSessionLocked": "Não é possível enviar mensagens para uma sessão onde uma fila está em execução.",
236
+ "queueAlreadyRunning": "A fila está em execução para este projeto",
237
+ "maxImages": "Você pode anexar até {{value}} imagens.",
238
+ "unsupportedImageFormat": "Formato de imagem não suportado: {{value}}",
239
+ "imageSizeExceeded": "O tamanho da imagem excede 10MB: {{value}}",
240
+ "projectPathNotFound": "O caminho do projeto especificado não existe.",
241
+ "sessionNotFound": "Sessão não encontrada. Inicie uma nova sessão.",
242
+ "timeout": "Tempo de resposta esgotado. Tente novamente.",
243
+ "sessionListFailed": "Falha ao carregar a lista de sessões.",
244
+ "terminalDisabled": "O recurso de terminal está desabilitado",
245
+ "terminalProjectNotFound": "Caminho do projeto não encontrado para o terminal",
246
+ "terminalAccessDenied": "O acesso ao terminal não está disponível fora da rede local por motivos de segurança",
247
+ "terminalNotFound": "Terminal não encontrado",
248
+ "ptySpawnError": "Falha ao iniciar o processo do terminal",
249
+ "chainContentTooLong": "O conteúdo do prompt da cadeia excede o comprimento máximo.",
250
+ "chainMaxExceeded": "Máximo de 10 itens na cadeia permitidos."
251
+ }
252
+ },
253
+ "pathGuard": {
254
+ "nullByte": "Caminho inválido: byte nulo detectado",
255
+ "absolutePath": "Caminho inválido: caminhos absolutos não são permitidos",
256
+ "traversal": "Caminho inválido: traversal de caminho detectado"
257
+ },
258
+ "dashboard": {
259
+ "error": {
260
+ "statusFailed": "Falha ao obter o status do painel"
261
+ }
262
+ },
263
+ "cli": {
264
+ "error": {
265
+ "executionFailed": "Ocorreu um erro ao executar o CLI."
266
+ }
267
+ },
268
+ "command": {
269
+ "error": {
270
+ "listFailed": "Falha ao listar comandos"
271
+ }
272
+ },
273
+ "server": {
274
+ "error": {
275
+ "rebuildDevOnly": "A reconstrução está disponível apenas no modo de desenvolvimento.",
276
+ "buildInProgress": "A compilação já está em andamento.",
277
+ "updateCheckDevOnly": "A verificação de atualização não está disponível no modo de desenvolvimento.",
278
+ "npmCheckFailed": "Falha ao verificar o registro npm.",
279
+ "useRebuildInDev": "Use reconstruir e reiniciar no modo de desenvolvimento.",
280
+ "operationInProgress": "Uma operação está em andamento."
281
+ },
282
+ "info": {
283
+ "buildStarted": "Compilação iniciada. Consulte /api/server/build-status para acompanhar o progresso.",
284
+ "updateStarted": "Atualização iniciada. Consulte /api/server/build-status para acompanhar o progresso."
285
+ }
286
+ },
287
+ "bmadStatus": {
288
+ "error": {
289
+ "notBmadProject": "Este não é um projeto BMad.",
290
+ "configParseError": "Erro ao analisar core-config.yaml.",
291
+ "scanError": "Erro ao escanear o status do projeto."
292
+ }
293
+ },
294
+ "preferences": {
295
+ "readError": "Erro ao ler preferências.",
296
+ "writeError": "Erro ao salvar preferências.",
297
+ "telegram": {
298
+ "readError": "Erro ao carregar configurações do Telegram.",
299
+ "invalidBotToken": "Bot Token inválido.",
300
+ "invalidChatId": "Chat ID inválido.",
301
+ "writeError": "Erro ao salvar configurações do Telegram.",
302
+ "testError": "Erro do servidor ao enviar notificação de teste."
303
+ },
304
+ "rateLimit": {
305
+ "projectCreate": "Muitas solicitações de criação de projeto. Tente novamente mais tarde.",
306
+ "pathValidation": "Muitas solicitações de validação de caminho. Tente novamente mais tarde."
307
+ }
308
+ }
309
+ }