@theia/core 1.76.0-next.6 → 1.76.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.
Files changed (179) hide show
  1. package/README.md +8 -8
  2. package/i18n/nls.cs.json +187 -49
  3. package/i18n/nls.de.json +187 -49
  4. package/i18n/nls.es.json +187 -49
  5. package/i18n/nls.fr.json +187 -49
  6. package/i18n/nls.hu.json +187 -49
  7. package/i18n/nls.it.json +187 -49
  8. package/i18n/nls.ja.json +187 -49
  9. package/i18n/nls.json +187 -49
  10. package/i18n/nls.ko.json +187 -49
  11. package/i18n/nls.pl.json +187 -49
  12. package/i18n/nls.pt-br.json +187 -49
  13. package/i18n/nls.ru.json +187 -49
  14. package/i18n/nls.tr.json +187 -49
  15. package/i18n/nls.zh-cn.json +187 -49
  16. package/i18n/nls.zh-tw.json +187 -49
  17. package/lib/browser/catalog.json +175 -95
  18. package/lib/browser/dialogs.d.ts +2 -0
  19. package/lib/browser/dialogs.d.ts.map +1 -1
  20. package/lib/browser/dialogs.js +9 -5
  21. package/lib/browser/dialogs.js.map +1 -1
  22. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  23. package/lib/browser/frontend-application-module.js +3 -0
  24. package/lib/browser/frontend-application-module.js.map +1 -1
  25. package/lib/browser/index.d.ts +1 -0
  26. package/lib/browser/index.d.ts.map +1 -1
  27. package/lib/browser/index.js +1 -0
  28. package/lib/browser/index.js.map +1 -1
  29. package/lib/browser/resource-context-key.d.ts +25 -0
  30. package/lib/browser/resource-context-key.d.ts.map +1 -1
  31. package/lib/browser/resource-context-key.js +41 -16
  32. package/lib/browser/resource-context-key.js.map +1 -1
  33. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +7 -5
  34. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -1
  35. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +13 -12
  36. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
  37. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +11 -1
  38. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
  39. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +38 -3
  40. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
  41. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +2 -1
  42. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
  43. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +4 -2
  44. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
  45. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js +123 -2
  46. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js.map +1 -1
  47. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts +12 -4
  48. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts.map +1 -1
  49. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js +2 -2
  50. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js.map +1 -1
  51. package/lib/browser/tree/tree-widget.d.ts +20 -2
  52. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  53. package/lib/browser/tree/tree-widget.js +31 -13
  54. package/lib/browser/tree/tree-widget.js.map +1 -1
  55. package/lib/browser/tree/tree-widget.spec.d.ts +2 -0
  56. package/lib/browser/tree/tree-widget.spec.d.ts.map +1 -0
  57. package/lib/browser/tree/tree-widget.spec.js +192 -0
  58. package/lib/browser/tree/tree-widget.spec.js.map +1 -0
  59. package/lib/browser/view-container.d.ts.map +1 -1
  60. package/lib/browser/view-container.js +2 -2
  61. package/lib/browser/view-container.js.map +1 -1
  62. package/lib/browser/widget-context-key-contribution.d.ts +17 -0
  63. package/lib/browser/widget-context-key-contribution.d.ts.map +1 -0
  64. package/lib/browser/widget-context-key-contribution.js +20 -0
  65. package/lib/browser/widget-context-key-contribution.js.map +1 -0
  66. package/lib/browser/window/browser-window-module.d.ts.map +1 -1
  67. package/lib/browser/window/browser-window-module.js +3 -0
  68. package/lib/browser/window/browser-window-module.js.map +1 -1
  69. package/lib/browser/window/window-launch-args.d.ts +29 -0
  70. package/lib/browser/window/window-launch-args.d.ts.map +1 -0
  71. package/lib/browser/window/window-launch-args.js +39 -0
  72. package/lib/browser/window/window-launch-args.js.map +1 -0
  73. package/lib/browser-only/frontend-only-application-module.d.ts.map +1 -1
  74. package/lib/browser-only/frontend-only-application-module.js +5 -2
  75. package/lib/browser-only/frontend-only-application-module.js.map +1 -1
  76. package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts +3 -1
  77. package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts.map +1 -1
  78. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js +8 -7
  79. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js.map +1 -1
  80. package/lib/common/index.d.ts +2 -0
  81. package/lib/common/index.d.ts.map +1 -1
  82. package/lib/common/index.js +2 -0
  83. package/lib/common/index.js.map +1 -1
  84. package/lib/common/launch-arguments.d.ts +32 -0
  85. package/lib/common/launch-arguments.d.ts.map +1 -0
  86. package/lib/common/launch-arguments.js +44 -0
  87. package/lib/common/launch-arguments.js.map +1 -0
  88. package/lib/common/remote-cli-args-contribution.d.ts +22 -0
  89. package/lib/common/remote-cli-args-contribution.d.ts.map +1 -0
  90. package/lib/common/remote-cli-args-contribution.js +20 -0
  91. package/lib/common/remote-cli-args-contribution.js.map +1 -0
  92. package/lib/electron-browser/messaging/electron-ipc-connection-source.d.ts +6 -3
  93. package/lib/electron-browser/messaging/electron-ipc-connection-source.d.ts.map +1 -1
  94. package/lib/electron-browser/messaging/electron-ipc-connection-source.js +4 -3
  95. package/lib/electron-browser/messaging/electron-ipc-connection-source.js.map +1 -1
  96. package/lib/electron-browser/preload.d.ts.map +1 -1
  97. package/lib/electron-browser/preload.js +3 -1
  98. package/lib/electron-browser/preload.js.map +1 -1
  99. package/lib/electron-browser/window/electron-window-launch-args.d.ts +14 -0
  100. package/lib/electron-browser/window/electron-window-launch-args.d.ts.map +1 -0
  101. package/lib/electron-browser/window/electron-window-launch-args.js +41 -0
  102. package/lib/electron-browser/window/electron-window-launch-args.js.map +1 -0
  103. package/lib/electron-browser/window/electron-window-launch-args.spec.d.ts +2 -0
  104. package/lib/electron-browser/window/electron-window-launch-args.spec.d.ts.map +1 -0
  105. package/lib/electron-browser/window/electron-window-launch-args.spec.js +43 -0
  106. package/lib/electron-browser/window/electron-window-launch-args.spec.js.map +1 -0
  107. package/lib/electron-browser/window/electron-window-module.d.ts.map +1 -1
  108. package/lib/electron-browser/window/electron-window-module.js +7 -0
  109. package/lib/electron-browser/window/electron-window-module.js.map +1 -1
  110. package/lib/electron-common/electron-api.d.ts +10 -0
  111. package/lib/electron-common/electron-api.d.ts.map +1 -1
  112. package/lib/electron-common/electron-api.js.map +1 -1
  113. package/lib/electron-main/electron-api-main.d.ts.map +1 -1
  114. package/lib/electron-main/electron-api-main.js +7 -1
  115. package/lib/electron-main/electron-api-main.js.map +1 -1
  116. package/lib/electron-main/electron-main-application-module.d.ts.map +1 -1
  117. package/lib/electron-main/electron-main-application-module.js +2 -0
  118. package/lib/electron-main/electron-main-application-module.js.map +1 -1
  119. package/lib/electron-main/electron-main-application.d.ts +57 -2
  120. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  121. package/lib/electron-main/electron-main-application.js +68 -8
  122. package/lib/electron-main/electron-main-application.js.map +1 -1
  123. package/lib/electron-main/launch-args-store.d.ts +45 -0
  124. package/lib/electron-main/launch-args-store.d.ts.map +1 -0
  125. package/lib/electron-main/launch-args-store.js +76 -0
  126. package/lib/electron-main/launch-args-store.js.map +1 -0
  127. package/lib/electron-main/launch-args-store.spec.d.ts +2 -0
  128. package/lib/electron-main/launch-args-store.spec.d.ts.map +1 -0
  129. package/lib/electron-main/launch-args-store.spec.js +53 -0
  130. package/lib/electron-main/launch-args-store.spec.js.map +1 -0
  131. package/lib/electron-main/launch-argv-parser.d.ts +19 -0
  132. package/lib/electron-main/launch-argv-parser.d.ts.map +1 -0
  133. package/lib/electron-main/launch-argv-parser.js +71 -0
  134. package/lib/electron-main/launch-argv-parser.js.map +1 -0
  135. package/lib/electron-main/launch-argv-parser.spec.d.ts +2 -0
  136. package/lib/electron-main/launch-argv-parser.spec.d.ts.map +1 -0
  137. package/lib/electron-main/launch-argv-parser.spec.js +62 -0
  138. package/lib/electron-main/launch-argv-parser.spec.js.map +1 -0
  139. package/lib/electron-main/theia-electron-window.d.ts +2 -0
  140. package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
  141. package/lib/electron-main/theia-electron-window.js +12 -0
  142. package/lib/electron-main/theia-electron-window.js.map +1 -1
  143. package/package.json +11 -11
  144. package/src/browser/dialogs.ts +10 -5
  145. package/src/browser/frontend-application-module.ts +5 -1
  146. package/src/browser/index.ts +1 -0
  147. package/src/browser/resource-context-key.ts +61 -16
  148. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +13 -12
  149. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +36 -4
  150. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +150 -3
  151. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +6 -3
  152. package/src/browser/shell/tab-bar-toolbar/tab-toolbar-item.tsx +13 -5
  153. package/src/browser/style/tree.css +7 -0
  154. package/src/browser/tree/tree-widget.spec.tsx +245 -0
  155. package/src/browser/tree/tree-widget.tsx +36 -12
  156. package/src/browser/view-container.ts +3 -3
  157. package/src/browser/widget-context-key-contribution.ts +34 -0
  158. package/src/browser/window/browser-window-module.ts +3 -0
  159. package/src/browser/window/window-launch-args.ts +53 -0
  160. package/src/browser-only/frontend-only-application-module.ts +5 -2
  161. package/src/browser-only/messaging/frontend-only-service-connection-provider.ts +3 -1
  162. package/src/common/i18n/nls.metadata.json +5246 -1106
  163. package/src/common/index.ts +2 -0
  164. package/src/common/launch-arguments.ts +61 -0
  165. package/src/common/remote-cli-args-contribution.ts +39 -0
  166. package/src/electron-browser/messaging/electron-ipc-connection-source.ts +6 -3
  167. package/src/electron-browser/preload.ts +3 -1
  168. package/src/electron-browser/window/electron-window-launch-args.spec.ts +45 -0
  169. package/src/electron-browser/window/electron-window-launch-args.ts +38 -0
  170. package/src/electron-browser/window/electron-window-module.ts +7 -0
  171. package/src/electron-common/electron-api.ts +10 -0
  172. package/src/electron-main/electron-api-main.ts +7 -1
  173. package/src/electron-main/electron-main-application-module.ts +2 -0
  174. package/src/electron-main/electron-main-application.ts +101 -8
  175. package/src/electron-main/launch-args-store.spec.ts +59 -0
  176. package/src/electron-main/launch-args-store.ts +73 -0
  177. package/src/electron-main/launch-argv-parser.spec.ts +70 -0
  178. package/src/electron-main/launch-argv-parser.ts +66 -0
  179. package/src/electron-main/theia-electron-window.ts +9 -0
package/i18n/nls.es.json CHANGED
@@ -72,6 +72,9 @@
72
72
  "title": "Configuración del agente"
73
73
  },
74
74
  "anthropic": {
75
+ "allowEnvApiKey": {
76
+ "description": "Permite que Theia utilice una clave API de Anthropic que se encuentra en el entorno (`ANTHROPIC_API_KEY`). Se te pedirá que lo confirmes una vez antes de que se utilice la clave; vuelve a establecerlo en `false` para revocar el consentimiento."
77
+ },
75
78
  "apiKey": {
76
79
  "description": "Introduzca una clave API de su cuenta oficial de Anthropic. **Nota:** al utilizar esta preferencia, la clave API de Anthropic se almacenará en texto sin cifrar en el equipo que ejecuta Theia. Utilice la variable de entorno `ANTHROPIC_API_KEY` para configurar la clave de forma segura."
77
80
  },
@@ -91,13 +94,16 @@
91
94
  "enableStreaming": {
92
95
  "title": "Indica si se debe utilizar la API de streaming. Por defecto es «true»."
93
96
  },
97
+ "headers": {
98
+ "title": "Encabezados HTTP adicionales enviados con cada solicitud al punto final"
99
+ },
94
100
  "id": {
95
101
  "title": "Identificador único que se utiliza en la interfaz de usuario para identificar el modelo personalizado."
96
102
  },
97
103
  "maxRetries": {
98
104
  "title": "Número máximo de reintentos cuando falla una solicitud. 3 por defecto."
99
105
  },
100
- "mdDescription": "Integra modelos personalizados compatibles con la API de Anthropic. Los atributos obligatorios son `model` y `url`. \n Opcionalmente, puedes \n - especificar un `id` único para identificar el modelo personalizado en la interfaz de usuario. Si no se proporciona ninguno, se utilizará `model` como `id`. \n - proporcionar una `apiKey` para acceder a la API servida en la URL indicada. Utilice `true` para indicar el uso de la clave global de la API de Anthropic. \n - especificar `enableStreaming: false` para indicar que no se utilizará el streaming. \n - especificar `useCaching: false` para indicar que no se utilizará el almacenamiento en caché de las solicitudes. \n - especificar `maxRetries: <número>` para indicar el número máximo de reintentos cuando falla una solicitud. El valor predeterminado es 3. \n Las capacidades de razonamiento y el límite máximo de tokens de salida se derivan de la respuesta del punto final `/v1/models`.",
106
+ "mdDescription": "Integra modelos personalizados compatibles con la API de Anthropic. Los atributos obligatorios son `model` y `url`. \n Opcionalmente, puedes \n - especificar un `id` único para identificar el modelo personalizado en la interfaz de usuario. Si no se proporciona ninguno, se utilizará `model` como `id`. \n - Proporciona una `apiKey` para acceder a la API servida en la URL indicada. Utiliza `true` para indicar el uso de la clave global de la API de Anthropic. \n - Especifica `enableStreaming: false` para indicar que no se utilizará el streaming. \n - Especifica `useCaching: false` para indicar que no se utilizará el almacenamiento en caché de las indicaciones. \n - Especifica `maxRetries: <número>` para indicar el número máximo de reintentos cuando falla una solicitud. El valor predeterminado es 3. \n - Especifica `headers` para enviar encabezados HTTP adicionales con cada solicitud al punto final; por ejemplo, los encabezados requeridos por una pasarela situada delante de la API. \n Las capacidades de razonamiento y el límite máximo de tokens de salida se derivan de la respuesta `/v1/models` del punto final.",
101
107
  "modelId": {
102
108
  "title": "ID del modelo"
103
109
  },
@@ -111,8 +117,16 @@
111
117
  "customProvider": {
112
118
  "label": "{0} (Personalizado)"
113
119
  },
114
- "models": {
115
- "description": "Modelos oficiales de Anthropic que se utilizarán."
120
+ "discovery": {
121
+ "cached": "Mostrando modelos almacenados en caché; la última actualización ha fallado: {0}",
122
+ "consentPrompt": "Se ha encontrado una clave API de Anthropic en el entorno (ANTHROPIC_API_KEY). ¿Permites que Theia la utilice para detectar y llamar a modelos de Anthropic?",
123
+ "consentRequired": "Se ha encontrado una clave de API de Anthropic en el entorno. Confirma su uso para descubrir modelos.",
124
+ "noKey": "No se ha configurado ninguna clave de API de Anthropic. Añade una clave para descubrir modelos.",
125
+ "overridden": "La lista de modelos se configura manualmente. Borra las modificaciones de los modelos para volver a detectar los modelos del proveedor.",
126
+ "useEnvKey": "Tecla de uso"
127
+ },
128
+ "modelOverrides": {
129
+ "description": "Anula los modelos detectados por Anthropic. Cuando está vacío (valor por defecto), los modelos disponibles se detectan a través del proveedor. Establece identificadores de modelo explícitos para utilizar exactamente esos; en ese caso, no se utiliza la detección en absoluto."
116
130
  }
117
131
  },
118
132
  "chat": {
@@ -306,7 +320,8 @@
306
320
  "status": {
307
321
  "canceled": "cancelado",
308
322
  "generating": "generando...",
309
- "starting": "Iniciando..."
323
+ "starting": "Iniciando...",
324
+ "waitingForInput": "a la espera de entrada"
310
325
  }
311
326
  },
312
327
  "deleteChangeSet": "Eliminar conjunto de cambios",
@@ -320,11 +335,14 @@
320
335
  "failedToLoadChats": "No se han podido cargar las sesiones de chat.",
321
336
  "failedToRestoreSession": "No se ha podido restaurar la sesión de chat.",
322
337
  "failedToRetry": "Mensaje de error al reintentar",
338
+ "find": "Buscar en el chat",
339
+ "findHide": "Ocultar «Buscar en el chat»",
323
340
  "focusInput": "Entrada de chat enfocada",
324
341
  "focusResponse": "Respuesta de chat enfocada",
325
342
  "functions": "Funciones",
326
343
  "functionsDescription": "Funciones integradas proporcionadas por las extensiones de{0}",
327
344
  "genericCapabilities": "Capacidades genéricas",
345
+ "manageModels": "Gestionar modelos…",
328
346
  "mcpFunctionsDescription": "Funciones del Protocolo de Contexto de Modelo (MCP) de servidores conectados.",
329
347
  "mermaid-rendering": {
330
348
  "copySource": "Copiar código fuente",
@@ -340,7 +358,6 @@
340
358
  "modelUnavailable": "no disponible",
341
359
  "noChatAgentsAvailable": "No hay agentes de chat disponibles.",
342
360
  "noMatchingCapabilities": "Sin capacidades coincidentes",
343
- "openDiff": "Abrir Diff",
344
361
  "openImage": "Abrir imagen",
345
362
  "openOriginalFile": "Abrir archivo original",
346
363
  "performThisTask": "Realice esta tarea.",
@@ -476,7 +493,6 @@
476
493
  "findMatchingFiles": "Buscar archivos que coincidan con el patrón global «{0}» en el directorio actual.",
477
494
  "findMatchingFilesWithPath": "Buscar archivos que coincidan con el patrón global «{0}» dentro de {1}",
478
495
  "finding": "Búsqueda",
479
- "from": "De",
480
496
  "globPattern": "patrón glob",
481
497
  "grepOptions": {
482
498
  "caseInsensitive": "no distingue entre mayúsculas y minúsculas",
@@ -533,7 +549,6 @@
533
549
  "startingLine": "Línea de salida",
534
550
  "timeout": "Tiempo de espera",
535
551
  "timeoutInMs": "Tiempo de espera: {0} ms",
536
- "to": "A",
537
552
  "todoList": "Todo List",
538
553
  "todoPriority": {
539
554
  "high": "alto",
@@ -646,23 +661,32 @@
646
661
  "signIn": "Iniciar sesión en GitHub Copilot",
647
662
  "signOut": "Cerrar sesión en GitHub Copilot"
648
663
  },
664
+ "discovery": {
665
+ "disabled": "El proveedor de GitHub Copilot está desactivado. Actívalo para descubrir modelos.",
666
+ "overridden": "La lista de modelos se configura manualmente. Borra las modificaciones de los modelos para volver a detectar los modelos de GitHub Copilot.",
667
+ "signedOut": "No has iniciado sesión en GitHub Copilot. Inicia sesión para descubrir los modelos que ofrece."
668
+ },
649
669
  "enabled": {
650
- "mdDescription": "Habilita el proveedor GitHub Copilot. Una vez habilitado, aparecerá una entrada en la barra de estado para la autenticación y se detectarán los modelos disponibles de tu suscripción a Copilot."
670
+ "mdDescription": "Activa el proveedor de GitHub Copilot. Una vez activado, aparecerá una entrada en la barra de estado para la autenticación y se detectarán los modelos disponibles de tu suscripción a Copilot.\n\nLas solicitudes se canalizan a través de la CLI oficial de GitHub Copilot, que se ejecuta como un proceso en segundo plano en el equipo que aloja el backend. Solo se le proporcionan las credenciales de tu inicio de sesión en Copilot y nada más, por lo que no se utiliza ningún token del entorno ni un inicio de sesión existente de la CLI de GitHub."
651
671
  },
652
672
  "enterpriseUrl": {
653
- "mdDescription": "Dominio de GitHub Enterprise para la API de Copilot (por ejemplo, `github.mycompany.com`). Déjelo vacío para GitHub.com."
673
+ "mdDescription": "Dominio de GitHub Enterprise para autenticarse y enviar solicitudes (por ejemplo, `github.mycompany.com`). Déjalo en blanco para GitHub.com."
674
+ },
675
+ "enterpriseUrlChanged": "El dominio de GitHub Copilot ha cambiado. Vuelve a iniciar sesión para que el cambio surta efecto.",
676
+ "executablePath": {
677
+ "mdDescription": "Ubicación del ejecutable de la CLI de GitHub Copilot en el equipo que aloja el backend. Cuando está vacío (valor por defecto), se busca la CLI en la instalación de la aplicación, en la variable `PATH` y en el directorio global de `npm`. Configura este campo cuando la CLI esté instalada en otra ubicación.\n\nLa CLI no se incluye con la aplicación; instálala con `npm install -g @github/copilot`."
654
678
  },
655
679
  "modelOverrides": {
656
680
  "mdDescription": "Anula los modelos de GitHub Copilot detectados automáticamente. Cuando está vacío (valor predeterminado), los modelos disponibles se detectan a partir de tu suscripción a Copilot. Establece ID de modelo explícitos para anular la detección automática."
657
681
  },
682
+ "signInAgain": "GitHub Copilot ahora permite iniciar sesión a través de la CLI de GitHub Copilot. No se ha podido conservar tu sesión anterior, por lo que se ha eliminado; inicia sesión de nuevo para utilizar los modelos de Copilot.",
658
683
  "signOut": {
659
684
  "confirmMessage": "¿Estás seguro de que deseas cerrar sesión en GitHub Copilot?"
660
685
  },
661
686
  "statusBar": {
662
687
  "signedIn": "Iniciado sesión en GitHub Copilot como {0}. Haga clic para cerrar sesión.",
663
688
  "signedOut": "No has iniciado sesión en GitHub Copilot. Haz clic para iniciar sesión."
664
- },
665
- "tokenMigration": "Tu sesión de GitHub Copilot utilizaba un método de autenticación obsoleto y se ha borrado. Inicia sesión de nuevo para acceder a todos los modelos disponibles."
689
+ }
666
690
  },
667
691
  "core": {
668
692
  "agentConfiguration": {
@@ -760,12 +784,19 @@
760
784
  "discardCustomPrompt": {
761
785
  "tooltip": "Descartar personalizaciones"
762
786
  },
787
+ "favoriteModels": {
788
+ "mdDescription": "Muestra los modelos que aparece en el selector de modelos del chat de IA, además de los más recientes de cada proveedor, como identificadores completos (p. ej., `anthropic/claude-opus-5`). Esto sirve para tener a mano un modelo más antiguo o una versión fija. Para añadir un modelo, selecciónalo en la página de su proveedor en la vista «Configuración de IA».",
789
+ "title": "Modelos favoritos"
790
+ },
763
791
  "fileVariable": {
764
792
  "description": "Resuelve el contenido de un archivo.",
765
793
  "uri": {
766
794
  "description": "El URI del archivo solicitado."
767
795
  }
768
796
  },
797
+ "hiddenModels": {
798
+ "mdDescription": "Modelos que el selector de modelos del chat de IA no muestra, aunque lo haría por defecto, como identificadores completos (p. ej., `google/gemini-flash-lite-latest`). Aquí solo aparecen los modelos que no figuran como favoritos, es decir, los más recientes de un proveedor. Desmarca un modelo en la página de su proveedor, en la vista «Configuración de IA», para añadirlo."
799
+ },
769
800
  "languageModelRenderer": {
770
801
  "alias": "[alias] {0}",
771
802
  "purposeTitle": "Objetivo: {0}",
@@ -911,7 +942,6 @@
911
942
  "dotRelativePath": "Referencia breve a la ruta relativa al espacio de trabajo del archivo abierto actualmente («currentRelativeFilePath»)."
912
943
  },
913
944
  "variantSet": {
914
- "templateLabel": "Plantilla",
915
945
  "unavailableVariant": "{0} (no disponible)",
916
946
  "variantCount": "{0} variantes",
917
947
  "variantCountSingular": "1 variante"
@@ -931,14 +961,25 @@
931
961
  }
932
962
  },
933
963
  "google": {
964
+ "allowEnvApiKey": {
965
+ "description": "Permite que Theia utilice una clave API de Google AI (Gemini) que se encuentra en el entorno (`GOOGLE_API_KEY` / `GEMINI_API_KEY`). Se te pedirá que lo confirmes una vez antes de que se utilice la clave; vuelve a establecerlo en `false` para revocar el consentimiento."
966
+ },
934
967
  "apiKey": {
935
968
  "description": "Introduzca una clave API de su cuenta oficial de Google AI (Gemini). **Nota:** al utilizar esta preferencia, la clave API de GOOGLE AI se almacenará en texto sin cifrar en el equipo que ejecuta Theia. Utilice la variable de entorno `GOOGLE_API_KEY` para configurar la clave de forma segura."
936
969
  },
970
+ "discovery": {
971
+ "cached": "Mostrando modelos almacenados en caché; la última actualización ha fallado: {0}",
972
+ "consentPrompt": "Se ha encontrado una clave de la API de IA de Google en el entorno (GOOGLE_API_KEY / GEMINI_API_KEY). ¿Permites que Theia la utilice para detectar y llamar a los modelos de Gemini?",
973
+ "consentRequired": "Se ha encontrado una clave de la API de IA de Google en el entorno. Confirma su uso para descubrir modelos.",
974
+ "noKey": "No se ha configurado ninguna clave de la API de Google AI. Añade una clave para descubrir modelos.",
975
+ "overridden": "La lista de modelos se configura manualmente. Borra las modificaciones de los modelos para volver a detectar los modelos del proveedor.",
976
+ "useEnvKey": "Tecla de uso"
977
+ },
937
978
  "maxRetriesOnErrors": {
938
979
  "description": "Número máximo de reintentos en caso de errores. Si es menor que 1, la lógica de reintento se desactiva."
939
980
  },
940
- "models": {
941
- "description": "Modelos oficiales de Google Gemini que se utilizarán"
981
+ "modelOverrides": {
982
+ "description": "Anula los modelos detectados a partir de Google Gemini. Cuando está vacío (valor por defecto), los modelos disponibles se detectan a partir del proveedor. Establece identificadores de modelo explícitos para utilizar exactamente esos; en ese caso, no se utiliza la detección en absoluto."
942
983
  },
943
984
  "retryDelayOnOtherErrors": {
944
985
  "description": "Retraso en segundos entre reintentos en caso de otros errores (a veces, Google GenAI informa de errores como sintaxis JSON incompleta devuelta por el modelo o error 500 del servidor interno). Al establecer este valor en -1, se evitan los reintentos en estos casos. De lo contrario, el reintento se produce inmediatamente (si se establece en 0) o tras este retraso en segundos (si se establece en un número positivo)."
@@ -1053,6 +1094,7 @@
1053
1094
  "pageTypeLabel": "Página"
1054
1095
  },
1055
1096
  "allowAllMode": {
1097
+ "hideForThisSession": "Ocultar durante esta sesión",
1056
1098
  "stripTooltip": "Las llamadas a herramientas de IA se ejecutan sin confirmación en esta sesión. Actívalas únicamente en entornos en los que confíes.",
1057
1099
  "stripTooltipFooter": "Se configuran mediante --session-preference. Reinicia sin el indicador para restaurar la configuración guardada.",
1058
1100
  "title": "Modo «Permitir todo» de Theia AI"
@@ -1111,7 +1153,6 @@
1111
1153
  "startNewChat": "Mantén los chats breves y centrados. [Inicia un nuevo chat]({0}) para una nueva tarea o [inicia un nuevo chat con un resumen de este]({1})."
1112
1154
  }
1113
1155
  },
1114
- "collapseSession": "Ocultar «{0}»",
1115
1156
  "commandAgent": {
1116
1157
  "commandCallback": {
1117
1158
  "confirmAction": "Entendido.",
@@ -1131,19 +1172,16 @@
1131
1172
  }
1132
1173
  },
1133
1174
  "configurationState": "Problemas de configuración",
1134
- "configureAgent": {
1135
- "header": "Configurar un agente predeterminado"
1136
- },
1137
1175
  "continueAnyway": "Continuar de todos modos",
1138
1176
  "createSkillAgent": {
1139
1177
  "mode": {
1140
1178
  "edit": "Modo predeterminado"
1141
1179
  }
1142
1180
  },
1181
+ "defaultChatAgentSet": "El agente de chat predeterminado es ahora {0}.",
1143
1182
  "enableAI": {
1144
1183
  "mdDescription": "Esta configuración le permite acceder a las últimas capacidades de IA. \n Es importante tener en cuenta que estas funciones pueden generar solicitudes continuas a los modelos de lenguaje (LLM) a los que proporciona acceso. Esto podría incurrir en costes que deberá supervisar de cerca. Al habilitar esta opción, usted reconoce estos riesgos. \n **¡Tenga en cuenta que los ajustes que se indican a continuación en esta sección solo surtirán efecto\n una vez que se haya habilitado el ajuste de la función principal. Después de habilitar la función, debe configurar al menos un proveedor de LLM a continuación. Consulte también [la documentación](https://theia-ide.org/docs/user_ai/)**."
1145
1184
  },
1146
- "expandSession": "Ver más{0}",
1147
1185
  "exploreAgent": {
1148
1186
  "description": "Un asistente de exploración del código fuente que extrae y sintetiza información del código fuente. Informa sobre lo que existe, proporciona fragmentos de código y describe los patrones observados."
1149
1187
  },
@@ -1201,16 +1239,36 @@
1201
1239
  },
1202
1240
  "model-selection-description": "Elija qué modelos de lenguaje grandes (LLM) utiliza cada agente de IA en la [Vista de configuración de IA]({0}).",
1203
1241
  "modelsConfiguration": {
1242
+ "awaitingConsent": "A la espera de consentimiento",
1243
+ "defaultModel": "Uno de los modelos más recientes de este proveedor, que el selector de modelos del chat de IA muestra a menos que esté oculto aquí",
1204
1244
  "description": "Configurar los proveedores de modelos de lenguaje y los modelos disponibles para los agentes.",
1245
+ "discovery": "Descubrimiento de modelos",
1246
+ "fetching": "Cargando…",
1247
+ "filterModels": "Modelos de filtro",
1248
+ "hideModel": "Ocultar este modelo del selector de modelos de la entrada del chat de IA",
1249
+ "modelNotReady": "No está listo",
1205
1250
  "modelSettings": "Configuración del modelo",
1251
+ "noKey": "Sin clave API",
1252
+ "noModels": "Aún no se han encontrado modelos.",
1206
1253
  "noProviders": "No hay ningún proveedor de modelos de lenguaje instalado.",
1207
- "providers": "Proveedores"
1208
- },
1209
- "moreAgentsAvailable": {
1210
- "header": "Hay más agentes disponibles."
1254
+ "providers": "Proveedores",
1255
+ "ready": "Listo",
1256
+ "refresh": "Actualizar la lista de modelos",
1257
+ "refreshUnavailable": "No hay nada que actualizar hasta que el proveedor disponga de una credencial",
1258
+ "released": "Publicado en {0}",
1259
+ "resetShown": "Restablecer los valores predeterminados",
1260
+ "resetShownUnavailable": "Ya están configurados por defecto",
1261
+ "showAllModels": "Mostrar todos los modelos detectados",
1262
+ "showCheckedModels": "Mostrar solo los modelos que aparecen en el selector de modelos de la entrada del chat de IA",
1263
+ "showModel": "Mostrar este modelo en el selector de modelos de la entrada del chat de IA",
1264
+ "shownExplanation": "{0} de {1} que aparece en el selector de modelos de la entrada del chat de IA",
1265
+ "updated": "Actualizado{0}"
1266
+ },
1267
+ "noDefaultAgent": {
1268
+ "header": "Sin agente predeterminado"
1211
1269
  },
1212
- "noRecommendedAgents": "No hay agentes recomendados disponibles.",
1213
1270
  "openAiConfiguration": "Configuración de OpenAI",
1271
+ "openGettingStartedWalkthrough": "Primeros pasos con la IA",
1214
1272
  "orchestrator": {
1215
1273
  "error": {
1216
1274
  "noAgents": "No hay ningún agente de chat disponible para gestionar la solicitud. Compruebe su configuración para ver si hay alguno habilitado."
@@ -1234,8 +1292,7 @@
1234
1292
  "name": "Información de GH PR"
1235
1293
  },
1236
1294
  "localCheckout": {
1237
- "description": "Extrae la solicitud de incorporación de cambios localmente y protege los cambios existentes en el árbol de trabajo.",
1238
- "name": "Finalizar compra"
1295
+ "description": "Extrae la solicitud de incorporación de cambios localmente y protege los cambios existentes en el árbol de trabajo."
1239
1296
  },
1240
1297
  "localValidation": {
1241
1298
  "description": "Ejecuta tareas locales de instalación, compilación, lint, prueba o validación similar para la solicitud de incorporación de cambios.",
@@ -1292,6 +1349,7 @@
1292
1349
  "toolConfirmation": "Anulaciones de confirmación por herramienta: {0}",
1293
1350
  "toolConfirmationGeneric": "Configuración de anulaciones de confirmación por herramienta"
1294
1351
  },
1352
+ "setDefaultChatAgent": "Establecer el agente de chat predeterminado",
1295
1353
  "shellExecutionCapability": {
1296
1354
  "description": "Permite al agente ejecutar comandos de shell arbitrarios en el sistema host. El agente puede entonces delegar la ejecución de scripts que no están disponibles como tareas, consultar información del sistema y realizar operaciones para las que no existe una herramienta específica.",
1297
1355
  "name": "Ejecución de shell"
@@ -1315,9 +1373,6 @@
1315
1373
  "slashCommandsGroupDescription": "Fragmentos de indicaciones que se activan escribiendo /nombre en el chat, disponibles para uno o más agentes.",
1316
1374
  "slashCommandsSectionHeader": "Comandos de barra"
1317
1375
  },
1318
- "toolConfirmationInfo": {
1319
- "header": "Confirmación de la herramienta"
1320
- },
1321
1376
  "toolConfirmationOverrides": {
1322
1377
  "stripTooltip": "Una o varias herramientas de IA se aprueban automáticamente para esta sesión mediante opciones de la línea de comandos.",
1323
1378
  "title": "Anulaciones de la confirmación de la herramienta de IA"
@@ -1380,7 +1435,6 @@
1380
1435
  "filterPlaceholder": "Filtrar variables por nombre o descripción",
1381
1436
  "noMatches": "No hay ninguna variable que coincida con «{0}».",
1382
1437
  "noVariables": "No hay variables disponibles.",
1383
- "openAgent": "Agente de Open {0}",
1384
1438
  "optional": "opcional",
1385
1439
  "pageSubtitle": "Valores a los que puedes hacer referencia con un nombr{0}e en una línea de comandos. Se resuelven e insertan en el momento de la solicitud.",
1386
1440
  "plainGroup": "Variables simples",
@@ -1388,7 +1442,40 @@
1388
1442
  "required": "obligatorio",
1389
1443
  "usedByAgents": "Utilizado por los agentes."
1390
1444
  },
1391
- "waitingForInput": "A la espera de tu entrada"
1445
+ "waitingForInput": "A la espera de tu entrada",
1446
+ "walkthrough": {
1447
+ "aiSupport": {
1448
+ "description": "\n{0}\nIncluye soporte de IA: chatea con agentes especializados sobre tu proyecto, deja que modifiquen el código y ejecuten tareas, completa el código a medida que escribes y obtén ayuda en la terminal.\n\nEstas funciones están desactivadas por defecto, para que puedas activarlas a tu discreción.\n\nUna vez habilitadas, pueden generar solicitudes continuas a los modelos de lenguaje a los que les proporciones acceso. Esto podría suponer unos costes que deberás supervisar de cerca.\n\n[Lee la documentación]({1}\n).\n\n¡Agradecemos tus comentarios, contribuciones y patrocinios! Visita el [proyecto de GitHub]({2}\n) para apoyar el desarrollo en curso. ¡Gracias por formar parte de nuestra comunidad!\n\nTodo esto se basa en Theia AI, el marco para herramientas e IDE impulsados por IA, publicado como versión estable. [Lee la documentación del marco]({3}\n).\n",
1449
+ "title": "Compatibilidad con IA en {0}"
1450
+ },
1451
+ "chooseAgent": {
1452
+ "intro": "Todas las solicitudes de chat se envían a un agente, y uno de ellos responde siempre que no elijas tú mismo a quién.\n\n**Establece tu agente predeterminado:**\n",
1453
+ "outro": "También puedes [seleccionar el agente predeterminado]({0}\n) en la configuración y dirigirte a otro agente para un mensaje concreto haciéndolo comenzar con *@AgentName*.\nLa página [Agentes]({1}\n) los muestra todos.\n",
1454
+ "title": "Elige tu agente predeterminado"
1455
+ },
1456
+ "connectModel": {
1457
+ "description": "Añade una clave API para un proveedor alojado:\n\n- [OpenAI]({0}\n)\n- [Anthropic]({1}\n)\n- [Google]({2}\n)\n\n¿Prefieres mantenerlo local o utilizar otro servicio? Ollama, llamafile y cualquier punto final compatible con OpenAI se pueden configurar en la página [Modelos]({3}\n).\n\nAlgunos agentes traen su propio modelo, como por ejemplo Claude Code, y funcionan sin necesidad de un proveedor.\n",
1458
+ "title": "Conectar un modelo de lenguaje"
1459
+ },
1460
+ "description": "Configura las funciones de IA de {0} y aprende a utilizarlas.",
1461
+ "enableAi": {
1462
+ "description": "No se envía nada a ningún sitio hasta que actives las funciones de IA, y puedes desactivarlas de nuevo en cualquier momento.\n\n[Abre la configuración de IA]({0}\n) y actívalas desde allí.\n",
1463
+ "title": "Activar las funciones de IA"
1464
+ },
1465
+ "firstQuestion": {
1466
+ "description": "[Abre el chat de IA]({0}\n) y pregunta algo sobre tu proyecto.\n\nHay dos cosas que mejoran mucho las respuestas:\n\n- *@AgentName* selecciona el agente para este mensaje, por ejemplo, *@Coder*.\n- *#* añade contexto, por ejemplo, *#file* o *#selectedText*. El botón con forma de clip situado junto al campo de entrada hace lo mismo.\n\nEl chat recuerda tus sesiones, por lo que puedes retomar una conversación más tarde.\n",
1467
+ "title": "Haz tu primera pregunta"
1468
+ },
1469
+ "goFurther": {
1470
+ "description": "El chat es solo el principio. La IA también autocompleta el código a medida que escribes y te ayuda en la terminal con *Ctrl+I*.\n\n- [Indicaciones y habilidades]({0}\n): lee y adapta las instrucciones con las que trabajan los agentes.\n- [Servidores MCP]({1}\n): añade herramientas además de las que incluye por def{3}\n.\n- [Uso de tokens]({2}\n): comprueba qué consumen tus solicitudes.\n- [Cambiar perspectiva]({5}\n) (experimental): el diseño *AI First* desplaza el chat al área principal, con el explorador y el control de código fuente a la derecha.\n\nLa vista «Historial de IA», cuando está disponible, muestra lo que se envió realmente al modelo.\n\nEncontrarás más información en [la documentación]({4}\n) y tus comentarios son siempre bienvenidos.\n",
1471
+ "title": "Más información"
1472
+ },
1473
+ "title": "Primeros pasos con la IA",
1474
+ "toolConfirmation": {
1475
+ "description": "Los agentes actúan en tu espacio de trabajo a través de herramientas: leen archivos, ejecutan comandos de terminal o editan código.\n\nCada vez que se invoca una herramienta, se te pide primero tu confirmación. En la página [Herramientas]({0}\n) puedes cambiar esa configuración predeterminada o autorizar previamente las herramientas en las que confías.\n\nLas funciones de IA permanecen desactivadas por completo mientras un espacio de trabajo no sea de confianza. [Gestiona la confianza del espacio de trabajo]({1}\n) para decidirlo proyecto por proyecto.\n",
1476
+ "title": "Mantén el control sobre lo que hacen los agentes"
1477
+ }
1478
+ }
1392
1479
  },
1393
1480
  "llamaFile": {
1394
1481
  "prefs": {
@@ -1434,6 +1521,7 @@
1434
1521
  "label": "MCP: Obtener la URL de redireccionamiento de OAuth de MCP"
1435
1522
  },
1436
1523
  "info": {
1524
+ "noToolsAvailable": "No hay herramientas disponibles.",
1437
1525
  "oauthRedirectUrl": "URL de redireccionamiento de OAuth de MCP: {0}",
1438
1526
  "serverSignedIn": "Inicio de sesión en el servidor MCP «{0}».",
1439
1527
  "serverSignedOut": "Se ha cerrado la sesión en el servidor MCP «{0}».",
@@ -1609,6 +1697,7 @@
1609
1697
  "serverUrlPlaceholder": "Por ejemplo, https://mcp.example.com",
1610
1698
  "serverUrlRequired": "Se requiere la URL del servidor para servidores remotos."
1611
1699
  },
1700
+ "noServersConfigured": "No hay servidores MCP configurados",
1612
1701
  "oauth": "OAuth",
1613
1702
  "oauthAuthorizationServer": "Servidor de autorización",
1614
1703
  "oauthClientId": "ID de cliente de OAuth",
@@ -1636,6 +1725,9 @@
1636
1725
  "typeRemoteOAuth": "Remoto (OAuth)"
1637
1726
  },
1638
1727
  "openai": {
1728
+ "allowEnvApiKey": {
1729
+ "description": "Permite que Theia utilice una clave API de OpenAI que se encuentra en el entorno (`OPENAI_API_KEY`). Se te pedirá que lo confirmes una vez antes de que se utilice la clave; vuelve a establecerlo en `false` para revocar el consentimiento."
1730
+ },
1639
1731
  "apiKey": {
1640
1732
  "mdDescription": "Introduzca una clave API de su cuenta oficial de OpenAI. **Nota:** al utilizar esta preferencia, la clave API de Open AI se almacenará en texto sin cifrar en el equipo que ejecuta Theia. Utilice la variable de entorno `OPENAI_API_KEY` para configurar la clave de forma segura."
1641
1733
  },
@@ -1664,10 +1756,13 @@
1664
1756
  "enableStreaming": {
1665
1757
  "title": "Indica si se debe utilizar la API de streaming. Por defecto es «true»."
1666
1758
  },
1759
+ "headers": {
1760
+ "title": "Encabezados HTTP adicionales enviados con cada solicitud al punto final"
1761
+ },
1667
1762
  "id": {
1668
1763
  "title": "Identificador único que se utiliza en la interfaz de usuario para identificar el modelo personalizado."
1669
1764
  },
1670
- "mdDescription": "Integra modelos personalizados compatibles con la API de OpenAI, por ejemplo, a través de `vllm`. Los atributos obligatorios son `model` y `url`. \n Opcionalmente, puedes \n - especificar un `id` único para identificar el modelo personalizado en la interfaz de usuario. Si no se proporciona ninguno, se utilizará `model` como `id`. \n - proporcionar una `apiKey` para acceder a la API servida en la URL indicada. Utilice `true` para indicar el uso de la clave global de la API de OpenAI. \n - proporcionar una `apiVersion` para acceder a la API servida en la URL indicada en Azure. Utilice `true` para indicar el uso de la versión global de la API de OpenAI. \n - proporcione un nombre de `deployment` para su implementación de Azure. \n - establezca `developerMessageSettings` en uno de los siguientes valores: `user`, `system`, `developer`, `mergeWithFollowingUserMessage` o `skip` para controlar cómo se incluye el mensaje del desarrollador (donde «user», «system» y «developer» se utilizarán como un rol; «mergeWithFollowingUserMessage» antepondrá el mensaje del sistema al siguiente mensaje de usuario o convertirá el mensaje del sistema en un mensaje de usuario si el siguiente mensaje no es un mensaje de usuario; «skip» simplemente eliminará el mensaje del sistema). El valor predeterminado es «developer». \n - Especifique `supportsStructuredOutput: false` para indicar que no se utilizará la salida estructurada. \n - Especifique `enableStreaming: false` para indicar que no se utilizará la transmisión. \n - Especifique `useResponseApi: true` para utilizar la API de respuesta de OpenAI más reciente en lugar de la API de finalización de chat (requiere un punto final compatible). \n - Especifique `reasoningSupport` para activar el selector de razonamiento del chat. Proporcione un objeto con `supportedLevels` (por ejemplo, `[\"off\", \"low\", \"medium\", \"high\", \"auto\"]`) y un `defaultLevel` opcional. \n Consulte [nuestra documentación](https://theia-ide.org/docs/user_ai/#openai-compatible-models-eg-via-vllm) para obtener más información.",
1765
+ "mdDescription": "Integra modelos personalizados compatibles con la API de OpenAI, por ejemplo, a través de `vllm`. Los atributos obligatorios son `model` y `url`. \n Opcionalmente, puedes \n - especificar un `id` único para identificar el modelo personalizado en la interfaz de usuario. Si no se proporciona ninguno, se utilizará `model` como `id`. \n - Proporciona una `apiKey` para acceder a la API servida en la URL indicada. Utiliza `true` para indicar el uso de la clave global de la API de OpenAI. \n - Proporcione una `apiVersion` para acceder a la API alojada en la URL indicada en Azure. Utilice `true` para indicar el uso de la versión global de la API de OpenAI. \n - Proporcione un nombre de `deployment` para su implementación en Azure. \n - Establece `developerMessageSettings` en uno de los siguientes valores: `user`, `system`, `developer`, `mergeWithFollowingUserMessage` o `skip` para controlar cómo se incluye el mensaje del desarrollador (donde `user`, `system` y `developer` se utilizarán como un rol; `mergeWithFollowingUserMessage` antepondrá el mensaje del sistema al siguiente mensaje de usuario o convertirá el mensaje del sistema en un mensaje de usuario si el siguiente mensaje no es un mensaje de usuario; `skip` simplemente eliminará el mensaje del sistema). El valor por defecto es `developer`. \n - Especifica `supportsStructuredOutput: false` para indicar que no se debe utilizar la salida estructurada. \n - Especifica `enableStreaming: false` para indicar que no se debe utilizar la transmisión en tiempo real. \n - Especifica `useResponseApi: true` para utilizar la nueva API de respuesta de OpenAI en lugar de la API de finalización de chat (requiere un punto final compatible). \n - Especifica `reasoningSupport` para activar el selector de razonamiento del chat. Proporcione un objeto con `supportedLevels` (p. ej., `[\"off\", \"low\", \"medium\", \"high\", \"auto\"]`) y un `defaultLevel` opcional. \n - Especifica `headers` para enviar encabezados HTTP adicionales con cada solicitud al punto final, por ejemplo, los encabezados requeridos por una pasarela situada delante de la API. \n Consulta [nuestra documentación](https://theia-ide.org/docs/user_ai/#openai-compatible-models-eg-via-vllm) para obtener más información.",
1671
1766
  "modelId": {
1672
1767
  "title": "ID del modelo"
1673
1768
  },
@@ -1687,8 +1782,16 @@
1687
1782
  "customProvider": {
1688
1783
  "label": "{0} (Personalizado)"
1689
1784
  },
1690
- "models": {
1691
- "description": "Modelos oficiales de OpenAI que se utilizarán."
1785
+ "discovery": {
1786
+ "cached": "Mostrando modelos almacenados en caché; la última actualización ha fallado: {0}",
1787
+ "consentPrompt": "Se ha encontrado una clave de API de OpenAI en el entorno (OPENAI_API_KEY). ¿Permites que Theia la utilice para detectar y llamar a modelos de OpenAI?",
1788
+ "consentRequired": "Se ha encontrado una clave de API de OpenAI en el entorno. Confirma su uso para descubrir modelos.",
1789
+ "noKey": "No se ha configurado ninguna clave de la API de OpenAI. Añade una clave para descubrir modelos.",
1790
+ "overridden": "La lista de modelos se configura manualmente. Borra las modificaciones de los modelos para volver a detectar los modelos del proveedor.",
1791
+ "useEnvKey": "Tecla de uso"
1792
+ },
1793
+ "modelOverrides": {
1794
+ "description": "Anula los modelos detectados por OpenAI. Cuando está vacío (valor predeterminado), los modelos disponibles se detectan a partir del proveedor. Establece identificadores de modelo explícitos para utilizar exactamente esos; en ese caso, no se utiliza la detección en absoluto."
1692
1795
  },
1693
1796
  "useResponseApi": {
1694
1797
  "mdDescription": "Utiliza la API OpenAI Response más reciente en lugar de la API Chat Completion para los modelos oficiales de OpenAI. Esta configuración solo se aplica a los modelos oficiales de OpenAI; los proveedores personalizados deben configurarla de forma individual."
@@ -1936,6 +2039,26 @@
1936
2039
  "codeReview": {
1937
2040
  "description": "Delega en el agente de revisión de código tras cada implementación. Bloquea los siguientes pasos hasta que se apruebe la revisión."
1938
2041
  },
2042
+ "commit-message": {
2043
+ "agent-disabled-tooltip": "El agente «Mensaje de confirmación» está desactivado. Actívalo en la vista «Configuración de IA».",
2044
+ "cancel-tooltip": "Cancelar la generación del mensaje de confirmación",
2045
+ "empty": "El modelo ha devuelto un mensaje de confirmación vacío.",
2046
+ "failed": "No se ha podido generar el mensaje de confirmación: {0}",
2047
+ "generate-from-staged": "Generar mensaje de confirmación a partir de los cambios preparados",
2048
+ "no-changes": "No hay cambios en fase de preparación a partir de los cuales generar un mensaje de confirmación.",
2049
+ "no-repository": "No hay ningún repositorio de control de código fuente seleccionado.",
2050
+ "replace-prompt": "El campo del mensaje de confirmación no está vacío. ¿Deseas sustituir su contenido por el mensaje generado?",
2051
+ "replace-title": "Sustituir mensaje de confirmación",
2052
+ "staged-tooltip": "Generar un mensaje de confirmación a partir de los cambios preparados"
2053
+ },
2054
+ "commitMessageAgent": {
2055
+ "description": "Genera mensajes de confirmación de Git a partir de los cambios preparados en el repositorio del espacio de trabajo. Se invoca desde el campo de entrada del mensaje de confirmación del SCM mediante el botón «AI Sparkle».",
2056
+ "vars": {
2057
+ "changes": {
2058
+ "description": "El git diff unificado de los cambios preparados a partir del cual se genera el mensaje de confirmación."
2059
+ }
2060
+ }
2061
+ },
1939
2062
  "fixGhTicketCommand": {
1940
2063
  "argumentHint": "<número de ticket>",
1941
2064
  "description": "Analizar un ticket de GitHub e implementar la solución."
@@ -2004,6 +2127,7 @@
2004
2127
  "updateTooltip": "Actualización de {0} a {1}"
2005
2128
  },
2006
2129
  "autoUpdate": {
2130
+ "aiSettings": "Configuración de IA",
2007
2131
  "ask": "Notificar cuando haya una actualización disponible para una skill instalada, un servidor MCP o un complemento de agente.",
2008
2132
  "changeLater": "Puedes modificarlo más adelante en {0}.",
2009
2133
  "configureDefault": "Configura los valores predeterminados en {0}.",
@@ -2040,9 +2164,7 @@
2040
2164
  "oneSkipped": "Componente «{0}» omitido: {1}"
2041
2165
  },
2042
2166
  "dialog": {
2043
- "contains": "Contiene",
2044
2167
  "endorsedBy": "Con el respaldo de",
2045
- "from": "De",
2046
2168
  "install": {
2047
2169
  "title": "Instalar el complemento «{0}»"
2048
2170
  },
@@ -2104,10 +2226,6 @@
2104
2226
  "serverUnknownField": "La configuración del servidor declara el campo «{0}», lo cual no está permitido para su tipo de transporte.",
2105
2227
  "serverUnknownType": "La configuración del servidor declara el tipo de transporte desconocido «{0}».",
2106
2228
  "serverUnsupportedTransport": "El transporte MCP «{0}» no es compatible.",
2107
- "stat": {
2108
- "oneServer": "1 servidor MCP",
2109
- "servers": "{0} Servidores MCP"
2110
- },
2111
2229
  "uninstalled": "Complemento de agente desinstalado «{0}».",
2112
2230
  "unknownManifestField": "Se ignora el campo desconocido «{0}» del archivo «plugin.json».",
2113
2231
  "unlinked": "Complemento de agente desvinculado «{0}».",
@@ -2244,7 +2362,6 @@
2244
2362
  "collaborate": "Colaborar",
2245
2363
  "collaboration": "Colaboración",
2246
2364
  "collaborationWorkspace": "Espacio de trabajo colaborativo",
2247
- "connected": "Conectado",
2248
2365
  "connectedSession": "Conectado a una sesión de colaboración",
2249
2366
  "copiedInvitation": "Código de invitación copiado al portapapeles.",
2250
2367
  "copyAgain": "Copiar de nuevo",
@@ -2471,6 +2588,25 @@
2471
2588
  "userSettingsDetail": "Aplicar a todos los espacios de trabajo",
2472
2589
  "workspaceSettingsDetail": "Aplicar solo al espacio de trabajo actual."
2473
2590
  },
2591
+ "external-api": {
2592
+ "delivery": {
2593
+ "description": "Controla si se ofrece la API HTTP externa y de qué manera.",
2594
+ "off": "No se debe ofrecer la API externa.",
2595
+ "samePort": "Sirve la API externa en el mismo puerto que el backend.",
2596
+ "samePortLabel": "Mismo puerto que el backend",
2597
+ "separatePort": "Sirve la API externa en un puerto dedicado, configurado mediante «externalApi.port».",
2598
+ "separatePortLabel": "Puerto independiente"
2599
+ },
2600
+ "hostname": {
2601
+ "description": "Nombre de host o dirección IP a la que se vincula el servidor externo de la API HTTP. Utiliza «0.0.0.0» para aceptar conexiones remotas. Un nombre como «localhost» se vincula a medida que se resuelve, por lo que es posible que los clientes que utilicen la otra dirección de bucle invertido no puedan acceder al servidor; utiliza «127.0.0.1» o «::1» para fijar una. Solo se utiliza cuando «externalApi.delivery» está configurado en «separatePort»."
2602
+ },
2603
+ "port": {
2604
+ "description": "Puerto en el que se aloja la API HTTP externa. Solo se utiliza cuando «externalApi.delivery» está configurado en «separatePort»."
2605
+ },
2606
+ "token": {
2607
+ "description": "Se requiere un token «Bearer» para acceder a los puntos finales protegidos de la API externa («Authorization: Bearer <token>»). Si se deja en blanco, se accede a la API externa sin verificación."
2608
+ }
2609
+ },
2474
2610
  "external-terminal": {
2475
2611
  "cwd": "Seleccionar el directorio de trabajo actual para el nuevo terminal externo."
2476
2612
  },
@@ -2514,10 +2650,6 @@
2514
2650
  "uploadedOutOf": "Subido {0} de {1}"
2515
2651
  },
2516
2652
  "getting-started": {
2517
- "ai": {
2518
- "header": "¡Ya está disponible la compatibilidad con IA en {0}!",
2519
- "openAIChatView": "¡Abre ahora la vista de chat con IA para aprender cómo empezar!"
2520
- },
2521
2653
  "apiComparator": "{0} Compatibilidad con API",
2522
2654
  "markStepUndone": "Marcar como sin hacer",
2523
2655
  "newExtension": "Creación de una nueva extensión",
@@ -2736,9 +2868,6 @@
2736
2868
  },
2737
2869
  "toolbar": "Barra de herramientas"
2738
2870
  },
2739
- "preview": {
2740
- "openByDefault": "Abrir la vista previa en lugar del editor de forma predeterminada."
2741
- },
2742
2871
  "property-view": {
2743
2872
  "lastModified": "Última modificación",
2744
2873
  "noProperties": "No hay propiedades disponibles.",
@@ -2749,6 +2878,16 @@
2749
2878
  "dev-container": {
2750
2879
  "attach": "Conectar al contenedor en ejecución",
2751
2880
  "attachError": "No se ha podido conectar al contenedor: {0}",
2881
+ "attachScreen": {
2882
+ "errorHeader": "No se ha podido conectar al contenedor",
2883
+ "firstStartNote": "El primer inicio de un contenedor puede tardar uno o dos minutos. Los siguientes inicios son mucho más rápidos.",
2884
+ "locating": "Localizando el contenedor {0}...",
2885
+ "preparing": "Preparando la conexión...",
2886
+ "preparingWorkspace": "Preparando el espacio de trabajo...",
2887
+ "starting": "Iniciando la aplicación dentro del contenedor...",
2888
+ "title": "Conectarse a un contenedor",
2889
+ "titleNamed": "Conectarse a {0}"
2890
+ },
2752
2891
  "attachWarning": "Al conectarse a un contenedor, se ejecutará el código que hay en su interior. Conéctese únicamente a contenedores cuyo origen le inspire confianza.",
2753
2892
  "attachWarningTitle": "Adjuntar al contenedor",
2754
2893
  "attaching": "Conectarse al contenedor",
@@ -2799,7 +2938,6 @@
2799
2938
  "amendHeadCommit": "HEAD Commit",
2800
2939
  "amendLastCommit": "Modificar la última confirmación",
2801
2940
  "changeRepository": "Cambiar repositorio...",
2802
- "copyCommitHash": "Copiar hash de confirmación",
2803
2941
  "dirtyDiff": {
2804
2942
  "close": "Cerrar Cambiar Vista previa"
2805
2943
  },