@piagent/platform 1.7.1 → 1.9.0

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 (227) hide show
  1. package/AGENTS.md +7 -0
  2. package/CHANGELOG.md +113 -1
  3. package/README.md +45 -70
  4. package/README.vi.md +34 -61
  5. package/architecture/layers.json +16 -3
  6. package/catalog/capabilities.json +14 -7
  7. package/catalog/claude-model-additions.json +42 -0
  8. package/docs/auto-delegation-policy.md +2 -0
  9. package/docs/command-reference-vietnamese.md +69 -91
  10. package/docs/context-window-policy.md +5 -5
  11. package/docs/distribution-standard.md +16 -19
  12. package/docs/en/architecture.md +9 -1
  13. package/docs/herdr-workflow.md +2 -3
  14. package/docs/languages.json +4 -4
  15. package/docs/managed-local-acceptance.md +403 -0
  16. package/docs/mcp-and-tools.md +5 -7
  17. package/docs/memory-policy.md +3 -3
  18. package/docs/model-options.md +22 -17
  19. package/docs/oauth-providers.md +1 -1
  20. package/docs/operator-manual-vietnamese.md +85 -130
  21. package/docs/package-architecture-notes.md +4 -4
  22. package/docs/piagent-core-improvement-plan.md +3 -5
  23. package/docs/piagent-core-plan-checkpoint-2026-09-06.json +2 -13
  24. package/docs/piagent-runtime-benchmark-execution-plan.md +10 -8
  25. package/docs/project-adapters.md +3 -3
  26. package/docs/project-onboarding.md +15 -16
  27. package/docs/publishing-for-teams.md +3 -1
  28. package/docs/quality-benchmark.md +2 -0
  29. package/docs/quickstart-vietnamese.md +24 -25
  30. package/docs/release-install-policy.md +16 -11
  31. package/docs/research/harness-next-evidence-review.md +7 -7
  32. package/docs/runtime-harness-standard.md +2 -0
  33. package/docs/runtime-policy-design.md +2 -0
  34. package/docs/runtime-quality-baseline.md +2 -0
  35. package/docs/subagent-orchestration-capabilities.md +1 -1
  36. package/docs/subagents-and-multiagent.md +10 -8
  37. package/docs/task-implementation-contract.md +2 -0
  38. package/docs/task-lifecycle-vietnamese.md +2 -0
  39. package/docs/team-onboarding.md +33 -64
  40. package/docs/usage-observability.md +2 -2
  41. package/docs/vi/architecture.md +9 -1
  42. package/docs/workflow-recipes.md +6 -10
  43. package/docs-site/architecture.html +4 -3
  44. package/docs-site/assets/docs.css +80 -0
  45. package/docs-site/benchmark.html +7 -1
  46. package/docs-site/commands.html +37 -23
  47. package/docs-site/content/architecture.html +2 -2
  48. package/docs-site/content/benchmark.html +5 -0
  49. package/docs-site/content/commands.html +35 -22
  50. package/docs-site/content/ecosystem.html +144 -0
  51. package/docs-site/content/en/architecture.html +1 -1
  52. package/docs-site/content/en/benchmark.html +5 -0
  53. package/docs-site/content/en/commands.html +30 -13
  54. package/docs-site/content/en/ecosystem.html +144 -0
  55. package/docs-site/content/en/index.html +24 -9
  56. package/docs-site/content/en/quickstart.html +10 -12
  57. package/docs-site/content/en/runtime.html +1 -1
  58. package/docs-site/content/en/security.html +1 -1
  59. package/docs-site/content/en/team.html +2 -2
  60. package/docs-site/content/en/whats-new.html +89 -1
  61. package/docs-site/content/en/workflows.html +29 -31
  62. package/docs-site/content/index.html +24 -9
  63. package/docs-site/content/quickstart.html +10 -12
  64. package/docs-site/content/runtime.html +2 -2
  65. package/docs-site/content/security.html +2 -2
  66. package/docs-site/content/team.html +2 -2
  67. package/docs-site/content/whats-new.html +89 -1
  68. package/docs-site/content/workflows.html +36 -38
  69. package/docs-site/context-engine.html +2 -1
  70. package/docs-site/ecosystem.html +283 -0
  71. package/docs-site/en/architecture.html +3 -2
  72. package/docs-site/en/benchmark.html +7 -1
  73. package/docs-site/en/commands.html +32 -14
  74. package/docs-site/en/context-engine.html +2 -1
  75. package/docs-site/en/ecosystem.html +283 -0
  76. package/docs-site/en/index.html +30 -14
  77. package/docs-site/en/mcp-approval.html +2 -1
  78. package/docs-site/en/mcp-auth.html +2 -1
  79. package/docs-site/en/mcp-servers.html +2 -1
  80. package/docs-site/en/mcp.html +2 -1
  81. package/docs-site/en/permissions.html +2 -1
  82. package/docs-site/en/profiles.html +2 -1
  83. package/docs-site/en/quickstart.html +17 -18
  84. package/docs-site/en/runtime.html +3 -2
  85. package/docs-site/en/scope.html +2 -1
  86. package/docs-site/en/security.html +6 -5
  87. package/docs-site/en/team.html +4 -3
  88. package/docs-site/en/whats-new.html +97 -8
  89. package/docs-site/en/workflows.html +34 -35
  90. package/docs-site/index.html +30 -14
  91. package/docs-site/mcp-approval.html +2 -1
  92. package/docs-site/mcp-auth.html +2 -1
  93. package/docs-site/mcp-servers.html +2 -1
  94. package/docs-site/mcp.html +2 -1
  95. package/docs-site/permissions.html +2 -1
  96. package/docs-site/profiles.html +2 -1
  97. package/docs-site/quickstart.html +17 -18
  98. package/docs-site/runtime.html +4 -3
  99. package/docs-site/scope.html +2 -1
  100. package/docs-site/security.html +7 -6
  101. package/docs-site/team.html +4 -3
  102. package/docs-site/whats-new.html +97 -8
  103. package/docs-site/workflows.html +41 -42
  104. package/evals/fs5-causal-arm.v1.json +2 -2
  105. package/evals/private-holdout-v1/CURRENT_BOUNDARY.md +17 -0
  106. package/evals/private-holdout-v1/public-exposure.v2.json +2 -2
  107. package/package.json +10 -9
  108. package/packages/piagent-core/README.md +15 -23
  109. package/packages/piagent-core/docs/context-efficiency-improvement-plan.md +2 -0
  110. package/packages/piagent-core/extensions/experiment-loop-policy.ts +75 -0
  111. package/packages/piagent-core/extensions/local-state-path.js +15 -0
  112. package/packages/piagent-core/extensions/piagent-guard.ts +108 -960
  113. package/packages/piagent-core/extensions/policy-core.js +2 -2
  114. package/packages/piagent-core/extensions/source-checkout-paths.ts +54 -0
  115. package/packages/piagent-core/managed/broker-client.mjs +49 -0
  116. package/packages/piagent-core/managed/capabilities.mjs +28 -0
  117. package/packages/piagent-core/managed/compaction.mjs +63 -0
  118. package/packages/piagent-core/managed/doctor.mjs +107 -0
  119. package/packages/piagent-core/managed/native-catalog.mjs +42 -0
  120. package/packages/piagent-core/managed/patch-snapshot.mjs +48 -0
  121. package/packages/piagent-core/managed/repository-operation.mjs +84 -0
  122. package/packages/piagent-core/managed/request-stream.mjs +129 -0
  123. package/packages/piagent-core/managed/resource-loader.mjs +42 -0
  124. package/packages/piagent-core/managed/review-snapshot-worker.mjs +27 -0
  125. package/packages/piagent-core/managed/sandbox-diagnostic.mjs +12 -0
  126. package/packages/piagent-core/managed/search-fallback.mjs +93 -0
  127. package/packages/piagent-core/managed/session.mjs +472 -0
  128. package/packages/piagent-core/managed/store.d.mts +3 -0
  129. package/packages/piagent-core/managed/store.mjs +64 -0
  130. package/packages/piagent-core/managed/tool-boundary.mjs +243 -0
  131. package/packages/piagent-core/managed/tool-worker.mjs +36 -0
  132. package/packages/piagent-core/managed/toolchain.mjs +120 -0
  133. package/packages/piagent-core/managed/web-fetch.mjs +105 -0
  134. package/packages/piagent-core/managed/web-search.mjs +96 -0
  135. package/packages/piagent-core/managed/workflow.mjs +299 -0
  136. package/packages/piagent-core/package.json +3 -6
  137. package/packages/piagent-core/policies/base-policy.json +80 -26
  138. package/packages/piagent-core/runtime/hooks/agent-start-hook.ts +3 -3
  139. package/packages/piagent-core/runtime/hooks/input-hook.ts +35 -196
  140. package/packages/piagent-core/runtime/hooks/session-start-hook.ts +2 -0
  141. package/packages/piagent-core/runtime/inspection/approval-broker.ts +9 -1
  142. package/packages/piagent-core/runtime/inspection/same-process-bridge-proof.ts +1 -1
  143. package/packages/piagent-core/runtime/inspection/webui-snapshot.ts +1 -1
  144. package/packages/piagent-core/runtime/managed-failure.d.mts +10 -0
  145. package/packages/piagent-core/runtime/managed-failure.mjs +164 -0
  146. package/packages/piagent-core/runtime/model/model-route-policy.ts +33 -13
  147. package/packages/piagent-core/runtime/model/model-route-types.ts +10 -6
  148. package/packages/piagent-core/runtime/orchestration/minimal-delegation-policy.ts +8 -29
  149. package/packages/piagent-core/runtime/orchestration/owned-work-budget.ts +1 -1
  150. package/packages/piagent-core/runtime/policy/block-remedy.ts +5 -3
  151. package/packages/piagent-core/runtime/registration/context-commands.ts +1 -1
  152. package/packages/piagent-core/runtime/registration/knowledge-tools.ts +7 -7
  153. package/packages/piagent-core/runtime/registration/policy-tools.ts +2 -2
  154. package/packages/piagent-core/runtime/registration/session-commands.ts +11 -26
  155. package/packages/piagent-core/runtime/registration/task-evidence-tools.ts +1 -1
  156. package/packages/piagent-core/runtime/session/system-prompt.ts +6 -7
  157. package/packages/piagent-core/runtime/workflows/webui-runtime-command.ts +6 -6
  158. package/packages/piagent-core/runtime/workflows/webui-workflow.ts +6 -11
  159. package/packages/piagent-core/security/sensitive-text.js +9 -0
  160. package/packages/piagent-core/skills/piagent-ops/SKILL.md +8 -10
  161. package/packages/piagent-core/skills/test-audit/SKILL.md +101 -0
  162. package/packages/piagent-core/subagents/piagent-planner.md +1 -1
  163. package/packages/piagent-webui/dist/client/assets/{MarkdownMessage-DGk34zJT.js → MarkdownMessage-Dd9wPk-v.js} +1 -1
  164. package/packages/piagent-webui/dist/client/assets/index-7I-50Q2U.js +228 -0
  165. package/packages/piagent-webui/dist/client/assets/{index-DVahUVWy.css → index-DgSmcnP8.css} +1 -1
  166. package/packages/piagent-webui/dist/client/index.html +2 -2
  167. package/packages/piagent-webui/extension/piagent-webui.ts +11 -11
  168. package/packages/piagent-webui/extension/session-stream-adapter.ts +3 -1
  169. package/packages/piagent-webui/extension/terminal-session-adapter.ts +6 -1
  170. package/packages/piagent-webui/gateway/company-relay.ts +308 -0
  171. package/packages/piagent-webui/gateway/control-socket.ts +39 -12
  172. package/packages/piagent-webui/gateway/gateway-service.ts +109 -28
  173. package/packages/piagent-webui/gateway/gateway-session-stream.ts +58 -2
  174. package/packages/piagent-webui/gateway/managed-gateway.mjs +41 -0
  175. package/packages/piagent-webui/gateway/managed-launch.ts +145 -0
  176. package/packages/piagent-webui/gateway/managed-projection.ts +20 -0
  177. package/packages/piagent-webui/gateway/pi-host.ts +22 -4
  178. package/packages/piagent-webui/gateway/runtime-session-controls.ts +5 -2
  179. package/packages/piagent-webui/gateway/session-approval-authority.ts +28 -0
  180. package/packages/piagent-webui/gateway/session-catalog.ts +11 -3
  181. package/packages/piagent-webui/gateway/session-command-controller.ts +8 -2
  182. package/packages/piagent-webui/gateway/session-file-facts.ts +25 -0
  183. package/packages/piagent-webui/gateway/session-inspection-registry.ts +42 -12
  184. package/packages/piagent-webui/gateway/session-list-cache.ts +68 -0
  185. package/packages/piagent-webui/gateway/session-runtime-ownership.ts +8 -1
  186. package/packages/piagent-webui/gateway/session-runtime-supervisor.ts +20 -27
  187. package/packages/piagent-webui/ownership/managed-terminal-lease.ts +27 -0
  188. package/packages/piagent-webui/ownership/profile-state.ts +2 -0
  189. package/packages/piagent-webui/ownership/session-lease-store.ts +22 -1
  190. package/packages/piagent-webui/server/approval-projection.ts +9 -0
  191. package/packages/piagent-webui/server/core-inspection-provider.ts +4 -9
  192. package/packages/piagent-webui/server/loopback-server.ts +37 -1
  193. package/packages/piagent-webui/server/message-stop-reason.ts +11 -0
  194. package/packages/piagent-webui/server/tool-call-summary.ts +185 -0
  195. package/packages/piagent-webui/server/transcript-projection.ts +86 -3
  196. package/packs/engineering-base/pack.json +4 -0
  197. package/schemas/piagent-webui/runtime-command-v1.schema.json +1 -2
  198. package/schemas/piagent-webui/session-catalog-v1.schema.json +8 -0
  199. package/schemas/piagent-webui/transcript-v1.schema.json +94 -1
  200. package/scripts/build-docs-site.mjs +23 -12
  201. package/scripts/check-public-wording.mjs +5 -6
  202. package/scripts/check-runtime-advisories.mjs +23 -6
  203. package/scripts/claude-model-additions.mjs +33 -0
  204. package/scripts/configure-model-scope.sh +36 -8
  205. package/scripts/configure-subagents.sh +1 -1
  206. package/scripts/explain-command.mjs +5 -6
  207. package/scripts/install-global.sh +2 -2
  208. package/scripts/model-route-evaluation-core.ts +1 -0
  209. package/scripts/model-scope-prune.mjs +75 -0
  210. package/scripts/phase-tools-evaluation.mjs +9 -4
  211. package/scripts/pi-model-route.mjs +1 -1
  212. package/scripts/piagent-cli.mjs +51 -2
  213. package/scripts/piagent-dashboard.mjs +27 -4
  214. package/scripts/piagent-installations.mjs +26 -0
  215. package/scripts/piagent-studio.mjs +155 -0
  216. package/scripts/runtime-advisory-exceptions.json +29 -0
  217. package/scripts/setup.sh +2 -2
  218. package/scripts/team-doctor.sh +20 -1
  219. package/scripts/typescript-loader.mjs +6 -0
  220. package/scripts/verify-local.sh +5 -5
  221. package/scripts/verify-release-identity.mjs +1 -1
  222. package/templates/global/settings.json +8 -2
  223. package/templates/project/.pi/project-context.md +3 -3
  224. package/templates/project/AGENTS.md +4 -5
  225. package/docs/piagent-core-reasoning-research-2026-09-06.md +0 -225
  226. package/docs/piagent-core-research-sources-2026-09-06.json +0 -416
  227. package/packages/piagent-webui/dist/client/assets/index-DiKRmCEP.js +0 -176
@@ -6,7 +6,6 @@
6
6
  <div class="tag-list">
7
7
  <span class="tag">/login</span>
8
8
  <span class="tag">/model</span>
9
- <span class="tag">/commands</span>
10
9
  <span class="tag">/piagent-status</span>
11
10
  <span class="tag">/piagent-inspector</span>
12
11
  <span class="tag">/piagent-orchestration</span>
@@ -15,10 +14,10 @@
15
14
  <span class="tag">/task-preflight</span>
16
15
  <span class="tag">/context preflight</span>
17
16
  <span class="tag">/name</span>
18
- <span class="tag">/fresh</span>
17
+ <span class="tag">/new</span>
19
18
  <span class="tag">/session</span>
20
19
  </div>
21
- <p>Dùng để setup session, chọn model, xem profile/usage/orchestration và quyết định có cần fresh session trước task lớn không.</p>
20
+ <p>Dùng để setup session, chọn model, xem profile/usage/orchestration và quyết định có cần mở session mới (<span class="inline-code">/new</span>) trước việc lớn không.</p>
22
21
  </article>
23
22
  <article class="card">
24
23
  <h3 id="project-profile">Project profile</h3>
@@ -35,35 +34,32 @@
35
34
  <p>Áp profile trực tiếp hoặc mở select option để chọn profile/tech stack. Output ngắn, không yêu cầu model giải thích dài.</p>
36
35
  </article>
37
36
  <article class="card">
38
- <h3 id="implementation-workflow">Implementation workflow</h3>
37
+ <h3 id="implementation-workflow">Giao việc</h3>
39
38
  <div class="tag-list">
40
- <span class="tag">/workflow</span>
41
- <span class="tag">/workflow task</span>
42
- <span class="tag">/workflow plan</span>
43
- <span class="tag">/workflow review</span>
44
- <span class="tag">/workflow scout</span>
45
- <span class="tag">/workflow discuss</span>
39
+ <span class="tag">lời thường</span>
40
+ <span class="tag">chỉ đọc, không sửa</span>
41
+ <span class="tag">lập plan trước</span>
42
+ <span class="tag">review diff</span>
46
43
  </div>
47
- <p>Gói sẵn read context, task contract, implementation, verify evidence và final handoff.</p>
44
+ <p>Từ bản 1.9.0 không còn <span class="inline-code">/workflow</span>, <span class="inline-code">/task</span> hay task contract: nói việc cần làm bằng lời thường; guard kiểm tra từng tool call.</p>
48
45
  </article>
49
46
  <article class="card">
50
47
  <h3 id="git-handoff">Git handoff</h3>
51
48
  <div class="tag-list">
52
- <span class="tag">/workflow commit</span>
53
- <span class="tag">/workflow pr</span>
49
+ <span class="tag">commit bằng lời thường</span>
50
+ <span class="tag">draft PR bằng lời thường</span>
54
51
  <span class="tag">git status</span>
55
52
  <span class="tag">git diff</span>
56
53
  </div>
57
- <p>Không cần namespace <span class="inline-code">/git</span>. Commit/PR đi qua workflow guard; push và stage rộng như <span class="inline-code">git add -A</span> cần xác nhận.</p>
54
+ <p>Không cần namespace <span class="inline-code">/git</span>. Commit/PR là yêu cầu thường; push, ghi lên GitHub và stage rộng như <span class="inline-code">git add -A</span> cần xác nhận.</p>
58
55
  </article>
59
56
  <article class="card">
60
- <h3 id="fresh-sessions">Fresh sessions</h3>
57
+ <h3 id="fresh-sessions">Session mới</h3>
61
58
  <div class="tag-list">
62
- <span class="tag">/fresh task</span>
63
- <span class="tag">/fresh scout</span>
64
- <span class="tag">/fresh be-to-fe</span>
59
+ <span class="tag">/new</span>
60
+ <span class="tag">/compact</span>
65
61
  </div>
66
- <p>Dùng khi context đã nặng hoặc cần một session sạch cho workflow mới.</p>
62
+ <p>Dùng khi context đã nặng hoặc cần một session sạch cho việc mới (<span class="inline-code">/fresh</span> đã bỏ từ bản 1.9.0).</p>
67
63
  </article>
68
64
  <article class="card">
69
65
  <h3 id="mcp">MCP</h3>
@@ -97,9 +93,9 @@
97
93
  <p>Xem intent, risk, scope, runtime, solver route, phase, tool/helper recommendation, backend, approval và blocker trước khi bắt đầu.</p>
98
94
  </article>
99
95
  <article class="command-card">
100
- <header><span>Live task status</span><button class="clip-btn" data-clip="/piagent-status">Lấy lệnh</button></header>
96
+ <header><span>Trạng thái session</span><button class="clip-btn" data-clip="/piagent-status">Lấy lệnh</button></header>
101
97
  <pre><code>/piagent-status</code></pre>
102
- <p>Đọc Task Contract, checkpoint, verifier, recovery, helper, resume state và terminal receipt. Receipt chỉ approved khi hard completion gate trên working tree hiện tại pass.</p>
98
+ <p>Profile, guard, runtime và model đang dùng của session. Không sửa file, không chạy lại check và không mở lượt model.</p>
103
99
  </article>
104
100
  <article class="command-card">
105
101
  <header><span>Activity, diff và context</span><button class="clip-btn" data-clip="/piagent-inspector">Lấy lệnh</button></header>
@@ -119,6 +115,23 @@
119
115
  </div>
120
116
  <div class="callout">
121
117
  <strong>Diff rõ nguồn, token không ước lượng.</strong>
122
- <p>Footer status dùng file task đã quan sát để cập nhật nhanh; view <span class="inline-code">files</span> tính exact snapshot delta và đánh dấu <span class="inline-code">mixed-working-tree</span> nếu task đụng file đã dirty từ trước. Pi chỉ cung cấp model usage theo turn/session, nên token theo từng built-in tool luôn hiện unavailable.</p>
118
+ <p>Footer status dùng các file đã quan sát trong session để cập nhật nhanh; view <span class="inline-code">files</span> tính exact snapshot delta và đánh dấu <span class="inline-code">mixed-working-tree</span> nếu lượt làm việc đụng file đã dirty từ trước. Pi chỉ cung cấp model usage theo turn/session, nên token theo từng built-in tool luôn hiện unavailable.</p>
119
+ </div>
120
+ </section>
121
+
122
+ <section class="section">
123
+ <p class="section-kicker">Skill và package tùy chọn</p>
124
+ <h2 id="skill-va-package">Kiểm tra chất lượng test, chạy vòng thử nghiệm</h2>
125
+ <div class="command-grid">
126
+ <article class="command-card">
127
+ <header><span>Rà soát test</span><button class="clip-btn" data-clip="/skill:test-audit rà soát test của module thanh toán">Lấy lệnh</button></header>
128
+ <pre><code>/skill:test-audit rà soát test của module thanh toán</code></pre>
129
+ <p>Skill <span class="inline-code">test-audit</span> đi kèm Piagent: chặn test mới không bảo vệ hành vi nào, tìm test trùng, test bám vào cách cài đặt và code chỉ tồn tại để phục vụ test. Agent tự dùng khi viết hay sửa test; gõ lệnh trên để rà cả một vùng.</p>
130
+ </article>
131
+ <article class="command-card">
132
+ <header><span>Vòng thử nghiệm</span><button class="clip-btn" data-clip="git switch -c experiment/toc-do-test">Lấy lệnh</button></header>
133
+ <pre><code>git switch -c experiment/toc-do-test</code></pre>
134
+ <p>Nếu cài thêm package có vòng thử nghiệm tự động (<span class="inline-code">run_experiment</span>, <span class="inline-code">log_experiment</span>): guard kiểm lệnh thử như mọi lệnh shell, và chỉ cho vòng lặp chạy trên nhánh <span class="inline-code">experiment/</span> hoặc worktree riêng, bắt đầu khi không còn thay đổi chưa commit, vì mỗi lần bỏ một ý tưởng nó xóa mọi thay đổi chưa commit.</p>
135
+ </article>
123
136
  </div>
124
137
  </section>
@@ -0,0 +1,144 @@
1
+ <section class="section">
2
+ <p class="section-kicker">Toàn cảnh</p>
3
+ <h2 id="toan-canh">Một dashboard, hai cách dùng model</h2>
4
+ <p class="section-lead">Piagent chạy trên máy từng thành viên. Ở chế độ cá nhân, nó dùng tài khoản model của chính bạn. Ở chế độ công ty, nó đi qua Agent Watch trên máy bạn và Agent Studio của công ty: công ty giữ key, chọn model và đặt quy trình kiểm tra cho cả team.</p>
5
+ <figure class="diagram">
6
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1120 560" role="img" aria-labelledby="eco-title eco-desc" class="eco-diagram">
7
+ <title id="eco-title">Hệ sinh thái Piagent</title>
8
+ <desc id="eco-desc">Máy của thành viên chạy Piagent (Terminal và Dashboard) với guard kiểm tra mọi tool call. Chế độ cá nhân gọi thẳng model bằng tài khoản riêng. Chế độ công ty đi qua Agent Watch giữ key trong Keychain và Agent Studio của công ty, nơi chọn model và Harness cho từng lượt.</desc>
9
+ <defs>
10
+ <marker id="eco-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0 0 L10 5 L0 10 z" fill="#8be9c8"/></marker>
11
+ <marker id="eco-arrow-lime" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0 0 L10 5 L0 10 z" fill="#d8ff7a"/></marker>
12
+ </defs>
13
+ <style>
14
+ .eco-box { fill: #101114; stroke: #2c2f37; stroke-width: 1.5; }
15
+ .eco-zone { fill: rgba(255,255,255,0.015); stroke: #24262d; stroke-width: 1.2; stroke-dasharray: 6 6; }
16
+ .eco-h { fill: #f4f4ef; font: 600 17px "Be Vietnam Pro", system-ui, sans-serif; }
17
+ .eco-t { fill: #a4a6ad; font: 400 13.5px "Be Vietnam Pro", system-ui, sans-serif; }
18
+ .eco-k { fill: #71747d; font: 600 12px "Be Vietnam Pro", system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
19
+ .eco-chip { fill: rgba(216,255,122,0.08); stroke: rgba(216,255,122,0.35); }
20
+ .eco-chip-t { fill: #d8ff7a; font: 600 12.5px "JetBrains Mono", ui-monospace, monospace; }
21
+ .eco-line { stroke: #8be9c8; stroke-width: 1.8; fill: none; }
22
+ .eco-line-lime { stroke: #d8ff7a; stroke-width: 1.8; fill: none; stroke-dasharray: 7 6; }
23
+ .eco-label { fill: #8be9c8; font: 500 12.5px "Be Vietnam Pro", system-ui, sans-serif; }
24
+ .eco-label-lime { fill: #d8ff7a; font: 500 12.5px "Be Vietnam Pro", system-ui, sans-serif; }
25
+ </style>
26
+ <rect class="eco-zone" x="16" y="16" width="420" height="528" rx="22"/>
27
+ <text class="eco-k" x="40" y="48">Máy của thành viên</text>
28
+ <rect class="eco-box" x="40" y="68" width="372" height="96" rx="16"/>
29
+ <text class="eco-h" x="62" y="102">Piagent · Terminal và Dashboard</text>
30
+ <text class="eco-t" x="62" y="128">Nói việc bằng lời thường; cùng một lịch sử</text>
31
+ <text class="eco-t" x="62" y="148">trong Terminal (pi) và trình duyệt.</text>
32
+ <rect class="eco-box" x="40" y="184" width="372" height="116" rx="16"/>
33
+ <text class="eco-h" x="62" y="218">Guard</text>
34
+ <text class="eco-t" x="62" y="244">Kiểm tra mọi tool call: file bảo vệ, profile</text>
35
+ <text class="eco-t" x="62" y="264">quyền, file quá lớn, sửa trên bản đã cũ;</text>
36
+ <text class="eco-t" x="62" y="284">push, publish, lệnh có mạng chờ bạn duyệt.</text>
37
+ <rect class="eco-box" x="40" y="320" width="372" height="96" rx="16"/>
38
+ <text class="eco-h" x="62" y="354">Sandbox của chế độ công ty</text>
39
+ <text class="eco-t" x="62" y="380">Lệnh chạy không mạng, không đọc Keychain,</text>
40
+ <text class="eco-t" x="62" y="400">.env hay SSH key; mạng chỉ mở theo lần duyệt.</text>
41
+ <rect class="eco-chip" x="40" y="440" width="176" height="34" rx="17"/>
42
+ <text class="eco-chip-t" x="58" y="462">piagent dashboard</text>
43
+ <rect class="eco-chip" x="226" y="440" width="186" height="34" rx="17"/>
44
+ <text class="eco-chip-t" x="244" y="462">piagent studio --web</text>
45
+ <rect class="eco-chip" x="40" y="486" width="76" height="34" rx="17"/>
46
+ <text class="eco-chip-t" x="64" y="508">pi</text>
47
+ <rect class="eco-chip" x="126" y="486" width="186" height="34" rx="17"/>
48
+ <text class="eco-chip-t" x="144" y="508">piagent-doctor</text>
49
+ <rect class="eco-box" x="500" y="68" width="250" height="96" rx="18"/>
50
+ <text class="eco-h" x="522" y="102">Model cá nhân</text>
51
+ <text class="eco-t" x="522" y="128">Đăng nhập bằng tài khoản</text>
52
+ <text class="eco-t" x="522" y="148">riêng: Codex, Claude, Copilot…</text>
53
+ <rect class="eco-box" x="500" y="184" width="250" height="232" rx="18"/>
54
+ <text class="eco-k" x="522" y="216">Ứng dụng macOS</text>
55
+ <text class="eco-h" x="522" y="244">Agent Watch</text>
56
+ <text class="eco-t" x="522" y="272">Giữ key công ty trong</text>
57
+ <text class="eco-t" x="522" y="292">Keychain; nhập cấu hình</text>
58
+ <text class="eco-t" x="522" y="312">cho Piagent; cấp quyền</text>
59
+ <text class="eco-t" x="522" y="332">ngắn hạn cho từng lượt.</text>
60
+ <text class="eco-t" x="522" y="364">Model không bao giờ thấy</text>
61
+ <text class="eco-t" x="522" y="384">key.</text>
62
+ <rect class="eco-zone" x="800" y="16" width="304" height="528" rx="22"/>
63
+ <text class="eco-k" x="824" y="48">Máy chủ công ty</text>
64
+ <rect class="eco-box" x="824" y="68" width="256" height="300" rx="18"/>
65
+ <text class="eco-h" x="846" y="102">Agent Studio</text>
66
+ <text class="eco-t" x="846" y="132">Thành viên, key, ngân sách</text>
67
+ <text class="eco-t" x="846" y="152">và usage theo ngày.</text>
68
+ <text class="eco-t" x="846" y="186">Harness của team:</text>
69
+ <text class="eco-label-lime" x="846" y="210">kế hoạch · check · review</text>
70
+ <text class="eco-t" x="846" y="244">Chọn model cho từng vai:</text>
71
+ <text class="eco-label-lime" x="846" y="268">main · research · review</text>
72
+ <text class="eco-t" x="846" y="302">Mỗi vai một model riêng,</text>
73
+ <text class="eco-t" x="846" y="322">thinking theo Harness.</text>
74
+ <rect class="eco-box" x="824" y="392" width="256" height="128" rx="18"/>
75
+ <text class="eco-h" x="846" y="426">Model của công ty</text>
76
+ <text class="eco-t" x="846" y="454">Claude, GPT, DeepSeek, Kimi,</text>
77
+ <text class="eco-t" x="846" y="474">GLM, Qwen… qua key công ty;</text>
78
+ <text class="eco-t" x="846" y="494">key chỉ nằm trên máy chủ.</text>
79
+ <path class="eco-line" d="M412 300 L 500 300" marker-end="url(#eco-arrow)"/>
80
+ <text class="eco-label" x="424" y="290">công ty</text>
81
+ <path class="eco-line" d="M750 300 C 790 300, 790 220, 824 220" marker-end="url(#eco-arrow)"/>
82
+ <text class="eco-label" x="748" y="348">lượt có hạn</text>
83
+ <path class="eco-line" d="M952 368 L952 392" marker-end="url(#eco-arrow)"/>
84
+ <path class="eco-line-lime" d="M412 116 L 500 116" marker-end="url(#eco-arrow-lime)"/>
85
+ <text class="eco-label-lime" x="420" y="106">cá nhân</text>
86
+ </svg>
87
+ <figcaption class="diagram-hint">Vuốt ngang để xem hết sơ đồ.</figcaption>
88
+ </figure>
89
+ </section>
90
+
91
+ <section class="section">
92
+ <p class="section-kicker">Thành phần</p>
93
+ <h2 id="thanh-phan">Mỗi phần làm một việc</h2>
94
+ <div class="grid cols-2">
95
+ <article class="card">
96
+ <h3 id="piagent">Piagent</h3>
97
+ <p>Coding agent trong Terminal (<span class="inline-code">pi</span>) và trên trình duyệt (<span class="inline-code">piagent dashboard</span>). Hai nơi dùng chung lịch sử: bắt đầu ở Terminal, xem tiếp trên trình duyệt.</p>
98
+ </article>
99
+ <article class="card">
100
+ <h3 id="guard">Guard</h3>
101
+ <p>Kiểm tra từng tool call trước khi chạy: file bảo vệ như <span class="inline-code">.env</span>, profile quyền, file quá lớn, sửa trên bản đã cũ. Push, publish và lệnh có mạng chờ bạn duyệt đúng một lần.</p>
102
+ </article>
103
+ <article class="card">
104
+ <h3 id="agent-watch">Agent Watch</h3>
105
+ <p>Ứng dụng macOS giữ key công ty trong Keychain và nhập cấu hình cho Piagent. Mỗi lượt nhận quyền ngắn hạn; model và các lệnh không bao giờ đọc được key.</p>
106
+ </article>
107
+ <article class="card">
108
+ <h3 id="agent-studio">Agent Studio</h3>
109
+ <p>Máy chủ của công ty: thành viên, key, ngân sách, usage theo ngày và Harness của team. Studio chọn model cho từng vai (main, research, review) và mức suy luận.</p>
110
+ </article>
111
+ </div>
112
+ </section>
113
+
114
+ <section class="section">
115
+ <p class="section-kicker">Một lượt ở chế độ công ty</p>
116
+ <h2 id="mot-luot">Từ tin nhắn tới "Check đã qua · Review không có lỗi chặn"</h2>
117
+ <div class="steps">
118
+ <article class="step"><div><h3>Bạn nhắn việc cần làm</h3><p>Viết như nói với đồng nghiệp, chọn model <span class="inline-code">agent-watch-auto</span> trong nhóm Công ty.</p></div></article>
119
+ <article class="step"><div><h3>Studio cấp một lượt</h3><p>Agent Watch xin quyền ngắn hạn; Studio chọn model cho agent chính theo Harness của team.</p></div></article>
120
+ <article class="step"><div><h3>Agent làm trong sandbox</h3><p>Đọc, sửa và chạy lệnh trong project, không có mạng. Cần mạng thì xin bạn duyệt đúng một lệnh.</p></div></article>
121
+ <article class="step"><div><h3>Harness kiểm tra</h3><p>Chưa có check nào qua trên code cuối thì yêu cầu chạy; rồi một subagent review bản sửa. Lỗi chặn được gửi lại cho agent, tối đa số vòng team đặt.</p></div></article>
122
+ <article class="step"><div><h3>Kết quả ghi dưới câu trả lời</h3><p>Ví dụ "Check đã qua trên code cuối · Review không có lỗi chặn". Bạn có thể Dừng bất cứ lúc nào và Tiếp tục sau.</p></div></article>
123
+ </div>
124
+ <figure class="shot">
125
+ <img src="/assets/shots/company-review-running.jpg" alt="Đang review: thanh trên ghi Subagent 1/2, nút Dừng vẫn còn" loading="lazy" width="1600" height="1000">
126
+ <figcaption>Lúc review đang chạy: thanh trên ghi Subagent 1/2, cột Workspace ghi 1/2 đang chạy, nút Dừng vẫn hoạt động.</figcaption>
127
+ </figure>
128
+ </section>
129
+
130
+ <section class="section">
131
+ <p class="section-kicker">Chọn chế độ</p>
132
+ <h2 id="chon-che-do">Khi nào dùng cá nhân, khi nào dùng công ty</h2>
133
+ <div class="table-wrap"><table>
134
+ <thead><tr><th></th><th>Cá nhân</th><th>Công ty</th></tr></thead>
135
+ <tbody>
136
+ <tr><td>Model</td><td>Tài khoản bạn đăng nhập (Codex, Claude, Copilot…)</td><td>Model công ty chọn trong Studio, theo vai</td></tr>
137
+ <tr><td>Key</td><td>Do Pi quản lý trên máy bạn</td><td>Nằm trên máy chủ và trong Keychain, không vào project</td></tr>
138
+ <tr><td>Kiểm tra</td><td>Guard; bạn quyết định khi nào chạy test</td><td>Guard, sandbox, và Harness tự yêu cầu check, review</td></tr>
139
+ <tr><td>Mạng khi chạy lệnh</td><td>Như trên máy bạn; push và publish chờ duyệt</td><td>Tắt; mở cho đúng một lệnh khi bạn duyệt</td></tr>
140
+ <tr><td>Chi phí</td><td>Theo gói của bạn</td><td>Theo ngân sách công ty, xem usage trong Studio</td></tr>
141
+ </tbody>
142
+ </table></div>
143
+ <div class="callout ok-callout"><strong>Bắt đầu</strong><p>Cá nhân: cài theo <a href="/quickstart">Quickstart</a> rồi chạy <span class="inline-code">piagent dashboard</span>. Công ty: mở Agent Watch, tab Studio, kết nối key và nhập cấu hình cho Piagent; model <span class="inline-code">agent-watch-auto</span> sẽ có trong nhóm Công ty.</p></div>
144
+ </section>
@@ -21,7 +21,7 @@
21
21
  </div>
22
22
  <div class="grid cols-3">
23
23
  <article class="card"><h3>Context planner</h3><p><span class="inline-code">runtime/context/adaptive-planner.ts</span> chooses budget, retrieval lane, code inclusion, and a plan receipt from phase, context pressure, model capability, and thinking level.</p></article>
24
- <article class="card"><h3>Task journal</h3><p><span class="inline-code">extensions/task-journal.js</span> records start, progress, mutation, verifier, and completion checkpoints. Resume trusts the task contract first; retention compaction preserves hash anchors.</p></article>
24
+ <article class="card"><h3>Earlier task history</h3><p><span class="inline-code">extensions/task-journal.js</span> still reads checkpoints of tasks created before 1.9.0 for review; new sessions no longer write tasks.</p></article>
25
25
  <article class="card"><h3>Repository memory</h3><p><span class="inline-code">extensions/repository-memory.js</span> stores only cited, expiring facts and rejects raw prompts, outputs, OAuth material, API keys, and secrets. Hints use only unused context-plan budget.</p></article>
26
26
  <article class="card"><h3>Model capability</h3><p><span class="inline-code">runtime/model/capabilities.ts</span> reads model family, context window, and thinking level as budget signals without switching providers or requiring API keys.</p></article>
27
27
  <article class="card"><h3>Verification intelligence</h3><p><span class="inline-code">extensions/verification-intelligence.js</span> classifies failures and chooses a targeted verifier from task scope; mixed frontend/backend scope uses the full source verifier.</p></article>
@@ -1,3 +1,8 @@
1
+ <div class="callout">
2
+ <strong>Historical figures</strong>
3
+ <p>This measurement ran on v1.6.0, when sessions still used the task contract and workflow commands. Release 1.9.0 works from plain-language requests and has not been measured again; do not read the figures below as 1.9.0 results.</p>
4
+ </div>
5
+
1
6
  <section class="benchmark-summary" aria-labelledby="benchmark-verdict">
2
7
  <div class="benchmark-verdict">
3
8
  <div>
@@ -2,8 +2,8 @@
2
2
  <div class="grid cols-2">
3
3
  <article class="card">
4
4
  <h3 id="session-basics">Session basics</h3>
5
- <div class="tag-list"><span class="tag">/login</span><span class="tag">/model</span><span class="tag">/commands</span><span class="tag">/piagent-status</span><span class="tag">/piagent-inspector</span><span class="tag">/piagent-orchestration</span><span class="tag">/usage</span><span class="tag">/usage efficiency</span><span class="tag">/task-preflight</span><span class="tag">/context preflight</span><span class="tag">/name</span><span class="tag">/fresh</span><span class="tag">/session</span></div>
6
- <p>Set up a session, select a model, inspect profile, usage, or orchestration state, and decide whether a large task needs a fresh session.</p>
5
+ <div class="tag-list"><span class="tag">/login</span><span class="tag">/model</span><span class="tag">/piagent-status</span><span class="tag">/piagent-inspector</span><span class="tag">/piagent-orchestration</span><span class="tag">/usage</span><span class="tag">/usage efficiency</span><span class="tag">/task-preflight</span><span class="tag">/context preflight</span><span class="tag">/name</span><span class="tag">/new</span><span class="tag">/session</span></div>
6
+ <p>Set up a session, select a model, inspect profile, usage, or orchestration state, and decide whether large work needs a new session (<span class="inline-code">/new</span>).</p>
7
7
  </article>
8
8
  <article class="card">
9
9
  <h3 id="project-profile">Project profile</h3>
@@ -11,19 +11,19 @@
11
11
  <p>Apply a profile directly or use a deterministic selector for the profile and tech stack. Output stays compact and does not require model interpretation.</p>
12
12
  </article>
13
13
  <article class="card">
14
- <h3 id="implementation-workflow">Implementation workflow</h3>
15
- <div class="tag-list"><span class="tag">/workflow</span><span class="tag">/workflow task</span><span class="tag">/workflow plan</span><span class="tag">/workflow review</span><span class="tag">/workflow scout</span><span class="tag">/workflow discuss</span></div>
16
- <p>Packages context loading, task contracts, implementation, verification evidence, and final handoff.</p>
14
+ <h3 id="implementation-workflow">Assigning work</h3>
15
+ <div class="tag-list"><span class="tag">plain language</span><span class="tag">read-only, do not edit</span><span class="tag">plan first</span><span class="tag">review the diff</span></div>
16
+ <p>Since 1.9.0 there is no <span class="inline-code">/workflow</span>, <span class="inline-code">/task</span> or task contract: say what you need in plain language; the guard checks every tool call.</p>
17
17
  </article>
18
18
  <article class="card">
19
19
  <h3 id="git-handoff">Git handoff</h3>
20
- <div class="tag-list"><span class="tag">/workflow commit</span><span class="tag">/workflow pr</span><span class="tag">git status</span><span class="tag">git diff</span></div>
21
- <p>There is no <span class="inline-code">/git</span> namespace. Commit and PR flows use workflow guards; pushes and broad staging such as <span class="inline-code">git add -A</span> require confirmation.</p>
20
+ <div class="tag-list"><span class="tag">commit in plain language</span><span class="tag">draft PR in plain language</span><span class="tag">git status</span><span class="tag">git diff</span></div>
21
+ <p>There is no <span class="inline-code">/git</span> namespace. Commits and PRs are ordinary requests; pushes, GitHub writes and broad staging such as <span class="inline-code">git add -A</span> require confirmation.</p>
22
22
  </article>
23
23
  <article class="card">
24
- <h3 id="fresh-sessions">Fresh sessions</h3>
25
- <div class="tag-list"><span class="tag">/fresh task</span><span class="tag">/fresh scout</span><span class="tag">/fresh be-to-fe</span></div>
26
- <p>Start a clean workflow when the current context is heavy or belongs to a different task.</p>
24
+ <h3 id="fresh-sessions">New sessions</h3>
25
+ <div class="tag-list"><span class="tag">/new</span><span class="tag">/compact</span></div>
26
+ <p>Start a clean session when the current context is heavy or belongs to different work (<span class="inline-code">/fresh</span> was retired in 1.9.0).</p>
27
27
  </article>
28
28
  <article class="card">
29
29
  <h3 id="mcp">MCP</h3>
@@ -49,9 +49,9 @@
49
49
  <p>Inspect intent, risk, scope, runtime, solver route, phases, tool and helper recommendations, backend, approvals, and blockers before starting.</p>
50
50
  </article>
51
51
  <article class="command-card">
52
- <header><span>Live task status</span><button class="clip-btn" data-clip="/piagent-status">Copy</button></header>
52
+ <header><span>Session status</span><button class="clip-btn" data-clip="/piagent-status">Copy</button></header>
53
53
  <pre><code>/piagent-status</code></pre>
54
- <p>Read the Task Contract, checkpoints, verifier evidence, recovery, helpers, resume state, and terminal receipt. Approval requires the current-tree hard completion gate to pass.</p>
54
+ <p>The session's profile, guard, runtime and model. It changes no file, reruns no check and starts no model turn.</p>
55
55
  </article>
56
56
  <article class="command-card">
57
57
  <header><span>Activity, diff, and context</span><button class="clip-btn" data-clip="/piagent-inspector">Copy</button></header>
@@ -71,6 +71,23 @@
71
71
  </div>
72
72
  <div class="callout">
73
73
  <strong>Sourced diffs, no token estimates.</strong>
74
- <p>The footer panel uses observed task files for fast updates; the <span class="inline-code">files</span> view computes the exact snapshot delta and marks <span class="inline-code">mixed-working-tree</span> when a task touches a file that was already dirty. Pi exposes model usage by turn and session, so per-built-in-tool tokens remain unavailable.</p>
74
+ <p>The footer panel uses the files observed in the session for fast updates; the <span class="inline-code">files</span> view computes the exact snapshot delta and marks <span class="inline-code">mixed-working-tree</span> when a turn touches a file that was already dirty. Pi exposes model usage by turn and session, so per-built-in-tool tokens remain unavailable.</p>
75
+ </div>
76
+ </section>
77
+
78
+ <section class="section">
79
+ <p class="section-kicker">Optional skills and packages</p>
80
+ <h2 id="skills-and-packages">Audit test quality, run experiment loops</h2>
81
+ <div class="command-grid">
82
+ <article class="command-card">
83
+ <header><span>Test audit</span><button class="clip-btn" data-clip="/skill:test-audit audit the tests of the billing module">Copy</button></header>
84
+ <pre><code>/skill:test-audit audit the tests of the billing module</code></pre>
85
+ <p>The <span class="inline-code">test-audit</span> skill ships with Piagent: it stops new tests that protect no behavior and finds duplicated tests, tests tied to the implementation, and code that exists only for tests. The agent uses it when writing or changing tests; run the command to sweep a whole area.</p>
86
+ </article>
87
+ <article class="command-card">
88
+ <header><span>Experiment loop</span><button class="clip-btn" data-clip="git switch -c experiment/test-speed">Copy</button></header>
89
+ <pre><code>git switch -c experiment/test-speed</code></pre>
90
+ <p>If you add a package with an automatic experiment loop (<span class="inline-code">run_experiment</span>, <span class="inline-code">log_experiment</span>): the guard checks each experiment command like any shell command, and lets the loop run only on an <span class="inline-code">experiment/</span> branch or a worktree of its own, started with nothing uncommitted, because every dropped idea erases all uncommitted changes.</p>
91
+ </article>
75
92
  </div>
76
93
  </section>
@@ -0,0 +1,144 @@
1
+ <section class="section">
2
+ <p class="section-kicker">The whole picture</p>
3
+ <h2 id="overview">One dashboard, two ways to use models</h2>
4
+ <p class="section-lead">Piagent runs on each member's machine. In personal mode it uses your own model account. In company mode it goes through Agent Watch on your Mac and the company's Agent Studio: the company holds the keys, chooses the models and sets the checks for the whole team.</p>
5
+ <figure class="diagram">
6
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1120 560" role="img" aria-labelledby="eco-title eco-desc" class="eco-diagram">
7
+ <title id="eco-title">The Piagent ecosystem</title>
8
+ <desc id="eco-desc">Each member's machine runs Piagent (Terminal and Dashboard) with a guard that checks every tool call. Personal mode calls models with the member's own account. Company mode goes through Agent Watch, which keeps the key in Keychain, and the company's Agent Studio, which picks the models and the Harness for every turn.</desc>
9
+ <defs>
10
+ <marker id="eco-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0 0 L10 5 L0 10 z" fill="#8be9c8"/></marker>
11
+ <marker id="eco-arrow-lime" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0 0 L10 5 L0 10 z" fill="#d8ff7a"/></marker>
12
+ </defs>
13
+ <style>
14
+ .eco-box { fill: #101114; stroke: #2c2f37; stroke-width: 1.5; }
15
+ .eco-zone { fill: rgba(255,255,255,0.015); stroke: #24262d; stroke-width: 1.2; stroke-dasharray: 6 6; }
16
+ .eco-h { fill: #f4f4ef; font: 600 17px "Be Vietnam Pro", system-ui, sans-serif; }
17
+ .eco-t { fill: #a4a6ad; font: 400 13.5px "Be Vietnam Pro", system-ui, sans-serif; }
18
+ .eco-k { fill: #71747d; font: 600 12px "Be Vietnam Pro", system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
19
+ .eco-chip { fill: rgba(216,255,122,0.08); stroke: rgba(216,255,122,0.35); }
20
+ .eco-chip-t { fill: #d8ff7a; font: 600 12.5px "JetBrains Mono", ui-monospace, monospace; }
21
+ .eco-line { stroke: #8be9c8; stroke-width: 1.8; fill: none; }
22
+ .eco-line-lime { stroke: #d8ff7a; stroke-width: 1.8; fill: none; stroke-dasharray: 7 6; }
23
+ .eco-label { fill: #8be9c8; font: 500 12.5px "Be Vietnam Pro", system-ui, sans-serif; }
24
+ .eco-label-lime { fill: #d8ff7a; font: 500 12.5px "Be Vietnam Pro", system-ui, sans-serif; }
25
+ </style>
26
+ <rect class="eco-zone" x="16" y="16" width="420" height="528" rx="22"/>
27
+ <text class="eco-k" x="40" y="48">Member's machine</text>
28
+ <rect class="eco-box" x="40" y="68" width="372" height="96" rx="16"/>
29
+ <text class="eco-h" x="62" y="102">Piagent · Terminal and Dashboard</text>
30
+ <text class="eco-t" x="62" y="128">Ask in plain language; one history</text>
31
+ <text class="eco-t" x="62" y="148">in Terminal (pi) and the browser.</text>
32
+ <rect class="eco-box" x="40" y="184" width="372" height="116" rx="16"/>
33
+ <text class="eco-h" x="62" y="218">Guard</text>
34
+ <text class="eco-t" x="62" y="244">Checks every tool call: protected files,</text>
35
+ <text class="eco-t" x="62" y="264">permissions, oversized files, stale edits;</text>
36
+ <text class="eco-t" x="62" y="284">push, publish, network wait for approval.</text>
37
+ <rect class="eco-box" x="40" y="320" width="372" height="96" rx="16"/>
38
+ <text class="eco-h" x="62" y="354">Company-mode sandbox</text>
39
+ <text class="eco-t" x="62" y="380">Commands run without network, Keychain,</text>
40
+ <text class="eco-t" x="62" y="400">.env or SSH keys; network per approval.</text>
41
+ <rect class="eco-chip" x="40" y="440" width="176" height="34" rx="17"/>
42
+ <text class="eco-chip-t" x="58" y="462">piagent dashboard</text>
43
+ <rect class="eco-chip" x="226" y="440" width="186" height="34" rx="17"/>
44
+ <text class="eco-chip-t" x="244" y="462">piagent studio --web</text>
45
+ <rect class="eco-chip" x="40" y="486" width="76" height="34" rx="17"/>
46
+ <text class="eco-chip-t" x="64" y="508">pi</text>
47
+ <rect class="eco-chip" x="126" y="486" width="186" height="34" rx="17"/>
48
+ <text class="eco-chip-t" x="144" y="508">piagent-doctor</text>
49
+ <rect class="eco-box" x="500" y="68" width="250" height="96" rx="18"/>
50
+ <text class="eco-h" x="522" y="102">Personal models</text>
51
+ <text class="eco-t" x="522" y="128">Signed in with your own</text>
52
+ <text class="eco-t" x="522" y="148">account: Codex, Claude, Copilot…</text>
53
+ <rect class="eco-box" x="500" y="184" width="250" height="232" rx="18"/>
54
+ <text class="eco-k" x="522" y="216">macOS app</text>
55
+ <text class="eco-h" x="522" y="244">Agent Watch</text>
56
+ <text class="eco-t" x="522" y="272">Keeps the company key in</text>
57
+ <text class="eco-t" x="522" y="292">Keychain; imports the</text>
58
+ <text class="eco-t" x="522" y="312">configuration for Piagent;</text>
59
+ <text class="eco-t" x="522" y="332">short-lived authority per turn.</text>
60
+ <text class="eco-t" x="522" y="364">The model never sees</text>
61
+ <text class="eco-t" x="522" y="384">the key.</text>
62
+ <rect class="eco-zone" x="800" y="16" width="304" height="528" rx="22"/>
63
+ <text class="eco-k" x="824" y="48">Company server</text>
64
+ <rect class="eco-box" x="824" y="68" width="256" height="300" rx="18"/>
65
+ <text class="eco-h" x="846" y="102">Agent Studio</text>
66
+ <text class="eco-t" x="846" y="132">Members, keys, budgets</text>
67
+ <text class="eco-t" x="846" y="152">and daily usage.</text>
68
+ <text class="eco-t" x="846" y="186">The team's Harness:</text>
69
+ <text class="eco-label-lime" x="846" y="210">plan · checks · review</text>
70
+ <text class="eco-t" x="846" y="244">A model for each role:</text>
71
+ <text class="eco-label-lime" x="846" y="268">main · research · review</text>
72
+ <text class="eco-t" x="846" y="302">Each role its own model,</text>
73
+ <text class="eco-t" x="846" y="322">reasoning set by the Harness.</text>
74
+ <rect class="eco-box" x="824" y="392" width="256" height="128" rx="18"/>
75
+ <text class="eco-h" x="846" y="426">Company models</text>
76
+ <text class="eco-t" x="846" y="454">Claude, GPT, DeepSeek, Kimi,</text>
77
+ <text class="eco-t" x="846" y="474">GLM, Qwen… on company keys;</text>
78
+ <text class="eco-t" x="846" y="494">keys stay on the server.</text>
79
+ <path class="eco-line" d="M412 300 L 500 300" marker-end="url(#eco-arrow)"/>
80
+ <text class="eco-label" x="424" y="290">company</text>
81
+ <path class="eco-line" d="M750 300 C 790 300, 790 220, 824 220" marker-end="url(#eco-arrow)"/>
82
+ <text class="eco-label" x="748" y="348">one turn</text>
83
+ <path class="eco-line" d="M952 368 L952 392" marker-end="url(#eco-arrow)"/>
84
+ <path class="eco-line-lime" d="M412 116 L 500 116" marker-end="url(#eco-arrow-lime)"/>
85
+ <text class="eco-label-lime" x="420" y="106">personal</text>
86
+ </svg>
87
+ <figcaption class="diagram-hint">Swipe sideways to see the whole diagram.</figcaption>
88
+ </figure>
89
+ </section>
90
+
91
+ <section class="section">
92
+ <p class="section-kicker">Parts</p>
93
+ <h2 id="parts">Each part does one job</h2>
94
+ <div class="grid cols-2">
95
+ <article class="card">
96
+ <h3 id="piagent">Piagent</h3>
97
+ <p>The coding agent in Terminal (<span class="inline-code">pi</span>) and in the browser (<span class="inline-code">piagent dashboard</span>). Both share one history: start in Terminal, follow it in the browser.</p>
98
+ </article>
99
+ <article class="card">
100
+ <h3 id="guard">Guard</h3>
101
+ <p>Checks every tool call before it runs: protected files such as <span class="inline-code">.env</span>, permission profiles, oversized files, edits on a stale read. Push, publish and network commands wait for your one-time approval.</p>
102
+ </article>
103
+ <article class="card">
104
+ <h3 id="agent-watch">Agent Watch</h3>
105
+ <p>A macOS app that keeps the company key in Keychain and imports the configuration for Piagent. Each turn gets short-lived authority; the model and its commands never read the key.</p>
106
+ </article>
107
+ <article class="card">
108
+ <h3 id="agent-studio">Agent Studio</h3>
109
+ <p>The company server: members, keys, budgets, daily usage and the team's Harness. Studio picks the model for each role (main, research, review) and the reasoning level.</p>
110
+ </article>
111
+ </div>
112
+ </section>
113
+
114
+ <section class="section">
115
+ <p class="section-kicker">One company turn</p>
116
+ <h2 id="one-turn">From a message to "A check passed · Review found no blocking issue"</h2>
117
+ <div class="steps">
118
+ <article class="step"><div><h3>You write the request</h3><p>In plain language, with <span class="inline-code">agent-watch-auto</span> from the Company group.</p></div></article>
119
+ <article class="step"><div><h3>Studio grants one run</h3><p>Agent Watch asks for short-lived authority; Studio picks the main agent's model from the team's Harness.</p></div></article>
120
+ <article class="step"><div><h3>The agent works in a sandbox</h3><p>It reads, edits and runs commands in the project without network. When a command needs the internet it asks you to approve that one command.</p></div></article>
121
+ <article class="step"><div><h3>The Harness checks</h3><p>If no check passed on the final code it asks for one; then a subagent reviews the change. Blocking findings go back to the agent, up to the rounds the team set.</p></div></article>
122
+ <article class="step"><div><h3>The outcome sits under the answer</h3><p>For example "A check passed on the final code · Review found no blocking issue". Stop at any time and Continue later.</p></div></article>
123
+ </div>
124
+ <figure class="shot">
125
+ <img src="/assets/shots/company-review-running.jpg" alt="During the review: the header shows Subagent 1/2 and Stop is still available" loading="lazy" width="1600" height="1000">
126
+ <figcaption>While the review runs: the header shows Subagent 1/2, the Workspace column shows 1/2 running, and Stop still works.</figcaption>
127
+ </figure>
128
+ </section>
129
+
130
+ <section class="section">
131
+ <p class="section-kicker">Choosing a mode</p>
132
+ <h2 id="choose">When to use personal, when to use company</h2>
133
+ <div class="table-wrap"><table>
134
+ <thead><tr><th></th><th>Personal</th><th>Company</th></tr></thead>
135
+ <tbody>
136
+ <tr><td>Models</td><td>The account you signed in with (Codex, Claude, Copilot…)</td><td>Chosen by the company in Studio, per role</td></tr>
137
+ <tr><td>Keys</td><td>Managed by Pi on your machine</td><td>On the server and in Keychain, never in the project</td></tr>
138
+ <tr><td>Checks</td><td>The guard; you decide when to run tests</td><td>The guard, the sandbox, and the Harness asking for checks and a review</td></tr>
139
+ <tr><td>Network for commands</td><td>As on your machine; push and publish wait for approval</td><td>Off; opened for one command when you approve it</td></tr>
140
+ <tr><td>Cost</td><td>Your plan</td><td>The company budget, with usage in Studio</td></tr>
141
+ </tbody>
142
+ </table></div>
143
+ <div class="callout ok-callout"><strong>Getting started</strong><p>Personal: install with the <a href="/en/quickstart">Quickstart</a>, then run <span class="inline-code">piagent dashboard</span>. Company: open Agent Watch, the Studio tab, connect the key and import the configuration for Piagent; <span class="inline-code">agent-watch-auto</span> then appears in the Company group.</p></div>
144
+ </section>
@@ -1,8 +1,8 @@
1
1
  <section class="hero">
2
- <p class="eyebrow">Team operating docs</p>
3
- <h1>A reusable Pi runtime for every project.</h1>
2
+ <p class="eyebrow">Piagent 1.9.0</p>
3
+ <h1>A coding agent for the whole team, checked at every step.</h1>
4
4
  <p>
5
- These docs bring installation, profiles, permissions, MCP, security, and workflows into one place. A new team member can find the right command, choose a safe mode, and understand the operating boundary without rebuilding the process in a prompt.
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
6
  </p>
7
7
  <div class="owner-strip" aria-label="Project information">
8
8
  <span class="owner-label">Project links</span>
@@ -12,14 +12,24 @@
12
12
  </div>
13
13
  <div class="hero-actions">
14
14
  <a class="button primary" href="/en/quickstart">Get started</a>
15
- <a class="button" href="/en/whats-new">What’s new</a>
15
+ <a class="button" href="/en/ecosystem">Ecosystem</a>
16
+ <a class="button" href="/en/whats-new">What’s new in 1.9.0</a>
16
17
  <a class="button" href="/en/commands">View commands</a>
17
- <a class="button" href="/en/mcp">MCP</a>
18
18
  </div>
19
19
  </section>
20
20
 
21
21
  <section class="section">
22
- <p class="section-kicker">Production V1 · v1.6.0 public regression evidence</p>
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>
29
+ </section>
30
+
31
+ <section class="section">
32
+ <p class="section-kicker">Production V1 · historical evidence from v1.6.0</p>
23
33
  <h2 id="evidence">Measured, not asserted</h2>
24
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>
25
35
 
@@ -79,14 +89,19 @@ piagent-setup</code></pre>
79
89
  <h2 id="where-to-start">Where to start</h2>
80
90
  <div class="card-grid">
81
91
  <a class="doc-card" href="/en/whats-new">
82
- <span class="card-kicker">Product update</span>
92
+ <span class="card-kicker">Release 1.9.0</span>
83
93
  <h3>What’s new</h3>
84
- <p>Runtime truth, task trajectories, recovery, helper policy, and fail-closed completion receipts — including what runs automatically and what is opt-in.</p>
94
+ <p>Plain-language requests, the team's Harness, network commands on approval, Stop for the whole turn and clearer approval cards.</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>
85
100
  </a>
86
101
  <a class="doc-card" href="/en/quickstart">
87
102
  <span class="card-kicker">Get started</span>
88
103
  <h3>Quickstart</h3>
89
- <p>Install, open a repository, onboard context, choose a profile and permission mode, run the first task, and verify before handoff.</p>
104
+ <p>Install, open a repository, choose its profile and permissions, then make the first request in plain language.</p>
90
105
  </a>
91
106
  <a class="doc-card" href="/en/scope">
92
107
  <span class="card-kicker">Get started</span>