device-center 0.2.0-beta.5 → 0.2.0-beta.6

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/src/messages.js CHANGED
@@ -3,7 +3,7 @@ export const messages = {
3
3
  "language": "语言",
4
4
  "guide.title": "开始试用 · Device Center",
5
5
  "guide.open": "进入设备面板 ↗",
6
- "guide.badge": "开发预览 · 0.2.0-beta.5 · MIT",
6
+ "guide.badge": "开发预览 · 0.2.0-beta.6 · MIT",
7
7
  "guide.hero": "让你的 Agent 看见自己的闲置电脑。",
8
8
  "guide.lead": "查看设备资源、记住每台电脑的用途,并在单独授权后读取指定日志。把安装交给本机 Agent,从一台电脑开始。",
9
9
  "guide.platform": "macOS / Linux / Windows 11 候选 · Node.js 24+",
@@ -322,7 +322,7 @@ export const messages = {
322
322
  "panel.224": "复制给 Agent",
323
323
  "panel.225": "查看完整安装说明",
324
324
  "panel.226": "交给 Agent 的安装说明",
325
- "panel.227": "支持 macOS / Linux / Windows 11,需要 Node.js 24。说明固定使用 0.2.0-beta.5。本页只复制说明;安装由你交给的 Agent 在本机执行。",
325
+ "panel.227": "支持 macOS / Linux / Windows 11,需要 Node.js 24。说明固定使用 0.2.0-beta.6。本页只复制说明;安装由你交给的 Agent 在本机执行。",
326
326
  "panel.228": "已复制。粘贴给目标电脑上的 Agent;需要绑定时由你登录并核对。",
327
327
  "panel.229": "请手动复制已选中的安装说明。",
328
328
  "panel.230": "无法确认管理电脑",
@@ -826,13 +826,29 @@ export const messages = {
826
826
  "walk.windowsBody": "在目标电脑打开普通用户 PowerShell(不是命令提示符或 WSL),粘贴整段脚本并按回车。安装前核对脚本,失败时保留窗口。",
827
827
  "walk.openWindows": "开始菜单 → 搜索 PowerShell → 打开(无需管理员)",
828
828
  "prompt.windowsEnvironment": "检查 Windows 11、PowerShell 5.1+、Node.js >=24、npm.cmd 与当前 Agent 的 MCP 支持。在普通用户 PowerShell 执行,不使用 WSL 或 npm.ps1。每个原生命令后检查 $LASTEXITCODE,非零停止;不改执行策略、不提权。缺少 Node.js 时使用官方来源。",
829
- "prompt.windowsBackground": "先查看计划,再明确安装当前用户登录任务并核验状态。无需 AD、管理员或账号密码,不改组策略。失败保留现场,可改用前台。身份由本机 DPAPI 当前用户加密及 NTFS ACL 保护;不搬运身份文件。注销、休眠或断网时无法回报。"
829
+ "prompt.windowsBackground": "先查看计划,再明确安装当前用户登录任务并核验状态。无需 AD、管理员或账号密码,不改组策略。失败保留现场,可改用前台。身份由本机 DPAPI 当前用户加密及 NTFS ACL 保护;不搬运身份文件。注销、休眠或断网时无法回报。",
830
+ "cli.title": "授权 CLI 管理",
831
+ "cli.intro": "只批准你刚在自己的管理电脑发起的请求。核对终端里的完整公钥指纹。",
832
+ "cli.duration": "有效期 {minutes} 分钟",
833
+ "cli.read": "查看本账号设备和资源状态",
834
+ "cli.profile": "修改设备名称、类型、用途、标签和声明服务",
835
+ "cli.collect": "请求设备采集已获准的内存、磁盘字段",
836
+ "cli.boundary": "此授权不包含日志、SSH 登录、任意命令或文件访问。设备私钥仍留在本机;日志需另行授权。",
837
+ "cli.approve": "指纹一致,授权 CLI",
838
+ "cli.done": "CLI 已获准,终端会自动继续。",
839
+ "cli.manage": "CLI 授权管理",
840
+ "cli.manageBody": "授权到期自动失效。撤销只影响 CLI 管理权限,设备绑定与资源回报保留。",
841
+ "cli.active": "有效",
842
+ "cli.inactive": "已失效",
843
+ "cli.revoke": "撤销 CLI 授权",
844
+ "cli.empty": "暂无 CLI 授权。请在管理电脑执行 device-center auth login --confirm。",
845
+ "cli.missing": "请求已失效或结果未知。先在终端运行 auth status;需要时重新 auth login。"
830
846
  },
831
847
  "zh-TW": {
832
848
  "language": "語言",
833
849
  "guide.title": "開始試用 · Device Center",
834
850
  "guide.open": "進入裝置面板 ↗",
835
- "guide.badge": "開發預覽 · 0.2.0-beta.5 · MIT",
851
+ "guide.badge": "開發預覽 · 0.2.0-beta.6 · MIT",
836
852
  "guide.hero": "讓你的 Agent 看見自己的閒置電腦。",
837
853
  "guide.lead": "查看裝置資源、記住每台電腦的用途,並在另外授權後讀取指定日誌。把安裝交給本機 Agent,從一台電腦開始。",
838
854
  "guide.platform": "macOS / Linux / Windows 11 候選 · Node.js 24+",
@@ -1151,7 +1167,7 @@ export const messages = {
1151
1167
  "panel.224": "複製給 Agent",
1152
1168
  "panel.225": "查看完整安裝說明",
1153
1169
  "panel.226": "交給 Agent 的安裝說明",
1154
- "panel.227": "支持 macOS / Linux / Windows 11,需要 Node.js 24。說明固定使用 0.2.0-beta.5。本頁只複製說明;安裝由你交給的 Agent 在本機執行。",
1170
+ "panel.227": "支持 macOS / Linux / Windows 11,需要 Node.js 24。說明固定使用 0.2.0-beta.6。本頁只複製說明;安裝由你交給的 Agent 在本機執行。",
1155
1171
  "panel.228": "已複製。粘貼給目標電腦上的 Agent;需要綁定時由你登入並核對。",
1156
1172
  "panel.229": "請手動複製已選中的安裝說明。",
1157
1173
  "panel.230": "無法確認管理電腦",
@@ -1655,13 +1671,29 @@ export const messages = {
1655
1671
  "walk.windowsBody": "在目標電腦開啟一般使用者 PowerShell(非命令提示字元或 WSL),貼上整段腳本並按 Enter。執行前核對腳本,失敗請保留視窗。",
1656
1672
  "walk.openWindows": "開始功能表 → 搜尋 PowerShell → 開啟(無需管理員)",
1657
1673
  "prompt.windowsEnvironment": "確認 Windows 11、PowerShell 5.1+、Node.js >=24、npm.cmd 及 Agent 的 MCP 支援。使用一般使用者 PowerShell,不用 WSL 或 npm.ps1。逐步檢查 $LASTEXITCODE,非零停止;不改執行原則或提權。Node.js 僅用官方來源。",
1658
- "prompt.windowsBackground": "先檢視計畫,再明確安裝目前使用者登入工作並驗證狀態。無需 AD、管理員或密碼,不改群組原則。失敗保留現場,可改前景執行。身分以本機 DPAPI 與 NTFS ACL 保護,不搬移身分檔。登出、休眠或斷網無法回報。"
1674
+ "prompt.windowsBackground": "先檢視計畫,再明確安裝目前使用者登入工作並驗證狀態。無需 AD、管理員或密碼,不改群組原則。失敗保留現場,可改前景執行。身分以本機 DPAPI 與 NTFS ACL 保護,不搬移身分檔。登出、休眠或斷網無法回報。",
1675
+ "cli.title": "授權 CLI 管理",
1676
+ "cli.intro": "只批准剛在自己管理電腦發起的請求。核對終端裡的完整公鑰指紋。",
1677
+ "cli.duration": "有效期 {minutes} 分鐘",
1678
+ "cli.read": "查看本帳號裝置及資源狀態",
1679
+ "cli.profile": "修改裝置名稱、類型、用途、標籤及宣告服務",
1680
+ "cli.collect": "請求裝置收集已獲准的記憶體、磁碟欄位",
1681
+ "cli.boundary": "不包含日誌、SSH 登入、任意命令或檔案存取。私鑰留在本機;日誌另行授權。",
1682
+ "cli.approve": "指紋一致,授權 CLI",
1683
+ "cli.done": "CLI 已獲准,終端會自動繼續。",
1684
+ "cli.manage": "CLI 授權管理",
1685
+ "cli.manageBody": "到期自動失效。撤銷只影響 CLI 管理權限,保留裝置綁定及資源回報。",
1686
+ "cli.active": "有效",
1687
+ "cli.inactive": "已失效",
1688
+ "cli.revoke": "撤銷 CLI 授權",
1689
+ "cli.empty": "尚無 CLI 授權。請執行 device-center auth login --confirm。",
1690
+ "cli.missing": "請求已失效或結果未知。先執行 auth status,需要時重新 auth login。"
1659
1691
  },
1660
1692
  "en": {
1661
1693
  "language": "Language",
1662
1694
  "guide.title": "Get started · Device Center",
1663
1695
  "guide.open": "Open device dashboard ↗",
1664
- "guide.badge": "Development preview · 0.2.0-beta.5 · MIT",
1696
+ "guide.badge": "Development preview · 0.2.0-beta.6 · MIT",
1665
1697
  "guide.hero": "Let your Agent see your spare computers.",
1666
1698
  "guide.lead": "View device resources and roles, and read specific logs after separate approval. Let your local Agent handle setup, starting with one computer.",
1667
1699
  "guide.platform": "macOS / Linux / Windows 11 candidate · Node.js 24+",
@@ -1980,7 +2012,7 @@ export const messages = {
1980
2012
  "panel.224": "Copy for Agent",
1981
2013
  "panel.225": "View full setup instructions",
1982
2014
  "panel.226": "Instructions for your Agent",
1983
- "panel.227": "macOS / Linux / Windows 11 and Node.js 24 required. Instructions pin 0.2.0-beta.5. This page only copies; your chosen local Agent performs installation.",
2015
+ "panel.227": "macOS / Linux / Windows 11 and Node.js 24 required. Instructions pin 0.2.0-beta.6. This page only copies; your chosen local Agent performs installation.",
1984
2016
  "panel.228": "Copied. Paste into your target computer’s Agent. Sign in and verify binding yourself.",
1985
2017
  "panel.229": "Manually copy the selected setup instructions.",
1986
2018
  "panel.230": "Cannot confirm management computer",
@@ -2484,13 +2516,29 @@ export const messages = {
2484
2516
  "walk.windowsBody": "Open a normal-user PowerShell window on the target computer (not Command Prompt or WSL). Review, paste the entire script and press Enter. Keep the window if it fails.",
2485
2517
  "walk.openWindows": "Start → search PowerShell → Open (no administrator required)",
2486
2518
  "prompt.windowsEnvironment": "Check Windows 11, PowerShell 5.1+, Node.js >=24, npm.cmd and the Agent’s MCP support. Use normal-user PowerShell, not WSL or npm.ps1. Check $LASTEXITCODE after every native command; stop on nonzero. Do not change execution policy or elevate. Use official Node.js sources.",
2487
- "prompt.windowsBackground": "Review the plan, explicitly install the current-user logon task, then verify status. No AD, administrator, password or policy changes. Preserve failures; offer foreground mode. Local DPAPI CurrentUser encryption and NTFS ACLs protect identity; do not move identity files. No reporting while logged out, sleeping or offline."
2519
+ "prompt.windowsBackground": "Review the plan, explicitly install the current-user logon task, then verify status. No AD, administrator, password or policy changes. Preserve failures; offer foreground mode. Local DPAPI CurrentUser encryption and NTFS ACLs protect identity; do not move identity files. No reporting while logged out, sleeping or offline.",
2520
+ "cli.title": "Authorize CLI management",
2521
+ "cli.intro": "Approve only the request you just started on your management computer. Compare the full public key fingerprint with your terminal.",
2522
+ "cli.duration": "Valid for {minutes} minutes",
2523
+ "cli.read": "View this account’s devices and resource status",
2524
+ "cli.profile": "Edit device names, types, purposes, tags and declared services",
2525
+ "cli.collect": "Request collection of already approved memory and disk fields",
2526
+ "cli.boundary": "Excludes logs, SSH login, arbitrary commands and file access. Private keys stay on the device. Logs need separate grants.",
2527
+ "cli.approve": "Fingerprints match — authorize CLI",
2528
+ "cli.done": "CLI authorized. Your terminal continues automatically.",
2529
+ "cli.manage": "Manage CLI access",
2530
+ "cli.manageBody": "Access expires automatically. Revoking CLI management preserves device binding and resource reports.",
2531
+ "cli.active": "Active",
2532
+ "cli.inactive": "Inactive",
2533
+ "cli.revoke": "Revoke CLI access",
2534
+ "cli.empty": "No CLI grants. Run device-center auth login --confirm on your management computer.",
2535
+ "cli.missing": "Request expired or outcome unknown. Run auth status first; use auth login again if needed."
2488
2536
  },
2489
2537
  "ja": {
2490
2538
  "language": "言語",
2491
2539
  "guide.title": "はじめる · Device Center",
2492
2540
  "guide.open": "デバイス画面へ ↗",
2493
- "guide.badge": "開発プレビュー · 0.2.0-beta.5 · MIT",
2541
+ "guide.badge": "開発プレビュー · 0.2.0-beta.6 · MIT",
2494
2542
  "guide.hero": "手元の空きパソコンを、Agent のリソースに。",
2495
2543
  "guide.lead": "リソースと各パソコンの用途を確認し、個別の許可を得て指定ログを読み取ります。まずは1台から、ローカルの Agent にセットアップを任せられます。",
2496
2544
  "guide.platform": "macOS / Linux / Windows 11 開発候補 · Node.js 24+",
@@ -2809,7 +2857,7 @@ export const messages = {
2809
2857
  "panel.224": "Agent 用にコピー",
2810
2858
  "panel.225": "インストール手順を表示",
2811
2859
  "panel.226": "Agent に渡すインストール手順",
2812
- "panel.227": "macOS / Linux / Windows 11 と Node.js 24 に対応。固定バージョン 0.2.0-beta.5 を使用します。この画面は手順のコピーのみで、渡した Agent がローカルでインストールします。",
2860
+ "panel.227": "macOS / Linux / Windows 11 と Node.js 24 に対応。固定バージョン 0.2.0-beta.6 を使用します。この画面は手順のコピーのみで、渡した Agent がローカルでインストールします。",
2813
2861
  "panel.228": "コピーしました。対象コンピューターの Agent に貼り付け、必要な登録は本人がログインして確認してください。",
2814
2862
  "panel.229": "選択された手順を手動でコピーしてください。",
2815
2863
  "panel.230": "管理コンピューターを確認できません",
@@ -3313,13 +3361,29 @@ export const messages = {
3313
3361
  "walk.windowsBody": "対象パソコンで通常ユーザーの PowerShell を開きます(コマンドプロンプトや WSL ではありません)。内容を確認してスクリプト全体を貼り付け、Enter。失敗時はウィンドウを残してください。",
3314
3362
  "walk.openWindows": "スタート → PowerShell を検索 → 開く(管理者権限不要)",
3315
3363
  "prompt.windowsEnvironment": "Windows 11、PowerShell 5.1+、Node.js >=24、npm.cmd、Agent の MCP 対応を確認。通常ユーザーの PowerShell を使い、WSL や npm.ps1 は使わないでください。各コマンドの $LASTEXITCODE を確認し、非ゼロなら停止。実行ポリシーや権限を変更せず、Node.js は公式から取得してください。",
3316
- "prompt.windowsBackground": "計画を確認後、現在のユーザーのログオンタスクを明示的にインストールし状態を検証。AD、管理者、パスワードやポリシー変更は不要。失敗時は状態を保持し前景起動を提案。識別情報はローカル DPAPI と NTFS ACL で保護し、ファイルを移動しないでください。ログアウト、スリープ、オフライン中は送信できません。"
3364
+ "prompt.windowsBackground": "計画を確認後、現在のユーザーのログオンタスクを明示的にインストールし状態を検証。AD、管理者、パスワードやポリシー変更は不要。失敗時は状態を保持し前景起動を提案。識別情報はローカル DPAPI と NTFS ACL で保護し、ファイルを移動しないでください。ログアウト、スリープ、オフライン中は送信できません。",
3365
+ "cli.title": "CLI 管理を許可",
3366
+ "cli.intro": "自分の管理端末で開始した要求だけを承認してください。端末の公開鍵フィンガープリント全体と照合します。",
3367
+ "cli.duration": "有効期間 {minutes} 分",
3368
+ "cli.read": "このアカウントのデバイスとリソース状態を表示",
3369
+ "cli.profile": "デバイス名、種類、用途、タグ、申告サービスを編集",
3370
+ "cli.collect": "承認済みのメモリ・ディスク情報の収集を要求",
3371
+ "cli.boundary": "ログ、SSH ログイン、任意コマンド、ファイルアクセスは含みません。秘密鍵は端末内に残ります。ログは別途許可が必要です。",
3372
+ "cli.approve": "指紋を確認して CLI を許可",
3373
+ "cli.done": "CLI を許可しました。端末は自動で続行します。",
3374
+ "cli.manage": "CLI 権限管理",
3375
+ "cli.manageBody": "期限後は自動で無効になります。取消し後もデバイス登録とリソース報告は維持されます。",
3376
+ "cli.active": "有効",
3377
+ "cli.inactive": "無効",
3378
+ "cli.revoke": "CLI 権限を取り消す",
3379
+ "cli.empty": "CLI 権限はありません。管理端末で device-center auth login --confirm を実行してください。",
3380
+ "cli.missing": "要求が失効したか結果が不明です。まず auth status を実行し、必要なら auth login を再実行します。"
3317
3381
  },
3318
3382
  "ko": {
3319
3383
  "language": "언어",
3320
3384
  "guide.title": "시작하기 · Device Center",
3321
3385
  "guide.open": "기기 대시보드 열기 ↗",
3322
- "guide.badge": "개발 미리보기 · 0.2.0-beta.5 · MIT",
3386
+ "guide.badge": "개발 미리보기 · 0.2.0-beta.6 · MIT",
3323
3387
  "guide.hero": "사용하지 않는 컴퓨터를 Agent에 연결하세요.",
3324
3388
  "guide.lead": "기기 리소스와 용도를 확인하고 별도 승인 후 지정된 로그를 읽을 수 있습니다. 로컬 Agent에 설치를 맡기고 컴퓨터 한 대부터 시작하세요.",
3325
3389
  "guide.platform": "macOS / Linux / Windows 11 후보 · Node.js 24+",
@@ -3638,7 +3702,7 @@ export const messages = {
3638
3702
  "panel.224": "Agent용 복사",
3639
3703
  "panel.225": "전체 설치 안내 보기",
3640
3704
  "panel.226": "Agent에게 전달할 설치 안내",
3641
- "panel.227": "macOS / Linux / Windows 11, Node.js 24 지원. 고정 버전 0.2.0-beta.5를 사용합니다. 이 페이지는 안내만 복사하며 전달받은 Agent가 로컬에서 설치합니다.",
3705
+ "panel.227": "macOS / Linux / Windows 11, Node.js 24 지원. 고정 버전 0.2.0-beta.6를 사용합니다. 이 페이지는 안내만 복사하며 전달받은 Agent가 로컬에서 설치합니다.",
3642
3706
  "panel.228": "복사했습니다. 대상 컴퓨터의 Agent에게 붙여 넣고 연결이 필요하면 본인이 로그인하여 확인하세요.",
3643
3707
  "panel.229": "선택된 설치 안내를 수동 복사하세요.",
3644
3708
  "panel.230": "관리 컴퓨터 확인 불가",
@@ -4142,13 +4206,29 @@ export const messages = {
4142
4206
  "walk.windowsBody": "대상 컴퓨터에서 일반 사용자 PowerShell을 여세요(CMD나 WSL 아님). 스크립트를 검토한 후 전체를 붙여넣고 Enter를 누르세요. 실패하면 창을 유지하세요.",
4143
4207
  "walk.openWindows": "시작 → PowerShell 검색 → 열기(관리자 불필요)",
4144
4208
  "prompt.windowsEnvironment": "Windows 11, PowerShell 5.1+, Node.js >=24, npm.cmd 및 Agent MCP 지원을 확인하세요. 일반 사용자 PowerShell을 사용하고 WSL이나 npm.ps1은 사용하지 마세요. 매 명령의 $LASTEXITCODE가 0이 아니면 중단하세요. 실행 정책이나 권한을 바꾸지 말고 공식 Node.js를 사용하세요.",
4145
- "prompt.windowsBackground": "계획을 확인하고 현재 사용자 로그인 작업을 명시적으로 설치한 뒤 상태를 검증하세요. AD, 관리자, 비밀번호, 정책 변경이 필요 없습니다. 실패 상태를 유지하고 전경 모드를 제안하세요. 로컬 DPAPI와 NTFS ACL로 신원을 보호하며 신원 파일을 옮기지 마세요. 로그아웃, 절전, 오프라인 중에는 보고하지 못합니다."
4209
+ "prompt.windowsBackground": "계획을 확인하고 현재 사용자 로그인 작업을 명시적으로 설치한 뒤 상태를 검증하세요. AD, 관리자, 비밀번호, 정책 변경이 필요 없습니다. 실패 상태를 유지하고 전경 모드를 제안하세요. 로컬 DPAPI와 NTFS ACL로 신원을 보호하며 신원 파일을 옮기지 마세요. 로그아웃, 절전, 오프라인 중에는 보고하지 못합니다.",
4210
+ "cli.title": "CLI 관리 허용",
4211
+ "cli.intro": "관리 컴퓨터에서 직접 시작한 요청만 승인하세요. 터미널의 전체 공개 키 지문을 확인하세요.",
4212
+ "cli.duration": "{minutes}분 동안 유효",
4213
+ "cli.read": "이 계정의 기기와 리소스 상태 보기",
4214
+ "cli.profile": "기기 이름, 유형, 용도, 태그 및 선언된 서비스 수정",
4215
+ "cli.collect": "승인된 메모리 및 디스크 정보 수집 요청",
4216
+ "cli.boundary": "로그, SSH 로그인, 임의 명령 및 파일 접근은 제외됩니다. 개인 키는 기기에 보관됩니다. 로그는 별도 승인이 필요합니다.",
4217
+ "cli.approve": "지문 확인 후 CLI 허용",
4218
+ "cli.done": "CLI가 승인되었습니다. 터미널이 자동으로 계속됩니다.",
4219
+ "cli.manage": "CLI 권한 관리",
4220
+ "cli.manageBody": "권한은 자동 만료됩니다. 취소해도 기기 연결과 리소스 보고는 유지됩니다.",
4221
+ "cli.active": "유효",
4222
+ "cli.inactive": "만료됨",
4223
+ "cli.revoke": "CLI 권한 취소",
4224
+ "cli.empty": "CLI 권한이 없습니다. 관리 컴퓨터에서 device-center auth login --confirm을 실행하세요.",
4225
+ "cli.missing": "요청이 만료되었거나 결과를 알 수 없습니다. auth status를 먼저 확인하고 필요하면 auth login을 다시 실행하세요."
4146
4226
  },
4147
4227
  "es": {
4148
4228
  "language": "Idioma",
4149
4229
  "guide.title": "Primeros pasos · Device Center",
4150
4230
  "guide.open": "Abrir panel de dispositivos ↗",
4151
- "guide.badge": "Vista previa de desarrollo · 0.2.0-beta.5 · MIT",
4231
+ "guide.badge": "Vista previa de desarrollo · 0.2.0-beta.6 · MIT",
4152
4232
  "guide.hero": "Conecta tus equipos disponibles a tu Agent.",
4153
4233
  "guide.lead": "Consulta los recursos y el uso de cada equipo, y lee registros específicos con autorización aparte. Deja la instalación a tu Agent local y empieza con un equipo.",
4154
4234
  "guide.platform": "macOS / Linux / candidato Windows 11 · Node.js 24+",
@@ -4467,7 +4547,7 @@ export const messages = {
4467
4547
  "panel.224": "Copiar para el Agent",
4468
4548
  "panel.225": "Ver instrucciones completas",
4469
4549
  "panel.226": "Instrucciones de instalación para el Agent",
4470
- "panel.227": "macOS / Linux / Windows 11 con Node.js 24. Usa la versión fija 0.2.0-beta.5. Aquí solo copias instrucciones; el Agent las ejecuta localmente.",
4550
+ "panel.227": "macOS / Linux / Windows 11 con Node.js 24. Usa la versión fija 0.2.0-beta.6. Aquí solo copias instrucciones; el Agent las ejecuta localmente.",
4471
4551
  "panel.228": "Copiado. Pégalo en el Agent del destino; inicia sesión y verifica personalmente si necesita vincularse.",
4472
4552
  "panel.229": "Copia manualmente las instrucciones seleccionadas.",
4473
4553
  "panel.230": "No se puede confirmar el administrador",
@@ -4971,13 +5051,29 @@ export const messages = {
4971
5051
  "walk.windowsBody": "Abre PowerShell como usuario normal en el equipo de destino (no CMD ni WSL). Revisa y pega el script completo, y pulsa Enter. Conserva la ventana si falla.",
4972
5052
  "walk.openWindows": "Inicio → buscar PowerShell → Abrir (sin administrador)",
4973
5053
  "prompt.windowsEnvironment": "Comprueba Windows 11, PowerShell 5.1+, Node.js >=24, npm.cmd y MCP del Agent. Usa PowerShell normal, no WSL ni npm.ps1. Comprueba $LASTEXITCODE tras cada comando y detente si no es cero. No cambies políticas ni eleves privilegios. Node.js debe ser oficial.",
4974
- "prompt.windowsBackground": "Revisa el plan, instala explícitamente la tarea de inicio de sesión del usuario y verifica su estado. Sin AD, administrador, contraseña ni cambios de políticas. Conserva los fallos y ofrece primer plano. DPAPI local y ACL NTFS protegen la identidad; no muevas sus archivos. No informa al cerrar sesión, suspender o perder conexión."
5054
+ "prompt.windowsBackground": "Revisa el plan, instala explícitamente la tarea de inicio de sesión del usuario y verifica su estado. Sin AD, administrador, contraseña ni cambios de políticas. Conserva los fallos y ofrece primer plano. DPAPI local y ACL NTFS protegen la identidad; no muevas sus archivos. No informa al cerrar sesión, suspender o perder conexión.",
5055
+ "cli.title": "Autorizar gestión CLI",
5056
+ "cli.intro": "Aprueba solo la solicitud que acabas de iniciar en tu equipo. Compara la huella completa de la clave pública con el terminal.",
5057
+ "cli.duration": "Válido durante {minutes} minutos",
5058
+ "cli.read": "Ver dispositivos y recursos de esta cuenta",
5059
+ "cli.profile": "Editar nombre, tipo, propósito, etiquetas y servicios declarados",
5060
+ "cli.collect": "Solicitar la recopilación de memoria y disco ya autorizados",
5061
+ "cli.boundary": "No incluye registros, acceso SSH, comandos arbitrarios ni archivos. Las claves privadas permanecen en el dispositivo. Los registros requieren permiso aparte.",
5062
+ "cli.approve": "Huellas verificadas: autorizar CLI",
5063
+ "cli.done": "CLI autorizada. El terminal continúa automáticamente.",
5064
+ "cli.manage": "Gestionar acceso CLI",
5065
+ "cli.manageBody": "El acceso caduca automáticamente. Revocarlo conserva el vínculo del dispositivo y sus informes.",
5066
+ "cli.active": "Activo",
5067
+ "cli.inactive": "Inactivo",
5068
+ "cli.revoke": "Revocar acceso CLI",
5069
+ "cli.empty": "Sin permisos CLI. Ejecuta device-center auth login --confirm en tu equipo.",
5070
+ "cli.missing": "Solicitud caducada o resultado desconocido. Ejecuta auth status y, si hace falta, auth login de nuevo."
4975
5071
  },
4976
5072
  "fr": {
4977
5073
  "language": "Langue",
4978
5074
  "guide.title": "Bien démarrer · Device Center",
4979
5075
  "guide.open": "Ouvrir le tableau de bord ↗",
4980
- "guide.badge": "Aperçu de développement · 0.2.0-beta.5 · MIT",
5076
+ "guide.badge": "Aperçu de développement · 0.2.0-beta.6 · MIT",
4981
5077
  "guide.hero": "Donnez à votre Agent accès à vos ordinateurs disponibles.",
4982
5078
  "guide.lead": "Consultez les ressources et le rôle de chaque ordinateur, puis lisez des journaux précis après une autorisation distincte. Confiez l’installation à votre Agent local et commencez avec un ordinateur.",
4983
5079
  "guide.platform": "macOS / Linux / candidat Windows 11 · Node.js 24+",
@@ -5296,7 +5392,7 @@ export const messages = {
5296
5392
  "panel.224": "Copier pour l’Agent",
5297
5393
  "panel.225": "Voir toutes les instructions",
5298
5394
  "panel.226": "Instructions d’installation pour l’Agent",
5299
- "panel.227": "macOS / Linux / Windows 11 avec Node.js 24. Version fixe 0.2.0-beta.5. Cette page copie les instructions ; l’Agent les exécute localement.",
5395
+ "panel.227": "macOS / Linux / Windows 11 avec Node.js 24. Version fixe 0.2.0-beta.6. Cette page copie les instructions ; l’Agent les exécute localement.",
5300
5396
  "panel.228": "Copié. Collez dans l’Agent cible ; connectez-vous et vérifiez personnellement toute liaison nécessaire.",
5301
5397
  "panel.229": "Copiez manuellement les instructions sélectionnées.",
5302
5398
  "panel.230": "Ordinateur de gestion non confirmé",
@@ -5800,13 +5896,29 @@ export const messages = {
5800
5896
  "walk.windowsBody": "Ouvrez PowerShell en utilisateur normal sur la cible (pas CMD ni WSL). Vérifiez et collez tout le script, puis Entrée. Gardez la fenêtre en cas d’échec.",
5801
5897
  "walk.openWindows": "Démarrer → rechercher PowerShell → Ouvrir (sans administrateur)",
5802
5898
  "prompt.windowsEnvironment": "Vérifiez Windows 11, PowerShell 5.1+, Node.js >=24, npm.cmd et MCP de l’Agent. Utilisez PowerShell normal, pas WSL ni npm.ps1. Vérifiez chaque $LASTEXITCODE ; arrêtez si non nul. Ne changez pas la stratégie ni les privilèges. Utilisez Node.js officiel.",
5803
- "prompt.windowsBackground": "Examinez le plan, installez explicitement la tâche à la connexion de l’utilisateur et vérifiez son état. Aucun AD, administrateur, mot de passe ou changement de stratégie. Conservez les échecs ; proposez le premier plan. DPAPI local et ACL NTFS protègent l’identité ; ne déplacez pas ces fichiers. Pas de rapport après déconnexion, en veille ou hors ligne."
5899
+ "prompt.windowsBackground": "Examinez le plan, installez explicitement la tâche à la connexion de l’utilisateur et vérifiez son état. Aucun AD, administrateur, mot de passe ou changement de stratégie. Conservez les échecs ; proposez le premier plan. DPAPI local et ACL NTFS protègent l’identité ; ne déplacez pas ces fichiers. Pas de rapport après déconnexion, en veille ou hors ligne.",
5900
+ "cli.title": "Autoriser la gestion CLI",
5901
+ "cli.intro": "Approuvez uniquement la demande que vous venez de lancer sur votre ordinateur. Comparez l’empreinte complète avec le terminal.",
5902
+ "cli.duration": "Valide pendant {minutes} minutes",
5903
+ "cli.read": "Consulter les appareils et ressources de ce compte",
5904
+ "cli.profile": "Modifier le nom, le type, l’usage, les étiquettes et les services déclarés",
5905
+ "cli.collect": "Demander la collecte des données mémoire et disque déjà autorisées",
5906
+ "cli.boundary": "Exclut les journaux, SSH, les commandes arbitraires et les fichiers. Les clés privées restent sur l’appareil. Les journaux nécessitent une autorisation distincte.",
5907
+ "cli.approve": "Empreintes vérifiées : autoriser CLI",
5908
+ "cli.done": "CLI autorisée. Le terminal continue automatiquement.",
5909
+ "cli.manage": "Gérer les accès CLI",
5910
+ "cli.manageBody": "L’accès expire automatiquement. Sa révocation conserve la liaison et les rapports de ressources.",
5911
+ "cli.active": "Actif",
5912
+ "cli.inactive": "Inactif",
5913
+ "cli.revoke": "Révoquer l’accès CLI",
5914
+ "cli.empty": "Aucun accès CLI. Exécutez device-center auth login --confirm sur votre ordinateur.",
5915
+ "cli.missing": "Demande expirée ou résultat inconnu. Vérifiez auth status, puis relancez auth login si nécessaire."
5804
5916
  },
5805
5917
  "de": {
5806
5918
  "language": "Sprache",
5807
5919
  "guide.title": "Erste Schritte · Device Center",
5808
5920
  "guide.open": "Geräteübersicht öffnen ↗",
5809
- "guide.badge": "Entwicklungsvorschau · 0.2.0-beta.5 · MIT",
5921
+ "guide.badge": "Entwicklungsvorschau · 0.2.0-beta.6 · MIT",
5810
5922
  "guide.hero": "Mache deine freien Rechner für deinen Agent sichtbar.",
5811
5923
  "guide.lead": "Sieh dir Ressourcen und Einsatzzwecke an und lies bestimmte Protokolle nach gesonderter Freigabe. Lass deinen lokalen Agent die Einrichtung übernehmen und starte mit einem Rechner.",
5812
5924
  "guide.platform": "macOS / Linux / Windows-11-Kandidat · Node.js 24+",
@@ -6125,7 +6237,7 @@ export const messages = {
6125
6237
  "panel.224": "Für Agent kopieren",
6126
6238
  "panel.225": "Vollständige Anleitung anzeigen",
6127
6239
  "panel.226": "Installationsanleitung für den Agent",
6128
- "panel.227": "macOS / Linux / Windows 11 mit Node.js 24. Feste Version 0.2.0-beta.5. Diese Seite kopiert nur Anweisungen; der Agent führt sie lokal aus.",
6240
+ "panel.227": "macOS / Linux / Windows 11 mit Node.js 24. Feste Version 0.2.0-beta.6. Diese Seite kopiert nur Anweisungen; der Agent führt sie lokal aus.",
6129
6241
  "panel.228": "Kopiert. Beim Ziel-Agent einfügen; nötige Verknüpfung persönlich anmelden und prüfen.",
6130
6242
  "panel.229": "Ausgewählte Anleitung manuell kopieren.",
6131
6243
  "panel.230": "Verwaltungscomputer nicht bestätigt",
@@ -6629,13 +6741,29 @@ export const messages = {
6629
6741
  "walk.windowsBody": "Auf dem Zielcomputer PowerShell als normaler Benutzer öffnen (nicht CMD oder WSL). Das gesamte Skript prüfen, einfügen und Enter drücken. Bei Fehlern das Fenster offen lassen.",
6630
6742
  "walk.openWindows": "Start → PowerShell suchen → Öffnen (ohne Administrator)",
6631
6743
  "prompt.windowsEnvironment": "Windows 11, PowerShell 5.1+, Node.js >=24, npm.cmd und MCP des Agent prüfen. Normale PowerShell nutzen, nicht WSL oder npm.ps1. Jeden $LASTEXITCODE prüfen, bei ungleich null stoppen. Keine Richtlinien oder Berechtigungen ändern. Node.js nur aus offizieller Quelle.",
6632
- "prompt.windowsBackground": "Plan prüfen, Anmeldeaufgabe des aktuellen Benutzers ausdrücklich installieren und Status prüfen. Kein AD, Administrator, Passwort oder Richtlinienwechsel. Fehlerzustand erhalten, Vordergrund anbieten. Lokales DPAPI und NTFS-ACLs schützen die Identität; Dateien nicht verschieben. Keine Meldungen bei Abmeldung, Ruhezustand oder ohne Netz."
6744
+ "prompt.windowsBackground": "Plan prüfen, Anmeldeaufgabe des aktuellen Benutzers ausdrücklich installieren und Status prüfen. Kein AD, Administrator, Passwort oder Richtlinienwechsel. Fehlerzustand erhalten, Vordergrund anbieten. Lokales DPAPI und NTFS-ACLs schützen die Identität; Dateien nicht verschieben. Keine Meldungen bei Abmeldung, Ruhezustand oder ohne Netz.",
6745
+ "cli.title": "CLI-Verwaltung erlauben",
6746
+ "cli.intro": "Bestätige nur die gerade auf deinem Verwaltungscomputer gestartete Anfrage. Vergleiche den vollständigen Schlüsselfingerabdruck mit dem Terminal.",
6747
+ "cli.duration": "Gültig für {minutes} Minuten",
6748
+ "cli.read": "Geräte und Ressourcen dieses Kontos anzeigen",
6749
+ "cli.profile": "Name, Typ, Zweck, Tags und angegebene Dienste bearbeiten",
6750
+ "cli.collect": "Erfassung bereits erlaubter Speicher- und Laufwerksdaten anfordern",
6751
+ "cli.boundary": "Keine Logs, SSH-Anmeldung, beliebigen Befehle oder Dateien. Private Schlüssel bleiben auf dem Gerät. Logs erfordern eine separate Freigabe.",
6752
+ "cli.approve": "Fingerabdrücke geprüft: CLI erlauben",
6753
+ "cli.done": "CLI erlaubt. Das Terminal fährt automatisch fort.",
6754
+ "cli.manage": "CLI-Zugriff verwalten",
6755
+ "cli.manageBody": "Der Zugriff läuft automatisch ab. Ein Widerruf erhält Gerätebindung und Ressourcenberichte.",
6756
+ "cli.active": "Aktiv",
6757
+ "cli.inactive": "Inaktiv",
6758
+ "cli.revoke": "CLI-Zugriff widerrufen",
6759
+ "cli.empty": "Keine CLI-Freigabe. Führe device-center auth login --confirm aus.",
6760
+ "cli.missing": "Anfrage abgelaufen oder Ergebnis unbekannt. Prüfe auth status und starte bei Bedarf auth login erneut."
6633
6761
  },
6634
6762
  "pt-BR": {
6635
6763
  "language": "Idioma",
6636
6764
  "guide.title": "Começar · Device Center",
6637
6765
  "guide.open": "Abrir painel de dispositivos ↗",
6638
- "guide.badge": "Prévia de desenvolvimento · 0.2.0-beta.5 · MIT",
6766
+ "guide.badge": "Prévia de desenvolvimento · 0.2.0-beta.6 · MIT",
6639
6767
  "guide.hero": "Conecte seus computadores disponíveis ao seu Agent.",
6640
6768
  "guide.lead": "Veja os recursos e a finalidade de cada computador e leia logs específicos após autorização separada. Deixe a instalação com seu Agent local e comece com um computador.",
6641
6769
  "guide.platform": "macOS / Linux / candidato Windows 11 · Node.js 24+",
@@ -6954,7 +7082,7 @@ export const messages = {
6954
7082
  "panel.224": "Copiar para o Agent",
6955
7083
  "panel.225": "Ver instruções completas",
6956
7084
  "panel.226": "Instruções de instalação para o Agent",
6957
- "panel.227": "macOS / Linux / Windows 11 com Node.js 24. Versão fixa 0.2.0-beta.5. A página só copia instruções; o Agent executa localmente.",
7085
+ "panel.227": "macOS / Linux / Windows 11 com Node.js 24. Versão fixa 0.2.0-beta.6. A página só copia instruções; o Agent executa localmente.",
6958
7086
  "panel.228": "Copiado. Cole no Agent de destino; faça login e confira pessoalmente qualquer vínculo necessário.",
6959
7087
  "panel.229": "Copie manualmente as instruções selecionadas.",
6960
7088
  "panel.230": "Administrador não confirmado",
@@ -7458,6 +7586,22 @@ export const messages = {
7458
7586
  "walk.windowsBody": "Abra o PowerShell como usuário normal no destino (não CMD ou WSL). Revise e cole todo o script, depois Enter. Mantenha a janela se falhar.",
7459
7587
  "walk.openWindows": "Iniciar → buscar PowerShell → Abrir (sem administrador)",
7460
7588
  "prompt.windowsEnvironment": "Confira Windows 11, PowerShell 5.1+, Node.js >=24, npm.cmd e MCP do Agent. Use PowerShell normal, não WSL ou npm.ps1. Confira cada $LASTEXITCODE; pare se diferente de zero. Não altere políticas nem eleve privilégios. Use Node.js oficial.",
7461
- "prompt.windowsBackground": "Revise o plano, instale explicitamente a tarefa de logon do usuário e verifique o estado. Sem AD, administrador, senha ou alteração de políticas. Preserve falhas e ofereça primeiro plano. DPAPI local e ACLs NTFS protegem a identidade; não mova seus arquivos. Sem relatos após logoff, em suspensão ou offline."
7589
+ "prompt.windowsBackground": "Revise o plano, instale explicitamente a tarefa de logon do usuário e verifique o estado. Sem AD, administrador, senha ou alteração de políticas. Preserve falhas e ofereça primeiro plano. DPAPI local e ACLs NTFS protegem a identidade; não mova seus arquivos. Sem relatos após logoff, em suspensão ou offline.",
7590
+ "cli.title": "Autorizar gestão CLI",
7591
+ "cli.intro": "Aprove apenas a solicitação que acabou de iniciar no seu computador. Compare a impressão digital completa com o terminal.",
7592
+ "cli.duration": "Válido por {minutes} minutos",
7593
+ "cli.read": "Ver dispositivos e recursos desta conta",
7594
+ "cli.profile": "Editar nome, tipo, finalidade, etiquetas e serviços declarados",
7595
+ "cli.collect": "Solicitar coleta de memória e disco já autorizados",
7596
+ "cli.boundary": "Não inclui logs, SSH, comandos arbitrários ou arquivos. Chaves privadas ficam no dispositivo. Logs exigem permissão separada.",
7597
+ "cli.approve": "Impressões conferidas: autorizar CLI",
7598
+ "cli.done": "CLI autorizada. O terminal continua automaticamente.",
7599
+ "cli.manage": "Gerenciar acesso CLI",
7600
+ "cli.manageBody": "O acesso expira automaticamente. Revogar preserva o vínculo do dispositivo e seus relatórios.",
7601
+ "cli.active": "Ativo",
7602
+ "cli.inactive": "Inativo",
7603
+ "cli.revoke": "Revogar acesso CLI",
7604
+ "cli.empty": "Sem permissões CLI. Execute device-center auth login --confirm no seu computador.",
7605
+ "cli.missing": "Solicitação expirada ou resultado desconhecido. Execute auth status e, se necessário, auth login novamente."
7462
7606
  }
7463
7607
  };
package/src/onboarding.js CHANGED
@@ -3,7 +3,7 @@ import { normalizeLocale } from './i18n.js';
3
3
 
4
4
  export const OFFICIAL_CONTROL_ORIGIN = 'https://devices.owenshen.top';
5
5
  // Publish this exact CLI before deploying the matching guide.
6
- export const PUBLISHED_DRIVER_VERSION = '0.2.0-beta.5';
6
+ export const PUBLISHED_DRIVER_VERSION = '0.2.0-beta.6';
7
7
  const inputError = (key, message) => Object.assign(new Error(message), { translationKey: key });
8
8
  export function connectCommand(value, shareSsh = false) {
9
9
  let url;
@@ -1,3 +1,4 @@
1
+ import { pendingCli, clearCli } from './cli-handoff.js';
1
2
  const KEY = 'device-center-pairing-v1';
2
3
  const safeStorage = () => { try { return window.sessionStorage; } catch { return null; } };
3
4
  const valid = (value, now) => value && /^[a-f0-9]{64}$/.test(value.ticket ?? '') && Number.isSafeInteger(value.expiresAt) && value.expiresAt > now && value.expiresAt <= now + 330_000;
@@ -21,10 +22,13 @@ export function capturePairing({ location = window.location, history = window.hi
21
22
  if ([...fragment.keys()].sort().join(',') !== 'expires,ticket') return null;
22
23
  const value = { ticket: fragment.get('ticket'), expiresAt: Number(fragment.get('expires')) };
23
24
  if (!valid(value, now)) return null;
25
+ clearCli({ storage });
24
26
  try { storage.setItem(KEY, JSON.stringify(value)); } catch { /* A signed-in user can continue in memory. */ }
25
27
  return value;
26
28
  }
27
29
 
28
- export function loginDestination(locale) {
29
- return `${pendingPairing() ? '/pair' : '/'}?lang=${encodeURIComponent(locale)}`;
30
+ export function loginDestination(locale, { search = globalThis.window?.location?.search ?? '' } = {}) {
31
+ // Only this fixed management page can be selected without an active handoff.
32
+ // Never accept an arbitrary return URL from the login query.
33
+ return `${pendingCli() ? '/cli' : pendingPairing() ? '/pair' : new URLSearchParams(search).get('continue') === 'cli' ? '/cli' : '/'}?lang=${encodeURIComponent(locale)}`;
30
34
  }
package/src/styles.css CHANGED
@@ -18,6 +18,7 @@ button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus
18
18
  .nav-item.active { color: #327451; background: #eef5ed; border-color: #e0ebe0; }
19
19
  .nav-item small { margin-left: auto; color: #8c9e91; font-size: 10px; }
20
20
  .nav-item:hover { background: #f3f7f2; }
21
+ a.nav-item { text-decoration: none; }
21
22
  .nav-empty { margin: 9px 11px; font-size: 11px; color: #859180; }
22
23
  .sidebar-footer { margin-top: auto; padding: 22px 9px 0; color: #839087; font-size: 10px; }
23
24
  .sidebar-footer button { display: block; margin-top: 12px; padding: 0; font-size: 10px; }
package/start.html CHANGED
@@ -32,7 +32,7 @@
32
32
  <p class="lead" data-i18n="guide.visual.lead">让本机 Agent 查看其他设备的状态与授权日志。</p>
33
33
  <div class="hero-actions"><a class="button primary hero-cta" href="#install-title"><span data-i18n="guide.visual.begin">开始接入</span><svg class="icon" aria-hidden="true"><use href="#icon-arrow"/></svg></a><span class="cta-hint" data-i18n="guide.focus.firstTry">第一次用?先选本机,无需账号。</span></div>
34
34
  <p class="platform" data-i18n="guide.platform">macOS / Linux / Windows 11 预览 · Node.js 24+</p>
35
- <p class="release-note"><span class="release-dot" aria-hidden="true"></span><span data-i18n="guide.badge">开发预览 · 0.2.0-beta.5 · MIT</span></p>
35
+ <p class="release-note"><span class="release-dot" aria-hidden="true"></span><span data-i18n="guide.badge">开发预览 · 0.2.0-beta.6 · MIT</span></p>
36
36
  </div>
37
37
  <figure class="scene" data-paused="false">
38
38
  <figcaption class="scene-caption"><span><span class="caption-cross" aria-hidden="true">+</span><span data-i18n="guide.focus.example">工作原理示意 · 无需操作</span></span><button class="motion-toggle" type="button" data-i18n-aria-label="guide.visual.pauseMotion" data-i18n-title="guide.visual.pauseMotion" aria-label="暂停动效" title="暂停动效"><svg class="icon pause-icon" aria-hidden="true" viewBox="0 0 24 24"><path d="M8 5v14M16 5v14"/></svg><svg class="icon play-icon" aria-hidden="true" viewBox="0 0 24 24"><path d="m8 5 11 7-11 7Z"/></svg></button></figcaption>
@@ -156,7 +156,7 @@
156
156
  <details><summary data-i18n="guide.faq">遇到问题先查什么?</summary><div class="detail-content"><p data-i18n="guide.faqBody"></p><p data-i18n="guide.feedback"></p></div></details>
157
157
  </section>
158
158
  </main>
159
- <footer><a href="/install/agent.md" data-i18n="guide.full">Agent 完整安装指南(中文)</a><a href="/install/trial.md" data-i18n="guide.markdown">文字版试用指南(中文)</a><a href="https://www.npmjs.com/package/device-center/v/0.2.0-beta.5" target="_blank" rel="noopener noreferrer" data-i18n="guide.source">MIT npm 源码包 ↗</a><span data-i18n="guide.footer">本机安装 · 私钥留在设备 · 操作单独授权</span></footer>
159
+ <footer><a href="/install/agent.md" data-i18n="guide.full">Agent 完整安装指南(中文)</a><a href="/install/trial.md" data-i18n="guide.markdown">文字版试用指南(中文)</a><a href="https://www.npmjs.com/package/device-center/v/0.2.0-beta.6" target="_blank" rel="noopener noreferrer" data-i18n="guide.source">MIT npm 源码包 ↗</a><span data-i18n="guide.footer">本机安装 · 私钥留在设备 · 操作单独授权</span></footer>
160
160
  <script type="module" src="/src/start.js"></script>
161
161
  </body>
162
162
  </html>