diff --git a/agent/app/service/file.go b/agent/app/service/file.go index a375129b82ee..ef03130acf64 100644 --- a/agent/app/service/file.go +++ b/agent/app/service/file.go @@ -1109,7 +1109,7 @@ func (f *FileService) ReadLogByLine(req request.FileReadByLineReq) (*response.Fi logFilePath, _ = ini_conf.GetIniValue(configPath, "supervisord", "logfile") case constant.Supervisor: logFilePath = path.Join(global.Dir.DataDir, "tools", "supervisord", "log", req.Name) - case "ai-proxy": + case "ai-proxy", "skills-hub": safeName := path.Base(req.Name) if safeName != req.Name || strings.Contains(safeName, "..") { return nil, buserr.New("ErrInvalidParams") diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 3c6cfd4148d1..2716c33e4df9 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -1103,6 +1103,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Skill List', + serverTab: 'Server', upload: 'Upload Skill', importSkill: 'Import Skill', repositoryAddress: 'Repository Address', @@ -1160,6 +1162,23 @@ const message = { noInstallTarget: 'No custom agent is available. Configure an install target first.', postInstallConfirm: 'This target has a post-install command. Confirm the command is trusted before running.', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: 'Are you sure you want to {0} the Skills Hub server?', + serverAccessSetting: 'Service Access Settings', + serverInfo: 'Server Information', + tokenSetting: 'Token Settings', + externalUrl: 'External URL', + externalUrlRequired: 'Enter the external URL first.', + skillctlDownloadUrl: 'skillctl download URL', + skillctlArchitecture: 'Server Architecture', + registryUrl: 'Registry URL', + loginCommand: 'Login Command', + installCommand: 'Install Command', + createToken: 'Create Token', + tokenCreated: 'Token Created', + tokenVisibleOnce: 'The token is shown only once. Copy and save it now.', + disableTokenConfirm: 'Disable this token? skillctl clients using it will no longer install skills.', + deleteTokenConfirm: 'Delete this token? This cannot be undone.', status: { pending: 'Pending', approved: 'Approved', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 1279c3aa6ad8..bfc6de67f931 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -1120,6 +1120,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Lista de Skills', + serverTab: 'Servidor', upload: 'Subir Skill', importSkill: 'Importar Skill', repositoryAddress: 'Dirección del repositorio', @@ -1178,6 +1180,24 @@ const message = { noInstallTarget: 'No hay agentes personalizados disponibles. Configure primero un destino de instalación.', postInstallConfirm: 'Este destino tiene un comando posterior a la instalación. Confirme que el comando es confiable antes de ejecutarlo.', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: '¿Seguro que desea {0} el servidor Skills Hub?', + serverAccessSetting: 'Configuración de acceso al servicio', + serverInfo: 'Información del servidor', + tokenSetting: 'Configuración de Token', + externalUrl: 'URL externa', + externalUrlRequired: 'Introduzca primero la URL externa.', + skillctlDownloadUrl: 'URL de descarga de skillctl', + skillctlArchitecture: 'Arquitectura del servidor', + registryUrl: 'URL del Registry', + loginCommand: 'Comando de inicio de sesión', + installCommand: 'Comando de instalación', + createToken: 'Crear Token', + tokenCreated: 'Token creado', + tokenVisibleOnce: 'El token en texto claro solo se muestra una vez. Cópielo y guárdelo ahora.', + disableTokenConfirm: + '¿Desactivar este Token? Después de desactivarlo, skillctl que use este Token ya no podrá instalar Skills.', + deleteTokenConfirm: '¿Eliminar este Token? Esta acción no se puede deshacer.', status: { pending: 'Pendiente', approved: 'Aprobado', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index f4f9790a5691..3938d89818bd 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -1110,6 +1110,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Skill リスト', + serverTab: 'サーバー', upload: 'Skill をアップロード', importSkill: 'Skill をインポート', repositoryAddress: 'リポジトリアドレス', @@ -1169,6 +1171,24 @@ const message = { noInstallTarget: '利用可能なカスタムエージェントがありません。先にインストール先を設定してください。', postInstallConfirm: 'この対象にはインストール後コマンドが設定されています。実行前に信頼できるコマンドか確認してください。', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: 'Skills Hub サーバーを{0}しますか?', + serverAccessSetting: 'サービスアクセス設定', + serverInfo: 'サーバー情報', + tokenSetting: 'Token 設定', + externalUrl: '外部アクセス URL', + externalUrlRequired: '先に外部アクセス URL を入力してください。', + skillctlDownloadUrl: 'skillctl ダウンロード URL', + skillctlArchitecture: 'サーバーアーキテクチャ', + registryUrl: 'Registry URL', + loginCommand: 'ログインコマンド', + installCommand: 'インストールコマンド', + createToken: 'Token を作成', + tokenCreated: 'Token が作成されました', + tokenVisibleOnce: 'Token の平文は一度だけ表示されます。すぐにコピーして保存してください。', + disableTokenConfirm: + 'この Token を無効にしますか?無効にすると、この Token を使用する skillctl は Skill をインストールできなくなります。', + deleteTokenConfirm: 'この Token を削除しますか?削除後は元に戻せません。', status: { pending: 'レビュー待ち', approved: '承認済み', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index 25528437ae70..2630b4ace986 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -1094,6 +1094,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Skill 목록', + serverTab: '서버', upload: 'Skill 업로드', importSkill: 'Skill 가져오기', repositoryAddress: '저장소 주소', @@ -1152,6 +1154,24 @@ const message = { noInstallTarget: '사용 가능한 사용자 지정 에이전트가 없습니다. 먼저 설치 대상을 구성하세요.', postInstallConfirm: '이 대상에는 설치 후 명령이 구성되어 있습니다. 실행 전에 신뢰할 수 있는 명령인지 확인하세요.', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: 'Skills Hub 서버를 {0}하시겠습니까?', + serverAccessSetting: '서비스 접근 설정', + serverInfo: '서버 정보', + tokenSetting: 'Token 설정', + externalUrl: '외부 접근 주소', + externalUrlRequired: '먼저 외부 접근 주소를 입력하세요.', + skillctlDownloadUrl: 'skillctl 다운로드 주소', + skillctlArchitecture: '서버 아키텍처', + registryUrl: 'Registry 주소', + loginCommand: '로그인 명령', + installCommand: '설치 명령', + createToken: 'Token 생성', + tokenCreated: 'Token 생성됨', + tokenVisibleOnce: 'Token 원문은 한 번만 표시됩니다. 즉시 복사하여 저장하세요.', + disableTokenConfirm: + '이 Token을 비활성화하시겠습니까? 비활성화하면 이 Token을 사용하는 skillctl은 더 이상 Skill을 설치할 수 없습니다.', + deleteTokenConfirm: '이 Token을 삭제하시겠습니까? 삭제 후 복구할 수 없습니다.', status: { pending: '검토 대기', approved: '승인됨', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 7b6b7cd946a4..8e1a409c2989 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -1119,6 +1119,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Senarai Skill', + serverTab: 'Pelayan', upload: 'Muat naik Skill', importSkill: 'Import Skill', repositoryAddress: 'Alamat repositori', @@ -1176,6 +1178,24 @@ const message = { noInstallTarget: 'Tiada agen tersuai tersedia. Konfigurasikan sasaran pemasangan dahulu.', postInstallConfirm: 'Sasaran ini mempunyai arahan selepas pemasangan. Sahkan arahan tersebut dipercayai sebelum dijalankan.', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: 'Sahkan operasi {0} untuk pelayan Skills Hub?', + serverAccessSetting: 'Tetapan akses perkhidmatan', + serverInfo: 'Maklumat pelayan', + tokenSetting: 'Tetapan Token', + externalUrl: 'Alamat akses luaran', + externalUrlRequired: 'Masukkan alamat akses luaran dahulu.', + skillctlDownloadUrl: 'Alamat muat turun skillctl', + skillctlArchitecture: 'Seni bina pelayan', + registryUrl: 'Alamat Registry', + loginCommand: 'Arahan log masuk', + installCommand: 'Arahan pemasangan', + createToken: 'Cipta Token', + tokenCreated: 'Token telah dicipta', + tokenVisibleOnce: 'Teks jelas Token hanya dipaparkan sekali. Sila salin dan simpan segera.', + disableTokenConfirm: + 'Sahkan nyahdayakan Token ini? Selepas dinyahdayakan, skillctl yang menggunakan Token ini tidak lagi boleh memasang Skill.', + deleteTokenConfirm: 'Sahkan padam Token ini? Selepas dipadam, ia tidak boleh dipulihkan.', status: { pending: 'Menunggu semakan', approved: 'Diluluskan', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index a9bfd423b426..078304e6db89 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -1115,6 +1115,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Lista de Skills', + serverTab: 'Servidor', upload: 'Enviar Skill', importSkill: 'Importar Skill', repositoryAddress: 'Endereço do repositório', @@ -1173,6 +1175,24 @@ const message = { noInstallTarget: 'Nenhum agente personalizado disponível. Configure primeiro um destino de instalação.', postInstallConfirm: 'Este destino tem um comando pós-instalação. Confirme que o comando é confiável antes de executá-lo.', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: 'Tem certeza de que deseja {0} o servidor Skills Hub?', + serverAccessSetting: 'Configurações de acesso ao serviço', + serverInfo: 'Informações do servidor', + tokenSetting: 'Configurações de Token', + externalUrl: 'URL externa', + externalUrlRequired: 'Insira a URL externa primeiro.', + skillctlDownloadUrl: 'URL de download do skillctl', + skillctlArchitecture: 'Arquitetura do servidor', + registryUrl: 'URL do Registry', + loginCommand: 'Comando de login', + installCommand: 'Comando de instalação', + createToken: 'Criar Token', + tokenCreated: 'Token criado', + tokenVisibleOnce: 'O token em texto claro é exibido apenas uma vez. Copie e salve agora.', + disableTokenConfirm: + 'Desativar este Token? Após desativado, o skillctl que usa este Token não poderá mais instalar Skills.', + deleteTokenConfirm: 'Excluir este Token? Esta ação não pode ser desfeita.', status: { pending: 'Pendente', approved: 'Aprovado', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 59d794220790..f44f1b3cc459 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -1109,6 +1109,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Список Skills', + serverTab: 'Сервер', upload: 'Загрузить Skill', importSkill: 'Импортировать Skill', repositoryAddress: 'Адрес репозитория', @@ -1168,6 +1170,24 @@ const message = { noInstallTarget: 'Нет доступных пользовательских агентов. Сначала настройте цель установки.', postInstallConfirm: 'Для этой цели настроена команда после установки. Перед выполнением убедитесь, что команда надежна.', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: 'Подтвердить действие «{0}» для сервера Skills Hub?', + serverAccessSetting: 'Настройки доступа к сервису', + serverInfo: 'Информация о сервере', + tokenSetting: 'Настройки Token', + externalUrl: 'Внешний URL', + externalUrlRequired: 'Сначала введите внешний URL.', + skillctlDownloadUrl: 'URL для скачивания skillctl', + skillctlArchitecture: 'Архитектура сервера', + registryUrl: 'URL Registry', + loginCommand: 'Команда входа', + installCommand: 'Команда установки', + createToken: 'Создать Token', + tokenCreated: 'Token создан', + tokenVisibleOnce: 'Значение Token показывается только один раз. Скопируйте и сохраните его сейчас.', + disableTokenConfirm: + 'Отключить этот Token? После отключения skillctl, использующий этот Token, больше не сможет устанавливать Skills.', + deleteTokenConfirm: 'Удалить этот Token? Это действие нельзя отменить.', status: { pending: 'Ожидает проверки', approved: 'Одобрен', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index b67c74404a5b..8c3ec2d9087d 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -1117,6 +1117,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Skill Listesi', + serverTab: 'Sunucu', upload: 'Skill yükle', importSkill: 'Skill içe aktar', repositoryAddress: 'Depo adresi', @@ -1175,6 +1177,24 @@ const message = { noInstallTarget: 'Kullanılabilir özel ajan yok. Önce bir kurulum hedefi yapılandırın.', postInstallConfirm: 'Bu hedefte kurulum sonrası komut yapılandırılmış. Çalıştırmadan önce komutun güvenilir olduğunu doğrulayın.', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: 'Skills Hub Server için {0} işlemini onaylıyor musunuz?', + serverAccessSetting: 'Hizmet erişim ayarları', + serverInfo: 'Sunucu bilgileri', + tokenSetting: 'Token ayarları', + externalUrl: 'Dış erişim adresi', + externalUrlRequired: 'Önce dış erişim adresini girin.', + skillctlDownloadUrl: 'skillctl indirme adresi', + skillctlArchitecture: 'Sunucu mimarisi', + registryUrl: 'Registry adresi', + loginCommand: 'Giriş komutu', + installCommand: 'Kurulum komutu', + createToken: 'Token oluştur', + tokenCreated: 'Token oluşturuldu', + tokenVisibleOnce: 'Token açık metni yalnızca bir kez gösterilir. Lütfen hemen kopyalayıp kaydedin.', + disableTokenConfirm: + 'Bu Token devre dışı bırakılsın mı? Devre dışı bırakıldıktan sonra bu Tokenı kullanan skillctl artık Skill kuramaz.', + deleteTokenConfirm: 'Bu Token silinsin mi? Silindikten sonra geri alınamaz.', status: { pending: 'İnceleme bekliyor', approved: 'Onaylandı', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index afd69816b11d..ec0b633da1c7 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -1056,6 +1056,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Skill 列表', + serverTab: '服務端', upload: '上傳 Skill', importSkill: '匯入 Skill', repositoryAddress: '倉庫地址', @@ -1110,6 +1112,23 @@ const message = { deleteTargetConfirm: '確認刪除該自訂智能體?刪除後使用者不能繼續選擇該安裝目標。', noInstallTarget: '暫無可用的自訂智能體,請先設定安裝目標。', postInstallConfirm: '該目標設定了安裝後命令,執行前請確認該命令可信。', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: '確認{0} Skills Hub 服務端?', + serverAccessSetting: '服務訪問設定', + serverInfo: '服務端資訊', + tokenSetting: 'Token 設定', + externalUrl: '外部訪問地址', + externalUrlRequired: '請先輸入外部訪問地址。', + skillctlDownloadUrl: 'skillctl 下載地址', + skillctlArchitecture: '伺服器架構', + registryUrl: 'Registry 地址', + loginCommand: '登入命令', + installCommand: '安裝命令', + createToken: '建立 Token', + tokenCreated: 'Token 已建立', + tokenVisibleOnce: 'Token 明文僅顯示一次,請及時複製保存。', + disableTokenConfirm: '確認停用該 Token?停用後使用該 Token 的 skillctl 將無法繼續安裝 Skill。', + deleteTokenConfirm: '確認刪除該 Token?刪除後不可恢復。', status: { pending: '待審核', approved: '已審核', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 02b41b077278..268821be79a7 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -1045,6 +1045,8 @@ const message = { }, skillsHub: { title: 'Skills Hub', + skillList: 'Skill 列表', + serverTab: '服务端', upload: '上传 Skill', importSkill: '导入 Skill', repositoryAddress: '仓库地址', @@ -1099,6 +1101,23 @@ const message = { deleteTargetConfirm: '确认删除该自定义智能体?删除后用户不能继续选择该安装目标。', noInstallTarget: '暂无可用的自定义智能体,请先配置安装目标。', postInstallConfirm: '该目标配置了安装后命令,执行前请确认该命令可信。', + serverStatusTitle: 'Skills Hub Server', + serverServiceOperateConfirm: '确认{0} Skills Hub 服务端?', + serverAccessSetting: '服务访问设置', + serverInfo: '服务端信息', + tokenSetting: 'Token 设置', + externalUrl: '外部访问地址', + externalUrlRequired: '请先输入外部访问地址。', + skillctlDownloadUrl: 'skillctl 下载地址', + skillctlArchitecture: '服务器架构', + registryUrl: 'Registry 地址', + loginCommand: '登录命令', + installCommand: '安装命令', + createToken: '创建 Token', + tokenCreated: 'Token 已创建', + tokenVisibleOnce: 'Token 明文仅展示一次,请及时复制保存。', + disableTokenConfirm: '确认停用该 Token?停用后使用该 Token 的 skillctl 将无法继续安装 Skill。', + deleteTokenConfirm: '确认删除该 Token?删除后不可恢复。', status: { pending: '待审核', approved: '已审核',