@kikkimo/claude-launcher 2.3.0 → 2.5.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.
- package/CHANGELOG.md +70 -0
- package/README.md +35 -13
- package/claude-launcher +425 -48
- package/docs/README-zh.md +35 -13
- package/docs/superpowers/plans/2026-03-31-update-models-and-auto-mode.md +1414 -0
- package/docs/superpowers/specs/2026-03-31-update-models-and-auto-mode-design.md +187 -0
- package/lib/api-manager.js +135 -1
- package/lib/i18n/locales/de.js +74 -3
- package/lib/i18n/locales/en.js +72 -2
- package/lib/i18n/locales/es.js +74 -3
- package/lib/i18n/locales/fr.js +74 -3
- package/lib/i18n/locales/it.js +72 -2
- package/lib/i18n/locales/ja.js +74 -3
- package/lib/i18n/locales/ko.js +74 -3
- package/lib/i18n/locales/pt.js +72 -2
- package/lib/i18n/locales/ru.js +72 -2
- package/lib/i18n/locales/zh-TW.js +74 -3
- package/lib/i18n/locales/zh.js +74 -3
- package/lib/launcher.js +10 -0
- package/lib/presets/providers.js +86 -15
- package/lib/ui/menu.js +17 -5
- package/lib/utils/model-upgrade-checker.js +103 -0
- package/lib/utils/version-checker.js +22 -3
- package/package.json +2 -2
package/lib/i18n/locales/pt.js
CHANGED
|
@@ -10,6 +10,7 @@ module.exports = {
|
|
|
10
10
|
title: "Menu Principal",
|
|
11
11
|
launch_default: "Executar Claude Code",
|
|
12
12
|
launch_skip: "Executar Claude Code (Pular Permissões Automaticamente)",
|
|
13
|
+
launch_auto_mode: "Iniciar Claude Code (Ativar modo automatico)",
|
|
13
14
|
launch_api: "Executar Claude Code com API de Terceiros",
|
|
14
15
|
launch_api_skip: "Executar Claude Code com API de Terceiros (Pular Permissões Automaticamente)",
|
|
15
16
|
api_management: "Gerenciamento de API de Terceiros",
|
|
@@ -28,6 +29,12 @@ module.exports = {
|
|
|
28
29
|
change_password: "Alterar Senha",
|
|
29
30
|
back: "Voltar ao Menu Principal"
|
|
30
31
|
},
|
|
32
|
+
remove_api: {
|
|
33
|
+
title: "Remover API",
|
|
34
|
+
delete_single: "Excluir API Individual",
|
|
35
|
+
clear_all: "Limpar Todas as APIs",
|
|
36
|
+
back: "Voltar"
|
|
37
|
+
},
|
|
31
38
|
language: {
|
|
32
39
|
title: "Configurações de Idioma",
|
|
33
40
|
current: "Idioma Atual: {0}",
|
|
@@ -44,6 +51,9 @@ module.exports = {
|
|
|
44
51
|
no_apis: "Nenhuma API de terceiros configurada",
|
|
45
52
|
add_api_first: "Adicione primeiro uma API usando \"Adicionar Nova API de Terceiros\"",
|
|
46
53
|
all_apis_removed: "Todas as APIs foram removidas",
|
|
54
|
+
all_apis_cleared: "{0} APIs foram limpas",
|
|
55
|
+
clear_cancelled: "Operação de limpeza cancelada",
|
|
56
|
+
current_api_count: "APIs atuais: {0}",
|
|
47
57
|
apis_removed_or_none: "Todas as APIs foram removidas ou nenhuma estava configurada.",
|
|
48
58
|
removal_cancelled: "Remoção cancelada",
|
|
49
59
|
operation_cancelled: "Operação cancelada",
|
|
@@ -79,7 +89,9 @@ module.exports = {
|
|
|
79
89
|
enter_model_name: "Digite o nome do modelo: ",
|
|
80
90
|
select_provider: "Selecione o provedor: ",
|
|
81
91
|
enter_import_file: "Digite o caminho do arquivo de importação: ",
|
|
82
|
-
ctrl_c_again: "Pressione Ctrl+C novamente para sair"
|
|
92
|
+
ctrl_c_again: "Pressione Ctrl+C novamente para sair",
|
|
93
|
+
confirm_clear_all: "Isso excluirá permanentemente todas as {0} APIs. Esta ação não pode ser desfeita.",
|
|
94
|
+
confirm_clear_all_input: "Digite CLEAR para confirmar: "
|
|
83
95
|
}
|
|
84
96
|
},
|
|
85
97
|
|
|
@@ -505,7 +517,27 @@ module.exports = {
|
|
|
505
517
|
active_api: "API Ativa: {0}",
|
|
506
518
|
most_used: "API Mais Usada: {0}",
|
|
507
519
|
total_usage: "Uso Total: {0} vezes",
|
|
508
|
-
no_usage: "Nenhum uso registrado"
|
|
520
|
+
no_usage: "Nenhum uso registrado",
|
|
521
|
+
|
|
522
|
+
// Estatísticas avançadas (novo)
|
|
523
|
+
success_rate: "Taxa de sucesso geral: {0}",
|
|
524
|
+
|
|
525
|
+
header_name: "Nome da API",
|
|
526
|
+
header_usage: "Uso",
|
|
527
|
+
header_success: "Sucesso",
|
|
528
|
+
header_last_used: "Último uso",
|
|
529
|
+
|
|
530
|
+
time_never: "Nunca",
|
|
531
|
+
time_just_now: "Agora mesmo",
|
|
532
|
+
time_minutes_ago: "{0}m atrás",
|
|
533
|
+
time_hours_ago: "{0}h atrás",
|
|
534
|
+
time_days_ago: "{0}d atrás",
|
|
535
|
+
|
|
536
|
+
menu_view: "Ver detalhes das estatísticas",
|
|
537
|
+
menu_reset: "Redefinir estatísticas",
|
|
538
|
+
menu_back: "Voltar",
|
|
539
|
+
reset_confirm: "Redefinir todas as estatísticas? [y/N]",
|
|
540
|
+
reset_success: "Estatísticas redefinidas com sucesso"
|
|
509
541
|
},
|
|
510
542
|
|
|
511
543
|
// Version updates
|
|
@@ -535,5 +567,43 @@ module.exports = {
|
|
|
535
567
|
update_command: "Comando de atualização: npm update -g @kikkimo/claude-launcher",
|
|
536
568
|
up_to_date: "Você está usando a versão mais recente",
|
|
537
569
|
unexpected_error: "Erro inesperado ocorreu durante a verificação"
|
|
570
|
+
},
|
|
571
|
+
|
|
572
|
+
// Função de atualização de modelo
|
|
573
|
+
model_upgrade: {
|
|
574
|
+
notification: "Atualização de modelo disponível: {0} → {1}",
|
|
575
|
+
notification_api: "API: {0}",
|
|
576
|
+
notification_hint: "Vá para \"Gerenciamento de API de terceiros > Configurações de atualização de modelo\" para atualizar",
|
|
577
|
+
auto_upgraded: "Modelo atualizado automaticamente: {0} → {1}",
|
|
578
|
+
|
|
579
|
+
settings_title: "Configurações de atualização de modelo",
|
|
580
|
+
current_config: "Configuração atual",
|
|
581
|
+
auto_upgrade_label: "Usar automaticamente o modelo mais recente",
|
|
582
|
+
auto_upgrade_on: "ATIVADO",
|
|
583
|
+
auto_upgrade_off: "DESATIVADO",
|
|
584
|
+
|
|
585
|
+
menu_toggle_auto_on: "Atualização auto [● ATIVADO]",
|
|
586
|
+
menu_toggle_auto_off: "Atualização auto [○ DESATIVADO]",
|
|
587
|
+
menu_manual_upgrade: "Atualizar todos os modelos manualmente",
|
|
588
|
+
menu_back: "Voltar",
|
|
589
|
+
|
|
590
|
+
manual_title: "Verificação de atualização de modelo",
|
|
591
|
+
manual_checking: "Verificando {0} configurações de API...",
|
|
592
|
+
manual_api_current: "Atual: {0}",
|
|
593
|
+
manual_api_latest: "Mais recente: {0}",
|
|
594
|
+
manual_api_uptodate: "(Já atualizado)",
|
|
595
|
+
manual_api_no_info: "(Sem info de atualização)",
|
|
596
|
+
manual_confirm: "Atualizar este modelo? [y/N]",
|
|
597
|
+
manual_upgraded: "Atualizado: {0} → {1}",
|
|
598
|
+
manual_skipped: "Ignorado",
|
|
599
|
+
|
|
600
|
+
manual_complete: "Atualização completa!",
|
|
601
|
+
manual_stats_upgraded: "Atualizados: {0}",
|
|
602
|
+
manual_stats_skipped: "Ignorados: {0} ({1} já atualizados, {2} sem info de atualização)"
|
|
603
|
+
},
|
|
604
|
+
hints: {
|
|
605
|
+
auto_mode_info: 'Modo automatico: Disponivel para o plano Team. Enterprise/API em implantacao gradual. Apos iniciar, pressione Shift+Tab para alternar.',
|
|
606
|
+
active_api_info: 'Ativo: {0} / {1}',
|
|
607
|
+
no_active_api: 'Nenhuma API ativa configurada. Va para "Gerenciamento de API" para adicionar uma.'
|
|
538
608
|
}
|
|
539
609
|
};
|
package/lib/i18n/locales/ru.js
CHANGED
|
@@ -10,6 +10,7 @@ module.exports = {
|
|
|
10
10
|
title: "Главное меню",
|
|
11
11
|
launch_default: "Запустить Claude Code",
|
|
12
12
|
launch_skip: "Запустить Claude Code (Автопропуск разрешений)",
|
|
13
|
+
launch_auto_mode: "Запустить Claude Code (Включить авторежим)",
|
|
13
14
|
launch_api: "Запустить Claude Code со сторонним API",
|
|
14
15
|
launch_api_skip: "Запустить Claude Code со сторонним API (Автопропуск разрешений)",
|
|
15
16
|
api_management: "Управление сторонними API",
|
|
@@ -28,6 +29,12 @@ module.exports = {
|
|
|
28
29
|
change_password: "Изменить пароль",
|
|
29
30
|
back: "Вернуться в главное меню"
|
|
30
31
|
},
|
|
32
|
+
remove_api: {
|
|
33
|
+
title: "Удалить API",
|
|
34
|
+
delete_single: "Удалить один API",
|
|
35
|
+
clear_all: "Очистить все API",
|
|
36
|
+
back: "Назад"
|
|
37
|
+
},
|
|
31
38
|
language: {
|
|
32
39
|
title: "Настройки языка",
|
|
33
40
|
current: "Текущий язык: {0}",
|
|
@@ -44,6 +51,9 @@ module.exports = {
|
|
|
44
51
|
no_apis: "Сторонние API не настроены",
|
|
45
52
|
add_api_first: "Пожалуйста, сначала добавьте API используя \"Добавить новый сторонний API\"",
|
|
46
53
|
all_apis_removed: "Все API были удалены",
|
|
54
|
+
all_apis_cleared: "{0} API были очищены",
|
|
55
|
+
clear_cancelled: "Операция очистки отменена",
|
|
56
|
+
current_api_count: "Текущие API: {0}",
|
|
47
57
|
apis_removed_or_none: "Все API удалены или не были настроены.",
|
|
48
58
|
removal_cancelled: "Удаление отменено",
|
|
49
59
|
operation_cancelled: "Операция отменена",
|
|
@@ -79,7 +89,9 @@ module.exports = {
|
|
|
79
89
|
enter_model_name: "Введите имя модели: ",
|
|
80
90
|
select_provider: "Выберите провайдера: ",
|
|
81
91
|
enter_import_file: "Введите путь к файлу импорта: ",
|
|
82
|
-
ctrl_c_again: "Нажмите Ctrl+C снова для выхода"
|
|
92
|
+
ctrl_c_again: "Нажмите Ctrl+C снова для выхода",
|
|
93
|
+
confirm_clear_all: "Это навсегда удалит все {0} API. Это действие нельзя отменить.",
|
|
94
|
+
confirm_clear_all_input: "Введите CLEAR для подтверждения: "
|
|
83
95
|
}
|
|
84
96
|
},
|
|
85
97
|
|
|
@@ -505,7 +517,27 @@ module.exports = {
|
|
|
505
517
|
active_api: "Активный API: {0}",
|
|
506
518
|
most_used: "Наиболее используемый API: {0}",
|
|
507
519
|
total_usage: "Общее использование: {0} раз",
|
|
508
|
-
no_usage: "Использование не зафиксировано"
|
|
520
|
+
no_usage: "Использование не зафиксировано",
|
|
521
|
+
|
|
522
|
+
// Расширенная статистика (новое)
|
|
523
|
+
success_rate: "Общий показатель успеха: {0}",
|
|
524
|
+
|
|
525
|
+
header_name: "Название API",
|
|
526
|
+
header_usage: "Использование",
|
|
527
|
+
header_success: "Успех",
|
|
528
|
+
header_last_used: "Последнее использование",
|
|
529
|
+
|
|
530
|
+
time_never: "Никогда",
|
|
531
|
+
time_just_now: "Только что",
|
|
532
|
+
time_minutes_ago: "{0}м назад",
|
|
533
|
+
time_hours_ago: "{0}ч назад",
|
|
534
|
+
time_days_ago: "{0}д назад",
|
|
535
|
+
|
|
536
|
+
menu_view: "Просмотр деталей статистики",
|
|
537
|
+
menu_reset: "Сбросить статистику",
|
|
538
|
+
menu_back: "Назад",
|
|
539
|
+
reset_confirm: "Сбросить всю статистику? [y/N]",
|
|
540
|
+
reset_success: "Статистика успешно сброшена"
|
|
509
541
|
},
|
|
510
542
|
|
|
511
543
|
// Version updates
|
|
@@ -535,5 +567,43 @@ module.exports = {
|
|
|
535
567
|
update_command: "Команда обновления: npm update -g @kikkimo/claude-launcher",
|
|
536
568
|
up_to_date: "Вы используете последнюю версию",
|
|
537
569
|
unexpected_error: "Произошла неожиданная ошибка во время проверки"
|
|
570
|
+
},
|
|
571
|
+
|
|
572
|
+
// Функция обновления модели
|
|
573
|
+
model_upgrade: {
|
|
574
|
+
notification: "Доступно обновление модели: {0} → {1}",
|
|
575
|
+
notification_api: "API: {0}",
|
|
576
|
+
notification_hint: "Перейдите в \"Управление сторонними API > Настройки обновления модели\" для обновления",
|
|
577
|
+
auto_upgraded: "Модель автоматически обновлена: {0} → {1}",
|
|
578
|
+
|
|
579
|
+
settings_title: "Настройки обновления модели",
|
|
580
|
+
current_config: "Текущая конфигурация",
|
|
581
|
+
auto_upgrade_label: "Автоматически использовать последнюю модель",
|
|
582
|
+
auto_upgrade_on: "ВКЛ",
|
|
583
|
+
auto_upgrade_off: "ВЫКЛ",
|
|
584
|
+
|
|
585
|
+
menu_toggle_auto_on: "Автообновление [● ВКЛ]",
|
|
586
|
+
menu_toggle_auto_off: "Автообновление [○ ВЫКЛ]",
|
|
587
|
+
menu_manual_upgrade: "Обновить все модели вручную",
|
|
588
|
+
menu_back: "Назад",
|
|
589
|
+
|
|
590
|
+
manual_title: "Проверка обновления модели",
|
|
591
|
+
manual_checking: "Проверка {0} конфигураций API...",
|
|
592
|
+
manual_api_current: "Текущая: {0}",
|
|
593
|
+
manual_api_latest: "Последняя: {0}",
|
|
594
|
+
manual_api_uptodate: "(Уже обновлено)",
|
|
595
|
+
manual_api_no_info: "(Нет информации об обновлении)",
|
|
596
|
+
manual_confirm: "Обновить эту модель? [y/N]",
|
|
597
|
+
manual_upgraded: "Обновлено: {0} → {1}",
|
|
598
|
+
manual_skipped: "Пропущено",
|
|
599
|
+
|
|
600
|
+
manual_complete: "Обновление завершено!",
|
|
601
|
+
manual_stats_upgraded: "Обновлено: {0}",
|
|
602
|
+
manual_stats_skipped: "Пропущено: {0} ({1} уже обновлены, {2} без информации об обновлении)"
|
|
603
|
+
},
|
|
604
|
+
hints: {
|
|
605
|
+
auto_mode_info: 'Авторежим: Доступен для плана Team. Enterprise/API постепенно внедряются. После запуска нажмите Shift+Tab для переключения.',
|
|
606
|
+
active_api_info: 'Активный: {0} / {1}',
|
|
607
|
+
no_active_api: 'Нет настроенного активного API. Перейдите в "Управление API", чтобы добавить.'
|
|
538
608
|
}
|
|
539
609
|
};
|
|
@@ -10,6 +10,7 @@ module.exports = {
|
|
|
10
10
|
title: "主選單",
|
|
11
11
|
launch_default: "啟動 Claude Code",
|
|
12
12
|
launch_skip: "啟動 Claude Code(自動跳過權限詢問)",
|
|
13
|
+
launch_auto_mode: "啟動 Claude Code(啟用自動模式)",
|
|
13
14
|
launch_api: "使用第三方API啟動 Claude Code",
|
|
14
15
|
launch_api_skip: "使用第三方API啟動 Claude Code(自動跳過權限詢問)",
|
|
15
16
|
api_management: "第三方API管理",
|
|
@@ -28,6 +29,12 @@ module.exports = {
|
|
|
28
29
|
change_password: "修改密碼",
|
|
29
30
|
back: "返回主選單"
|
|
30
31
|
},
|
|
32
|
+
remove_api: {
|
|
33
|
+
title: "刪除API",
|
|
34
|
+
delete_single: "刪除單一API",
|
|
35
|
+
clear_all: "清空所有API",
|
|
36
|
+
back: "返回"
|
|
37
|
+
},
|
|
31
38
|
language: {
|
|
32
39
|
title: "語言設定",
|
|
33
40
|
current: "目前語言:{0}",
|
|
@@ -44,6 +51,9 @@ module.exports = {
|
|
|
44
51
|
no_apis: "未設定第三方API",
|
|
45
52
|
add_api_first: "請先使用\"新增第三方API\"來新增API",
|
|
46
53
|
all_apis_removed: "所有API已被刪除",
|
|
54
|
+
all_apis_cleared: "已清空 {0} 個API",
|
|
55
|
+
clear_cancelled: "清空操作已取消",
|
|
56
|
+
current_api_count: "目前API數量:{0}",
|
|
47
57
|
apis_removed_or_none: "所有API已被刪除或未設定任何API。",
|
|
48
58
|
removal_cancelled: "取消刪除",
|
|
49
59
|
operation_cancelled: "操作已取消",
|
|
@@ -79,7 +89,9 @@ module.exports = {
|
|
|
79
89
|
enter_model_name: "輸入模型名稱:",
|
|
80
90
|
select_provider: "選擇提供商:",
|
|
81
91
|
enter_import_file: "輸入匯入檔案路徑:",
|
|
82
|
-
ctrl_c_again: "再次按 Ctrl+C 退出程式"
|
|
92
|
+
ctrl_c_again: "再次按 Ctrl+C 退出程式",
|
|
93
|
+
confirm_clear_all: "這將永久刪除所有 {0} 個API。此操作無法復原。",
|
|
94
|
+
confirm_clear_all_input: "輸入 CLEAR 以確認清空:"
|
|
83
95
|
}
|
|
84
96
|
},
|
|
85
97
|
|
|
@@ -493,7 +505,8 @@ module.exports = {
|
|
|
493
505
|
"最低密碼強度:良好(拒絕弱密碼和極弱密碼)"
|
|
494
506
|
],
|
|
495
507
|
example_strong_password: "強密碼範例:{0}",
|
|
496
|
-
new_password_attempt: "新密碼(嘗試 {0}/{1}):"
|
|
508
|
+
new_password_attempt: "新密碼(嘗試 {0}/{1}):",
|
|
509
|
+
confirm_password_prompt: "確認密碼:"
|
|
497
510
|
}
|
|
498
511
|
},
|
|
499
512
|
|
|
@@ -504,7 +517,27 @@ module.exports = {
|
|
|
504
517
|
active_api: "活躍的API:{0}",
|
|
505
518
|
most_used: "最常用的API:{0}",
|
|
506
519
|
total_usage: "總使用次數:{0}次",
|
|
507
|
-
no_usage: "無使用記錄"
|
|
520
|
+
no_usage: "無使用記錄",
|
|
521
|
+
|
|
522
|
+
// 增強統計(新增)
|
|
523
|
+
success_rate: "整體成功率:{0}",
|
|
524
|
+
|
|
525
|
+
header_name: "API名稱",
|
|
526
|
+
header_usage: "使用次數",
|
|
527
|
+
header_success: "成功率",
|
|
528
|
+
header_last_used: "最後使用",
|
|
529
|
+
|
|
530
|
+
time_never: "從未使用",
|
|
531
|
+
time_just_now: "剛剛",
|
|
532
|
+
time_minutes_ago: "{0}分鐘前",
|
|
533
|
+
time_hours_ago: "{0}小時前",
|
|
534
|
+
time_days_ago: "{0}天前",
|
|
535
|
+
|
|
536
|
+
menu_view: "查看統計詳情",
|
|
537
|
+
menu_reset: "重置統計",
|
|
538
|
+
menu_back: "返回",
|
|
539
|
+
reset_confirm: "確定重置所有統計資料?[y/N]",
|
|
540
|
+
reset_success: "統計資料已重置"
|
|
508
541
|
},
|
|
509
542
|
|
|
510
543
|
// 版本更新
|
|
@@ -534,5 +567,43 @@ module.exports = {
|
|
|
534
567
|
update_command: "更新指令:npm update -g @kikkimo/claude-launcher",
|
|
535
568
|
up_to_date: "您使用的是最新版本",
|
|
536
569
|
unexpected_error: "檢查過程中發生意外錯誤"
|
|
570
|
+
},
|
|
571
|
+
|
|
572
|
+
// 模型升級功能
|
|
573
|
+
model_upgrade: {
|
|
574
|
+
notification: "模型升級可用:{0} → {1}",
|
|
575
|
+
notification_api: "API:{0}",
|
|
576
|
+
notification_hint: "前往「第三方API管理 > 模型升級設定」進行升級",
|
|
577
|
+
auto_upgraded: "模型已自動升級:{0} → {1}",
|
|
578
|
+
|
|
579
|
+
settings_title: "模型升級設定",
|
|
580
|
+
current_config: "目前設定",
|
|
581
|
+
auto_upgrade_label: "自動使用最新模型",
|
|
582
|
+
auto_upgrade_on: "開啟",
|
|
583
|
+
auto_upgrade_off: "關閉",
|
|
584
|
+
|
|
585
|
+
menu_toggle_auto_on: "自動升級 [● 開啟]",
|
|
586
|
+
menu_toggle_auto_off: "自動升級 [○ 關閉]",
|
|
587
|
+
menu_manual_upgrade: "手動一鍵升級所有模型",
|
|
588
|
+
menu_back: "返回",
|
|
589
|
+
|
|
590
|
+
manual_title: "模型升級檢查",
|
|
591
|
+
manual_checking: "正在檢查 {0} 個 API 設定...",
|
|
592
|
+
manual_api_current: "目前:{0}",
|
|
593
|
+
manual_api_latest: "最新:{0}",
|
|
594
|
+
manual_api_uptodate: "(已是最新)",
|
|
595
|
+
manual_api_no_info: "(無升級資訊)",
|
|
596
|
+
manual_confirm: "升級此模型?[y/N]",
|
|
597
|
+
manual_upgraded: "已升級:{0} → {1}",
|
|
598
|
+
manual_skipped: "已跳過",
|
|
599
|
+
|
|
600
|
+
manual_complete: "升級完成!",
|
|
601
|
+
manual_stats_upgraded: "已升級:{0} 個",
|
|
602
|
+
manual_stats_skipped: "已跳過:{0} 個({1} 個已是最新,{2} 個無升級資訊)"
|
|
603
|
+
},
|
|
604
|
+
hints: {
|
|
605
|
+
auto_mode_info: '自動模式:目前支援 Team 方案。Enterprise/API 方案逐步推出中。啟動後按 Shift+Tab 切換。',
|
|
606
|
+
active_api_info: '目前啟用:{0} / {1}',
|
|
607
|
+
no_active_api: '未設定啟用的API,請前往「API管理」新增。'
|
|
537
608
|
}
|
|
538
609
|
};
|
package/lib/i18n/locales/zh.js
CHANGED
|
@@ -10,6 +10,7 @@ module.exports = {
|
|
|
10
10
|
title: "主菜单",
|
|
11
11
|
launch_default: "启动 Claude Code",
|
|
12
12
|
launch_skip: "启动 Claude Code(自动跳过权限询问)",
|
|
13
|
+
launch_auto_mode: "启动 Claude Code(启用自动模式)",
|
|
13
14
|
launch_api: "使用第三方API启动 Claude Code",
|
|
14
15
|
launch_api_skip: "使用第三方API启动 Claude Code(自动跳过权限询问)",
|
|
15
16
|
api_management: "第三方API管理",
|
|
@@ -28,6 +29,12 @@ module.exports = {
|
|
|
28
29
|
change_password: "修改密码",
|
|
29
30
|
back: "返回主菜单"
|
|
30
31
|
},
|
|
32
|
+
remove_api: {
|
|
33
|
+
title: "删除API",
|
|
34
|
+
delete_single: "删除单个API",
|
|
35
|
+
clear_all: "清空所有API",
|
|
36
|
+
back: "返回"
|
|
37
|
+
},
|
|
31
38
|
language: {
|
|
32
39
|
title: "语言设置",
|
|
33
40
|
current: "当前语言:{0}",
|
|
@@ -44,6 +51,9 @@ module.exports = {
|
|
|
44
51
|
no_apis: "未配置第三方API",
|
|
45
52
|
add_api_first: "请先使用\"添加新的第三方API\"添加API",
|
|
46
53
|
all_apis_removed: "所有API已被删除",
|
|
54
|
+
all_apis_cleared: "已清空 {0} 个API",
|
|
55
|
+
clear_cancelled: "清空操作已取消",
|
|
56
|
+
current_api_count: "当前API数量:{0}",
|
|
47
57
|
apis_removed_or_none: "所有API已被删除或未配置任何API。",
|
|
48
58
|
removal_cancelled: "取消删除",
|
|
49
59
|
operation_cancelled: "操作已取消",
|
|
@@ -79,7 +89,9 @@ module.exports = {
|
|
|
79
89
|
enter_model_name: "输入模型名称:",
|
|
80
90
|
select_provider: "选择提供商:",
|
|
81
91
|
enter_import_file: "输入导入文件路径:",
|
|
82
|
-
ctrl_c_again: "再次按 Ctrl+C 退出程序"
|
|
92
|
+
ctrl_c_again: "再次按 Ctrl+C 退出程序",
|
|
93
|
+
confirm_clear_all: "这将永久删除所有 {0} 个API。此操作无法撤销。",
|
|
94
|
+
confirm_clear_all_input: "输入 CLEAR 以确认清空:"
|
|
83
95
|
}
|
|
84
96
|
},
|
|
85
97
|
|
|
@@ -493,7 +505,8 @@ module.exports = {
|
|
|
493
505
|
"最低密码强度:良好(拒绝弱密码和极弱密码)"
|
|
494
506
|
],
|
|
495
507
|
example_strong_password: "强密码示例:{0}",
|
|
496
|
-
new_password_attempt: "新密码(尝试 {0}/{1}):"
|
|
508
|
+
new_password_attempt: "新密码(尝试 {0}/{1}):",
|
|
509
|
+
confirm_password_prompt: "确认密码:"
|
|
497
510
|
}
|
|
498
511
|
},
|
|
499
512
|
|
|
@@ -504,7 +517,27 @@ module.exports = {
|
|
|
504
517
|
active_api: "激活的API:{0}",
|
|
505
518
|
most_used: "最常用的API:{0}",
|
|
506
519
|
total_usage: "总使用次数:{0}次",
|
|
507
|
-
no_usage: "无使用记录"
|
|
520
|
+
no_usage: "无使用记录",
|
|
521
|
+
|
|
522
|
+
// 增强统计(新增)
|
|
523
|
+
success_rate: "整体成功率:{0}",
|
|
524
|
+
|
|
525
|
+
header_name: "API名称",
|
|
526
|
+
header_usage: "使用次数",
|
|
527
|
+
header_success: "成功率",
|
|
528
|
+
header_last_used: "最后使用",
|
|
529
|
+
|
|
530
|
+
time_never: "从未使用",
|
|
531
|
+
time_just_now: "刚刚",
|
|
532
|
+
time_minutes_ago: "{0}分钟前",
|
|
533
|
+
time_hours_ago: "{0}小时前",
|
|
534
|
+
time_days_ago: "{0}天前",
|
|
535
|
+
|
|
536
|
+
menu_view: "查看统计详情",
|
|
537
|
+
menu_reset: "重置统计",
|
|
538
|
+
menu_back: "返回",
|
|
539
|
+
reset_confirm: "确定重置所有统计数据? [y/N]",
|
|
540
|
+
reset_success: "统计数据已重置"
|
|
508
541
|
},
|
|
509
542
|
|
|
510
543
|
// 版本更新
|
|
@@ -534,5 +567,43 @@ module.exports = {
|
|
|
534
567
|
update_command: "更新命令:npm update -g @kikkimo/claude-launcher",
|
|
535
568
|
up_to_date: "您使用的是最新版本",
|
|
536
569
|
unexpected_error: "检查过程中发生意外错误"
|
|
570
|
+
},
|
|
571
|
+
|
|
572
|
+
// 模型升级功能
|
|
573
|
+
model_upgrade: {
|
|
574
|
+
notification: "模型升级可用: {0} → {1}",
|
|
575
|
+
notification_api: "API: {0}",
|
|
576
|
+
notification_hint: "前往「第三方API管理 > 模型升级设置」进行升级",
|
|
577
|
+
auto_upgraded: "模型已自动升级: {0} → {1}",
|
|
578
|
+
|
|
579
|
+
settings_title: "模型升级设置",
|
|
580
|
+
current_config: "当前配置",
|
|
581
|
+
auto_upgrade_label: "自动使用最新模型",
|
|
582
|
+
auto_upgrade_on: "开启",
|
|
583
|
+
auto_upgrade_off: "关闭",
|
|
584
|
+
|
|
585
|
+
menu_toggle_auto_on: "自动升级 [● 开启]",
|
|
586
|
+
menu_toggle_auto_off: "自动升级 [○ 关闭]",
|
|
587
|
+
menu_manual_upgrade: "手动一键升级所有模型",
|
|
588
|
+
menu_back: "返回",
|
|
589
|
+
|
|
590
|
+
manual_title: "模型升级检查",
|
|
591
|
+
manual_checking: "正在检查 {0} 个 API 配置...",
|
|
592
|
+
manual_api_current: "当前: {0}",
|
|
593
|
+
manual_api_latest: "最新: {0}",
|
|
594
|
+
manual_api_uptodate: "(已是最新)",
|
|
595
|
+
manual_api_no_info: "(无升级信息)",
|
|
596
|
+
manual_confirm: "升级此模型? [y/N]",
|
|
597
|
+
manual_upgraded: "已升级: {0} → {1}",
|
|
598
|
+
manual_skipped: "已跳过",
|
|
599
|
+
|
|
600
|
+
manual_complete: "升级完成!",
|
|
601
|
+
manual_stats_upgraded: "已升级: {0} 个",
|
|
602
|
+
manual_stats_skipped: "已跳过: {0} 个 ({1} 个已是最新, {2} 个无升级信息)"
|
|
603
|
+
},
|
|
604
|
+
hints: {
|
|
605
|
+
auto_mode_info: '自动模式:目前支持 Team 计划。Enterprise/API 计划逐步推出中。启动后按 Shift+Tab 切换。',
|
|
606
|
+
active_api_info: '当前激活:{0} / {1}',
|
|
607
|
+
no_active_api: '未配置激活的API,请前往"API管理"添加。'
|
|
537
608
|
}
|
|
538
609
|
};
|
package/lib/launcher.js
CHANGED
|
@@ -183,6 +183,15 @@ function launchClaudeSkipPermissions() {
|
|
|
183
183
|
launchClaude('claude --dangerously-skip-permissions');
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
+
/**
|
|
187
|
+
* Launch Claude with auto mode enabled
|
|
188
|
+
* Note: --enable-auto-mode makes auto mode available as a permission mode.
|
|
189
|
+
* User must press Shift+Tab in the session to switch to it.
|
|
190
|
+
*/
|
|
191
|
+
function launchClaudeAutoMode() {
|
|
192
|
+
launchClaude('claude --enable-auto-mode');
|
|
193
|
+
}
|
|
194
|
+
|
|
186
195
|
/**
|
|
187
196
|
* Get environment variables based on provider type
|
|
188
197
|
*/
|
|
@@ -353,6 +362,7 @@ module.exports = {
|
|
|
353
362
|
launchClaude,
|
|
354
363
|
launchClaudeDefault,
|
|
355
364
|
launchClaudeSkipPermissions,
|
|
365
|
+
launchClaudeAutoMode,
|
|
356
366
|
launchClaudeWithApi,
|
|
357
367
|
getProviderEnvVars,
|
|
358
368
|
testApiConnection
|
package/lib/presets/providers.js
CHANGED
|
@@ -10,28 +10,45 @@ const providers = {
|
|
|
10
10
|
baseUrl: 'https://api.anthropic.com',
|
|
11
11
|
models: [
|
|
12
12
|
'claude-3-5-haiku-20241022',
|
|
13
|
-
'claude-3
|
|
13
|
+
'claude-3-7-sonnet',
|
|
14
14
|
'claude-sonnet-4',
|
|
15
|
-
'claude-sonnet-4
|
|
15
|
+
'claude-sonnet-4-5',
|
|
16
16
|
'claude-opus-4',
|
|
17
|
-
'claude-opus-4
|
|
18
|
-
'claude-opus-4
|
|
17
|
+
'claude-opus-4-1',
|
|
18
|
+
'claude-opus-4-5',
|
|
19
|
+
'claude-opus-4-6'
|
|
19
20
|
],
|
|
21
|
+
// Version aliases for upgrade detection (manually maintained)
|
|
22
|
+
// Covers ALL models in each series for comprehensive upgrade detection
|
|
23
|
+
versionAliases: {
|
|
24
|
+
// Opus series -> latest opus
|
|
25
|
+
'claude-opus-4': 'claude-opus-4-6',
|
|
26
|
+
'claude-opus-4-1': 'claude-opus-4-6',
|
|
27
|
+
'claude-opus-4-5': 'claude-opus-4-6',
|
|
28
|
+
// Sonnet series -> latest sonnet
|
|
29
|
+
'claude-sonnet-4': 'claude-sonnet-4-5',
|
|
30
|
+
'claude-3-7-sonnet': 'claude-sonnet-4-5'
|
|
31
|
+
},
|
|
20
32
|
authTokenFormat: 'sk-ant-api03-...',
|
|
21
33
|
description: 'Official Anthropic API - Fully compatible',
|
|
22
34
|
requiresToken: true,
|
|
23
35
|
compatibility: 'native'
|
|
24
36
|
},
|
|
25
37
|
moonshot: {
|
|
26
|
-
name: 'Moonshot AI (Kimi-K2)',
|
|
38
|
+
name: 'Moonshot AI (Kimi-K2.5/K2-Thinking)',
|
|
27
39
|
baseUrl: 'https://api.moonshot.cn/anthropic',
|
|
28
40
|
models: [
|
|
29
|
-
'kimi-k2
|
|
30
|
-
'kimi-k2-0905-preview',
|
|
31
|
-
'kimi-k2-turbo-preview',
|
|
41
|
+
'kimi-k2.5',
|
|
32
42
|
'kimi-k2-thinking',
|
|
33
43
|
'kimi-k2-thinking-turbo'
|
|
34
44
|
],
|
|
45
|
+
versionAliases: {
|
|
46
|
+
'kimi-k2-0711-preview': 'kimi-k2.5',
|
|
47
|
+
'kimi-k2-0905-preview': 'kimi-k2.5',
|
|
48
|
+
'kimi-k2-turbo-preview': 'kimi-k2.5',
|
|
49
|
+
'kimi-k2-thinking': 'kimi-k2.5',
|
|
50
|
+
'kimi-k2-thinking-turbo': 'kimi-k2.5'
|
|
51
|
+
},
|
|
35
52
|
authTokenFormat: 'sk-...',
|
|
36
53
|
description: 'Moonshot AI - Provides Anthropic-compatible API',
|
|
37
54
|
requiresToken: true,
|
|
@@ -62,8 +79,14 @@ const providers = {
|
|
|
62
79
|
name: 'MiniMax CN (国内版)',
|
|
63
80
|
baseUrl: 'https://api.minimaxi.com/anthropic',
|
|
64
81
|
models: [
|
|
82
|
+
'MiniMax-M2.7',
|
|
83
|
+
'MiniMax-M2.5',
|
|
65
84
|
'MiniMax-M2.1'
|
|
66
85
|
],
|
|
86
|
+
versionAliases: {
|
|
87
|
+
'MiniMax-M2.1': 'MiniMax-M2.7',
|
|
88
|
+
'MiniMax-M2.5': 'MiniMax-M2.7'
|
|
89
|
+
},
|
|
67
90
|
authTokenFormat: 'sk-...',
|
|
68
91
|
description: 'MiniMax AI - Anthropic-compatible API for China users',
|
|
69
92
|
requiresToken: true,
|
|
@@ -78,8 +101,14 @@ const providers = {
|
|
|
78
101
|
name: 'MiniMax Global (国际版)',
|
|
79
102
|
baseUrl: 'https://api.minimax.io/anthropic',
|
|
80
103
|
models: [
|
|
104
|
+
'MiniMax-M2.7',
|
|
105
|
+
'MiniMax-M2.5',
|
|
81
106
|
'MiniMax-M2.1'
|
|
82
107
|
],
|
|
108
|
+
versionAliases: {
|
|
109
|
+
'MiniMax-M2.1': 'MiniMax-M2.7',
|
|
110
|
+
'MiniMax-M2.5': 'MiniMax-M2.7'
|
|
111
|
+
},
|
|
83
112
|
authTokenFormat: 'sk-...',
|
|
84
113
|
description: 'MiniMax AI - Anthropic-compatible API for international users',
|
|
85
114
|
requiresToken: true,
|
|
@@ -108,13 +137,21 @@ const providers = {
|
|
|
108
137
|
note: 'Requires extended timeout for complex reasoning tasks'
|
|
109
138
|
},
|
|
110
139
|
zhipu: {
|
|
111
|
-
name: 'ZhiPu AI (GLM-
|
|
140
|
+
name: 'ZhiPu AI (GLM-5.1/5-Turbo/5/4.7) - 智谱清言',
|
|
112
141
|
baseUrl: 'https://open.bigmodel.cn/api/anthropic',
|
|
113
142
|
models: [
|
|
114
|
-
'glm-
|
|
115
|
-
'glm-
|
|
143
|
+
'glm-5.1',
|
|
144
|
+
'glm-5-turbo',
|
|
145
|
+
'glm-5',
|
|
116
146
|
'glm-4.7'
|
|
117
147
|
],
|
|
148
|
+
versionAliases: {
|
|
149
|
+
'glm-4.5': 'glm-5.1',
|
|
150
|
+
'glm-4.6': 'glm-5.1',
|
|
151
|
+
'glm-4.7': 'glm-5.1',
|
|
152
|
+
'glm-5': 'glm-5.1',
|
|
153
|
+
'glm-5-turbo': 'glm-5.1'
|
|
154
|
+
},
|
|
118
155
|
authTokenFormat: 'sk-...',
|
|
119
156
|
description: 'ZhiPu AI (智谱清言) - Anthropic-compatible API for mainland China',
|
|
120
157
|
requiresToken: true,
|
|
@@ -126,13 +163,21 @@ const providers = {
|
|
|
126
163
|
note: 'Requires extended timeout for large responses'
|
|
127
164
|
},
|
|
128
165
|
zai: {
|
|
129
|
-
name: 'Z.ai (GLM-
|
|
166
|
+
name: 'Z.ai (GLM-5.1/5-Turbo/5/4.7) - ZhiPu Global',
|
|
130
167
|
baseUrl: 'https://api.z.ai/api/anthropic',
|
|
131
168
|
models: [
|
|
132
|
-
'glm-
|
|
133
|
-
'glm-
|
|
169
|
+
'glm-5.1',
|
|
170
|
+
'glm-5-turbo',
|
|
171
|
+
'glm-5',
|
|
134
172
|
'glm-4.7'
|
|
135
173
|
],
|
|
174
|
+
versionAliases: {
|
|
175
|
+
'glm-4.5': 'glm-5.1',
|
|
176
|
+
'glm-4.6': 'glm-5.1',
|
|
177
|
+
'glm-4.7': 'glm-5.1',
|
|
178
|
+
'glm-5': 'glm-5.1',
|
|
179
|
+
'glm-5-turbo': 'glm-5.1'
|
|
180
|
+
},
|
|
136
181
|
authTokenFormat: 'sk-...',
|
|
137
182
|
description: 'Z.ai (ZhiPu AI Global) - Anthropic-compatible API for international users',
|
|
138
183
|
requiresToken: true,
|
|
@@ -194,10 +239,36 @@ function detectProvider(baseUrl) {
|
|
|
194
239
|
return 'custom';
|
|
195
240
|
}
|
|
196
241
|
|
|
242
|
+
/**
|
|
243
|
+
* Get latest model name for a given model
|
|
244
|
+
* @param {string} modelName - Current model name
|
|
245
|
+
* @param {string} providerId - Provider ID
|
|
246
|
+
* @returns {string|null} Latest model name or null if no upgrade available
|
|
247
|
+
*/
|
|
248
|
+
function getLatestModel(modelName, providerId) {
|
|
249
|
+
const provider = providers[providerId];
|
|
250
|
+
if (!provider || !provider.versionAliases) {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
return provider.versionAliases[modelName] || null;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Check if a model has a newer version available
|
|
258
|
+
* @param {string} modelName - Current model name
|
|
259
|
+
* @param {string} providerId - Provider ID
|
|
260
|
+
* @returns {boolean} True if upgrade is available
|
|
261
|
+
*/
|
|
262
|
+
function hasModelUpgrade(modelName, providerId) {
|
|
263
|
+
return getLatestModel(modelName, providerId) !== null;
|
|
264
|
+
}
|
|
265
|
+
|
|
197
266
|
module.exports = {
|
|
198
267
|
providers,
|
|
199
268
|
getAllProviders,
|
|
200
269
|
getProvider,
|
|
201
270
|
getSuggestedModels,
|
|
202
|
-
detectProvider
|
|
271
|
+
detectProvider,
|
|
272
|
+
getLatestModel,
|
|
273
|
+
hasModelUpgrade
|
|
203
274
|
};
|