@agent-link/server 0.1.539 → 0.1.541

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.
Files changed (86) hide show
  1. package/package.json +4 -3
  2. package/web/dist/assets/{abnfDiagram-VRR7QNED-CYWjSLFB.js → abnfDiagram-VRR7QNED-D3cc6ixD.js} +1 -1
  3. package/web/dist/assets/{arc-C5QqMw0D.js → arc-C-BlGAqM.js} +1 -1
  4. package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-CiJkLkRK.js → architectureDiagram-ZJ3FMSHR-DFN1M5P0.js} +1 -1
  5. package/web/dist/assets/{blockDiagram-677ZJIJ3--rNn03K2.js → blockDiagram-677ZJIJ3-CDGMAaEw.js} +1 -1
  6. package/web/dist/assets/{c4Diagram-LMCZKHZV-DFv38F5W.js → c4Diagram-LMCZKHZV-DtOVXwWZ.js} +1 -1
  7. package/web/dist/assets/channel-CuV7Fkfy.js +1 -0
  8. package/web/dist/assets/{chunk-2Q5K7J3B-LcxWxL9X.js → chunk-2Q5K7J3B-DsKmVVjx.js} +1 -1
  9. package/web/dist/assets/{chunk-32BRIVSS-L5rSd5kx.js → chunk-32BRIVSS-DVylOf0u.js} +1 -1
  10. package/web/dist/assets/{chunk-5VM5RSS4-CqNmatdI.js → chunk-5VM5RSS4-ZFKorQZc.js} +1 -1
  11. package/web/dist/assets/{chunk-EX3LRPZG-2Wshn2od.js → chunk-EX3LRPZG-i5xQFv1I.js} +1 -1
  12. package/web/dist/assets/{chunk-JWPE2WC7-OIu2tm43.js → chunk-JWPE2WC7-zvEi3Xdy.js} +1 -1
  13. package/web/dist/assets/{chunk-MOJQB5TN-GF0HoMD5.js → chunk-MOJQB5TN-BVW_jPqa.js} +1 -1
  14. package/web/dist/assets/{chunk-RYQCIY6F-esL_U6-9.js → chunk-RYQCIY6F-BoZGJACR.js} +1 -1
  15. package/web/dist/assets/{chunk-V7JOEXUC-WNOLiPpt.js → chunk-V7JOEXUC-Qa299BUI.js} +1 -1
  16. package/web/dist/assets/{chunk-VR4S4FIN-B-fO7gd6.js → chunk-VR4S4FIN-BIDjyO2q.js} +1 -1
  17. package/web/dist/assets/{chunk-XXDRQBXY-D6g9o0gx.js → chunk-XXDRQBXY-B9Inv9MZ.js} +1 -1
  18. package/web/dist/assets/classDiagram-OUVF2IWQ-CHm9qeAX.js +1 -0
  19. package/web/dist/assets/classDiagram-v2-EOCWNBFH-CHm9qeAX.js +1 -0
  20. package/web/dist/assets/{cose-bilkent-JH36ORCC-CiWR02dm.js → cose-bilkent-JH36ORCC-DULZYWPx.js} +1 -1
  21. package/web/dist/assets/{cssMode-CdZ6WkPb.js → cssMode-CLeQotjJ.js} +1 -1
  22. package/web/dist/assets/{cynefin-VYW2F7L2-Cm5C7NQw.js → cynefin-VYW2F7L2-E9svUmbu.js} +1 -1
  23. package/web/dist/assets/{cynefinDiagram-TSTJHNR4-D4HWvIqR.js → cynefinDiagram-TSTJHNR4-BQbCXTXu.js} +1 -1
  24. package/web/dist/assets/{dagre-VKFMJZFB-Dydcg1Dj.js → dagre-VKFMJZFB-YjOfj-Sz.js} +1 -1
  25. package/web/dist/assets/{diagram-FQU43EPY-T1Gos5W9.js → diagram-FQU43EPY-DKlBYUat.js} +1 -1
  26. package/web/dist/assets/{diagram-G47NLZAW-BiERNHwh.js → diagram-G47NLZAW-HgY0xVom.js} +1 -1
  27. package/web/dist/assets/{diagram-NH7WQ7WH-Bp4PAleB.js → diagram-NH7WQ7WH-Lhdi0JDL.js} +1 -1
  28. package/web/dist/assets/{diagram-OA4YK3LP-gaknvItq.js → diagram-OA4YK3LP-CCdsuo8R.js} +1 -1
  29. package/web/dist/assets/{diagram-WEI45ONY-DrPuSW85.js → diagram-WEI45ONY-CrzIcpD0.js} +1 -1
  30. package/web/dist/assets/{ebnfDiagram-CCIWWBDH-CAcdMMe7.js → ebnfDiagram-CCIWWBDH-BHGungqQ.js} +1 -1
  31. package/web/dist/assets/{editor.main-DGCQQuiO.js → editor.main-BgAd3I-c.js} +3 -3
  32. package/web/dist/assets/{erDiagram-Q63AITRT-DzyOSwU9.js → erDiagram-Q63AITRT-DALVLFvS.js} +1 -1
  33. package/web/dist/assets/{flowDiagram-23GEKE2U-DOe-9kuu.js → flowDiagram-23GEKE2U-vMO_-Vas.js} +1 -1
  34. package/web/dist/assets/{freemarker2-1qw2nqEO.js → freemarker2-Cm5E9K9d.js} +1 -1
  35. package/web/dist/assets/{ganttDiagram-NO4QXBWP-B2rh6MaY.js → ganttDiagram-NO4QXBWP-B_y7vhkq.js} +1 -1
  36. package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-DvnGb_NE.js → gitGraphDiagram-IHSO6WYX-oyKu_s1_.js} +1 -1
  37. package/web/dist/assets/{handlebars-BtUv9TxE.js → handlebars-CdvxB8_F.js} +1 -1
  38. package/web/dist/assets/{html-wKYvqrG5.js → html-DfU3H_eD.js} +1 -1
  39. package/web/dist/assets/{htmlMode-BSafVEUS.js → htmlMode-aW42TeyA.js} +1 -1
  40. package/web/dist/assets/index-9oRptzQJ.css +32 -0
  41. package/web/dist/assets/{index-DknoSkal.js → index-ZEqZC6sq.js} +6 -6
  42. package/web/dist/assets/{infoDiagram-FWYZ7A6U-DZimoK7P.js → infoDiagram-FWYZ7A6U-A8ue0Rc8.js} +1 -1
  43. package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-DsvDmKxP.js → ishikawaDiagram-FXEZZL3T-skFheQel.js} +1 -1
  44. package/web/dist/assets/{javascript-h1g-Ucy8.js → javascript-BSVgnqft.js} +1 -1
  45. package/web/dist/assets/{journeyDiagram-5HDEW3XC-CY8i7id_.js → journeyDiagram-5HDEW3XC-CxcqTnYP.js} +1 -1
  46. package/web/dist/assets/{jsonMode-DiNVkY3E.js → jsonMode-Chyio2CN.js} +1 -1
  47. package/web/dist/assets/{kanban-definition-HUTT4EX6-qsS7eTpB.js → kanban-definition-HUTT4EX6-3IdDzCA6.js} +1 -1
  48. package/web/dist/assets/{linear-pxgzmzBW.js → linear-DR3e8pJs.js} +1 -1
  49. package/web/dist/assets/{liquid-BScuE6Li.js → liquid-DdVm64RF.js} +1 -1
  50. package/web/dist/assets/{lspLanguageFeatures-Bvg2J_jV.js → lspLanguageFeatures-BptCEdzQ.js} +1 -1
  51. package/web/dist/assets/{mdx-DEgin56d.js → mdx-Crb1xK3v.js} +1 -1
  52. package/web/dist/assets/{mermaid.core-DkcKZax1.js → mermaid.core-qey-rTTh.js} +2 -2
  53. package/web/dist/assets/{mindmap-definition-LN4V7U3C-CdSHmqbA.js → mindmap-definition-LN4V7U3C-p2NXDklK.js} +1 -1
  54. package/web/dist/assets/{pegDiagram-2B236MQR-B5lYNF_c.js → pegDiagram-2B236MQR-CysYM1sW.js} +1 -1
  55. package/web/dist/assets/{pieDiagram-ENE6RG2P-C5XC449d.js → pieDiagram-ENE6RG2P-9eq9UV8x.js} +1 -1
  56. package/web/dist/assets/{python-LiSQlk9W.js → python-BIBHzYUy.js} +1 -1
  57. package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-B_lVz6fv.js → quadrantDiagram-ABIIQ3AL-BG5a6aH2.js} +1 -1
  58. package/web/dist/assets/{railroadDiagram-RFXS5EU6-Cqyazggh.js → railroadDiagram-RFXS5EU6-CUTkhltO.js} +1 -1
  59. package/web/dist/assets/{razor-C-OT9rh_.js → razor-qx4-Kybw.js} +1 -1
  60. package/web/dist/assets/{requirementDiagram-TGXJPOKE-D1fFw8Za.js → requirementDiagram-TGXJPOKE-CmcUF5bV.js} +1 -1
  61. package/web/dist/assets/{sankeyDiagram-HTMAVEWB-BmEnh6Zy.js → sankeyDiagram-HTMAVEWB-CATht_iL.js} +1 -1
  62. package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-D6IE-IG5.js → sequenceDiagram-DBY2YBRQ-WPreubhe.js} +1 -1
  63. package/web/dist/assets/{sizeCapture-X5ZJPWSS-BYkPr4jo.js → sizeCapture-X5ZJPWSS-DNsVqke5.js} +1 -1
  64. package/web/dist/assets/{stateDiagram-2N3HPSRC-BUCTdtKV.js → stateDiagram-2N3HPSRC-CFJi3Iaj.js} +1 -1
  65. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-WRZIxCxw.js +1 -0
  66. package/web/dist/assets/{swimlanes-5IMT3BWC-DcMZ-6_P.js → swimlanes-5IMT3BWC-CVDKdvCT.js} +2 -2
  67. package/web/dist/assets/swimlanesDiagram-G3AALYLV-BJ2KVs2S.js +1 -0
  68. package/web/dist/assets/{timeline-definition-FHXFAJF6-CevcptDf.js → timeline-definition-FHXFAJF6-BwM8AQ3r.js} +1 -1
  69. package/web/dist/assets/{tsMode-CQ3194z3.js → tsMode-CnKXsDIA.js} +1 -1
  70. package/web/dist/assets/{typescript-D0PYBX18.js → typescript-D4hIt06c.js} +1 -1
  71. package/web/dist/assets/{vennDiagram-L72KCM5P-C4E35ru2.js → vennDiagram-L72KCM5P-BOHDZBL9.js} +1 -1
  72. package/web/dist/assets/{wardleyDiagram-EHGQE667-jZDfwkzC.js → wardleyDiagram-EHGQE667-v06MUzIv.js} +1 -1
  73. package/web/dist/assets/{xml-BbyTLoF3.js → xml-Ci6lnduZ.js} +1 -1
  74. package/web/dist/assets/{xychartDiagram-FW5EYKEG-CLEMD07_.js → xychartDiagram-FW5EYKEG-CTur2M7J.js} +1 -1
  75. package/web/dist/assets/{yaml-BQcG0ScU.js → yaml-DkojWTj3.js} +1 -1
  76. package/web/dist/index.html +2 -2
  77. package/web/dist/landing/landing.css +1161 -10
  78. package/web/dist/landing/landing.js +168 -0
  79. package/web/dist/landing.html +90 -62
  80. package/web/dist/landing.zh.html +90 -62
  81. package/web/dist/assets/channel-BUPHzg7D.js +0 -1
  82. package/web/dist/assets/classDiagram-OUVF2IWQ-CEHpjaOw.js +0 -1
  83. package/web/dist/assets/classDiagram-v2-EOCWNBFH-CEHpjaOw.js +0 -1
  84. package/web/dist/assets/index-DXanOGbR.css +0 -32
  85. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-DvxjB9W-.js +0 -1
  86. package/web/dist/assets/swimlanesDiagram-G3AALYLV-u9Y7eEve.js +0 -1
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>msclaude — 远程控制开发机上的 Coding Agent</title>
7
- <meta name="description" content="在浏览器中远程控制开发机上的 Pi、GitHub Copilot、Claude Code 和 OpenAI Codex,并行管理多个工作目录,支持端到端加密和自托管中继。">
7
+ <meta name="description" content="在一个浏览器工作台中使用开发机上的 Pi、GitHub Copilot、Claude Code 和 OpenAI Codex,并访问本地文件、Git、交互式终端和本地 Web 应用,全程端到端加密。">
8
8
  <meta name="robots" content="index, follow, max-image-preview:large">
9
9
  <meta name="application-name" content="msclaude">
10
10
  <meta name="theme-color" content="#f2efe8">
@@ -17,29 +17,29 @@
17
17
  <meta property="og:locale" content="zh_CN">
18
18
  <meta property="og:locale:alternate" content="en_US">
19
19
  <meta property="og:title" content="msclaude — 远程控制开发机上的 Coding Agent">
20
- <meta property="og:description" content="在一个浏览器工作台中使用多个 Agent 和工作目录。代码和执行环境仍然保留在开发机上。">
20
+ <meta property="og:description" content="在一个端到端加密的浏览器工作台中,管理本地 Coding Agent、代码库、文件、Git、终端和正在运行的 Web 应用。">
21
21
  <meta property="og:url" content="https://msclaude.ai/zh">
22
22
  <meta property="og:image" content="https://msclaude.ai/iPad.png">
23
23
  <meta property="og:image:alt" content="展示多个 Coding Agent 并行会话的 msclaude 浏览器工作台">
24
24
  <meta name="twitter:card" content="summary_large_image">
25
25
  <meta name="twitter:title" content="msclaude — 远程控制开发机上的 Coding Agent">
26
- <meta name="twitter:description" content="在浏览器中管理开发机上的 Pi、Copilot、Claude Code 和 Codex 会话。">
26
+ <meta name="twitter:description" content="从任意浏览器使用开发机上的 Pi、Copilot、Claude Code 和 Codex,以及本地文件、Git、终端和 Web 应用。">
27
27
  <meta name="twitter:image" content="https://msclaude.ai/iPad.png">
28
28
  <meta name="twitter:image:alt" content="展示多个 Coding Agent 并行会话的 msclaude 浏览器工作台">
29
- <link rel="icon" type="image/svg+xml" href="/favicon.svg">
30
- <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
31
- <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
32
- <link rel="manifest" href="/site.webmanifest">
33
- <link rel="preload" href="/vendor/SpaceGrotesk-latin.woff2" as="font" type="font/woff2" crossorigin>
34
- <link rel="stylesheet" href="/landing/landing.css">
35
- <script src="/landing/landing.js" defer></script>
29
+ <link rel="icon" type="image/svg+xml" href="favicon.svg">
30
+ <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
31
+ <link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
32
+ <link rel="manifest" href="site.webmanifest">
33
+ <link rel="preload" href="vendor/SpaceGrotesk-latin.woff2" as="font" type="font/woff2" crossorigin>
34
+ <link rel="stylesheet" href="landing/landing.css?v=20260808-arcade-click-1">
35
+ <script src="landing/landing.js?v=20260808-copy-1" defer></script>
36
36
  <script type="application/ld+json">
37
37
  {
38
38
  "@context": "https://schema.org",
39
39
  "@type": "SoftwareApplication",
40
40
  "name": "msclaude",
41
41
  "url": "https://msclaude.ai/zh",
42
- "description": "用于远程控制开发机上 Coding Agent 的浏览器工作台。",
42
+ "description": "用于管理开发机上多个 Coding Agent、代码库和本地开发工具的本地优先浏览器工作台。",
43
43
  "applicationCategory": "DeveloperApplication",
44
44
  "operatingSystem": "Windows, macOS, Linux",
45
45
  "isAccessibleForFree": true,
@@ -49,7 +49,11 @@
49
49
  "并行管理多个 Coding Agent 会话",
50
50
  "支持多个工作目录",
51
51
  "支持 Pi、GitHub Copilot、Claude Code 和 OpenAI Codex",
52
- "文件、Git、终端和本地端口访问",
52
+ "文件浏览、编辑、上传和下载",
53
+ "Git 状态、Diff、分支和历史",
54
+ "完整的本地交互式终端",
55
+ "通过 Port Proxy 远程访问本地 Web 应用",
56
+ "按 Agent 提供模型、思考、模式和附件控制",
53
57
  "消息端到端加密",
54
58
  "支持自托管中继服务"
55
59
  ],
@@ -75,7 +79,7 @@
75
79
  <header class="site-header">
76
80
  <nav class="nav-shell" aria-label="主导航">
77
81
  <a class="brand" href="/zh" aria-label="msclaude 首页">
78
- <img class="brand-mark" src="/landing/icons/msclaude-animated.svg" alt="">
82
+ <img class="brand-mark" src="landing/icons/msclaude-animated.svg" alt="">
79
83
  <span>msclaude</span>
80
84
  </a>
81
85
  <div class="nav-actions">
@@ -93,10 +97,10 @@
93
97
  <p class="hero-lead">msclaude 将浏览器连接到本地运行的 Coding Agent。你可以从其他设备继续开发工作,代码、工具和执行环境仍然保留在自己的机器上。</p>
94
98
 
95
99
  <div class="agent-list" aria-label="支持的 Coding Agent">
96
- <span><i class="provider-icon"><img src="/landing/icons/agent-pi.svg" alt=""></i> Pi</span>
97
- <span><i class="provider-icon"><img src="/landing/icons/agent-copilot.svg" alt=""></i> GitHub Copilot</span>
98
- <span><i class="provider-icon"><img src="/landing/icons/agent-claude.svg" alt=""></i> Claude Code</span>
99
- <span><i class="provider-icon"><img src="/landing/icons/agent-codex.svg" alt=""></i> OpenAI Codex</span>
100
+ <span><i class="provider-icon"><img src="landing/icons/agent-pi.svg" alt=""></i> Pi</span>
101
+ <span><i class="provider-icon"><img src="landing/icons/agent-copilot.svg" alt=""></i> GitHub Copilot</span>
102
+ <span><i class="provider-icon"><img src="landing/icons/agent-claude.svg" alt=""></i> Claude Code</span>
103
+ <span><i class="provider-icon"><img src="landing/icons/agent-codex.svg" alt=""></i> OpenAI Codex</span>
100
104
  </div>
101
105
 
102
106
  <div class="hero-actions">
@@ -112,40 +116,62 @@
112
116
  <div class="product-window" aria-label="并行 Coding Agent 会话示意图">
113
117
  <div class="window-bar">
114
118
  <span class="window-dots" aria-hidden="true"><i></i><i></i><i></i></span>
115
- <span>msclaude · 4 个会话</span>
116
- <span class="encrypted-label">● 端到端加密</span>
119
+ <span>msclaude · 8 个会话</span>
120
+ <span class="encrypted-label"><i aria-hidden="true"></i>端到端加密</span>
117
121
  </div>
118
122
  <div class="provider-switcher" aria-label="四个支持的 Agent">
119
- <span class="provider-switcher-label">本页运行的 Agent</span>
120
- <span class="active"><i class="provider-icon"><img src="/landing/icons/agent-pi.svg" alt=""></i>Pi <b>1</b></span>
121
- <span><i class="provider-icon"><img src="/landing/icons/agent-copilot.svg" alt=""></i>Copilot <b>1</b></span>
122
- <span><i class="provider-icon"><img src="/landing/icons/agent-claude.svg" alt=""></i>Claude Code <b>1</b></span>
123
- <span><i class="provider-icon"><img src="/landing/icons/agent-codex.svg" alt=""></i>Codex <b>1</b></span>
123
+ <span class="provider-switcher-label">按 Agent 查看会话</span>
124
+ <span class="active"><i class="provider-icon"><img src="landing/icons/agent-pi.svg" alt=""></i>Pi <b>2</b></span>
125
+ <span><i class="provider-icon"><img src="landing/icons/agent-copilot.svg" alt=""></i>Copilot <b>1</b></span>
126
+ <span><i class="provider-icon"><img src="landing/icons/agent-claude.svg" alt=""></i>Claude Code <b>3</b></span>
127
+ <span><i class="provider-icon"><img src="landing/icons/agent-codex.svg" alt=""></i>Codex <b>2</b></span>
124
128
  </div>
125
129
  <div class="workspace-ui">
126
130
  <aside class="session-sidebar">
127
131
  <div class="sidebar-title"><strong>会话</strong><span>+</span></div>
128
132
  <div class="directory-label">Q:\src\frontend</div>
129
- <div class="session-row active"><i class="provider-icon"><img src="/landing/icons/agent-pi.svg" alt=""></i><span><strong>修改主页文案</strong><small>Pi · 处理中</small></span><b></b></div>
130
- <div class="session-row"><i class="provider-icon"><img src="/landing/icons/agent-copilot.svg" alt=""></i><span><strong>修复登录回调</strong><small>Copilot · 已完成</small></span></div>
133
+ <button class="session-row active" type="button" data-demo-session="pi"><i class="provider-icon"><img src="landing/icons/agent-pi.svg" alt=""></i><span><strong>加入键盘导航</strong><small>Pi · 处理中</small></span><b></b></button>
134
+ <button class="session-row" type="button" data-demo-session="copilot"><i class="provider-icon"><img src="landing/icons/agent-copilot.svg" alt=""></i><span><strong>修复付款重复提交</strong><small>Copilot · 已完成</small></span></button>
131
135
  <div class="directory-label">D:\work\api</div>
132
- <div class="session-row"><i class="provider-icon"><img src="/landing/icons/agent-claude.svg" alt=""></i><span><strong>Review API 改动</strong><small>Claude Code · 处理中</small></span><b></b></div>
133
- <div class="session-row"><i class="provider-icon"><img src="/landing/icons/agent-codex.svg" alt=""></i><span><strong>更新单元测试</strong><small>Codex · 已完成</small></span></div>
136
+ <button class="session-row" type="button" data-demo-session="claude"><i class="provider-icon"><img src="landing/icons/agent-claude.svg" alt=""></i><span><strong>设计零停机迁移方案</strong><small>Claude Code · 方案就绪</small></span></button>
137
+ <button class="session-row" type="button" data-demo-session="codex"><i class="provider-icon"><img src="landing/icons/agent-codex.svg" alt=""></i><span><strong>优化 CI 流水线</strong><small>Codex · 已完成</small></span></button>
134
138
  </aside>
135
- <div class="chat-ui">
139
+ <div class="chat-ui" data-demo-chat>
136
140
  <div class="chat-head">
137
- <div><strong>修改主页文案</strong><small>Q:\src\frontend · Pi</small></div>
141
+ <div><strong data-demo-title>加入键盘导航</strong><small data-demo-meta>Q:\src\frontend · Pi</small></div>
138
142
  <div class="chat-actions"><span>文件</span><span>Git</span><span>终端</span></div>
139
143
  </div>
140
- <div class="chat-body">
141
- <div class="message user-message">修改主页文案,并保持页面紧凑。</div>
144
+ <div class="chat-body" aria-live="polite">
145
+ <div class="message user-message" data-demo-user>为会话列表和命令面板加入完整的键盘导航。</div>
142
146
  <div class="message agent-message">
143
- <span class="message-author"><i class="provider-icon"><img src="/landing/icons/agent-pi.svg" alt=""></i> Pi</span>
144
- <p>我会更新产品描述,展示支持的 Agent,并把主要内容控制在两屏以内。</p>
145
- <div class="tool-call"><span>✓</span><div><strong>apply_patch</strong><small>已更新 landing.html 和 landing.css</small></div></div>
147
+ <span class="message-author"><i class="provider-icon"><img data-demo-icon src="landing/icons/agent-pi.svg" alt=""></i><span data-demo-agent>Pi</span></span>
148
+ <p data-demo-response>完成。方向键可以移动选项,Enter 打开会话,Escape 会将焦点返回编辑器。</p>
149
+ <div class="tool-call"><span>✓</span><div><strong data-demo-tool>edit</strong><small data-demo-tool-detail>已更新 SessionList.vue</small></div></div>
150
+ <div class="demo-extra" data-demo-extra>
151
+ <div class="diff-card">
152
+ <div class="diff-head"><strong>Edit</strong><span>SessionList.vue</span></div>
153
+ <code><span class="diff-remove">− @click="openSession(item)"</span><span class="diff-add">+ @keydown.enter="openSession(item)"</span></code>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ <div class="chat-input">
159
+ <div class="input-line">
160
+ <span class="input-placeholder" data-demo-placeholder>让 Pi 继续完善键盘操作...</span>
161
+ <button class="send-button" type="button" aria-label="发送消息">↑</button>
162
+ </div>
163
+ <div class="input-toolbar" data-demo-controls></div>
164
+ </div>
165
+ <div class="remote-terminal" data-demo-terminal hidden>
166
+ <div class="terminal-head">
167
+ <span><i></i><i></i><i></i></span>
168
+ <strong>远程终端</strong>
169
+ <small>已连接</small>
170
+ </div>
171
+ <div class="terminal-body" aria-label="模拟远程终端输出">
172
+ <code><span class="terminal-command"><b>$</b> ls</span><span class="terminal-output">README.md package.json src/ test/ vite.config.ts</span><span class="terminal-command"><b>$</b> <i class="terminal-cursor"></i></span></code>
146
173
  </div>
147
174
  </div>
148
- <div class="chat-input"><span>继续给 Pi 发送指令...</span><button aria-label="发送消息">↑</button></div>
149
175
  </div>
150
176
  </div>
151
177
  </div>
@@ -155,8 +181,8 @@
155
181
  <div class="section-intro">
156
182
  <p class="section-label">工作台</p>
157
183
  <div>
158
- <h2 id="capabilities-title">在一个页面中管理多个 Agent 和项目。</h2>
159
- <p>同时查看不同 Agent 和工作目录中的会话。无需在多个终端或浏览器标签页之间切换,即可检查进度并发送后续指令。</p>
184
+ <h2 id="capabilities-title">一个工作台,连接所有 Agent、代码库和开发工具。</h2>
185
+ <p>在活跃会话、不同工作目录和本地开发工具之间快速切换,无需来回打开终端、远程桌面或多个浏览器标签页。</p>
160
186
  </div>
161
187
  </div>
162
188
 
@@ -168,62 +194,64 @@
168
194
  <p>并行运行多个 Agent 会话,按工作目录组织,并随时搜索以前的对话。</p>
169
195
  </div>
170
196
  <div class="session-stack" aria-hidden="true">
171
- <span><i class="provider-icon"><img src="/landing/icons/agent-pi.svg" alt=""></i><b>Pi</b><small>Q:\src\frontend</small><em>处理中</em></span>
172
- <span><i class="provider-icon"><img src="/landing/icons/agent-claude.svg" alt=""></i><b>Claude Code</b><small>D:\work\api</small><em>处理中</em></span>
173
- <span><i class="provider-icon"><img src="/landing/icons/agent-codex.svg" alt=""></i><b>Codex</b><small>C:\repo\mobile</small><em>已完成</em></span>
197
+ <span><i class="provider-icon"><img src="landing/icons/agent-pi.svg" alt=""></i><b>Pi</b><small>Q:\src\frontend</small><em>处理中</em></span>
198
+ <span><i class="provider-icon"><img src="landing/icons/agent-claude.svg" alt=""></i><b>Claude Code</b><small>D:\work\api</small><em>处理中</em></span>
199
+ <span><i class="provider-icon"><img src="landing/icons/agent-codex.svg" alt=""></i><b>Codex</b><small>C:\repo\mobile</small><em>已完成</em></span>
174
200
  </div>
175
201
  </article>
176
202
 
177
203
  <article class="capability-card tools-card" id="tools">
178
204
  <div class="card-icon">&gt;_</div>
179
- <h3>对话与开发工具</h3>
180
- <p>对话是主要操作方式。需要更多上下文或控制时,项目工具会直接显示在会话旁边。</p>
205
+ <h3>把本地开发工作区带到浏览器</h3>
206
+ <p>直接访问 Agent 正在使用的文件、Git、终端和本地应用;开发环境仍然运行在自己的机器上。</p>
181
207
  <ul class="tool-list">
182
- <li>文件 <small>浏览、预览、编辑</small></li>
183
- <li>Git <small>状态与 Diff</small></li>
184
- <li>终端 <small>运行本地命令</small></li>
185
- <li>Port Proxy <small>打开本地服务</small></li>
208
+ <li>文件 <small>浏览、编辑、上传、下载</small></li>
209
+ <li>Git <small>状态、Diff、分支、历史</small></li>
210
+ <li>终端 <small>完整的本地交互式终端</small></li>
211
+ <li>端口代理 <small>从其他设备打开本地应用</small></li>
186
212
  </ul>
187
213
  </article>
188
214
 
189
215
  <article class="capability-card steps-card">
190
- <p class="section-label">工作原理</p>
216
+ <p class="section-label">Agent 控制</p>
217
+ <h3>每个 Agent 的原生能力,都在输入框里</h3>
218
+ <p>输入框会根据当前 Agent 展示对应能力,无需记忆命令行参数。</p>
191
219
  <ol>
192
- <li><span>1</span><div><strong>从本地启动</strong><small>在一个工作目录中运行 msclaude。</small></div></li>
193
- <li><span>2</span><div><strong>打开会话链接</strong><small>在其他设备上打开生成的网址。</small></div></li>
194
- <li><span>3</span><div><strong>继续开发</strong><small>远程使用对话、文件、Git 和终端。</small></div></li>
220
+ <li><span>+</span><div><strong>附件</strong><small>添加文件和图片。</small></div></li>
221
+ <li><span>◇</span><div><strong>模型与思考</strong><small>切换模型和推理等级。</small></div></li>
222
+ <li><span>›</span><div><strong>模式与权限</strong><small>使用 Plan 及 Agent 专属选项。</small></div></li>
195
223
  </ol>
196
224
  </article>
197
225
  </div>
198
226
  </section>
199
227
 
200
- <section class="trust-section" aria-label="安全与自托管">
228
+ <section class="trust-section" aria-label="本地优先的安全模型">
201
229
  <article class="trust-card" id="security">
202
230
  <div>
203
- <p class="section-label">端到端加密</p>
204
- <h2>中继无法读取你的工作内容。</h2>
205
- <p>浏览器与本地 Agent 之间的消息采用端到端加密。中继无法读取 Prompt、回复、工具输出或文件内容。代码和执行始终保留在开发机上。</p>
231
+ <p class="section-label">01 · 工作留在本地</p>
232
+ <h2>你的开发机就是工作空间。</h2>
233
+ <p>Agent、源代码、凭据、开发工具和命令执行都留在自己的机器上,无需迁移到新的云端环境。</p>
206
234
  </div>
207
235
  </article>
208
236
  <article class="trust-card">
209
237
  <div>
210
- <p class="section-label">多设备访问</p>
211
- <h2>从常用设备继续 Agent 会话。</h2>
212
- <p>在电脑、平板或手机的浏览器中打开同一个会话链接,查看执行进度、发送后续指令,并使用相关开发工具。</p>
238
+ <p class="section-label">02 · 连接保持私密</p>
239
+ <h2>中继只传输加密数据。</h2>
240
+ <p>Prompt、回复、工具输出和文件内容均在浏览器与本地 Agent 之间端到端加密。</p>
213
241
  </div>
214
242
  </article>
215
243
  <article class="trust-card" id="self-hosting">
216
244
  <div>
217
- <p class="section-label">自托管</p>
218
- <h2>轻松部署自己的中继服务。</h2>
219
- <p>使用托管中继最简单,但不是必需条件。轻量的 msclaude 中继可以部署到自己的基础设施,并保留相同的浏览器体验和加密机制。</p>
245
+ <p class="section-label">03 · 部署由你决定</p>
246
+ <h2>使用托管中继,或运行自己的服务。</h2>
247
+ <p>可以先使用托管中继,也可以将轻量服务部署到自己的基础设施,浏览器体验保持一致。</p>
220
248
  </div>
221
249
  </article>
222
250
  </section>
223
251
  </main>
224
252
 
225
253
  <footer class="site-footer">
226
- <a class="brand footer-brand" href="/zh"><img class="brand-mark" src="/landing/icons/msclaude-animated.svg" alt=""><span>msclaude</span></a>
254
+ <a class="brand footer-brand" href="/zh"><img class="brand-mark" src="landing/icons/msclaude-animated.svg" alt=""><span>msclaude</span></a>
227
255
  <p>远程使用开发机上运行的 Coding Agent。</p>
228
256
  <div><a href="https://github.com/kailunshi_microsoft/AgenticWorker" target="_blank" rel="noopener">GitHub</a><a href="/" lang="en" hreflang="en">EN</a></div>
229
257
  </footer>
@@ -1 +0,0 @@
1
- import{U as r,C as a}from"./mermaid.core-DkcKZax1.js";const o=(o,s)=>r.lang.round(a.parse(o)[s]);export{o as c};
@@ -1 +0,0 @@
1
- import{s as r,c as s,a,C as e}from"./chunk-V7JOEXUC-WNOLiPpt.js";import{_ as o}from"./mermaid.core-DkcKZax1.js";import"./chunk-5VM5RSS4-CqNmatdI.js";import"./chunk-XXDRQBXY-D6g9o0gx.js";import"./chunk-VR4S4FIN-B-fO7gd6.js";import"./chunk-32BRIVSS-L5rSd5kx.js";import"./index-DknoSkal.js";var t={parser:a,get db(){return new e},renderer:s,styles:r,init:o(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{t as diagram};
@@ -1 +0,0 @@
1
- import{s as r,c as s,a,C as e}from"./chunk-V7JOEXUC-WNOLiPpt.js";import{_ as o}from"./mermaid.core-DkcKZax1.js";import"./chunk-5VM5RSS4-CqNmatdI.js";import"./chunk-XXDRQBXY-D6g9o0gx.js";import"./chunk-VR4S4FIN-B-fO7gd6.js";import"./chunk-32BRIVSS-L5rSd5kx.js";import"./index-DknoSkal.js";var t={parser:a,get db(){return new e},renderer:s,styles:r,init:o(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{t as diagram};