@tunnelbox/core 0.1.10 → 0.1.16
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/README.md +28 -28
- package/README.zh-CN.md +28 -28
- package/dist/index.js +67 -2
- package/locales/de-DE.json +166 -165
- package/locales/en-US.json +166 -165
- package/locales/es-ES.json +166 -165
- package/locales/fr-FR.json +166 -165
- package/locales/ja-JP.json +166 -165
- package/locales/ko-KR.json +166 -165
- package/locales/zh-CN.json +166 -165
- package/locales/zh-TW.json +166 -165
- package/package.json +1 -1
- package/src/messages.ts +171 -171
- package/src/qr.ts +108 -108
- package/src/relay.ts +67 -2
- package/src/types.ts +2 -0
package/locales/es-ES.json
CHANGED
|
@@ -1,165 +1,166 @@
|
|
|
1
|
-
{
|
|
2
|
-
"agent.err.createSession": "No se pudo crear la sesión",
|
|
3
|
-
"agent.err.httpClient": "No se puede acceder al cliente HTTP de opencode",
|
|
4
|
-
"agent.err.unknownPerm": "Solicitud de permiso desconocida: {id}",
|
|
5
|
-
"agent.err.unknownQuestion": "Solicitud de pregunta desconocida: {id}",
|
|
6
|
-
"agent.log.fallback404": "El punto de acceso preferido devolvió 404; se recurre al otro: {message}",
|
|
7
|
-
"agent.log.gotPermReply": "Respuesta de permiso recibida del teléfono (id={id} {reply} {version})",
|
|
8
|
-
"agent.log.gotQuestionReply": "Respuesta de pregunta recibida del teléfono (id={id} {status} {version})",
|
|
9
|
-
"agent.log.handleFailed": "Error al procesar {type}: {message}",
|
|
10
|
-
"agent.log.msgOk": "Mensajes de sesión OK session={session} data={count} modo={limited} win={win} ms={ms}",
|
|
11
|
-
"agent.log.msgFailed": "Error al obtener mensajes de sesión session={session} err={err} ms={ms}",
|
|
12
|
-
"agent.log.msgLimitFallback": "limit no compatible; se vuelve a la obtención completa (session={session})",
|
|
13
|
-
"agent.log.httpOk": "opencode HTTP {status} {path}",
|
|
14
|
-
"agent.log.pendingResent": "session.pending: reenviadas {count} solicitud(es) pendientes para {session}",
|
|
15
|
-
"agent.log.unhandledType": "Tipo de mensaje no gestionado: {type}",
|
|
16
|
-
"events.log.fwdPermission": "Solicitud de permiso reenviada al teléfono (id={id} tool={tool} {version})",
|
|
17
|
-
"events.log.
|
|
18
|
-
"events.log.
|
|
19
|
-
"events.log.
|
|
20
|
-
"
|
|
21
|
-
"index.error.
|
|
22
|
-
"index.
|
|
23
|
-
"index.log.
|
|
24
|
-
"index.log.
|
|
25
|
-
"index.log.
|
|
26
|
-
"index.log.
|
|
27
|
-
"index.log.
|
|
28
|
-
"index.log.
|
|
29
|
-
"index.log.
|
|
30
|
-
"index.log.
|
|
31
|
-
"index.log.
|
|
32
|
-
"index.log.
|
|
33
|
-
"index.log.
|
|
34
|
-
"index.log.
|
|
35
|
-
"
|
|
36
|
-
"install.
|
|
37
|
-
"install.
|
|
38
|
-
"install.
|
|
39
|
-
"install.
|
|
40
|
-
"install.
|
|
41
|
-
"install.
|
|
42
|
-
"install.
|
|
43
|
-
"install.
|
|
44
|
-
"install.
|
|
45
|
-
"install.
|
|
46
|
-
"install.
|
|
47
|
-
"
|
|
48
|
-
"pair.
|
|
49
|
-
"pair.
|
|
50
|
-
"pair.
|
|
51
|
-
"pair.
|
|
52
|
-
"pair.
|
|
53
|
-
"
|
|
54
|
-
"perm.
|
|
55
|
-
"perm.
|
|
56
|
-
"perm.
|
|
57
|
-
"
|
|
58
|
-
"qr.
|
|
59
|
-
"qr.
|
|
60
|
-
"qr.
|
|
61
|
-
"qr.
|
|
62
|
-
"qr.
|
|
63
|
-
"
|
|
64
|
-
"claude.
|
|
65
|
-
"claude.
|
|
66
|
-
"claude.
|
|
67
|
-
"claude.
|
|
68
|
-
"claude.
|
|
69
|
-
"claude.
|
|
70
|
-
"claude.
|
|
71
|
-
"claude.
|
|
72
|
-
"claude.
|
|
73
|
-
"claude.
|
|
74
|
-
"claude.
|
|
75
|
-
"claude.
|
|
76
|
-
"claude.
|
|
77
|
-
"claude.
|
|
78
|
-
"claude.
|
|
79
|
-
"claude.
|
|
80
|
-
"claude.
|
|
81
|
-
"claude.
|
|
82
|
-
"claude.
|
|
83
|
-
"claude.
|
|
84
|
-
"claude.
|
|
85
|
-
"claude.
|
|
86
|
-
"claude.
|
|
87
|
-
"claude.
|
|
88
|
-
"claude.
|
|
89
|
-
"claude.
|
|
90
|
-
"claude.
|
|
91
|
-
"claude.
|
|
92
|
-
"claude.
|
|
93
|
-
"claude.
|
|
94
|
-
"claude.
|
|
95
|
-
"claude.
|
|
96
|
-
"claude.
|
|
97
|
-
"claude.
|
|
98
|
-
"claude.
|
|
99
|
-
"claude.
|
|
100
|
-
"claude.
|
|
101
|
-
"claude.
|
|
102
|
-
"claude.
|
|
103
|
-
"claude.
|
|
104
|
-
"claude.
|
|
105
|
-
"claude.
|
|
106
|
-
"claude.
|
|
107
|
-
"claude.
|
|
108
|
-
"claude.
|
|
109
|
-
"claude.
|
|
110
|
-
"claude.
|
|
111
|
-
"claude.
|
|
112
|
-
"claude.
|
|
113
|
-
"claude.
|
|
114
|
-
"claude.
|
|
115
|
-
"claude.
|
|
116
|
-
"claude.
|
|
117
|
-
"claude.
|
|
118
|
-
"claude.
|
|
119
|
-
"claude.
|
|
120
|
-
"claude.
|
|
121
|
-
"claude.
|
|
122
|
-
"claude.
|
|
123
|
-
"claude.
|
|
124
|
-
"claude.
|
|
125
|
-
"claude.
|
|
126
|
-
"claude.
|
|
127
|
-
"claude.
|
|
128
|
-
"
|
|
129
|
-
"setup.
|
|
130
|
-
"setup.
|
|
131
|
-
"
|
|
132
|
-
"hermes.
|
|
133
|
-
"hermes.
|
|
134
|
-
"hermes.
|
|
135
|
-
"hermes.
|
|
136
|
-
"hermes.
|
|
137
|
-
"hermes.
|
|
138
|
-
"hermes.
|
|
139
|
-
"hermes.
|
|
140
|
-
"hermes.
|
|
141
|
-
"hermes.
|
|
142
|
-
"hermes.
|
|
143
|
-
"hermes.
|
|
144
|
-
"hermes.
|
|
145
|
-
"hermes.
|
|
146
|
-
"hermes.
|
|
147
|
-
"hermes.
|
|
148
|
-
"hermes.
|
|
149
|
-
"hermes.
|
|
150
|
-
"hermes.
|
|
151
|
-
"hermes.
|
|
152
|
-
"hermes.
|
|
153
|
-
"hermes.
|
|
154
|
-
"hermes.
|
|
155
|
-
"hermes.
|
|
156
|
-
"hermes.
|
|
157
|
-
"hermes.
|
|
158
|
-
"hermes.
|
|
159
|
-
"hermes.
|
|
160
|
-
"hermes.
|
|
161
|
-
"hermes.
|
|
162
|
-
"hermes.
|
|
163
|
-
"hermes.
|
|
164
|
-
"hermes.
|
|
165
|
-
|
|
1
|
+
{
|
|
2
|
+
"agent.err.createSession": "No se pudo crear la sesión",
|
|
3
|
+
"agent.err.httpClient": "No se puede acceder al cliente HTTP de opencode",
|
|
4
|
+
"agent.err.unknownPerm": "Solicitud de permiso desconocida: {id}",
|
|
5
|
+
"agent.err.unknownQuestion": "Solicitud de pregunta desconocida: {id}",
|
|
6
|
+
"agent.log.fallback404": "El punto de acceso preferido devolvió 404; se recurre al otro: {message}",
|
|
7
|
+
"agent.log.gotPermReply": "Respuesta de permiso recibida del teléfono (id={id} {reply} {version})",
|
|
8
|
+
"agent.log.gotQuestionReply": "Respuesta de pregunta recibida del teléfono (id={id} {status} {version})",
|
|
9
|
+
"agent.log.handleFailed": "Error al procesar {type}: {message}",
|
|
10
|
+
"agent.log.msgOk": "Mensajes de sesión OK session={session} data={count} modo={limited} win={win} ms={ms}",
|
|
11
|
+
"agent.log.msgFailed": "Error al obtener mensajes de sesión session={session} err={err} ms={ms}",
|
|
12
|
+
"agent.log.msgLimitFallback": "limit no compatible; se vuelve a la obtención completa (session={session})",
|
|
13
|
+
"agent.log.httpOk": "opencode HTTP {status} {path}",
|
|
14
|
+
"agent.log.pendingResent": "session.pending: reenviadas {count} solicitud(es) pendientes para {session}",
|
|
15
|
+
"agent.log.unhandledType": "Tipo de mensaje no gestionado: {type}",
|
|
16
|
+
"events.log.fwdPermission": "Solicitud de permiso reenviada al teléfono (id={id} tool={tool} {version})",
|
|
17
|
+
"events.log.sessionDeleted": "session.deleted reenviada al teléfono (session={session})",
|
|
18
|
+
"events.log.permissionReplied": "opencode confirmó permission.replied (id={id} {response})",
|
|
19
|
+
"events.log.questionRejected": "opencode confirmó question.rejected (id={id})",
|
|
20
|
+
"events.log.questionReplied": "opencode confirmó question.replied (id={id})",
|
|
21
|
+
"index.error.connectRelay": "No se pudo conectar con el relay; compruebe su dirección e inténtelo de nuevo",
|
|
22
|
+
"index.error.pairTimeout": "Tiempo de espera agotado al obtener el código de emparejamiento (el relay no responde)",
|
|
23
|
+
"index.log.claimed": "Vinculado a su cuenta de teléfono. El teléfono se conecta ahora directamente desde «Mis PC»; no hace falta volver a escanear",
|
|
24
|
+
"index.log.connectedRelay": "Conectado al relay {url}",
|
|
25
|
+
"index.log.loaded": "Plugin tunnelbox opencode iniciado (v{version})",
|
|
26
|
+
"index.log.disconnected": "Desconectado del relay, reconectando automáticamente…",
|
|
27
|
+
"index.log.exit": "Salido",
|
|
28
|
+
"index.log.pairCode": "Código de emparejamiento generado: {code}",
|
|
29
|
+
"index.log.pairingStillClaimed": "Este código de emparejamiento es solo para volver a emparejar un teléfono nuevo con la misma cuenta; este equipo ya está vinculado y sigue accesible desde «Mis computadoras» en el teléfono.",
|
|
30
|
+
"index.log.pairingPreparing": "Conectando al relay y generando el código de emparejamiento…",
|
|
31
|
+
"index.log.permissionToPhone": "Solicitud de permiso → aprobación en el teléfono (id={id} tool={tool})",
|
|
32
|
+
"index.log.permissionTuiFallback": "App sin conexión; la solicitud la gestiona el TUI de opencode (id={id} tool={tool})",
|
|
33
|
+
"index.log.relayError": "Error del relay: {msg}",
|
|
34
|
+
"index.log.resetIdentity": "Desvinculado de la cuenta; se restablece la identidad y se genera un nuevo código de emparejamiento…",
|
|
35
|
+
"index.log.unknown": "Desconocido",
|
|
36
|
+
"install.codeLine": "Código de emparejamiento: {code}",
|
|
37
|
+
"install.commandInstalled": "Comando instalado: {path}",
|
|
38
|
+
"install.done": "Hecho. Se intentó conectar con el relay para mostrar la información de emparejamiento:",
|
|
39
|
+
"install.failConnect": "(No se pudo conectar de inmediato con el relay para imprimir el emparejamiento — relay inaccesible o versión de Node demasiado antigua.",
|
|
40
|
+
"install.failConnectHint": "Tras reiniciar opencode, consulte el código QR del terminal con --print-logs, o escriba “mostrar código de emparejamiento del teléfono” o /pair en opencode.)",
|
|
41
|
+
"install.hintFresh": "Nota: el código de emparejamiento es de un solo uso y válido durante unos 10 minutos. Si inicia opencode más tarde, use la información más reciente impresa al iniciar u obtenida con /pair.",
|
|
42
|
+
"install.pluginInstalled": "Complemento instalado: {path}",
|
|
43
|
+
"install.qrUnavailable": "(Representación del QR no disponible: use el código anterior)",
|
|
44
|
+
"install.qrcodeEnsure": "Instalando qrcode en el directorio de configuración de opencode…",
|
|
45
|
+
"install.qrcodeFail": "Error al instalar qrcode (no es crítico; solo se muestra el código de emparejamiento): {err}",
|
|
46
|
+
"install.relayError": "El relay devolvió un error: {msg}",
|
|
47
|
+
"install.scanHint": "Abra tunnelbox en el teléfono, pulse “Escanear para emparejar” y escanee el código QR superior para conectar:",
|
|
48
|
+
"pair.heading": "Emparejamiento de teléfono tunnelbox",
|
|
49
|
+
"pair.howTo": "Abra la aplicación tunnelbox en el teléfono y escanee el código QR superior con “Escanear para emparejar”, o introduzca el código de emparejamiento manualmente.",
|
|
50
|
+
"pair.oneTime": "El código de emparejamiento es de un solo uso y caduca al utilizarse; pida “actualizar el código de emparejamiento” para obtener uno nuevo.",
|
|
51
|
+
"pair.promptBody": "Muéstrame la información de emparejamiento con el teléfono de este ordenador: el código de emparejamiento y un código QR escaneable. Mantén el código QR dentro de un bloque de código de ancho fijo y reprodúcelo carácter por carácter para que mi teléfono pueda escanearlo.",
|
|
52
|
+
"pair.promptDescription": "Mostrar el código de emparejamiento y el QR escaneable",
|
|
53
|
+
"pair.scanIntro": "**Emparejar escaneando**: abra la aplicación tunnelbox en el teléfono, pulse “Escanear para emparejar” y escanee el código QR inferior para conectar automáticamente.",
|
|
54
|
+
"perm.promptAuthorize": "opencode solicita autorización",
|
|
55
|
+
"perm.promptPatterns": "opencode solicita acceso a: {list}",
|
|
56
|
+
"perm.promptResource": "opencode solicita acceso a los recursos: {list}",
|
|
57
|
+
"perm.promptTool": "opencode solicita ejecutar {tool}",
|
|
58
|
+
"qr.codeLabel": "Código de emparejamiento",
|
|
59
|
+
"qr.fileWritten": "Información de emparejamiento escrita en: {path}",
|
|
60
|
+
"qr.openHint": "Abra la aplicación tunnelbox en el teléfono y escanee el código QR superior, o introduzca el código de emparejamiento manualmente en la aplicación.",
|
|
61
|
+
"qr.titleNoType": "emparejamiento de teléfono tunnelbox",
|
|
62
|
+
"qr.titleWithType": "emparejamiento de teléfono tunnelbox {type}",
|
|
63
|
+
"qr.unavailable": "(qrcode no instalado: use el código de emparejamiento anterior)",
|
|
64
|
+
"claude.errBusy": "Esta sesión está en ejecución; espere a que termine o deténgala primero",
|
|
65
|
+
"claude.errTurn": "error de generación",
|
|
66
|
+
"claude.pairingStillClaimed": "Ya vinculado a una cuenta de teléfono: este código solo sirve para emparejar un nuevo dispositivo en la misma cuenta; el dispositivo actual se conecta directamente desde Mis computadoras",
|
|
67
|
+
"claude.pairForced": "--pair: solicitud forzada de código de emparejamiento (solo esta ejecución)",
|
|
68
|
+
"claude.pairUnclaimed": "No se detectó una cuenta vinculada; iniciando la guía de emparejamiento:",
|
|
69
|
+
"claude.claimedHint": "Vinculado a una cuenta de teléfono: conéctese directamente desde Mis computadoras en el teléfono",
|
|
70
|
+
"claude.errStartFailed": "Error al iniciar:",
|
|
71
|
+
"claude.msgStarted": "Adaptador de Claude Code iniciado (Ctrl+C para salir)",
|
|
72
|
+
"claude.warnInvalidMode": "Se ignora TUNNELBOX_CLAUDE_MODE no válido: {raw} (permitido {list})",
|
|
73
|
+
"claude.warnInvalidThinking": "Se ignora TUNNELBOX_CLAUDE_THINKING no válido: {raw} (off|adaptive|enabled[:budget])",
|
|
74
|
+
"claude.cmdNew": "Nueva sesión",
|
|
75
|
+
"claude.cmdHelp": "Mostrar ayuda",
|
|
76
|
+
"claude.errNoRelay": "No hay URL de relay configurada: inyecte un valor con --env o sobrescríbalo con TUNNELBOX_RELAY_URL",
|
|
77
|
+
"claude.logConnected": "Conectado al relay {url}",
|
|
78
|
+
"claude.logMsgUncaught": "Excepción no capturada al procesar el mensaje: {message}",
|
|
79
|
+
"claude.reasonDisconnect": "Relay desconectado (rechazo automático fail-closed)",
|
|
80
|
+
"claude.reasonUnbind": "Cuenta desvinculada (rechazo automático fail-closed)",
|
|
81
|
+
"claude.logDisconnected": "Desconectado del relay, reconectando automáticamente…",
|
|
82
|
+
"claude.logPairCode": "Código de emparejamiento generado: {code}",
|
|
83
|
+
"claude.logUnhandledType": "Tipo de mensaje no manejado: {type}",
|
|
84
|
+
"claude.logHandleFailed": "No se pudo procesar {type}: {message}",
|
|
85
|
+
"claude.newSessionTitle": "Nueva sesión",
|
|
86
|
+
"claude.helpText": "Comandos compatibles:\n- /new nueva sesión\n- /help mostrar ayuda",
|
|
87
|
+
"claude.logPromptFailed": "session.prompt falló: {message}",
|
|
88
|
+
"claude.logAbortSent": "Se envió la interrupción (session={session})",
|
|
89
|
+
"claude.logAbortFailed": "Error al interrumpir (session={session}): {message}",
|
|
90
|
+
"claude.errBadWorkspaceEmpty": "Falta la ruta del espacio de trabajo",
|
|
91
|
+
"claude.errBadWorkspaceNotDir": "El directorio no existe o no se puede usar",
|
|
92
|
+
"claude.logWorkspaceSwitched": "Espacio de trabajo cambiado: {path}",
|
|
93
|
+
"claude.logUnknownQuestionReply": "Respuesta de pregunta estructurada sin coincidencia (id={id})",
|
|
94
|
+
"claude.logFlushedQuestions": "{count} pregunta(s) pendiente(s) cancelada(s): {reason}",
|
|
95
|
+
"claude.logFlushedApprovals": "{count} solicitud(es) pendiente(s) rechazada(s): {reason}",
|
|
96
|
+
"claude.logPendingResent": "session.pending: se reenviaron {count} elemento(s) pendiente(s) de {session}",
|
|
97
|
+
"claude.logSetModeFailed": "setPermissionMode falló (session={session}): {message}",
|
|
98
|
+
"claude.errWorkspaceMissing": "El espacio de trabajo no existe: {dir}",
|
|
99
|
+
"claude.logSessionError": "Error de sesión (session={session}): {message}",
|
|
100
|
+
"claude.logOfflineDenyTool": "Relay sin conexión, rechazo automático de la herramienta {tool}",
|
|
101
|
+
"claude.errOfflineDeny": "Relay sin conexión, rechazo automático (fail-closed)",
|
|
102
|
+
"claude.logAuqDisabled": "AskUserQuestion deshabilitado (TUNNELBOX_CLAUDE_ASK_USER_QUESTION=0), rechazo automático",
|
|
103
|
+
"claude.errAuqDisabled": "AskUserQuestion no está habilitado",
|
|
104
|
+
"claude.logAuqParseFailed": "No se pudo analizar la entrada de AskUserQuestion, rechazo automático (fail-closed)",
|
|
105
|
+
"claude.errAuqParse": "No se pudieron analizar las preguntas",
|
|
106
|
+
"claude.logAuqSkipped": "AskUserQuestion sin respuesta/cancelada (session={session})",
|
|
107
|
+
"claude.errAuqCancelled": "El usuario no seleccionó (cancelado)",
|
|
108
|
+
"claude.logAuqDone": "AskUserQuestion respondida (session={session})",
|
|
109
|
+
"claude.promptRunTool": "Claude Code solicita ejecutar {tool}",
|
|
110
|
+
"claude.errApprovalTimeout": "Tiempo de aprobación agotado, rechazo automático (fail-closed)",
|
|
111
|
+
"claude.errUserDenied": "Rechazado por el usuario",
|
|
112
|
+
"claude.errAborted": "Solicitud interrumpida",
|
|
113
|
+
"claude.logPermToPhone": "Solicitud de permiso (tool={tool}) → enviada al teléfono permissionID={id}",
|
|
114
|
+
"claude.errRelayUnreachable": "Relay inaccesible, rechazo automático (fail-closed)",
|
|
115
|
+
"claude.logQuestionOffline": "Relay sin conexión, pregunta estructurada cancelada automáticamente",
|
|
116
|
+
"claude.logQuestionToPhone": "Pregunta estructurada ({count}) → enviada al teléfono questionID={id}",
|
|
117
|
+
"claude.logDialogOffline": "Relay sin conexión, diálogo cancelado automáticamente ({tool})",
|
|
118
|
+
"claude.logDialogToPhone": "Solicitud de diálogo (kind={kind} tool={tool}) → enviada al teléfono permissionID={id}",
|
|
119
|
+
"claude.logAuqDialogParse": "No se pudo analizar el payload de AskUserQuestion; se mantiene el comportamiento predeterminado (session={session})",
|
|
120
|
+
"claude.logDialogUnmapped": "request_user_dialog(kind={kind}) sin correspondencia, se mantiene el comportamiento predeterminado (session={session})",
|
|
121
|
+
"claude.promptMcpAuth": "MCP «{server}» solicita autorización",
|
|
122
|
+
"claude.logElicitUnmapped": "Elicitación MCP (server={server}, mode={mode}) no manejada, rechazo automático (session={session})",
|
|
123
|
+
"claude.logResetIdentity": "Cuenta desvinculada; restableciendo identidad y generando un nuevo código de emparejamiento…",
|
|
124
|
+
"claude.dialogConfirm": "Claude Code solicita confirmación ({kind})",
|
|
125
|
+
"claude.resultTruncated": "… (resultado truncado)",
|
|
126
|
+
"claude.streamError": "error de streaming de claude",
|
|
127
|
+
"claude.errListSessions": "No se pudo leer la lista de sesiones de Claude",
|
|
128
|
+
"claude.errReadHistory": "No se pudo leer el historial de la sesión ({id})",
|
|
129
|
+
"setup.langSet": "Idioma de ejecución establecido en",
|
|
130
|
+
"setup.langHint": "El adaptador emitirá en este idioma tras reiniciar (TUNNELBOX_LANG puede sobrescribirlo en tiempo de ejecución). Archivo de estado:",
|
|
131
|
+
"setup.langCurrent": "Idioma de ejecución actual",
|
|
132
|
+
"hermes.errNoRelay": "URL del relé no configurada: use --env para inyectar un valor predeterminado o sobrescríbalo en tiempo de ejecución con TUNNELBOX_RELAY_URL",
|
|
133
|
+
"hermes.logConnected": "Conectado al relé {url}",
|
|
134
|
+
"hermes.logMsgUncaught": "Excepción no capturada al procesar el mensaje: {message}",
|
|
135
|
+
"hermes.logDisconnected": "Desconectado del relé, reconectando automáticamente…",
|
|
136
|
+
"hermes.logPairCode": "Código de emparejamiento generado: {code}",
|
|
137
|
+
"hermes.logUnhandledType": "Tipo de mensaje no procesado: {type}",
|
|
138
|
+
"hermes.logHandleFailed": "Error al procesar {type}: {message}",
|
|
139
|
+
"hermes.logClaimed": "Vinculado a su cuenta de teléfono. El teléfono se conecta ahora directamente desde Mis computadoras",
|
|
140
|
+
"hermes.logResetIdentity": "Desvinculado de la cuenta; restableciendo identidad y generando un nuevo código de emparejamiento…",
|
|
141
|
+
"hermes.cmdNew": "Nueva sesión",
|
|
142
|
+
"hermes.cmdHelp": "Mostrar ayuda",
|
|
143
|
+
"hermes.newSessionTitle": "Nueva sesión",
|
|
144
|
+
"hermes.helpText": "Comandos admitidos:\n- /new nueva sesión\n- /help mostrar ayuda",
|
|
145
|
+
"hermes.errBusy": "Esta sesión se está generando; espere a que termine o deténgala primero",
|
|
146
|
+
"hermes.errBadWorkspace": "Este directorio no existe o no se puede usar",
|
|
147
|
+
"hermes.logWorkspaceSwitched": "Espacio de trabajo cambiado: {path}",
|
|
148
|
+
"hermes.errWorkspaceMissing": "El espacio de trabajo no existe: {dir}",
|
|
149
|
+
"hermes.errStartFailed": "Error al iniciar: {message}",
|
|
150
|
+
"hermes.msgStarted": "Adaptador de Hermes iniciado (Ctrl+C para salir)",
|
|
151
|
+
"hermes.logAbortSent": "Interrupción enviada (session={session})",
|
|
152
|
+
"hermes.logPromptFailed": "session.prompt falló: {message}",
|
|
153
|
+
"hermes.logTurnError": "Error de turno (session={session}): {message}",
|
|
154
|
+
"hermes.logPairForced": "--pair: solicitud forzada del código de emparejamiento (solo esta ejecución)",
|
|
155
|
+
"hermes.pairingStillClaimed": "Ya vinculado a una cuenta de teléfono: este código solo sirve para reemparejar un nuevo dispositivo en la misma cuenta; el dispositivo actual se conecta directamente desde Mis computadoras",
|
|
156
|
+
"hermes.logPairNoRelay": "No se puede solicitar un código de emparejamiento: no hay URL de relé configurada",
|
|
157
|
+
"hermes.errSpawnHermes": "No se puede iniciar Hermes ({bin}): confirme que está instalado ({err})",
|
|
158
|
+
"hermes.errHermesExit": "hermes salió ({code}): {err}",
|
|
159
|
+
"hermes.logSessionUpdated": "Sesión actualizada (session={session})",
|
|
160
|
+
"hermes.errNoInject": "Inyección de mensaje del teléfono no disponible (sesión no interactiva o proceso no listo)",
|
|
161
|
+
"hermes.pairNoRelay": "No se puede alcanzar el relé (relé inaccesible o websockets ausente)",
|
|
162
|
+
"hermes.pairTimeout": "Tiempo de espera agotado al solicitar el código de emparejamiento (relé sin respuesta)",
|
|
163
|
+
"hermes.errToolPair": "fallo de tunnelbox_pair: {err}",
|
|
164
|
+
"hermes.errToolStatus": "fallo de tunnelbox_status: {err}",
|
|
165
|
+
"hermes.cliUsage": "Uso: /tunnelbox <pair|status>\n pair solicitar e imprimir un código de emparejamiento\n status mostrar estado de relé/enlace/conexión"
|
|
166
|
+
}
|