Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 76 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,14 @@ base64 = "0.23"
# * default-features を切っているのは gzip / json / cookies が要らないため
# (要るのは GET / POST / DELETE と Bearer ヘッダだけ)
ureq = { version = "3.4.0", default-features = false, features = ["rustls"] }
sha2 = "0.10.9"
zeroize = "1.9"
zip = { version = "2.4.2", default-features = false, features = ["deflate"] }
# Snapshot archives are built from validated bytes, never by a host PATH executable.
tar = { version = "0.4", default-features = false }

[target.'cfg(target_os = "macos")'.dependencies]
security-framework = "3.7"

# セッション破棄時のプロセス**グループ**への killpg (procx::kill_tree)。
# portable-pty は子を setsid するため pgid == pid で、グループごと落とせば
Expand Down
188 changes: 184 additions & 4 deletions docs/chatgpt.md

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions locales/en.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
{
"agent.rename.hint": "Double-click to rename, or right-click and choose Rename.",
"chatgpt.runtime_auth_only": "Runtime API Key authenticates the tunnel only. No OpenAI inference API is used.",
"chatgpt.existing_setup": "Existing setup detected.\n[1] Verify\n[2] Repair\n[3] Reconfigure\n[4] Cancel",
"chatgpt.select": "Select",
"chatgpt.use_workspace": "Use this workspace?",
"chatgpt.workspace_path": "Workspace directory",
"chatgpt.image_contract": "Use a trusted Linux Agent image with Qwen ACP and a bundled local model. The test fixture is not a production Agent.",
"chatgpt.image_name": "Agent image name",
"chatgpt.pull_confirm": "Image unavailable/incompatible. Pull this trusted image?",
"chatgpt.pulling": "Pulling Agent image (up to 10 minutes)...",
"chatgpt.tunnel_hint": "Create/select a Secure MCP Tunnel: https://platform.openai.com/settings/organization/tunnels",
"chatgpt.file_fallback": "Secret Service unavailable. Save the Runtime key in a private 0600 file outside the workspace?",
"chatgpt.reset_summary": "This removes the managed profile, ChatGPT configuration/runtime state and stored Runtime API Key.\nThe Platform Tunnel, source code, Docker images and verified client installation are retained.",
"chatgpt.continue": "Continue?",
"chatgpt.manual_check": "Remaining manual check: Open a normal ChatGPT chat and invoke Zaivern once.",
"chatgpt.secret_prompt": "OpenAI Runtime API Key (hidden): ",
"chatgpt.setup_ready": "Local setup is ready. Run: zai chatgpt start\n\nFinal ChatGPT step:\n1. Settings → Plugins / Apps (developer mode)\n2. Create: Zaivern\n3. Connection: Tunnel; select your Zaivern Tunnel\n4. Authentication: None\n5. Create and select Zaivern in a normal ChatGPT chat.\nKeep the bridge running. Registration and invocation still need this manual check.",
"remote.detect_app": "Connect so Norton can detect this app",
"remote.detect_app_hint": "This zai.exe checks release information over HTTPS itself. It does not install updates or change settings. Reopen Norton's program list afterwards.",
"remote.detect_app_busy": "Checking HTTPS from this app…",
Expand Down
16 changes: 16 additions & 0 deletions locales/es.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
{
"agent.rename.hint": "Haz doble clic para cambiar el nombre, o clic derecho y elige Cambiar nombre.",
"chatgpt.runtime_auth_only": "La Runtime API Key solo autentica el túnel. No se usa la API de inferencia de OpenAI.",
"chatgpt.existing_setup": "Se detectó una configuración existente.\n[1] Verificar\n[2] Reparar\n[3] Reconfigurar\n[4] Cancelar",
"chatgpt.select": "Seleccionar",
"chatgpt.use_workspace": "¿Usar este espacio de trabajo?",
"chatgpt.workspace_path": "Directorio del espacio de trabajo",
"chatgpt.image_contract": "Use una imagen Linux Agent de confianza con Qwen ACP y un modelo local incluido. El fixture de prueba no es un Agent de producción.",
"chatgpt.image_name": "Nombre de la imagen Agent",
"chatgpt.pull_confirm": "La imagen no está disponible o es incompatible. ¿Descargar esta imagen de confianza?",
"chatgpt.pulling": "Descargando imagen Agent (hasta 10 minutos)…",
"chatgpt.tunnel_hint": "Crear o seleccionar Secure MCP Tunnel: https://platform.openai.com/settings/organization/tunnels",
"chatgpt.file_fallback": "Secret Service no está disponible. ¿Guardar la Runtime key en un archivo privado 0600 fuera del espacio de trabajo?",
"chatgpt.reset_summary": "Se eliminarán el perfil administrado, la configuración/estado de ChatGPT y la Runtime API Key guardada.\nSe conservarán el Tunnel de Platform, el código fuente, las imágenes Docker y el cliente verificado.",
"chatgpt.continue": "¿Continuar?",
"chatgpt.manual_check": "Comprobación manual pendiente: abra un chat normal de ChatGPT e invoque Zaivern una vez.",
"chatgpt.secret_prompt": "OpenAI Runtime API Key (oculta): ",
"chatgpt.setup_ready": "Configuración local lista. Ejecute: zai chatgpt start\n\nPaso final en ChatGPT:\n1. Ajustes → Plugins / Apps (modo desarrollador)\n2. Crear Zaivern\n3. Conexión: Tunnel; seleccione su Tunnel de Zaivern\n4. Autenticación: None\n5. Crear y seleccionar Zaivern en un chat normal\nMantenga el Bridge ejecutándose. El registro y la invocación requieren esta comprobación manual.",
"remote.detect_app": "Conectar para que Norton detecte la aplicación",
"remote.detect_app_hint": "Este zai.exe consulta directamente información de versiones por HTTPS. No instala actualizaciones ni cambia ajustes. Después, vuelva a abrir la lista de programas de Norton.",
"remote.detect_app_busy": "Comprobando HTTPS desde esta aplicación…",
Expand Down
16 changes: 16 additions & 0 deletions locales/ja.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
{
"agent.rename.hint": "ダブルクリックで名前を変更。右クリックの「名前を変更」からも編集できます。",
"chatgpt.runtime_auth_only": "Runtime API Key は Tunnel 認証専用です。OpenAI の推論 API は使用しません。",
"chatgpt.existing_setup": "既存設定が見つかりました。\n[1] 検証\n[2] 修復\n[3] 再設定\n[4] キャンセル",
"chatgpt.select": "操作を選択",
"chatgpt.use_workspace": "この workspace を使用しますか?",
"chatgpt.workspace_path": "workspace ディレクトリ",
"chatgpt.image_contract": "Qwen ACP とローカルモデルを同梱した信頼できる Linux Agent image を指定します。テスト用 fixture は本番 Agent ではありません。",
"chatgpt.image_name": "Agent image 名",
"chatgpt.pull_confirm": "image が存在しないか非互換です。この信頼済み image を取得しますか?",
"chatgpt.pulling": "Agent image を取得しています(最大10分)…",
"chatgpt.tunnel_hint": "Secure MCP Tunnel の作成・選択: https://platform.openai.com/settings/organization/tunnels",
"chatgpt.file_fallback": "Secret Service が利用できません。workspace 外の専用0600ファイルに Runtime key を保存しますか?",
"chatgpt.reset_summary": "専用 profile、ChatGPT 設定・実行状態、保存済み Runtime API Key を削除します。\nPlatform の Tunnel、ソース、Docker image、検証済み client は保持します。",
"chatgpt.continue": "続行しますか?",
"chatgpt.manual_check": "残る手動確認: ChatGPT の通常 Chat を開き、Zaivern を一度呼び出してください。",
"chatgpt.secret_prompt": "OpenAI Runtime API Key(非表示入力): ",
"chatgpt.setup_ready": "ローカル設定が完了しました。実行: zai chatgpt start\n\nChatGPT 側の最終操作:\n1. 設定 → Plugins / Apps(開発者モード)\n2. Zaivern を新規作成\n3. 接続: Tunnel、Zaivern の Tunnel を選択\n4. 認証: None\n5. 作成後、通常 Chat で Zaivern を選択\nBridge を起動したままにしてください。登録と呼び出しは手動確認が必要です。",
"remote.detect_app": "Norton 検出用の通信を行う",
"remote.detect_app_hint": "この zai.exe 自身が配布元へ HTTPS 接続して更新情報を確認します。設定変更や更新は行いません。通信後に Norton のプログラム一覧を開き直してください。",
"remote.detect_app_busy": "このアプリから HTTPS 通信を確認中…",
Expand Down
16 changes: 16 additions & 0 deletions locales/ko.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
{
"agent.rename.hint": "두 번 클릭하여 이름을 변경하거나, 마우스 오른쪽 버튼을 클릭한 뒤 이름 변경을 선택하세요.",
"chatgpt.runtime_auth_only": "Runtime API Key는 터널 인증 전용입니다. OpenAI 추론 API를 사용하지 않습니다.",
"chatgpt.existing_setup": "기존 설정을 찾았습니다.\n[1] 검증\n[2] 복구\n[3] 재설정\n[4] 취소",
"chatgpt.select": "선택",
"chatgpt.use_workspace": "이 작업 공간을 사용하시겠습니까?",
"chatgpt.workspace_path": "작업 공간 디렉터리",
"chatgpt.image_contract": "Qwen ACP와 로컬 모델이 포함된 신뢰할 수 있는 Linux Agent 이미지를 사용하세요. 테스트 fixture는 운영 Agent가 아닙니다.",
"chatgpt.image_name": "Agent 이미지 이름",
"chatgpt.pull_confirm": "이미지가 없거나 호환되지 않습니다. 이 신뢰할 수 있는 이미지를 가져올까요?",
"chatgpt.pulling": "Agent 이미지 가져오는 중(최대 10분)…",
"chatgpt.tunnel_hint": "Secure MCP Tunnel 생성/선택: https://platform.openai.com/settings/organization/tunnels",
"chatgpt.file_fallback": "Secret Service를 사용할 수 없습니다. 작업 공간 외부의 비공개 0600 파일에 Runtime key를 저장할까요?",
"chatgpt.reset_summary": "전용 profile, ChatGPT 설정/실행 상태 및 저장된 Runtime API Key를 삭제합니다.\nPlatform Tunnel, 소스 코드, Docker 이미지 및 검증된 클라이언트는 유지합니다.",
"chatgpt.continue": "계속하시겠습니까?",
"chatgpt.manual_check": "남은 수동 확인: 일반 ChatGPT 채팅에서 Zaivern을 한 번 호출하세요.",
"chatgpt.secret_prompt": "OpenAI Runtime API Key(입력 숨김): ",
"chatgpt.setup_ready": "로컬 설정 완료. 실행: zai chatgpt start\n\nChatGPT에서 마지막 단계:\n1. 설정 → Plugins / Apps(개발자 모드)\n2. Zaivern 생성\n3. 연결: Tunnel, Zaivern Tunnel 선택\n4. 인증: None\n5. 생성 후 일반 채팅에서 Zaivern 선택\nBridge를 계속 실행하세요. 등록 및 호출은 수동 확인이 필요합니다.",
"remote.detect_app": "Norton이 앱을 감지하도록 연결",
"remote.detect_app_hint": "이 zai.exe가 직접 HTTPS로 릴리스 정보를 확인합니다. 업데이트를 설치하거나 설정을 변경하지 않습니다. 이후 Norton 프로그램 목록을 다시 여세요.",
"remote.detect_app_busy": "이 앱에서 HTTPS 연결 확인 중…",
Expand Down
16 changes: 16 additions & 0 deletions locales/pt-BR.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
{
"agent.rename.hint": "Clique duas vezes para renomear ou clique com o botão direito e escolha Renomear.",
"chatgpt.runtime_auth_only": "A Runtime API Key autentica apenas o túnel. A API de inferência da OpenAI não é usada.",
"chatgpt.existing_setup": "Configuração existente encontrada.\n[1] Verificar\n[2] Reparar\n[3] Reconfigurar\n[4] Cancelar",
"chatgpt.select": "Selecionar",
"chatgpt.use_workspace": "Usar este espaço de trabalho?",
"chatgpt.workspace_path": "Diretório do espaço de trabalho",
"chatgpt.image_contract": "Use uma imagem Linux Agent confiável com Qwen ACP e modelo local incluído. O fixture de teste não é um Agent de produção.",
"chatgpt.image_name": "Nome da imagem Agent",
"chatgpt.pull_confirm": "Imagem indisponível ou incompatível. Baixar esta imagem confiável?",
"chatgpt.pulling": "Baixando imagem Agent (até 10 minutos)…",
"chatgpt.tunnel_hint": "Criar ou selecionar Secure MCP Tunnel: https://platform.openai.com/settings/organization/tunnels",
"chatgpt.file_fallback": "Secret Service indisponível. Salvar a Runtime key em arquivo privado 0600 fora do espaço de trabalho?",
"chatgpt.reset_summary": "Remove o perfil gerenciado, a configuração/estado do ChatGPT e a Runtime API Key salva.\nMantém o Tunnel da Platform, código-fonte, imagens Docker e cliente verificado.",
"chatgpt.continue": "Continuar?",
"chatgpt.manual_check": "Verificação manual restante: abra um chat normal do ChatGPT e invoque Zaivern uma vez.",
"chatgpt.secret_prompt": "OpenAI Runtime API Key (oculta): ",
"chatgpt.setup_ready": "Configuração local pronta. Execute: zai chatgpt start\n\nEtapa final no ChatGPT:\n1. Configurações → Plugins / Apps (modo desenvolvedor)\n2. Criar Zaivern\n3. Conexão: Tunnel; selecione seu Tunnel do Zaivern\n4. Autenticação: None\n5. Criar e selecionar Zaivern em um chat normal\nMantenha o Bridge em execução. Registro e chamada ainda exigem verificação manual.",
"remote.detect_app": "Conectar para o Norton detectar o app",
"remote.detect_app_hint": "Este zai.exe consulta informações de versões via HTTPS diretamente. Não instala atualizações nem altera configurações. Depois, reabra a lista de programas do Norton.",
"remote.detect_app_busy": "Verificando HTTPS a partir deste app…",
Expand Down
16 changes: 16 additions & 0 deletions locales/zh-CN.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
{
"agent.rename.hint": "双击可重命名,也可右键单击并选择“重命名”。",
"chatgpt.runtime_auth_only": "Runtime API Key 仅用于隧道认证,不调用 OpenAI 推理 API。",
"chatgpt.existing_setup": "检测到现有配置。\n[1] 验证\n[2] 修复\n[3] 重新配置\n[4] 取消",
"chatgpt.select": "选择",
"chatgpt.use_workspace": "使用此工作区?",
"chatgpt.workspace_path": "工作区目录",
"chatgpt.image_contract": "请使用包含 Qwen ACP 和本地模型的可信 Linux Agent 镜像。测试 fixture 不是生产 Agent。",
"chatgpt.image_name": "Agent 镜像名称",
"chatgpt.pull_confirm": "镜像不可用或不兼容。拉取此可信镜像?",
"chatgpt.pulling": "正在拉取 Agent 镜像(最多10分钟)…",
"chatgpt.tunnel_hint": "创建或选择 Secure MCP Tunnel:https://platform.openai.com/settings/organization/tunnels",
"chatgpt.file_fallback": "Secret Service 不可用。将 Runtime key 保存到工作区外的私有0600文件?",
"chatgpt.reset_summary": "将删除专用 profile、ChatGPT 配置和运行状态以及已保存的 Runtime API Key。\n保留 Platform Tunnel、源代码、Docker 镜像和已验证的客户端。",
"chatgpt.continue": "继续?",
"chatgpt.manual_check": "剩余手动检查:打开普通 ChatGPT 对话并调用一次 Zaivern。",
"chatgpt.secret_prompt": "OpenAI Runtime API Key(隐藏输入):",
"chatgpt.setup_ready": "本地配置已就绪。运行:zai chatgpt start\n\nChatGPT 最后一步:\n1. 设置 → Plugins / Apps(开发者模式)\n2. 创建 Zaivern\n3. 连接:Tunnel;选择 Zaivern Tunnel\n4. 认证:None\n5. 创建后在普通对话中选择 Zaivern\n请保持 Bridge 运行。注册和调用仍需手动确认。",
"remote.detect_app": "发起通信以便 Norton 检测此应用",
"remote.detect_app_hint": "此 zai.exe 将自行通过 HTTPS 查询发布信息,不安装更新或更改设置。通信后请重新打开 Norton 的程序列表。",
"remote.detect_app_busy": "正在从此应用检查 HTTPS 通信…",
Expand Down
Loading
Loading