termux-dev 1.8.2 → 1.9.1
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 +16 -6
- package/assets/banner.svg +1 -1
- package/assets/preview.svg +1 -1
- package/dist/cli/background-ui.js +8 -8
- package/dist/cli/files.js +2 -12
- package/dist/cli/finder.js +10 -2
- package/dist/cli/headless.js +3 -2
- package/dist/cli/index.js +131 -75
- package/dist/cli/keys.js +12 -3
- package/dist/cli/liveblock.js +47 -9
- package/dist/cli/mcp-panel.js +2 -0
- package/dist/cli/picker.js +2 -0
- package/dist/cli/prompt.js +54 -7
- package/dist/cli/provider-manager.js +197 -0
- package/dist/cli/providers.js +0 -5
- package/dist/cli/settings.js +38 -17
- package/dist/cli/typeahead.js +10 -17
- package/dist/cli/ui.js +33 -13
- package/dist/cli/update-screen.js +383 -0
- package/dist/cli/updater.js +119 -145
- package/dist/cli/usage-panel.js +17 -4
- package/dist/cli/width.js +18 -0
- package/dist/core/background.js +14 -0
- package/dist/core/context-stats.js +1 -0
- package/dist/core/cost.js +25 -11
- package/dist/core/custom-providers.js +161 -0
- package/dist/core/images.js +46 -0
- package/dist/core/local-config.js +3 -1
- package/dist/core/locales/de.js +69 -7
- package/dist/core/locales/en.js +69 -7
- package/dist/core/locales/es.js +69 -7
- package/dist/core/locales/fr.js +69 -7
- package/dist/core/locales/ja.js +69 -7
- package/dist/core/locales/pt.js +69 -7
- package/dist/core/locales/ru.js +69 -7
- package/dist/core/locales/uk.js +69 -7
- package/dist/core/locales/zh.js +69 -7
- package/dist/core/loop.js +32 -1
- package/dist/core/prices.js +8 -4
- package/dist/core/session-media.js +115 -0
- package/dist/core/session.js +17 -2
- package/dist/core/title.js +19 -2
- package/dist/core/types.js +1 -1
- package/dist/core/usage.js +41 -4
- package/dist/permissions/guard.js +3 -0
- package/dist/providers/anthropic.js +67 -13
- package/dist/providers/index.js +16 -3
- package/dist/providers/openai.js +99 -41
- package/dist/providers/shared.js +83 -0
- package/dist/tools/fs.js +32 -2
- package/package.json +1 -1
package/dist/core/locales/ja.js
CHANGED
|
@@ -20,25 +20,23 @@ export const ja = {
|
|
|
20
20
|
'conn.classicRestored': '✓ 接続が回復しました。生成を再開します...',
|
|
21
21
|
'stop.connection': '接続をキャンセルしました',
|
|
22
22
|
'stop.stopped': '停止しました',
|
|
23
|
-
'stop.interrupted': '中断しました。メッセージを送信します',
|
|
24
23
|
'stop.classicConnection': '接続をキャンセルしました (Ctrl+C)。',
|
|
25
24
|
'stop.classicStopped': '生成を停止しました (Ctrl+C)。',
|
|
26
|
-
'stop.classicInterrupted': '中断しました:メッセージを送信します。',
|
|
27
25
|
'status.waiting': 'モデルを待機中',
|
|
28
26
|
'status.thinking': '考え中',
|
|
29
27
|
'status.writing': '執筆中',
|
|
30
28
|
'status.running': '実行中',
|
|
31
29
|
'status.reconnecting': '再接続中',
|
|
32
|
-
'status.stop': '
|
|
30
|
+
'status.stop': 'esc で停止',
|
|
33
31
|
'status.thinkingLine': '思考',
|
|
34
32
|
'status.thoughtFor': '{sec} 秒考えました',
|
|
35
33
|
'composer.placeholder': 'タスクを説明するか質問してください…',
|
|
36
34
|
'composer.queued': 'キュー済み',
|
|
37
35
|
'composer.queuedMany': '{n} 件キュー済み',
|
|
38
|
-
'composer.queuedHint': '
|
|
39
|
-
'composer.hint1': 'enter でキュー ·
|
|
36
|
+
'composer.queuedHint': '↓ 編集',
|
|
37
|
+
'composer.hint1': 'enter でキュー · esc で停止',
|
|
40
38
|
'composer.hint2': 'enter でキュー',
|
|
41
|
-
'composer.hint3': 'enter でキュー ·
|
|
39
|
+
'composer.hint3': 'enter でキュー · esc で停止',
|
|
42
40
|
'composer.hint4': 'enter でキュー',
|
|
43
41
|
'summary.toolOne': 'ツール {n} 件',
|
|
44
42
|
'summary.toolMany': 'ツール {n} 件',
|
|
@@ -54,6 +52,7 @@ export const ja = {
|
|
|
54
52
|
'settings.row.layout': 'インターフェース',
|
|
55
53
|
'settings.row.pureBlack': '黒い背景',
|
|
56
54
|
'settings.row.autoApprove': '自動承認 (YOLO)',
|
|
55
|
+
'settings.row.extra': 'Extra(確認なし)',
|
|
57
56
|
'settings.row.maxIterations': '最大ステップ数',
|
|
58
57
|
'settings.row.memory': 'プロジェクトメモリ',
|
|
59
58
|
'settings.row.updates': '更新の確認',
|
|
@@ -63,6 +62,7 @@ export const ja = {
|
|
|
63
62
|
'settings.short.layout': 'UI',
|
|
64
63
|
'settings.short.pureBlack': '黒背景',
|
|
65
64
|
'settings.short.autoApprove': 'YOLO',
|
|
65
|
+
'settings.short.extra': 'Extra',
|
|
66
66
|
'settings.short.maxIterations': '手数',
|
|
67
67
|
'settings.short.memory': 'メモリ',
|
|
68
68
|
'settings.short.updates': '更新',
|
|
@@ -78,12 +78,15 @@ export const ja = {
|
|
|
78
78
|
'settings.hint.layout': 'シンプル:枠付きの入力欄、カード、控えめなツール行。クラシック:従来の ASCII レイアウト。',
|
|
79
79
|
'settings.hint.pureBlack': 'ターミナルの背景を深い OLED ブラック (#0a0a0c) にします。オフなら元の背景のままです。',
|
|
80
80
|
'settings.hint.autoApprove': '通常の許可確認を省略します。危険なコマンドや認証情報ファイルは引き続き確認します。このセッションだけ有効で、次回 devx を起動するとオフに戻ります。',
|
|
81
|
+
'settings.hint.extra': 'どんなコマンドも確認なしで実行します。破壊的なもの(rm -rf、sudo、git push --force)、ダウンロードしたスクリプト、キーや機密の読み取り、新しい MCP サーバーも含みます。サンドボックスはありません。このセッションのみ有効です。',
|
|
81
82
|
'settings.hint.maxIterations': '1 回のリクエストでエージェントが実行できるツールのステップ数(編集、コマンド)です。',
|
|
82
83
|
'settings.hint.memory': '.devx/memory.md のルールを毎回のセッションに読み込みます。',
|
|
83
84
|
'settings.hint.updates': '起動時に GitHub で devx の新バージョンを確認します。/update はどちらでも使えます。',
|
|
84
85
|
'settings.hint.language': 'インターフェースの言語:メッセージ、設定、ヒント。コードとツール名は英語のままです。',
|
|
85
86
|
'settings.hint.about': 'ApvCode 製のターミナル向け AI コーディングエージェント。MIT ライセンス。github.com/apvcode/Termux-Dev',
|
|
86
87
|
'settings.warnYolo': 'オン:エージェントは確認なしにコマンドを実行しファイルを編集します。',
|
|
88
|
+
'settings.warnExtra': '警告:確認は一切行われません。すべて失ってもよい環境でのみ。',
|
|
89
|
+
'settings.extraEnabled': 'Extra がオンです:エージェントは危険なものを含めどんなコマンドも確認なしで実行します。次に devx を起動するとオフに戻ります。',
|
|
87
90
|
'settings.keys.move': '移動',
|
|
88
91
|
'settings.keys.change': '変更',
|
|
89
92
|
'settings.keys.toggle': '切替',
|
|
@@ -219,9 +222,68 @@ export const ja = {
|
|
|
219
222
|
'onboard.language.note': 'あとで /settings から変更できます。',
|
|
220
223
|
'onboard.provider.title': 'プロバイダー',
|
|
221
224
|
'onboard.provider.placeholder': '入力してプロバイダーを探す',
|
|
222
|
-
'onboard.provider.note': '
|
|
225
|
+
'onboard.provider.note': 'モデルを提供するサービスです。一覧にない場合は「プロバイダを追加」で自分のものを追加できます。',
|
|
223
226
|
'onboard.custom': '独自のアドレス',
|
|
224
227
|
'onboard.customDetail': 'OpenAI 互換の任意のアドレス',
|
|
228
|
+
'update.title': 'アップデート',
|
|
229
|
+
'update.titleBusy': '更新中',
|
|
230
|
+
'update.titleDone': '更新しました',
|
|
231
|
+
'update.titleFailed': '更新に失敗しました',
|
|
232
|
+
'update.checking': 'アップデートを確認しています',
|
|
233
|
+
'update.upToDate': 'devx は最新です({version})',
|
|
234
|
+
'update.offline': 'アップデートを確認できませんでした({reason})',
|
|
235
|
+
'update.available': 'devx {version} が公開されました',
|
|
236
|
+
'update.have': '現在のバージョンは {version} です',
|
|
237
|
+
'update.released': '{date} 公開',
|
|
238
|
+
'update.whatsNew': '新機能',
|
|
239
|
+
'update.viaNpm': 'npm でインストール済み:更新は npm install -g termux-dev を実行します。',
|
|
240
|
+
'update.viaGit': 'git クローンからインストール済み:更新は取得・ビルド・リンクを行います。',
|
|
241
|
+
'update.now': '今すぐ更新',
|
|
242
|
+
'update.nowDetail': '{version} をインストールして devx を再起動',
|
|
243
|
+
'update.later': 'あとで',
|
|
244
|
+
'update.laterDetail': '今回はこのバージョンのままにする',
|
|
245
|
+
'update.skip': 'このバージョンをスキップ',
|
|
246
|
+
'update.skipDetail': '{version} について今後は確認しない',
|
|
247
|
+
'update.step.registry': 'レジストリを確認中',
|
|
248
|
+
'update.step.install': 'devx {version} をインストール中',
|
|
249
|
+
'update.step.verify': '新しいバージョンを確認中',
|
|
250
|
+
'update.step.pull': 'GitHub から取得中',
|
|
251
|
+
'update.step.build': 'インストールとビルド中',
|
|
252
|
+
'update.step.link': 'コマンドをリンク中',
|
|
253
|
+
'update.keepOpen': 'devx を開いたままにしてください。少し時間がかかります。',
|
|
254
|
+
'update.installed': 'devx {version} をインストールしました',
|
|
255
|
+
'update.restarting': 'devx を再起動しています…',
|
|
256
|
+
'update.failedStep': '停止した手順:{step}',
|
|
257
|
+
'update.keepsRunning': 'devx は {version} のまま動作します。',
|
|
258
|
+
'update.byHand': '手動で更新するには:',
|
|
259
|
+
'update.notPublished': 'npm にはまだ {version} がありません。数分後にもう一度お試しください。',
|
|
260
|
+
'update.skipped': '了解しました:{version} についてはもう確認しません。',
|
|
261
|
+
'provider.add': 'プロバイダを追加',
|
|
262
|
+
'provider.addDetail': 'OpenAI または Anthropic 互換の任意のアドレス',
|
|
263
|
+
'provider.customTag': 'カスタム',
|
|
264
|
+
'provider.new': '新しいプロバイダ',
|
|
265
|
+
'provider.name.label': 'プロバイダの名前',
|
|
266
|
+
'provider.name.placeholder': 'マイゲートウェイ',
|
|
267
|
+
'provider.name.empty': '名前を入力してください。',
|
|
268
|
+
'provider.name.long': '名前が長すぎます(最大 40 文字)。',
|
|
269
|
+
'provider.name.taken': '同じ名前のプロバイダがすでにあります。',
|
|
270
|
+
'provider.url.note': '/chat/completions または /messages の手前までのアドレス。例: https://api.example.com/v1',
|
|
271
|
+
'provider.url.invalid': 'アドレスではありません。例: https://api.example.com/v1',
|
|
272
|
+
'provider.url.scheme': 'アドレスは http:// または https:// で始めてください。',
|
|
273
|
+
'provider.key.none': 'キーは不要です',
|
|
274
|
+
'provider.key.noneDetail': 'このコンピュータまたはネットワーク上のサーバー',
|
|
275
|
+
'provider.key.enter': 'キーを入力',
|
|
276
|
+
'provider.menu.use': 'このプロバイダを使う',
|
|
277
|
+
'provider.menu.rename': '名前を変更',
|
|
278
|
+
'provider.menu.url': 'アドレスを変更',
|
|
279
|
+
'provider.menu.key': 'キーを変更',
|
|
280
|
+
'provider.menu.delete': '削除',
|
|
281
|
+
'provider.menu.deleteDetail': 'キーと一緒に削除します',
|
|
282
|
+
'provider.delete.question': 'プロバイダ {name} とそのキーを削除しますか?',
|
|
283
|
+
'provider.delete.active': '使用中のプロバイダです。別のものを選ぶまで引き続き動作します。',
|
|
284
|
+
'provider.saved': 'プロバイダ {name} を保存しました',
|
|
285
|
+
'provider.updated': 'プロバイダ {name} を更新しました',
|
|
286
|
+
'provider.deleted': 'プロバイダ {name} を削除しました',
|
|
225
287
|
'onboard.baseUrl.title': 'アドレス',
|
|
226
288
|
'onboard.baseUrl.label': 'API のベース URL',
|
|
227
289
|
'onboard.baseUrl.placeholder': 'https://api.example.com/v1',
|
package/dist/core/locales/pt.js
CHANGED
|
@@ -20,25 +20,23 @@ export const pt = {
|
|
|
20
20
|
'conn.classicRestored': '✓ Conexão restabelecida! Retomando a geração...',
|
|
21
21
|
'stop.connection': 'conexão cancelada',
|
|
22
22
|
'stop.stopped': 'interrompido',
|
|
23
|
-
'stop.interrupted': 'interrompido, enviando sua mensagem',
|
|
24
23
|
'stop.classicConnection': 'Conexão cancelada (Ctrl+C).',
|
|
25
24
|
'stop.classicStopped': 'Geração interrompida (Ctrl+C).',
|
|
26
|
-
'stop.classicInterrupted': 'Interrompido: enviando sua mensagem.',
|
|
27
25
|
'status.waiting': 'Aguardando o modelo',
|
|
28
26
|
'status.thinking': 'Pensando',
|
|
29
27
|
'status.writing': 'Escrevendo',
|
|
30
28
|
'status.running': 'Executando',
|
|
31
29
|
'status.reconnecting': 'Reconectando',
|
|
32
|
-
'status.stop': '
|
|
30
|
+
'status.stop': 'esc para parar',
|
|
33
31
|
'status.thinkingLine': 'pensando',
|
|
34
32
|
'status.thoughtFor': 'pensou {sec} s',
|
|
35
33
|
'composer.placeholder': 'Descreva uma tarefa ou faça uma pergunta…',
|
|
36
34
|
'composer.queued': 'na fila',
|
|
37
35
|
'composer.queuedMany': '{n} na fila',
|
|
38
|
-
'composer.queuedHint': '
|
|
39
|
-
'composer.hint1': 'enter enfileira ·
|
|
36
|
+
'composer.queuedHint': '↓ editar',
|
|
37
|
+
'composer.hint1': 'enter enfileira · esc para',
|
|
40
38
|
'composer.hint2': 'enter enfileira',
|
|
41
|
-
'composer.hint3': 'enter enfileira ·
|
|
39
|
+
'composer.hint3': 'enter enfileira · esc para',
|
|
42
40
|
'composer.hint4': 'enter enfileira',
|
|
43
41
|
'summary.toolOne': '{n} ferramenta',
|
|
44
42
|
'summary.toolMany': '{n} ferramentas',
|
|
@@ -54,6 +52,7 @@ export const pt = {
|
|
|
54
52
|
'settings.row.layout': 'Interface',
|
|
55
53
|
'settings.row.pureBlack': 'Fundo preto',
|
|
56
54
|
'settings.row.autoApprove': 'Autoaprovar (YOLO)',
|
|
55
|
+
'settings.row.extra': 'Extra (sem perguntar)',
|
|
57
56
|
'settings.row.maxIterations': 'Máx. de passos',
|
|
58
57
|
'settings.row.memory': 'Memória do projeto',
|
|
59
58
|
'settings.row.updates': 'Buscar atualizações',
|
|
@@ -63,6 +62,7 @@ export const pt = {
|
|
|
63
62
|
'settings.short.layout': 'Interface',
|
|
64
63
|
'settings.short.pureBlack': 'Fundo preto',
|
|
65
64
|
'settings.short.autoApprove': 'YOLO',
|
|
65
|
+
'settings.short.extra': 'Extra',
|
|
66
66
|
'settings.short.maxIterations': 'Passos',
|
|
67
67
|
'settings.short.memory': 'Memória',
|
|
68
68
|
'settings.short.updates': 'Atualiz.',
|
|
@@ -78,12 +78,15 @@ export const pt = {
|
|
|
78
78
|
'settings.hint.layout': 'Limpa: entrada com moldura, cartões e linhas de ferramentas discretas. Clássica: o layout ASCII original.',
|
|
79
79
|
'settings.hint.pureBlack': 'Deixa o fundo do terminal em preto OLED profundo (#0a0a0c). Desligado mantém o seu fundo.',
|
|
80
80
|
'settings.hint.autoApprove': 'Pula as permissões de rotina. Comandos perigosos e arquivos de credenciais continuam perguntando. Vale só para esta sessão: na próxima vez que o devx iniciar, volta a ficar desligado.',
|
|
81
|
+
'settings.hint.extra': 'Executa QUALQUER comando sem perguntar: também os destrutivos (rm -rf, sudo, git push --force), scripts baixados, leitura de chaves e segredos e novos servidores MCP. Aqui não há sandbox. Vale só para esta sessão.',
|
|
81
82
|
'settings.hint.maxIterations': 'Quantos passos com ferramentas (edições, comandos) o agente pode dar por pedido.',
|
|
82
83
|
'settings.hint.memory': 'Carrega as regras de .devx/memory.md em cada sessão.',
|
|
83
84
|
'settings.hint.updates': 'Procura uma nova versão do devx no GitHub ao iniciar. O /update funciona de qualquer forma.',
|
|
84
85
|
'settings.hint.language': 'Idioma da interface: mensagens, configurações e dicas. Código e nomes de ferramentas continuam em inglês.',
|
|
85
86
|
'settings.hint.about': 'Agente de programação com IA para o terminal, da ApvCode. Licença MIT. github.com/apvcode/Termux-Dev',
|
|
86
87
|
'settings.warnYolo': 'Ligado: o agente executa comandos e edita arquivos sem perguntar.',
|
|
88
|
+
'settings.warnExtra': 'Atenção: nada é perguntado. Só onde puder perder tudo.',
|
|
89
|
+
'settings.extraEnabled': 'Extra está ligado: o agente executa qualquer comando sem perguntar, inclusive os perigosos. Ele volta a ficar desligado na próxima vez que o devx iniciar.',
|
|
87
90
|
'settings.keys.move': 'mover',
|
|
88
91
|
'settings.keys.change': 'alterar',
|
|
89
92
|
'settings.keys.toggle': 'alternar',
|
|
@@ -219,9 +222,68 @@ export const pt = {
|
|
|
219
222
|
'onboard.language.note': 'Você pode mudar depois em /settings.',
|
|
220
223
|
'onboard.provider.title': 'provedor',
|
|
221
224
|
'onboard.provider.placeholder': 'digite para encontrar um provedor',
|
|
222
|
-
'onboard.provider.note': 'O serviço que fornece os modelos. Não está na lista?
|
|
225
|
+
'onboard.provider.note': 'O serviço que fornece os modelos. Não está na lista? Adicione o seu em «Adicionar provedor».',
|
|
223
226
|
'onboard.custom': 'Endereço próprio',
|
|
224
227
|
'onboard.customDetail': 'Qualquer endereço compatível com OpenAI',
|
|
228
|
+
'update.title': 'atualização',
|
|
229
|
+
'update.titleBusy': 'atualizando',
|
|
230
|
+
'update.titleDone': 'atualizado',
|
|
231
|
+
'update.titleFailed': 'a atualização falhou',
|
|
232
|
+
'update.checking': 'Procurando atualizações',
|
|
233
|
+
'update.upToDate': 'o devx está atualizado ({version})',
|
|
234
|
+
'update.offline': 'Não foi possível procurar atualizações ({reason})',
|
|
235
|
+
'update.available': 'O devx {version} saiu',
|
|
236
|
+
'update.have': 'Você tem {version}',
|
|
237
|
+
'update.released': 'lançada em {date}',
|
|
238
|
+
'update.whatsNew': 'Novidades',
|
|
239
|
+
'update.viaNpm': 'Instalado com npm: a atualização executa npm install -g termux-dev.',
|
|
240
|
+
'update.viaGit': 'Instalado de um clone git: a atualização baixa, compila e vincula.',
|
|
241
|
+
'update.now': 'Atualizar agora',
|
|
242
|
+
'update.nowDetail': 'Instalar {version} e reiniciar o devx',
|
|
243
|
+
'update.later': 'Mais tarde',
|
|
244
|
+
'update.laterDetail': 'Manter esta versão por enquanto',
|
|
245
|
+
'update.skip': 'Ignorar esta versão',
|
|
246
|
+
'update.skipDetail': 'Não perguntar mais sobre {version}',
|
|
247
|
+
'update.step.registry': 'Verificando o registro',
|
|
248
|
+
'update.step.install': 'Instalando o devx {version}',
|
|
249
|
+
'update.step.verify': 'Verificando a nova versão',
|
|
250
|
+
'update.step.pull': 'Baixando do GitHub',
|
|
251
|
+
'update.step.build': 'Instalando e compilando',
|
|
252
|
+
'update.step.link': 'Vinculando o comando',
|
|
253
|
+
'update.keepOpen': 'Mantenha o devx aberto, leva um instante.',
|
|
254
|
+
'update.installed': 'o devx {version} está instalado',
|
|
255
|
+
'update.restarting': 'Reiniciando o devx…',
|
|
256
|
+
'update.failedStep': 'Parou em: {step}',
|
|
257
|
+
'update.keepsRunning': 'o devx continua na versão {version}.',
|
|
258
|
+
'update.byHand': 'Para atualizar manualmente:',
|
|
259
|
+
'update.notPublished': 'O npm ainda não tem {version}. Tente de novo em alguns minutos.',
|
|
260
|
+
'update.skipped': 'Entendido: sem mais perguntas sobre {version}.',
|
|
261
|
+
'provider.add': 'Adicionar provedor',
|
|
262
|
+
'provider.addDetail': 'Qualquer endereço compatível com OpenAI ou Anthropic',
|
|
263
|
+
'provider.customTag': 'próprio',
|
|
264
|
+
'provider.new': 'novo provedor',
|
|
265
|
+
'provider.name.label': 'Nome do provedor',
|
|
266
|
+
'provider.name.placeholder': 'Meu gateway',
|
|
267
|
+
'provider.name.empty': 'Digite um nome.',
|
|
268
|
+
'provider.name.long': 'O nome é longo demais (no máximo 40 caracteres).',
|
|
269
|
+
'provider.name.taken': 'Já existe um provedor com esse nome.',
|
|
270
|
+
'provider.url.note': 'O endereço até /chat/completions ou /messages, por exemplo https://api.example.com/v1.',
|
|
271
|
+
'provider.url.invalid': 'Isso não é um endereço. Exemplo: https://api.example.com/v1',
|
|
272
|
+
'provider.url.scheme': 'O endereço deve começar com http:// ou https://.',
|
|
273
|
+
'provider.key.none': 'Não precisa de chave',
|
|
274
|
+
'provider.key.noneDetail': 'Um servidor neste computador ou nesta rede',
|
|
275
|
+
'provider.key.enter': 'Digitar uma chave',
|
|
276
|
+
'provider.menu.use': 'Usar este provedor',
|
|
277
|
+
'provider.menu.rename': 'Mudar o nome',
|
|
278
|
+
'provider.menu.url': 'Mudar o endereço',
|
|
279
|
+
'provider.menu.key': 'Mudar a chave',
|
|
280
|
+
'provider.menu.delete': 'Excluir',
|
|
281
|
+
'provider.menu.deleteDetail': 'Remove-o junto com a chave',
|
|
282
|
+
'provider.delete.question': 'Excluir o provedor {name} e a chave dele?',
|
|
283
|
+
'provider.delete.active': 'É o provedor em uso: continua funcionando até você escolher outro.',
|
|
284
|
+
'provider.saved': 'Provedor {name} salvo',
|
|
285
|
+
'provider.updated': 'Provedor {name} atualizado',
|
|
286
|
+
'provider.deleted': 'Provedor {name} excluído',
|
|
225
287
|
'onboard.baseUrl.title': 'endereço',
|
|
226
288
|
'onboard.baseUrl.label': 'URL base da API',
|
|
227
289
|
'onboard.baseUrl.placeholder': 'https://api.example.com/v1',
|
package/dist/core/locales/ru.js
CHANGED
|
@@ -20,25 +20,23 @@ export const ru = {
|
|
|
20
20
|
'conn.classicRestored': '✓ Соединение восстановлено! Возобновляем генерацию...',
|
|
21
21
|
'stop.connection': 'подключение отменено',
|
|
22
22
|
'stop.stopped': 'остановлено',
|
|
23
|
-
'stop.interrupted': 'прервано, отправляю ваше сообщение',
|
|
24
23
|
'stop.classicConnection': 'Подключение отменено (Ctrl+C).',
|
|
25
24
|
'stop.classicStopped': 'Ответ остановлен (Ctrl+C).',
|
|
26
|
-
'stop.classicInterrupted': 'Прервано: отправляю ваше сообщение.',
|
|
27
25
|
'status.waiting': 'Ожидание модели',
|
|
28
26
|
'status.thinking': 'Думает',
|
|
29
27
|
'status.writing': 'Пишет',
|
|
30
28
|
'status.running': 'Выполняется',
|
|
31
29
|
'status.reconnecting': 'Переподключение',
|
|
32
|
-
'status.stop': '
|
|
30
|
+
'status.stop': 'esc — стоп',
|
|
33
31
|
'status.thinkingLine': 'размышление',
|
|
34
32
|
'status.thoughtFor': 'думал {sec} с',
|
|
35
33
|
'composer.placeholder': 'Опишите задачу или задайте вопрос…',
|
|
36
34
|
'composer.queued': 'в очереди',
|
|
37
35
|
'composer.queuedMany': 'в очереди: {n}',
|
|
38
|
-
'composer.queuedHint': '
|
|
39
|
-
'composer.hint1': 'enter — в очередь ·
|
|
36
|
+
'composer.queuedHint': '↓ править',
|
|
37
|
+
'composer.hint1': 'enter — в очередь · esc — стоп',
|
|
40
38
|
'composer.hint2': 'enter — в очередь',
|
|
41
|
-
'composer.hint3': 'enter — в очередь ·
|
|
39
|
+
'composer.hint3': 'enter — в очередь · esc — стоп',
|
|
42
40
|
'composer.hint4': 'enter — в очередь',
|
|
43
41
|
'summary.toolOne': 'инструментов: {n}',
|
|
44
42
|
'summary.toolMany': 'инструментов: {n}',
|
|
@@ -54,6 +52,7 @@ export const ru = {
|
|
|
54
52
|
'settings.row.layout': 'Интерфейс',
|
|
55
53
|
'settings.row.pureBlack': 'Чёрный фон',
|
|
56
54
|
'settings.row.autoApprove': 'Автоодобрение (YOLO)',
|
|
55
|
+
'settings.row.extra': 'Extra (без вопросов)',
|
|
57
56
|
'settings.row.maxIterations': 'Макс. шагов',
|
|
58
57
|
'settings.row.memory': 'Память проекта',
|
|
59
58
|
'settings.row.updates': 'Проверка обновлений',
|
|
@@ -63,6 +62,7 @@ export const ru = {
|
|
|
63
62
|
'settings.short.layout': 'Интерфейс',
|
|
64
63
|
'settings.short.pureBlack': 'Чёрный фон',
|
|
65
64
|
'settings.short.autoApprove': 'YOLO',
|
|
65
|
+
'settings.short.extra': 'Extra',
|
|
66
66
|
'settings.short.maxIterations': 'Шагов',
|
|
67
67
|
'settings.short.memory': 'Память',
|
|
68
68
|
'settings.short.updates': 'Обновл.',
|
|
@@ -78,12 +78,15 @@ export const ru = {
|
|
|
78
78
|
'settings.hint.layout': 'Чистый: рамка у ввода, карточки и спокойные строки инструментов. Классический: прежний ASCII-вид.',
|
|
79
79
|
'settings.hint.pureBlack': 'Делает фон терминала глубоким чёрным для OLED (#0a0a0c). Выключено — остаётся ваш фон.',
|
|
80
80
|
'settings.hint.autoApprove': 'Пропускает обычные запросы разрешений. Опасные команды и файлы с ключами всё равно спрашивают. Действует только в этой сессии: при следующем запуске devx выключено.',
|
|
81
|
+
'settings.hint.extra': 'Выполняет ЛЮБЫЕ команды без вопросов: и разрушительные (rm -rf, sudo, git push --force), и скачанные скрипты, и чтение ключей и секретов, и новые MCP-серверы. Никакой песочницы нет. Действует только в этой сессии.',
|
|
81
82
|
'settings.hint.maxIterations': 'Сколько шагов с инструментами (правки файлов, команды) агент может сделать на один запрос.',
|
|
82
83
|
'settings.hint.memory': 'Загружает правила из .devx/memory.md в каждую сессию.',
|
|
83
84
|
'settings.hint.updates': 'При запуске ищет новую версию devx на GitHub. Команда /update работает в любом случае.',
|
|
84
85
|
'settings.hint.language': 'Язык интерфейса: сообщения, настройки и подсказки. Код и названия инструментов остаются английскими.',
|
|
85
86
|
'settings.hint.about': 'Терминальный ИИ-агент для программирования от ApvCode. Лицензия MIT. github.com/apvcode/Termux-Dev',
|
|
86
87
|
'settings.warnYolo': 'Включено: агент выполняет команды и правит файлы без вопросов.',
|
|
88
|
+
'settings.warnExtra': 'Внимание: ничего не спрашивается. Только где не жалко всё.',
|
|
89
|
+
'settings.extraEnabled': 'Extra включён: агент выполняет любые команды без вопросов, в том числе опасные. При следующем запуске devx он снова выключен.',
|
|
87
90
|
'settings.keys.move': 'выбор',
|
|
88
91
|
'settings.keys.change': 'изменить',
|
|
89
92
|
'settings.keys.toggle': 'переключить',
|
|
@@ -219,9 +222,68 @@ export const ru = {
|
|
|
219
222
|
'onboard.language.note': 'Позже его можно сменить в /settings.',
|
|
220
223
|
'onboard.provider.title': 'провайдер',
|
|
221
224
|
'onboard.provider.placeholder': 'начни вводить название',
|
|
222
|
-
'onboard.provider.note': 'Сервис, который даёт модели. Нет в списке?
|
|
225
|
+
'onboard.provider.note': 'Сервис, который даёт модели. Нет в списке? Добавьте свой через «Добавить провайдера».',
|
|
223
226
|
'onboard.custom': 'Свой адрес',
|
|
224
227
|
'onboard.customDetail': 'Любой адрес, совместимый с OpenAI',
|
|
228
|
+
'update.title': 'обновление',
|
|
229
|
+
'update.titleBusy': 'обновляю',
|
|
230
|
+
'update.titleDone': 'обновлено',
|
|
231
|
+
'update.titleFailed': 'обновление не удалось',
|
|
232
|
+
'update.checking': 'Проверяю обновления',
|
|
233
|
+
'update.upToDate': 'devx последней версии ({version})',
|
|
234
|
+
'update.offline': 'Не удалось проверить обновления ({reason})',
|
|
235
|
+
'update.available': 'Вышел devx {version}',
|
|
236
|
+
'update.have': 'У вас {version}',
|
|
237
|
+
'update.released': 'выпущена {date}',
|
|
238
|
+
'update.whatsNew': 'Что нового',
|
|
239
|
+
'update.viaNpm': 'Установлен через npm: обновление выполнит npm install -g termux-dev.',
|
|
240
|
+
'update.viaGit': 'Установлен из git-клона: обновление подтянет, соберёт и подключит его.',
|
|
241
|
+
'update.now': 'Обновить сейчас',
|
|
242
|
+
'update.nowDetail': 'Установить {version} и перезапустить devx',
|
|
243
|
+
'update.later': 'Позже',
|
|
244
|
+
'update.laterDetail': 'Пока оставить эту версию',
|
|
245
|
+
'update.skip': 'Пропустить эту версию',
|
|
246
|
+
'update.skipDetail': 'Больше не спрашивать про {version}',
|
|
247
|
+
'update.step.registry': 'Проверяю реестр',
|
|
248
|
+
'update.step.install': 'Устанавливаю devx {version}',
|
|
249
|
+
'update.step.verify': 'Проверяю новую версию',
|
|
250
|
+
'update.step.pull': 'Забираю с GitHub',
|
|
251
|
+
'update.step.build': 'Устанавливаю и собираю',
|
|
252
|
+
'update.step.link': 'Подключаю команду',
|
|
253
|
+
'update.keepOpen': 'Не закрывайте devx, это займёт немного времени.',
|
|
254
|
+
'update.installed': 'devx {version} установлен',
|
|
255
|
+
'update.restarting': 'Перезапускаю devx…',
|
|
256
|
+
'update.failedStep': 'Остановилось на шаге: {step}',
|
|
257
|
+
'update.keepsRunning': 'devx продолжает работать на {version}.',
|
|
258
|
+
'update.byHand': 'Чтобы обновить вручную:',
|
|
259
|
+
'update.notPublished': 'В npm ещё нет {version}. Попробуйте через пару минут.',
|
|
260
|
+
'update.skipped': 'Понятно: про {version} больше не спрашиваю.',
|
|
261
|
+
'provider.add': 'Добавить провайдера',
|
|
262
|
+
'provider.addDetail': 'Любой адрес, совместимый с OpenAI или Anthropic',
|
|
263
|
+
'provider.customTag': 'свой',
|
|
264
|
+
'provider.new': 'новый провайдер',
|
|
265
|
+
'provider.name.label': 'Название провайдера',
|
|
266
|
+
'provider.name.placeholder': 'Мой шлюз',
|
|
267
|
+
'provider.name.empty': 'Введите название.',
|
|
268
|
+
'provider.name.long': 'Название слишком длинное (не больше 40 символов).',
|
|
269
|
+
'provider.name.taken': 'Провайдер с таким названием уже есть.',
|
|
270
|
+
'provider.url.note': 'Адрес до /chat/completions или /messages, например https://api.example.com/v1.',
|
|
271
|
+
'provider.url.invalid': 'Это не адрес. Пример: https://api.example.com/v1',
|
|
272
|
+
'provider.url.scheme': 'Адрес должен начинаться с http:// или https://.',
|
|
273
|
+
'provider.key.none': 'Ключ не нужен',
|
|
274
|
+
'provider.key.noneDetail': 'Сервер на этом компьютере или в этой сети',
|
|
275
|
+
'provider.key.enter': 'Ввести ключ',
|
|
276
|
+
'provider.menu.use': 'Использовать этого провайдера',
|
|
277
|
+
'provider.menu.rename': 'Изменить название',
|
|
278
|
+
'provider.menu.url': 'Изменить адрес',
|
|
279
|
+
'provider.menu.key': 'Изменить ключ',
|
|
280
|
+
'provider.menu.delete': 'Удалить',
|
|
281
|
+
'provider.menu.deleteDetail': 'Удалит провайдера и его ключ',
|
|
282
|
+
'provider.delete.question': 'Удалить провайдера {name} и его ключ?',
|
|
283
|
+
'provider.delete.active': 'Это текущий провайдер: он продолжит работать, пока вы не выберете другой.',
|
|
284
|
+
'provider.saved': 'Провайдер {name} сохранён',
|
|
285
|
+
'provider.updated': 'Провайдер {name} обновлён',
|
|
286
|
+
'provider.deleted': 'Провайдер {name} удалён',
|
|
225
287
|
'onboard.baseUrl.title': 'адрес',
|
|
226
288
|
'onboard.baseUrl.label': 'Базовый URL API',
|
|
227
289
|
'onboard.baseUrl.placeholder': 'https://api.example.com/v1',
|
package/dist/core/locales/uk.js
CHANGED
|
@@ -20,25 +20,23 @@ export const uk = {
|
|
|
20
20
|
'conn.classicRestored': '✓ З’єднання відновлено! Продовжуємо генерацію...',
|
|
21
21
|
'stop.connection': 'підключення скасовано',
|
|
22
22
|
'stop.stopped': 'зупинено',
|
|
23
|
-
'stop.interrupted': 'перервано, надсилаю ваше повідомлення',
|
|
24
23
|
'stop.classicConnection': 'Підключення скасовано (Ctrl+C).',
|
|
25
24
|
'stop.classicStopped': 'Відповідь зупинено (Ctrl+C).',
|
|
26
|
-
'stop.classicInterrupted': 'Перервано: надсилаю ваше повідомлення.',
|
|
27
25
|
'status.waiting': 'Очікування моделі',
|
|
28
26
|
'status.thinking': 'Думає',
|
|
29
27
|
'status.writing': 'Пише',
|
|
30
28
|
'status.running': 'Виконується',
|
|
31
29
|
'status.reconnecting': 'Перепідключення',
|
|
32
|
-
'status.stop': '
|
|
30
|
+
'status.stop': 'esc — стоп',
|
|
33
31
|
'status.thinkingLine': 'роздуми',
|
|
34
32
|
'status.thoughtFor': 'думав {sec} с',
|
|
35
33
|
'composer.placeholder': 'Опишіть завдання або поставте питання…',
|
|
36
34
|
'composer.queued': 'у черзі',
|
|
37
35
|
'composer.queuedMany': 'у черзі: {n}',
|
|
38
|
-
'composer.queuedHint': '
|
|
39
|
-
'composer.hint1': 'enter — у чергу ·
|
|
36
|
+
'composer.queuedHint': '↓ редагувати',
|
|
37
|
+
'composer.hint1': 'enter — у чергу · esc — стоп',
|
|
40
38
|
'composer.hint2': 'enter — у чергу',
|
|
41
|
-
'composer.hint3': 'enter — у чергу ·
|
|
39
|
+
'composer.hint3': 'enter — у чергу · esc — стоп',
|
|
42
40
|
'composer.hint4': 'enter — у чергу',
|
|
43
41
|
'summary.toolOne': 'інструментів: {n}',
|
|
44
42
|
'summary.toolMany': 'інструментів: {n}',
|
|
@@ -54,6 +52,7 @@ export const uk = {
|
|
|
54
52
|
'settings.row.layout': 'Інтерфейс',
|
|
55
53
|
'settings.row.pureBlack': 'Чорний фон',
|
|
56
54
|
'settings.row.autoApprove': 'Автосхвалення (YOLO)',
|
|
55
|
+
'settings.row.extra': 'Extra (без питань)',
|
|
57
56
|
'settings.row.maxIterations': 'Макс. кроків',
|
|
58
57
|
'settings.row.memory': 'Пам’ять проєкту',
|
|
59
58
|
'settings.row.updates': 'Перевірка оновлень',
|
|
@@ -63,6 +62,7 @@ export const uk = {
|
|
|
63
62
|
'settings.short.layout': 'Інтерфейс',
|
|
64
63
|
'settings.short.pureBlack': 'Чорний фон',
|
|
65
64
|
'settings.short.autoApprove': 'YOLO',
|
|
65
|
+
'settings.short.extra': 'Extra',
|
|
66
66
|
'settings.short.maxIterations': 'Кроків',
|
|
67
67
|
'settings.short.memory': 'Пам’ять',
|
|
68
68
|
'settings.short.updates': 'Оновл.',
|
|
@@ -78,12 +78,15 @@ export const uk = {
|
|
|
78
78
|
'settings.hint.layout': 'Чистий: рамка біля вводу, картки й спокійні рядки інструментів. Класичний: колишній ASCII-вигляд.',
|
|
79
79
|
'settings.hint.pureBlack': 'Робить тло термінала глибоким чорним для OLED (#0a0a0c). Вимкнено — лишається ваше тло.',
|
|
80
80
|
'settings.hint.autoApprove': 'Пропускає звичайні запити дозволів. Небезпечні команди й файли з ключами все одно питають. Діє лише в цій сесії: під час наступного запуску devx вимкнено.',
|
|
81
|
+
'settings.hint.extra': 'Виконує БУДЬ-ЯКІ команди без питань: і руйнівні (rm -rf, sudo, git push --force), і завантажені скрипти, і читання ключів та секретів, і нові MCP-сервери. Жодної пісочниці немає. Діє лише в цій сесії.',
|
|
81
82
|
'settings.hint.maxIterations': 'Скільки кроків з інструментами (правки файлів, команди) агент може зробити на один запит.',
|
|
82
83
|
'settings.hint.memory': 'Завантажує правила з .devx/memory.md у кожну сесію.',
|
|
83
84
|
'settings.hint.updates': 'Під час запуску шукає нову версію devx на GitHub. Команда /update працює в будь-якому разі.',
|
|
84
85
|
'settings.hint.language': 'Мова інтерфейсу: повідомлення, налаштування й підказки. Код і назви інструментів лишаються англійськими.',
|
|
85
86
|
'settings.hint.about': 'Терміналний ШІ-агент для програмування від ApvCode. Ліцензія MIT. github.com/apvcode/Termux-Dev',
|
|
86
87
|
'settings.warnYolo': 'Увімкнено: агент виконує команди й правит файли без питань.',
|
|
88
|
+
'settings.warnExtra': 'Увага: нічого не питається. Лише де не шкода все.',
|
|
89
|
+
'settings.extraEnabled': 'Extra увімкнено: агент виконує будь-які команди без питань, зокрема небезпечні. Під час наступного запуску devx він знову вимкнений.',
|
|
87
90
|
'settings.keys.move': 'вибір',
|
|
88
91
|
'settings.keys.change': 'змінити',
|
|
89
92
|
'settings.keys.toggle': 'перемкнути',
|
|
@@ -219,9 +222,68 @@ export const uk = {
|
|
|
219
222
|
'onboard.language.note': 'Пізніше її можна змінити в /settings.',
|
|
220
223
|
'onboard.provider.title': 'провайдер',
|
|
221
224
|
'onboard.provider.placeholder': 'почни вводити назву',
|
|
222
|
-
'onboard.provider.note': 'Сервіс, що
|
|
225
|
+
'onboard.provider.note': 'Сервіс, що дає моделі. Немає в списку? Додайте свій через «Додати провайдера».',
|
|
223
226
|
'onboard.custom': 'Власна адреса',
|
|
224
227
|
'onboard.customDetail': 'Будь-яка адреса, сумісна з OpenAI',
|
|
228
|
+
'update.title': 'оновлення',
|
|
229
|
+
'update.titleBusy': 'оновлюю',
|
|
230
|
+
'update.titleDone': 'оновлено',
|
|
231
|
+
'update.titleFailed': 'оновлення не вдалося',
|
|
232
|
+
'update.checking': 'Перевіряю оновлення',
|
|
233
|
+
'update.upToDate': 'devx останньої версії ({version})',
|
|
234
|
+
'update.offline': 'Не вдалося перевірити оновлення ({reason})',
|
|
235
|
+
'update.available': 'Вийшов devx {version}',
|
|
236
|
+
'update.have': 'У вас {version}',
|
|
237
|
+
'update.released': 'випущено {date}',
|
|
238
|
+
'update.whatsNew': 'Що нового',
|
|
239
|
+
'update.viaNpm': 'Встановлено через npm: оновлення виконає npm install -g termux-dev.',
|
|
240
|
+
'update.viaGit': 'Встановлено з git-клону: оновлення підтягне, збере й підключить його.',
|
|
241
|
+
'update.now': 'Оновити зараз',
|
|
242
|
+
'update.nowDetail': 'Встановити {version} і перезапустити devx',
|
|
243
|
+
'update.later': 'Пізніше',
|
|
244
|
+
'update.laterDetail': 'Поки залишити цю версію',
|
|
245
|
+
'update.skip': 'Пропустити цю версію',
|
|
246
|
+
'update.skipDetail': 'Більше не питати про {version}',
|
|
247
|
+
'update.step.registry': 'Перевіряю реєстр',
|
|
248
|
+
'update.step.install': 'Встановлюю devx {version}',
|
|
249
|
+
'update.step.verify': 'Перевіряю нову версію',
|
|
250
|
+
'update.step.pull': 'Забираю з GitHub',
|
|
251
|
+
'update.step.build': 'Встановлюю і збираю',
|
|
252
|
+
'update.step.link': 'Підключаю команду',
|
|
253
|
+
'update.keepOpen': 'Не закривайте devx, це займе трохи часу.',
|
|
254
|
+
'update.installed': 'devx {version} встановлено',
|
|
255
|
+
'update.restarting': 'Перезапускаю devx…',
|
|
256
|
+
'update.failedStep': 'Зупинилося на кроці: {step}',
|
|
257
|
+
'update.keepsRunning': 'devx продовжує працювати на {version}.',
|
|
258
|
+
'update.byHand': 'Щоб оновити вручну:',
|
|
259
|
+
'update.notPublished': 'У npm ще немає {version}. Спробуйте за кілька хвилин.',
|
|
260
|
+
'update.skipped': 'Зрозуміло: про {version} більше не питаю.',
|
|
261
|
+
'provider.add': 'Додати провайдера',
|
|
262
|
+
'provider.addDetail': 'Будь-яка адреса, сумісна з OpenAI або Anthropic',
|
|
263
|
+
'provider.customTag': 'власний',
|
|
264
|
+
'provider.new': 'новий провайдер',
|
|
265
|
+
'provider.name.label': 'Назва провайдера',
|
|
266
|
+
'provider.name.placeholder': 'Мій шлюз',
|
|
267
|
+
'provider.name.empty': 'Введіть назву.',
|
|
268
|
+
'provider.name.long': 'Назва задовга (не більше 40 символів).',
|
|
269
|
+
'provider.name.taken': 'Провайдер із такою назвою вже є.',
|
|
270
|
+
'provider.url.note': 'Адреса до /chat/completions або /messages, наприклад https://api.example.com/v1.',
|
|
271
|
+
'provider.url.invalid': 'Це не адреса. Приклад: https://api.example.com/v1',
|
|
272
|
+
'provider.url.scheme': 'Адреса має починатися з http:// або https://.',
|
|
273
|
+
'provider.key.none': 'Ключ не потрібен',
|
|
274
|
+
'provider.key.noneDetail': 'Сервер на цьому комп’ютері або в цій мережі',
|
|
275
|
+
'provider.key.enter': 'Ввести ключ',
|
|
276
|
+
'provider.menu.use': 'Використати цього провайдера',
|
|
277
|
+
'provider.menu.rename': 'Змінити назву',
|
|
278
|
+
'provider.menu.url': 'Змінити адресу',
|
|
279
|
+
'provider.menu.key': 'Змінити ключ',
|
|
280
|
+
'provider.menu.delete': 'Видалити',
|
|
281
|
+
'provider.menu.deleteDetail': 'Видалить провайдера і його ключ',
|
|
282
|
+
'provider.delete.question': 'Видалити провайдера {name} і його ключ?',
|
|
283
|
+
'provider.delete.active': 'Це поточний провайдер: він працюватиме, доки ви не оберете інший.',
|
|
284
|
+
'provider.saved': 'Провайдера {name} збережено',
|
|
285
|
+
'provider.updated': 'Провайдера {name} оновлено',
|
|
286
|
+
'provider.deleted': 'Провайдера {name} видалено',
|
|
225
287
|
'onboard.baseUrl.title': 'адреса',
|
|
226
288
|
'onboard.baseUrl.label': 'Базовий URL API',
|
|
227
289
|
'onboard.baseUrl.placeholder': 'https://api.example.com/v1',
|