@piagent/platform 1.41.0 → 1.42.1

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 (125) hide show
  1. package/CHANGELOG.md +1020 -2038
  2. package/CONTRIBUTING.md +2 -0
  3. package/README.md +128 -325
  4. package/README.vi.md +149 -143
  5. package/docs/command-reference-vietnamese.md +2 -2
  6. package/docs/distribution-standard.md +6 -6
  7. package/docs/languages.json +2 -2
  8. package/docs/operator-manual-vietnamese.md +7 -7
  9. package/docs/publishing-for-teams.md +2 -0
  10. package/docs/release-install-policy.md +3 -3
  11. package/docs/team-onboarding.md +2 -2
  12. package/docs-site/architecture.html +71 -63
  13. package/docs-site/assets/docs.css +2736 -1030
  14. package/docs-site/assets/docs.js +451 -43
  15. package/docs-site/assets/og.png +0 -0
  16. package/docs-site/assets/piagent-logo.svg +9 -31
  17. package/docs-site/assets/search-en.json +1 -0
  18. package/docs-site/assets/search-vi.json +1 -0
  19. package/docs-site/benchmark.html +71 -63
  20. package/docs-site/commands.html +72 -64
  21. package/docs-site/content/en/index.html +220 -131
  22. package/docs-site/content/en/quickstart.html +74 -90
  23. package/docs-site/content/en/update.html +80 -0
  24. package/docs-site/content/en/whats-new.html +1 -684
  25. package/docs-site/content/index.html +220 -131
  26. package/docs-site/content/quickstart.html +73 -108
  27. package/docs-site/content/update.html +80 -0
  28. package/docs-site/content/whats-new.html +1 -684
  29. package/docs-site/context-engine.html +73 -65
  30. package/docs-site/ecosystem.html +73 -65
  31. package/docs-site/en/architecture.html +67 -59
  32. package/docs-site/en/benchmark.html +67 -59
  33. package/docs-site/en/commands.html +68 -60
  34. package/docs-site/en/context-engine.html +68 -60
  35. package/docs-site/en/ecosystem.html +68 -60
  36. package/docs-site/en/index.html +281 -220
  37. package/docs-site/en/mcp-approval.html +67 -59
  38. package/docs-site/en/mcp-auth.html +67 -59
  39. package/docs-site/en/mcp-servers.html +68 -60
  40. package/docs-site/en/mcp.html +64 -56
  41. package/docs-site/en/permissions.html +68 -60
  42. package/docs-site/en/profiles.html +68 -60
  43. package/docs-site/en/quickstart.html +142 -150
  44. package/docs-site/en/runtime.html +67 -59
  45. package/docs-site/en/scope.html +68 -60
  46. package/docs-site/en/security.html +64 -56
  47. package/docs-site/en/team.html +67 -59
  48. package/docs-site/en/update.html +228 -0
  49. package/docs-site/en/whats-new.html +1612 -725
  50. package/docs-site/en/windows.html +71 -63
  51. package/docs-site/en/workflows.html +68 -60
  52. package/docs-site/favicon.svg +9 -14
  53. package/docs-site/index.html +281 -220
  54. package/docs-site/mcp-approval.html +70 -62
  55. package/docs-site/mcp-auth.html +70 -62
  56. package/docs-site/mcp-servers.html +71 -63
  57. package/docs-site/mcp.html +70 -62
  58. package/docs-site/permissions.html +72 -64
  59. package/docs-site/profiles.html +72 -64
  60. package/docs-site/quickstart.html +145 -172
  61. package/docs-site/releases.json +4485 -0
  62. package/docs-site/runtime.html +73 -65
  63. package/docs-site/scope.html +73 -65
  64. package/docs-site/security.html +73 -65
  65. package/docs-site/team.html +71 -63
  66. package/docs-site/update.html +228 -0
  67. package/docs-site/whats-new.html +1616 -729
  68. package/docs-site/windows.html +75 -67
  69. package/docs-site/workflows.html +73 -65
  70. package/evals/private-holdout-v1/public-exposure.v2.json +1 -1
  71. package/package.json +1 -1
  72. package/packages/piagent-core/managed/dist/workspace/manifest.json +1 -1
  73. package/packages/piagent-core/managed/dist/workspace/worker.mjs +1 -1
  74. package/packages/piagent-core/package.json +1 -1
  75. package/packages/piagent-core/security/workspace-file-reader.ts +3 -1
  76. package/packages/piagent-webui/dist/client/assets/ActivityPanel-DRAiHliI.js +1 -0
  77. package/packages/piagent-webui/dist/client/assets/App-JMuP_9-r.js +5 -0
  78. package/packages/piagent-webui/dist/client/assets/GatewayApp-awcOLVTi.js +93 -0
  79. package/packages/piagent-webui/dist/client/assets/InspectionApp-DtDc9NxN.js +1 -0
  80. package/packages/piagent-webui/dist/client/assets/LineReview-DZ9ez8kO.js +3 -0
  81. package/packages/piagent-webui/dist/client/assets/{MarkdownMessage-DeLo-xiz.js → MarkdownMessage-D7bbIWJe.js} +2 -2
  82. package/packages/piagent-webui/dist/client/assets/SessionAgentWorkspace-DLwK12hX.js +1 -0
  83. package/packages/piagent-webui/dist/client/assets/SessionInspectorDrawer-CsPNI6aU.js +2 -0
  84. package/packages/piagent-webui/dist/client/assets/SettingsNavigation-CM0s3QUC.js +3 -0
  85. package/packages/piagent-webui/dist/client/assets/SettingsPage-Cr6M2FVg.js +1 -0
  86. package/packages/piagent-webui/dist/client/assets/TerminalPanel-A78JVp4e.js +2 -0
  87. package/packages/piagent-webui/dist/client/assets/{TerminalView-r9rG24IO.js → TerminalView-CR4TO5f1.js} +3 -3
  88. package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-DPOp-ZoD.js +2 -0
  89. package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-H8Ogln3d.js +5 -0
  90. package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-vQ5DqfJl.js +1 -0
  91. package/packages/piagent-webui/dist/client/assets/api-BUjrtT1B.js +1 -0
  92. package/packages/piagent-webui/dist/client/assets/composer-drafts-BtMaVw8W.js +1 -0
  93. package/packages/piagent-webui/dist/client/assets/index-Dqb2hNan.css +1 -0
  94. package/packages/piagent-webui/dist/client/assets/index-qi6mjvTy.js +37 -0
  95. package/packages/piagent-webui/dist/client/assets/latest-request-DXcYQW86.js +1 -0
  96. package/packages/piagent-webui/dist/client/assets/tab-close-DHDqCxTL.js +1 -0
  97. package/packages/piagent-webui/dist/client/assets/terminal-transport-Dk5pYNX5.js +1 -0
  98. package/packages/piagent-webui/dist/client/assets/transcript-view-model-BNGQCkzY.js +3 -0
  99. package/packages/piagent-webui/dist/client/assets/ui-preferences-Dy4qeODT.js +1 -0
  100. package/packages/piagent-webui/dist/client/assets/vendor-CA5pzJiI.js +136 -0
  101. package/packages/piagent-webui/dist/client/assets/view-model-CWNiS4JN.js +1 -0
  102. package/packages/piagent-webui/dist/client/assets/workspace-navigation-C8GtShbg.js +1 -0
  103. package/packages/piagent-webui/dist/client/index.html +4 -9
  104. package/packages/piagent-webui/gateway/signed-session-journal.ts +16 -6
  105. package/packages/piagent-webui/server/loopback-server.ts +19 -5
  106. package/packages/piagent-webui/server/static-bundle.ts +10 -2
  107. package/scripts/build-docs-site.mjs +205 -348
  108. package/scripts/check-public-wording.mjs +2 -1
  109. package/scripts/docs-site-icons.mjs +84 -0
  110. package/scripts/docs-site-nav.mjs +302 -0
  111. package/scripts/docs-site-releases.mjs +227 -0
  112. package/scripts/verify-local.sh +17 -1
  113. package/packages/piagent-webui/dist/client/assets/Alert-DGWhP2MM.js +0 -1
  114. package/packages/piagent-webui/dist/client/assets/Button-QItfZUNj.js +0 -1
  115. package/packages/piagent-webui/dist/client/assets/DialogTitle-CyaFPaiW.js +0 -3
  116. package/packages/piagent-webui/dist/client/assets/TerminalPanel-BG-DP_qm.js +0 -2
  117. package/packages/piagent-webui/dist/client/assets/Typography-B9om7Evq.js +0 -1
  118. package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-BnqaR3pK.js +0 -2
  119. package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-BIxwiGtl.js +0 -5
  120. package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-CK3dILhQ.js +0 -1
  121. package/packages/piagent-webui/dist/client/assets/index-DBUTrEXi.css +0 -1
  122. package/packages/piagent-webui/dist/client/assets/index-rlyRccut.js +0 -102
  123. package/packages/piagent-webui/dist/client/assets/tab-close-BoJRyBO_.js +0 -1
  124. package/packages/piagent-webui/dist/client/assets/ui-preferences-BO3AV7QE.js +0 -10
  125. package/packages/piagent-webui/dist/client/assets/useId-DEefKUAT.js +0 -124
@@ -1,155 +1,244 @@
1
1
  <section class="hero">
2
- <p class="eyebrow">Piagent 1.41.0</p>
3
- <h1>A coding agent for the whole team, checked at every step.</h1>
4
- <p>
5
- One dashboard for Terminal and the browser. Use models with your own account, or the company's models through Agent Watch and Agent Studio. The guard checks every tool call; in company mode the team's Harness asks for checks, has a subagent review the change and reports the outcome right under the answer.
6
- </p>
7
- <div class="owner-strip" aria-label="Project information">
8
- <span class="owner-label">Project links</span>
9
- <a href="https://piagent.io.vn/en/" target="_blank" rel="noopener noreferrer">Docs · piagent.io.vn</a>
10
- <a href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer">GitHub · Vt-mmm/piagent</a>
11
- <a href="https://www.facebook.com/vinhtam0544/" target="_blank" rel="noopener noreferrer">Facebook · Vinh Tam</a>
12
- </div>
13
- <div class="hero-actions">
14
- <a class="button primary" href="/en/quickstart">Get started</a>
15
- <a class="button" href="/en/ecosystem">Ecosystem</a>
16
- <a class="button" href="/en/whats-new">What’s new in 1.41.0</a>
17
- <a class="button" href="/en/commands">View commands</a>
2
+ <div class="hero-bg" aria-hidden="true"></div>
3
+ <div class="hero-glow" aria-hidden="true"></div>
4
+ <div class="home-wrap">
5
+ <!-- hero-pill -->
6
+ <h1>A coding agent for the whole team, <span class="grad">checked at every step.</span></h1>
7
+ <p class="hero-sub">A guard stops risky tool calls before they run. The team's Harness runs checks and has a subagent review the change. One dashboard for Terminal and the browser, with your model or the company's.</p>
8
+ <div class="hero-cta">
9
+ <div class="install-box"><span class="prompt" aria-hidden="true">$</span><code>npm i -g @piagent/platform</code><button class="clip-btn" type="button" data-clip="npm install -g @piagent/platform&#10;piagent-setup" aria-label="Copy the install command">{{icon:copy}}</button></div>
10
+ <a class="button primary lg" href="/en/quickstart">Get started {{icon:arrow-right}}</a>
11
+ <a class="button lg" href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer">{{icon:github}} GitHub</a>
12
+ </div>
13
+ <p class="hero-note"><span>MIT</span><span>Node.js ≥ 22.19</span><span>macOS · Linux · Windows (WSL2)</span></p>
14
+
15
+ <div class="demo" data-reveal>
16
+ <div class="window" aria-label="Illustration of one company-mode turn" role="img">
17
+ <div class="window-bar" aria-hidden="true"><i></i><i></i><i></i><span class="title">piagent dashboard · shop-api</span></div>
18
+ <div class="window-body" aria-hidden="true">
19
+ <div class="window-side">
20
+ <p>Conversations</p>
21
+ <div class="item active">{{icon:message}}<span>Fix money rounding</span><i class="status run"></i></div>
22
+ <div class="item">{{icon:message}}<span>Paginate /orders</span><i class="status ok"></i></div>
23
+ <div class="item">{{icon:message}}<span>Read the project</span><i class="status ok"></i></div>
24
+ <p style="margin-top:18px">Harness</p>
25
+ <div class="item">{{icon:shield-check}}<span>check · review</span></div>
26
+ <div class="item">{{icon:branch}}<span>fix/invoice-rounding</span></div>
27
+ </div>
28
+ <div class="term" data-term>
29
+ <div class="term-line you"><span class="g">›</span><span data-type="Fix the invoice rounding bug, run the tests, then push."></span><span class="caret"></span></div>
30
+ <div class="term-line dim" data-wait="700"><span class="g">·</span><span>Read src/billing/invoice.ts, tests/invoice.test.ts</span></div>
31
+ <div class="term-line warn"><span class="g">✕</span><span>Guard blocked: read <b>.env</b> · protected file</span></div>
32
+ <div class="term-line mint"><span class="g">✎</span><span>Edit src/billing/invoice.ts <span class="ok">+12</span> <span class="warn">−3</span></span></div>
33
+ <div class="term-line" data-wait="800"><span class="g ok">▶</span><span>npm test <span class="dim">— sandbox, no network</span> <span class="ok">48 passed</span></span></div>
34
+ <div class="term-line" data-wait="800"><span class="g lime">◆</span><span>Review · subagent read the diff: <span class="ok">no blocking issue</span></span></div>
35
+ <div class="term-result" data-wait="700"><span class="ok">✓</span> Check passed on the final code · Review found no blocking issue</div>
36
+ <div class="term-card" data-wait="900">The agent wants to run <b>git push origin fix/invoice-rounding</b>
37
+ <div class="row"><span class="chip yes">Allow once</span><span class="chip">Deny</span></div>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
43
+
44
+ <div class="proof" data-reveal>
45
+ <div><strong><span data-count="54">54</span><em>/54</em></strong><span>tasks resolved in the production benchmark</span><small>codex-cli, same model: 48/54</small></div>
46
+ <div><strong>−<span data-count="61">61</span><em>%</em></strong><span>fresh tokens on the same workload</span><small>95% confidence: at least −51.6%</small></div>
47
+ <div><strong><span data-count="52">52</span><em>/52</em></strong><span>secret patterns redacted from output</span><small>0/30 ordinary texts redacted by mistake</small></div>
48
+ <div><strong><span data-count="{{releaseCount}}">{{releaseCount}}</span></strong><span>releases since 2026-07-21</span><small>4,400+ automated tests on macOS and Linux</small></div>
49
+ </div>
18
50
  </div>
19
51
  </section>
20
52
 
21
- <section class="section">
22
- <p class="section-kicker">Release 1.9.0</p>
23
- <h2 id="release-1-9-0">One company-mode turn</h2>
24
- <p class="section-lead">You write the request. The agent reads, edits and runs the tests in a sandbox; a subagent reviews the change; the last line states the outcome. 13 of 13 live scenarios pass on the final install, and 27 of 27 browser tests.</p>
25
- <figure class="shot">
26
- <img src="/assets/shots/company-run-done.jpg" alt="Piagent dashboard: a company-mode turn with read, edit and test steps and the line A check passed on the final code, Review found no blocking issue" width="1600" height="1000">
27
- <figcaption>The Piagent dashboard in company mode. See the whole picture in <a href="/en/ecosystem">Ecosystem</a> and every change in <a href="/en/whats-new">What’s new</a>.</figcaption>
28
- </figure>
53
+ <section class="home-section">
54
+ <div class="home-wrap">
55
+ <div class="home-head" data-reveal>
56
+ <p class="section-kicker">Why it is different</p>
57
+ <h2 id="different">The agent works fast. The platform keeps it right.</h2>
58
+ <p>Every tool call goes through the guard, every risky action waits for you, and in company mode a turn is only reported done once checks ran on the final code.</p>
59
+ </div>
60
+ <div class="bento" data-spotlight>
61
+ <article class="tile wide" data-reveal>
62
+ <span class="tile-icon">{{icon:shield-check}}</span>
63
+ <h3>A guard on every tool call</h3>
64
+ <p>Fails closed: protected files, permission profiles, oversized files, edits on a stale read. When in doubt it blocks, it does not guess.</p>
65
+ <div class="mini"><span class="x">✕</span> read .env <span class="d">— protected path</span><br><span class="x">✕</span> edit src/app.ts <span class="d">— read it again first</span><br><span class="w">!</span> git push <span class="d">— waits for one approval</span><br><span class="ok">✓</span> npm test <span class="d">— allowed</span></div>
66
+ </article>
67
+ <article class="tile wide" data-reveal>
68
+ <span class="tile-icon">{{icon:check-circle}}</span>
69
+ <h3>The team's Harness checks and reviews</h3>
70
+ <p>Studio sets the plan, the checks and the review rounds for the whole team. A subagent reads the diff on its own; the outcome sits right under the answer.</p>
71
+ <div class="chips"><span>plan</span><span>check</span><span>review</span><span>main · research · review</span></div>
72
+ </article>
73
+ <article class="tile" data-reveal>
74
+ <span class="tile-icon">{{icon:key}}</span>
75
+ <h3>One approval at a time</h3>
76
+ <p>Push, publish and network commands run only after you press <strong>Allow once</strong>. There is no "always allow".</p>
77
+ </article>
78
+ <article class="tile" data-reveal>
79
+ <span class="tile-icon">{{icon:box}}</span>
80
+ <h3>A sandbox in company mode</h3>
81
+ <p>Seatbelt on macOS, bubblewrap on Linux and WSL2: no network, no Keychain, no <code>.env</code> or SSH keys.</p>
82
+ </article>
83
+ <article class="tile" data-reveal>
84
+ <span class="tile-icon">{{icon:code}}</span>
85
+ <h3>The dashboard is an editor</h3>
86
+ <p>Folder tree, editor, terminal, hunk-by-hunk review, a Timeline to restore turns and <code>/undo</code>. 13 colour themes.</p>
87
+ </article>
88
+ <article class="tile" data-reveal>
89
+ <span class="tile-icon">{{icon:clock}}</span>
90
+ <h3>Long tasks finish</h3>
91
+ <p>A passing model error is retried; a Studio update is waited out, then work resumes. One turn can run for 24 hours.</p>
92
+ </article>
93
+ <article class="tile" data-reveal>
94
+ <span class="tile-icon">{{icon:brain}}</span>
95
+ <h3>Team memory</h3>
96
+ <p>The agent remembers the team's decisions and rules per repository and branch; <code>memory_ask</code> answers with sources.</p>
97
+ </article>
98
+ <article class="tile" data-reveal>
99
+ <span class="tile-icon">{{icon:camera}}</span>
100
+ <h3>Front-end change reports</h3>
101
+ <p>Before and after screenshots, each change in a numbered red frame, with checks and E2E. Shown right in Documents.</p>
102
+ </article>
103
+ </div>
104
+ </div>
29
105
  </section>
30
106
 
31
- <section class="section">
32
- <p class="section-kicker">Production V1 · historical evidence from v1.6.0</p>
33
- <h2 id="evidence">Measured, not asserted</h2>
34
- <p class="section-lead">Release-bound run <code>production-v1-20260824T040017Z-05b7cf</code> measured 108 sessions on GPT-5.6 Luna Medium at tag <code>v1.6.0</code>, exact commit <code>3bba8f0b3ff521bc2a355e1f6bef6d1bbdc09511</code>, with Piagent compared against <code>codex-cli</code>.</p>
35
-
36
- <div class="benchmark-metrics" aria-label="Headline benchmark numbers">
37
- <div class="benchmark-metric">
38
- <span>Release evidence</span>
39
- <strong>v1.6.0</strong>
40
- <small>exact commit 3bba8f0</small>
41
- </div>
42
- <div class="benchmark-metric">
43
- <span>Tasks resolved</span>
44
- <strong>54/54</strong>
45
- <small>Piagent; codex-cli resolved 48/54</small>
46
- </div>
47
- <div class="benchmark-metric">
48
- <span>Fresh tokens</span>
49
- <strong>-61.43%</strong>
50
- <small>primary fixed-workload family ratio 0.3857</small>
51
- </div>
52
- <div class="benchmark-metric">
53
- <span>Usage evidence</span>
54
- <strong>108/108 exact</strong>
55
- <small>zero retries</small>
107
+ <section class="home-section">
108
+ <div class="home-wrap">
109
+ <div class="home-head center" data-reveal>
110
+ <p class="section-kicker">One turn</p>
111
+ <h2 id="one-turn">You say what you need. The rest is verified.</h2>
112
+ </div>
113
+ <div class="flow" data-flow>
114
+ <div class="flow-step"><span class="flow-dot">{{icon:message}}</span><div><h3>Ask</h3><p>Plain language, no task contract or workflow command.</p></div></div>
115
+ <div class="flow-step"><span class="flow-dot">{{icon:code}}</span><div><h3>Read and edit</h3><p>The agent reads the files it needs and edits with a clear diff.</p></div></div>
116
+ <div class="flow-step"><span class="flow-dot">{{icon:shield-check}}</span><div><h3>Guard checks</h3><p>Every tool call meets the policy; risky ones wait for you.</p></div></div>
117
+ <div class="flow-step"><span class="flow-dot">{{icon:check-circle}}</span><div><h3>Check and review</h3><p>Tests run on the final code; a subagent reviews on its own.</p></div></div>
118
+ <div class="flow-step"><span class="flow-dot">{{icon:list}}</span><div><h3>Report</h3><p>One closing line: done, stopped part-way, or failed.</p></div></div>
56
119
  </div>
57
120
  </div>
121
+ </section>
58
122
 
59
- <div class="benchmark-legend" aria-label="Chart legend">
60
- <span><i class="piagent-swatch"></i>Piagent</span>
61
- <span><i class="codex-swatch"></i>codex-cli</span>
123
+ <section class="home-section">
124
+ <div class="home-wrap">
125
+ <div class="home-head center" data-reveal>
126
+ <p class="section-kicker">Real screens</p>
127
+ <h2 id="screens">Captured from a running dashboard</h2>
128
+ </div>
129
+ <div data-gallery data-reveal>
130
+ <div class="gallery-tabs">
131
+ <div class="tab-list" role="tablist" aria-label="Choose a screenshot">
132
+ <button type="button" role="tab" aria-selected="true" data-shot="/assets/shots/company-run-done.jpg" data-alt="A company-mode turn: read, edit, run tests; the closing line says the check passed and review found no blocking issue" data-caption="A company-mode turn: read, edit, run tests; the closing line records check and review.">Company turn</button>
133
+ <button type="button" role="tab" aria-selected="false" data-shot="/assets/shots/company-review-running.jpg" data-alt="A subagent reviewing the change during a company turn" data-caption="A subagent reviews the change while the turn is still running.">Review</button>
134
+ <button type="button" role="tab" aria-selected="false" data-shot="/assets/shots/network-approval.jpg" data-alt="Approval card for a network command, showing the exact command" data-caption="A network command waits for approval; the card shows the exact command.">Network approval</button>
135
+ <button type="button" role="tab" aria-selected="false" data-shot="/assets/shots/personal-edit-test.jpg" data-alt="Personal mode: editing code and running tests" data-caption="Personal mode: your model, the same guard.">Personal</button>
136
+ <button type="button" role="tab" aria-selected="false" data-shot="/assets/shots/hub-source-review.jpg" data-alt="Agent Inspector: working tree changes, inline diff and an open-in-editor button" data-caption="Source Changes: per-file diff, inline or side by side, review and stage hunk by hunk.">Source Changes</button>
137
+ <button type="button" role="tab" aria-selected="false" data-shot="/assets/shots/hub-palette.jpg" data-alt="Command palette listing commands and colour themes" data-caption="⌘K palette: every command, setting and the 13 colour themes in one search box.">Palette</button>
138
+ <button type="button" role="tab" aria-selected="false" data-shot="/assets/shots/hub-new-chat.jpg" data-alt="New conversation page with project and model pickers and starter tasks" data-caption="New conversation: pick the project and model, or click a starter task.">New chat</button>
139
+ </div>
140
+ </div>
141
+ <figure class="gallery-frame">
142
+ <img src="/assets/shots/company-run-done.jpg" alt="A company-mode turn: read, edit, run tests; the closing line says the check passed and review found no blocking issue" width="1600" height="1000" loading="lazy" decoding="async" style="transition:opacity .2s">
143
+ <figcaption>A company-mode turn: read, edit, run tests; the closing line records check and review.</figcaption>
144
+ </figure>
145
+ </div>
62
146
  </div>
147
+ </section>
63
148
 
64
- <div class="benchmark-usage-chart" aria-label="Fixed-workload family fresh-token ratio: Piagent 38.57 percent, codex-cli baseline 100 percent; tasks resolved: Piagent 54 of 54, codex-cli 48 of 54">
65
- <div class="benchmark-usage-group">
66
- <h3>Fixed-workload family fresh-token ratio</h3>
67
- <div class="benchmark-usage-row"><span>Piagent</span><div class="benchmark-track"><i class="piagent-bar" style="--bar-size: 38.57%"></i></div><strong>0.3857</strong></div>
68
- <div class="benchmark-usage-row"><span>codex-cli</span><div class="benchmark-track"><i class="codex-bar" style="--bar-size: 100%"></i></div><strong>1.0000</strong></div>
149
+ <section class="home-section">
150
+ <div class="home-wrap">
151
+ <div class="home-head" data-reveal>
152
+ <p class="section-kicker">Two modes</p>
153
+ <h2 id="two-modes">One dashboard, two ways to use models</h2>
154
+ <p>Switching modes does not change how you work: the same guard, the same history across Terminal and the browser.</p>
69
155
  </div>
70
- <div class="benchmark-usage-group">
71
- <h3>Tasks resolved</h3>
72
- <div class="benchmark-usage-row"><span>Piagent</span><div class="benchmark-track"><i class="piagent-bar" style="--bar-size: 100%"></i></div><strong>54/54</strong></div>
73
- <div class="benchmark-usage-row"><span>codex-cli</span><div class="benchmark-track"><i class="codex-bar" style="--bar-size: 88.89%"></i></div><strong>48/54</strong></div>
156
+ <div class="modes">
157
+ <article class="mode" data-reveal>
158
+ <div class="mode-head"><span class="tile-icon">{{icon:users}}</span><h3>Personal</h3><code>pi</code></div>
159
+ <p>Sign in with your own model account. Keys stay on your machine.</p>
160
+ <ul class="checks">
161
+ <li>{{icon:check}}<span>Pick any model and thinking level</span></li>
162
+ <li>{{icon:check}}<span>The same guard and protected paths as company mode</span></li>
163
+ <li>{{icon:check}}<span>Push and publish still wait for approval</span></li>
164
+ <li>{{icon:check}}<span><code>piagent dashboard</code> opens the web interface</span></li>
165
+ </ul>
166
+ </article>
167
+ <article class="mode featured" data-reveal>
168
+ <div class="mode-head"><span class="tile-icon">{{icon:building}}</span><h3>Company</h3><code>piagent studio --web</code></div>
169
+ <p>Agent Watch keeps the company key in Keychain; Agent Studio picks the models and the Harness for the team.</p>
170
+ <ul class="checks">
171
+ <li>{{icon:check}}<span>The model never sees the key</span></li>
172
+ <li>{{icon:check}}<span>Sandbox without network, opened one approval at a time</span></li>
173
+ <li>{{icon:check}}<span>Checks and review run by the Harness</span></li>
174
+ <li>{{icon:check}}<span>Usage, budgets and wrong-project warnings in Studio</span></li>
175
+ </ul>
176
+ </article>
74
177
  </div>
75
178
  </div>
76
-
77
- <p>The primary fixed-workload family ratio is <strong>0.3857</strong>, with a 95% confidence interval of <strong>0.3073–0.4840</strong>. The point estimate is 61.43% lower, while the upper confidence bound supports the conservative statement that Piagent used at least 51.60% fewer fresh tokens on this predeclared production-v1 workload and exact release. Usage was exact for all 108 sessions and no retry occurred. <a href="/en/benchmark">See the benchmark methodology and evidence boundary</a>.</p>
78
179
  </section>
79
180
 
80
- <section class="section">
81
- <h2 id="install">Install with two commands</h2>
82
- <p>Requires Node.js <span class="inline-code">&gt;=22.19.0</span>. Run these commands from the project you want to configure.</p>
83
- <pre><code>npm install -g @piagent/platform
84
- piagent-setup</code></pre>
85
- <p><span class="inline-code">piagent-setup</span> installs the pinned Pi Coding Agent host, installs the Pi package, initializes the current directory, and runs doctor. It also installs the MCP baseline and subagents; skip them with <span class="inline-code">--no-mcp</span>, <span class="inline-code">--no-subagents</span>, or <span class="inline-code">--global-only</span>. See the <a href="/en/quickstart">Quickstart</a> for the complete flow.</p>
181
+ <section class="home-section">
182
+ <div class="home-wrap">
183
+ <div class="home-head" data-reveal>
184
+ <p class="section-kicker">Install</p>
185
+ <h2 id="install">Running in two minutes</h2>
186
+ <p><code>piagent-setup</code> installs the exact Pi release this version pins, initializes the project and runs the doctor.</p>
187
+ </div>
188
+ <div class="tabs" data-tabs="os" data-reveal>
189
+ <div class="tab-list" role="tablist" aria-label="Operating system">
190
+ <button type="button" role="tab" data-tab="macos" aria-selected="true">{{icon:apple}} macOS · Linux</button>
191
+ <button type="button" role="tab" data-tab="windows" aria-selected="false" tabindex="-1">{{icon:windows}} Windows</button>
192
+ </div>
193
+ <div class="tab-panel" data-panel="macos">
194
+ <div class="install-grid">
195
+ <div class="install-step"><span class="num">01</span><h3>Install</h3><p>Run it in the project folder.</p>
196
+ <div class="command-card"><header><span>bash</span><button class="clip-btn" type="button" data-clip="npm install -g @piagent/platform&#10;piagent-setup">Copy</button></header>
197
+ <pre><code>npm install -g @piagent/platform
198
+ piagent-setup</code></pre></div></div>
199
+ <div class="install-step"><span class="num">02</span><h3>Open</h3><p>Terminal, or the dashboard in your browser.</p>
200
+ <div class="command-card"><header><span>bash</span><button class="clip-btn" type="button" data-clip="piagent dashboard">Copy</button></header>
201
+ <pre><code>piagent dashboard
202
+ pi # Terminal</code></pre></div></div>
203
+ <div class="install-step"><span class="num">03</span><h3>Update</h3><p>The dashboard tells you about new releases every hour.</p>
204
+ <div class="command-card"><header><span>bash</span><button class="clip-btn" type="button" data-clip="piagent-update">Copy</button></header>
205
+ <pre><code>piagent-update</code></pre></div></div>
206
+ </div>
207
+ </div>
208
+ <div class="tab-panel" data-panel="windows" hidden>
209
+ <div class="install-grid">
210
+ <div class="install-step span-2"><span class="num">01</span><h3>One PowerShell command</h3><p>Installs WSL2, Ubuntu, Piagent and Agent Watch, and adds Piagent to the Start menu. Run it again to update.</p>
211
+ <div class="command-card"><header><span>PowerShell</span><button class="clip-btn" type="button" data-clip="irm https://raw.githubusercontent.com/Vt-mmm/agentwatch/main/windows/setup.ps1 | iex">Copy</button></header>
212
+ <pre><code>irm https://raw.githubusercontent.com/Vt-mmm/agentwatch/main/windows/setup.ps1 | iex</code></pre></div></div>
213
+ <div class="install-step"><span class="num">02</span><h3>Details</h3><p>The first run restarts once to enable WSL2. The company connect code is optional.</p>
214
+ <a class="button" href="/en/windows">Windows guide {{icon:arrow-right}}</a></div>
215
+ </div>
216
+ </div>
217
+ </div>
218
+ </div>
86
219
  </section>
87
220
 
88
- <section class="section">
89
- <h2 id="where-to-start">Where to start</h2>
90
- <div class="card-grid">
91
- <a class="doc-card" href="/en/whats-new">
92
- <span class="card-kicker">Release 1.41.0</span>
93
- <h3>What’s new</h3>
94
- <p>Front-end change reports: before/after screenshots framed in red, business and logic changes and check results, right in Documents; in 1.40.0: local projects without a remote are reported to Studio too, and members see every kind of project warning (Studio 0.40.0); in 1.39.0: warnings when a key works in the wrong project (Studio 0.39.0), and the dashboard keeps its language and theme across restarts; in 1.38.2: a VS Code-style folder tree, colour themes (Dracula, Nord…), and an editor and terminal that stay in view; in 1.38.1: the dashboard becomes an editor: file edits, terminals, inline hunk review and turn restore; Bypass that asks nothing, in company conversations too when the Harness allows it; in 1.37.1: a run Studio did not confirm closed is no longer recorded closed, a helper whose close fails keeps its answer, and team-memory lessons name the right command; in 1.37.0: an answer cut mid-stream no longer stops a long task, and <code>piagent studio --rpc</code>; in 1.36.1: a moment when Agent Watch cannot reach Studio no longer stops a task; in 1.36.0: team memory learns from what went wrong: Studio rates what memory handed over, a repeated command failure becomes a lesson; in 1.35: long tasks go on when Studio is updated or the model has a passing error; in 1.34: helpers report how their work ended, Agent Watch tells you when you are needed; in 1.33.0: runs on Pi 1.3.0; in 1.32.1: Bypass is kept after a reload, and a tab in use no longer signs out after 8 hours; in 1.32.0: a failed or stopped answer ends at Studio too; in 1.31.1: <code>memory_ask</code> right after an update; in 1.31.0: Team memory follows the branch and the team's rules, with <code>memory_ask</code>; in 1.30.1: no model names in the company Terminal; running <code>piagent studio</code> in the home folder now says to open a project folder; in 1.30.0: large contexts reach Studio over slow links and the company Terminal reads like the dashboard; in 1.29.0: the company Terminal gets its own look and Stop no longer breaks the conversation; in 1.28.3: Agent Watch updating itself no longer interrupts the company Terminal; in 1.28.2: no more “binding changed” right after an update; in 1.28.1: the company Terminal and personal Pi stop stepping on each other (no duplicate Piagent, no old company config, company chats stay in piagent studio); in 1.28.0: team memory v2; in 1.27.1: team memory keeps working while the agent calls the model; in 1.27.0: team memory, company agents remember the team's decisions and rules in each repository; in 1.26.1: a conversation is renamed while its turn runs; in 1.26.0: the Terminal's / commands and shortcuts in the dashboard, /undo for the agent's last turn, dev servers that stay up across turns; in 1.25.0: when the machine lacks something the agent asks, and the approved command runs (run_on_host outside the sandbox, start_docker in the same conversation); in 1.24.0: choose Fast on the new chat page for company conversations, and the Fast switch turns amber while on; in 1.23.1: an agent's question waits at the end of the conversation, right above the composer, and reads more easily; in 1.23.0: a Fast switch for company conversations where the Harness allows it, failed tools reported to Studio (Logs → Tool lỗi), new conversations send their first message after a Harness change; in 1.22.1: the dashboard no longer keeps loading when a project is on a Windows drive seen from WSL (/mnt/d…) or the company runtime does not answer; in 1.22.0: attach any source or text file (.html, .css, .ts, .py, Dockerfile…); in 1.21.1: Bypass can be turned on while a turn runs and stays on after a reload; in 1.21.0: questions and approvals one card at a time (the main agent's first), a notification at the top right when another conversation finishes or waits for you, Studio logs each compaction; in 1.20.0: package installs in the company sandbox no longer ask (npm, PyPI, Go, Maven, Gradle… through a registry-only proxy); in 1.19.0: company tasks with a checklist are carried to the end, every turn says whether it finished, stopped midway or failed, Docker in the company sandbox, folders with several repositories; in 1.18.0: switch the Git branch from the dashboard, retries for passing failures, Claude Haiku 5.5; in 1.17.0: the dashboard shows each project's Git branch; in 1.16.3: an updated dashboard keeps checking for releases; in 1.16.2: the Terminal says what the dashboard says: update question, /bypass, failures and Harness notes in Vietnamese; in 1.16.1: new releases are announced in a dialog and checked every hour, dashboard tabs stay signed in; in 1.16.0: Bypass for company conversations, Harness changes never interrupt you; in 1.15.2: long conversations shrink again; in 1.15.1: Studio sees what each model call is for, conversations in one folder keep their changes apart; in 1.15.0: a refused subagent says why; in 1.14: updates keep the models you chose; in 1.13: conversations keep their place, the agent's notes are formatted, Piagent on Windows through WSL2: a bubblewrap sandbox for company conversations and Agent Watch for Windows; in 1.12: @ picks files and folders on the Mac, skills and commands run from /, and forked company conversations take messages.</p>
95
- </a>
96
- <a class="doc-card" href="/en/ecosystem">
97
- <span class="card-kicker">Get started</span>
98
- <h3>Ecosystem</h3>
99
- <p>Piagent, Agent Watch and Agent Studio: what runs where, and when to use personal or company mode.</p>
100
- </a>
101
- <a class="doc-card" href="/en/quickstart">
102
- <span class="card-kicker">Get started</span>
103
- <h3>Quickstart</h3>
104
- <p>Install, open a repository, choose its profile and permissions, then make the first request in plain language.</p>
105
- </a>
106
- <a class="doc-card" href="/en/scope">
107
- <span class="card-kicker">Get started</span>
108
- <h3>Platform scope</h3>
109
- <p>Why this repository exists alongside general coding agents, and which operating concerns it owns.</p>
110
- </a>
111
- <a class="doc-card" href="/en/profiles">
112
- <span class="card-kicker">Build</span>
113
- <h3>Project profiles</h3>
114
- <p>Choose the operating profile for a repository: protected paths, verification commands, and granted capabilities.</p>
115
- </a>
116
- <a class="doc-card" href="/en/mcp">
117
- <span class="card-kicker">MCP</span>
118
- <h3>MCP</h3>
119
- <p>Four configuration layers, pinned presets, server management, authentication readiness, and repository approval gates.</p>
120
- </a>
121
- <a class="doc-card" href="/en/security">
122
- <span class="card-kicker">Operate</span>
123
- <h3>Security model</h3>
124
- <p>A policy enforcement layer, not an OS sandbox, with explicit claims about what is and is not controlled.</p>
125
- </a>
126
- <a class="doc-card" href="/en/benchmark">
127
- <span class="card-kicker">Operate</span>
128
- <h3>Production benchmark</h3>
129
- <p>Quality, safety, workflow, and token evidence from 108 sessions compared with the <code>codex-cli</code> surface.</p>
130
- </a>
131
- <a class="doc-card" href="/en/commands">
132
- <span class="card-kicker">Build</span>
133
- <h3>Command catalog</h3>
134
- <p>Slash commands and terminal commands grouped by the job they perform.</p>
135
- </a>
221
+ <section class="home-section">
222
+ <div class="home-wrap">
223
+ <div class="home-head" data-reveal>
224
+ <p class="section-kicker">Changelog</p>
225
+ <h2 id="latest-updates">Steady releases, every change written down</h2>
226
+ <p>Each release says what changed and which Studio or Agent Watch it needs. <a href="/en/whats-new">See the full changelog</a>.</p>
227
+ </div>
228
+ <div class="updates">
229
+ <!-- latest-releases -->
230
+ </div>
136
231
  </div>
137
232
  </section>
138
233
 
139
- <section class="section">
140
- <h2 id="doc-groups">Three documentation groups</h2>
141
- <div class="split">
142
- <div class="card">
143
- <h3 id="get-started-group">Get started</h3>
144
- <p>For first-time users: installation, quickstart, and where the platform fits alongside other agent CLIs.</p>
145
- </div>
146
- <div class="card">
147
- <h3 id="build-group">Build</h3>
148
- <p>Daily operation: profiles, permissions, commands, workflows, and a dedicated MCP section for its broader command surface.</p>
149
- </div>
150
- <div class="card">
151
- <h3 id="operate-group">Operate</h3>
152
- <p>For operators and reviewers: security boundaries, repository architecture, terminal tools, and the team operating standard.</p>
234
+ <section class="home-wrap">
235
+ <div class="final-cta" data-reveal>
236
+ <h2>Hand work to the agent. Keep the decisions.</h2>
237
+ <p>Two commands to install. Docs in the order you need them.</p>
238
+ <div class="hero-cta" style="margin-top:0">
239
+ <a class="button primary lg" href="/en/quickstart">Install {{icon:arrow-right}}</a>
240
+ <a class="button lg" href="/en/ecosystem">Ecosystem</a>
241
+ <a class="button lg ghost" href="/en/benchmark">{{icon:chart}} Benchmark</a>
153
242
  </div>
154
243
  </div>
155
244
  </section>