@piagent/platform 1.8.0 → 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 (216) hide show
  1. package/AGENTS.md +7 -0
  2. package/CHANGELOG.md +97 -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 +68 -90
  10. package/docs/context-window-policy.md +5 -5
  11. package/docs/distribution-standard.md +13 -16
  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 +2 -2
  19. package/docs/oauth-providers.md +1 -1
  20. package/docs/operator-manual-vietnamese.md +82 -127
  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 +2 -1
  28. package/docs/quality-benchmark.md +2 -0
  29. package/docs/quickstart-vietnamese.md +23 -24
  30. package/docs/release-install-policy.md +3 -2
  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 +28 -59
  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/security.html +1 -1
  58. package/docs-site/content/en/team.html +2 -2
  59. package/docs-site/content/en/whats-new.html +77 -1
  60. package/docs-site/content/en/workflows.html +29 -31
  61. package/docs-site/content/index.html +24 -9
  62. package/docs-site/content/quickstart.html +10 -12
  63. package/docs-site/content/security.html +2 -2
  64. package/docs-site/content/team.html +2 -2
  65. package/docs-site/content/whats-new.html +77 -1
  66. package/docs-site/content/workflows.html +36 -38
  67. package/docs-site/context-engine.html +2 -1
  68. package/docs-site/ecosystem.html +283 -0
  69. package/docs-site/en/architecture.html +3 -2
  70. package/docs-site/en/benchmark.html +7 -1
  71. package/docs-site/en/commands.html +32 -14
  72. package/docs-site/en/context-engine.html +2 -1
  73. package/docs-site/en/ecosystem.html +283 -0
  74. package/docs-site/en/index.html +30 -14
  75. package/docs-site/en/mcp-approval.html +2 -1
  76. package/docs-site/en/mcp-auth.html +2 -1
  77. package/docs-site/en/mcp-servers.html +2 -1
  78. package/docs-site/en/mcp.html +2 -1
  79. package/docs-site/en/permissions.html +2 -1
  80. package/docs-site/en/profiles.html +2 -1
  81. package/docs-site/en/quickstart.html +17 -18
  82. package/docs-site/en/runtime.html +2 -1
  83. package/docs-site/en/scope.html +2 -1
  84. package/docs-site/en/security.html +6 -5
  85. package/docs-site/en/team.html +4 -3
  86. package/docs-site/en/whats-new.html +85 -8
  87. package/docs-site/en/workflows.html +34 -35
  88. package/docs-site/index.html +30 -14
  89. package/docs-site/mcp-approval.html +2 -1
  90. package/docs-site/mcp-auth.html +2 -1
  91. package/docs-site/mcp-servers.html +2 -1
  92. package/docs-site/mcp.html +2 -1
  93. package/docs-site/permissions.html +2 -1
  94. package/docs-site/profiles.html +2 -1
  95. package/docs-site/quickstart.html +17 -18
  96. package/docs-site/runtime.html +2 -1
  97. package/docs-site/scope.html +2 -1
  98. package/docs-site/security.html +7 -6
  99. package/docs-site/team.html +4 -3
  100. package/docs-site/whats-new.html +85 -8
  101. package/docs-site/workflows.html +41 -42
  102. package/evals/fs5-causal-arm.v1.json +2 -2
  103. package/evals/private-holdout-v1/CURRENT_BOUNDARY.md +17 -0
  104. package/evals/private-holdout-v1/public-exposure.v2.json +2 -2
  105. package/package.json +8 -7
  106. package/packages/piagent-core/README.md +15 -23
  107. package/packages/piagent-core/docs/context-efficiency-improvement-plan.md +2 -0
  108. package/packages/piagent-core/extensions/experiment-loop-policy.ts +75 -0
  109. package/packages/piagent-core/extensions/local-state-path.js +15 -0
  110. package/packages/piagent-core/extensions/piagent-guard.ts +108 -960
  111. package/packages/piagent-core/extensions/policy-core.js +2 -2
  112. package/packages/piagent-core/extensions/source-checkout-paths.ts +54 -0
  113. package/packages/piagent-core/managed/broker-client.mjs +49 -0
  114. package/packages/piagent-core/managed/capabilities.mjs +28 -0
  115. package/packages/piagent-core/managed/compaction.mjs +63 -0
  116. package/packages/piagent-core/managed/doctor.mjs +107 -0
  117. package/packages/piagent-core/managed/native-catalog.mjs +42 -0
  118. package/packages/piagent-core/managed/patch-snapshot.mjs +48 -0
  119. package/packages/piagent-core/managed/repository-operation.mjs +84 -0
  120. package/packages/piagent-core/managed/request-stream.mjs +129 -0
  121. package/packages/piagent-core/managed/resource-loader.mjs +42 -0
  122. package/packages/piagent-core/managed/review-snapshot-worker.mjs +27 -0
  123. package/packages/piagent-core/managed/sandbox-diagnostic.mjs +12 -0
  124. package/packages/piagent-core/managed/search-fallback.mjs +93 -0
  125. package/packages/piagent-core/managed/session.mjs +472 -0
  126. package/packages/piagent-core/managed/store.d.mts +3 -0
  127. package/packages/piagent-core/managed/store.mjs +64 -0
  128. package/packages/piagent-core/managed/tool-boundary.mjs +243 -0
  129. package/packages/piagent-core/managed/tool-worker.mjs +36 -0
  130. package/packages/piagent-core/managed/toolchain.mjs +120 -0
  131. package/packages/piagent-core/managed/web-fetch.mjs +105 -0
  132. package/packages/piagent-core/managed/web-search.mjs +96 -0
  133. package/packages/piagent-core/managed/workflow.mjs +299 -0
  134. package/packages/piagent-core/package.json +2 -5
  135. package/packages/piagent-core/policies/base-policy.json +80 -26
  136. package/packages/piagent-core/runtime/hooks/agent-start-hook.ts +3 -3
  137. package/packages/piagent-core/runtime/hooks/input-hook.ts +35 -196
  138. package/packages/piagent-core/runtime/hooks/session-start-hook.ts +2 -0
  139. package/packages/piagent-core/runtime/inspection/approval-broker.ts +9 -1
  140. package/packages/piagent-core/runtime/managed-failure.d.mts +10 -0
  141. package/packages/piagent-core/runtime/managed-failure.mjs +164 -0
  142. package/packages/piagent-core/runtime/orchestration/minimal-delegation-policy.ts +8 -29
  143. package/packages/piagent-core/runtime/orchestration/owned-work-budget.ts +1 -1
  144. package/packages/piagent-core/runtime/policy/block-remedy.ts +5 -3
  145. package/packages/piagent-core/runtime/registration/context-commands.ts +1 -1
  146. package/packages/piagent-core/runtime/registration/knowledge-tools.ts +7 -7
  147. package/packages/piagent-core/runtime/registration/policy-tools.ts +2 -2
  148. package/packages/piagent-core/runtime/registration/session-commands.ts +11 -26
  149. package/packages/piagent-core/runtime/registration/task-evidence-tools.ts +1 -1
  150. package/packages/piagent-core/runtime/session/system-prompt.ts +6 -7
  151. package/packages/piagent-core/runtime/workflows/webui-runtime-command.ts +6 -6
  152. package/packages/piagent-core/runtime/workflows/webui-workflow.ts +6 -11
  153. package/packages/piagent-core/security/sensitive-text.js +9 -0
  154. package/packages/piagent-core/skills/piagent-ops/SKILL.md +8 -10
  155. package/packages/piagent-core/skills/test-audit/SKILL.md +101 -0
  156. package/packages/piagent-core/subagents/piagent-planner.md +1 -1
  157. package/packages/piagent-webui/dist/client/assets/{MarkdownMessage-DMU7Xe_O.js → MarkdownMessage-Dd9wPk-v.js} +1 -1
  158. package/packages/piagent-webui/dist/client/assets/index-7I-50Q2U.js +228 -0
  159. package/packages/piagent-webui/dist/client/assets/{index-DVahUVWy.css → index-DgSmcnP8.css} +1 -1
  160. package/packages/piagent-webui/dist/client/index.html +2 -2
  161. package/packages/piagent-webui/extension/piagent-webui.ts +11 -11
  162. package/packages/piagent-webui/extension/session-stream-adapter.ts +3 -1
  163. package/packages/piagent-webui/extension/terminal-session-adapter.ts +6 -1
  164. package/packages/piagent-webui/gateway/company-relay.ts +308 -0
  165. package/packages/piagent-webui/gateway/control-socket.ts +39 -12
  166. package/packages/piagent-webui/gateway/gateway-service.ts +109 -28
  167. package/packages/piagent-webui/gateway/gateway-session-stream.ts +58 -2
  168. package/packages/piagent-webui/gateway/managed-gateway.mjs +41 -0
  169. package/packages/piagent-webui/gateway/managed-launch.ts +145 -0
  170. package/packages/piagent-webui/gateway/managed-projection.ts +20 -0
  171. package/packages/piagent-webui/gateway/pi-host.ts +22 -4
  172. package/packages/piagent-webui/gateway/runtime-session-controls.ts +5 -2
  173. package/packages/piagent-webui/gateway/session-approval-authority.ts +28 -0
  174. package/packages/piagent-webui/gateway/session-catalog.ts +11 -3
  175. package/packages/piagent-webui/gateway/session-command-controller.ts +8 -2
  176. package/packages/piagent-webui/gateway/session-file-facts.ts +25 -0
  177. package/packages/piagent-webui/gateway/session-inspection-registry.ts +40 -9
  178. package/packages/piagent-webui/gateway/session-list-cache.ts +68 -0
  179. package/packages/piagent-webui/gateway/session-runtime-ownership.ts +8 -1
  180. package/packages/piagent-webui/gateway/session-runtime-supervisor.ts +20 -27
  181. package/packages/piagent-webui/ownership/managed-terminal-lease.ts +27 -0
  182. package/packages/piagent-webui/ownership/profile-state.ts +2 -0
  183. package/packages/piagent-webui/ownership/session-lease-store.ts +22 -1
  184. package/packages/piagent-webui/server/approval-projection.ts +9 -0
  185. package/packages/piagent-webui/server/core-inspection-provider.ts +4 -9
  186. package/packages/piagent-webui/server/loopback-server.ts +37 -1
  187. package/packages/piagent-webui/server/message-stop-reason.ts +11 -0
  188. package/packages/piagent-webui/server/tool-call-summary.ts +185 -0
  189. package/packages/piagent-webui/server/transcript-projection.ts +86 -3
  190. package/packs/engineering-base/pack.json +4 -0
  191. package/schemas/piagent-webui/runtime-command-v1.schema.json +1 -2
  192. package/schemas/piagent-webui/session-catalog-v1.schema.json +8 -0
  193. package/schemas/piagent-webui/transcript-v1.schema.json +94 -1
  194. package/scripts/build-docs-site.mjs +23 -12
  195. package/scripts/check-public-wording.mjs +5 -6
  196. package/scripts/check-runtime-advisories.mjs +23 -6
  197. package/scripts/claude-model-additions.mjs +33 -0
  198. package/scripts/configure-model-scope.sh +30 -6
  199. package/scripts/configure-subagents.sh +1 -1
  200. package/scripts/explain-command.mjs +5 -6
  201. package/scripts/model-scope-prune.mjs +75 -0
  202. package/scripts/phase-tools-evaluation.mjs +9 -4
  203. package/scripts/piagent-cli.mjs +51 -2
  204. package/scripts/piagent-dashboard.mjs +27 -4
  205. package/scripts/piagent-installations.mjs +26 -0
  206. package/scripts/piagent-studio.mjs +155 -0
  207. package/scripts/runtime-advisory-exceptions.json +29 -0
  208. package/scripts/team-doctor.sh +20 -1
  209. package/scripts/typescript-loader.mjs +6 -0
  210. package/scripts/verify-local.sh +2 -2
  211. package/templates/global/settings.json +3 -1
  212. package/templates/project/.pi/project-context.md +3 -3
  213. package/templates/project/AGENTS.md +4 -5
  214. package/docs/piagent-core-reasoning-research-2026-09-06.md +0 -225
  215. package/docs/piagent-core-research-sources-2026-09-06.json +0 -416
  216. package/packages/piagent-webui/dist/client/assets/index-Cui9AAV_.js +0 -176
@@ -30,7 +30,7 @@
30
30
  <span>Pi Agent Platform</span>
31
31
  </a>
32
32
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.8.0 docs · VI</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.9.0 docs · VI</span>
34
34
  <nav class="language-switch" aria-label="Ngôn ngữ">
35
35
  <a class="language-option current" href="/context-engine" hreflang="vi" lang="vi" aria-current="true">VI</a>
36
36
  <a class="language-option" href="/en/context-engine" hreflang="en" lang="en">EN</a>
@@ -59,6 +59,7 @@
59
59
  <div class="nav-group">
60
60
  <p class="nav-title">Get started</p>
61
61
  <a class="nav-link" href="/">Overview</a>
62
+ <a class="nav-link" href="/ecosystem">Hệ sinh thái</a>
62
63
  <a class="nav-link" href="/quickstart">Quickstart</a>
63
64
  <a class="nav-link" href="/whats-new">Có gì mới</a>
64
65
  <a class="nav-link" href="/scope">Phạm vi platform</a>
@@ -0,0 +1,283 @@
1
+ <!doctype html>
2
+ <html lang="vi" data-copy-success="Đã lấy" data-copy-fallback="Chọn lệnh">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Piagent, Agent Watch và Agent Studio · Pi Agent Platform Docs</title>
7
+ <meta name="description" content="Một dashboard, hai cách dùng model: tài khoản của bạn, hoặc model của công ty qua Agent Watch và Agent Studio, với Harness tự kiểm tra từng lượt." />
8
+ <meta name="theme-color" content="#050505" />
9
+ <link rel="canonical" href="https://piagent.io.vn/ecosystem" />
10
+ <link rel="alternate" hreflang="vi" href="https://piagent.io.vn/ecosystem" />
11
+ <link rel="alternate" hreflang="en" href="https://piagent.io.vn/en/ecosystem" />
12
+ <link rel="alternate" hreflang="x-default" href="https://piagent.io.vn/ecosystem" />
13
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml" />
14
+ <meta property="og:title" content="Piagent, Agent Watch và Agent Studio · Pi Agent Platform Docs" />
15
+ <meta property="og:description" content="Một dashboard, hai cách dùng model: tài khoản của bạn, hoặc model của công ty qua Agent Watch và Agent Studio, với Harness tự kiểm tra từng lượt." />
16
+ <meta property="og:url" content="https://piagent.io.vn/ecosystem" />
17
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
18
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
19
+ <link
20
+ href="https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap"
21
+ rel="stylesheet"
22
+ />
23
+ <link rel="stylesheet" href="/assets/docs.css" />
24
+ <script src="/assets/docs.js" defer></script>
25
+ </head>
26
+ <body>
27
+ <header class="topbar">
28
+ <a class="brand" href="/" aria-label="Pi Agent Platform">
29
+ <span class="brand-mark"><img src="/assets/piagent-logo.svg" alt="" /></span>
30
+ <span>Pi Agent Platform</span>
31
+ </a>
32
+ <div class="top-actions">
33
+ <span class="pill"><span class="pill-dot"></span>v1.9.0 docs · VI</span>
34
+ <nav class="language-switch" aria-label="Ngôn ngữ">
35
+ <a class="language-option current" href="/ecosystem" hreflang="vi" lang="vi" aria-current="true">VI</a>
36
+ <a class="language-option" href="/en/ecosystem" hreflang="en" lang="en">EN</a>
37
+ </nav>
38
+ <a class="button social" href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer" aria-label="Mở GitHub repository">
39
+ <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
40
+ <path d="M7 17 17 7M9 7h8v8" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
41
+ </svg>
42
+ GitHub
43
+ </a>
44
+ <button class="button mobile-menu" type="button" data-menu>Lộ trình</button>
45
+ <a class="button top-command-link" href="/commands">Commands</a>
46
+ </div>
47
+ </header>
48
+
49
+ <div class="layout with-toc">
50
+ <aside class="sidebar" data-sidebar>
51
+ <div class="sidebar-search" aria-label="Tìm trong tài liệu">
52
+ <svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
53
+ <path d="M10.8 18.1a7.3 7.3 0 1 1 0-14.6 7.3 7.3 0 0 1 0 14.6Zm5.3-1.7 4.4 4.4" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
54
+ </svg>
55
+ <input type="search" placeholder="Tìm trang" data-filter />
56
+ </div>
57
+
58
+ <nav aria-label="Tài liệu">
59
+ <div class="nav-group">
60
+ <p class="nav-title">Get started</p>
61
+ <a class="nav-link" href="/">Overview</a>
62
+ <a class="nav-link current" href="/ecosystem" aria-current="page">Hệ sinh thái</a>
63
+ <a class="nav-link" href="/quickstart">Quickstart</a>
64
+ <a class="nav-link" href="/whats-new">Có gì mới</a>
65
+ <a class="nav-link" href="/scope">Phạm vi platform</a>
66
+ </div>
67
+ <div class="nav-group">
68
+ <p class="nav-title">Build</p>
69
+ <a class="nav-link" href="/profiles">Project profile</a>
70
+ <a class="nav-link" href="/permissions">Permission modes</a>
71
+ <a class="nav-link" href="/commands">Command catalog</a>
72
+ <a class="nav-link" href="/workflows">Workflows</a>
73
+ </div>
74
+ <div class="nav-group">
75
+ <p class="nav-title">MCP</p>
76
+ <a class="nav-link" href="/mcp">MCP overview</a>
77
+ <a class="nav-link" href="/mcp-servers">Quản lý server</a>
78
+ <a class="nav-link" href="/mcp-auth">Auth và readiness</a>
79
+ <a class="nav-link" href="/mcp-approval">Approval gate</a>
80
+ </div>
81
+ <div class="nav-group">
82
+ <p class="nav-title">Operate</p>
83
+ <a class="nav-link" href="/security">Security model</a>
84
+ <a class="nav-link" href="/architecture">Architecture</a>
85
+ <a class="nav-link" href="/context-engine">Context Engine</a>
86
+ <a class="nav-link" href="/benchmark">Benchmark</a>
87
+ <a class="nav-link" href="/runtime">Runtime tools</a>
88
+ <a class="nav-link" href="/team">Team usage</a>
89
+ </div>
90
+ </nav>
91
+ </aside>
92
+
93
+ <main>
94
+ <div class="content-shell" data-article>
95
+ <nav class="breadcrumb" aria-label="Breadcrumb">
96
+ <a href="/">Docs</a>
97
+ <span aria-hidden="true">/</span>
98
+ <span>Get started</span>
99
+ <span aria-hidden="true">/</span>
100
+ <span>Hệ sinh thái</span>
101
+ </nav>
102
+ <div class="page-head">
103
+ <h1>Piagent, Agent Watch và Agent Studio</h1>
104
+ <p>Một dashboard, hai cách dùng model: tài khoản của bạn, hoặc model của công ty qua Agent Watch và Agent Studio, với Harness tự kiểm tra từng lượt.</p>
105
+ </div>
106
+ <section class="section">
107
+ <p class="section-kicker">Toàn cảnh</p>
108
+ <h2 id="toan-canh">Một dashboard, hai cách dùng model</h2>
109
+ <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>
110
+ <figure class="diagram">
111
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1120 560" role="img" aria-labelledby="eco-title eco-desc" class="eco-diagram">
112
+ <title id="eco-title">Hệ sinh thái Piagent</title>
113
+ <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>
114
+ <defs>
115
+ <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>
116
+ <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>
117
+ </defs>
118
+ <style>
119
+ .eco-box { fill: #101114; stroke: #2c2f37; stroke-width: 1.5; }
120
+ .eco-zone { fill: rgba(255,255,255,0.015); stroke: #24262d; stroke-width: 1.2; stroke-dasharray: 6 6; }
121
+ .eco-h { fill: #f4f4ef; font: 600 17px "Be Vietnam Pro", system-ui, sans-serif; }
122
+ .eco-t { fill: #a4a6ad; font: 400 13.5px "Be Vietnam Pro", system-ui, sans-serif; }
123
+ .eco-k { fill: #71747d; font: 600 12px "Be Vietnam Pro", system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
124
+ .eco-chip { fill: rgba(216,255,122,0.08); stroke: rgba(216,255,122,0.35); }
125
+ .eco-chip-t { fill: #d8ff7a; font: 600 12.5px "JetBrains Mono", ui-monospace, monospace; }
126
+ .eco-line { stroke: #8be9c8; stroke-width: 1.8; fill: none; }
127
+ .eco-line-lime { stroke: #d8ff7a; stroke-width: 1.8; fill: none; stroke-dasharray: 7 6; }
128
+ .eco-label { fill: #8be9c8; font: 500 12.5px "Be Vietnam Pro", system-ui, sans-serif; }
129
+ .eco-label-lime { fill: #d8ff7a; font: 500 12.5px "Be Vietnam Pro", system-ui, sans-serif; }
130
+ </style>
131
+ <rect class="eco-zone" x="16" y="16" width="420" height="528" rx="22"/>
132
+ <text class="eco-k" x="40" y="48">Máy của thành viên</text>
133
+ <rect class="eco-box" x="40" y="68" width="372" height="96" rx="16"/>
134
+ <text class="eco-h" x="62" y="102">Piagent · Terminal và Dashboard</text>
135
+ <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>
136
+ <text class="eco-t" x="62" y="148">trong Terminal (pi) và trình duyệt.</text>
137
+ <rect class="eco-box" x="40" y="184" width="372" height="116" rx="16"/>
138
+ <text class="eco-h" x="62" y="218">Guard</text>
139
+ <text class="eco-t" x="62" y="244">Kiểm tra mọi tool call: file bảo vệ, profile</text>
140
+ <text class="eco-t" x="62" y="264">quyền, file quá lớn, sửa trên bản đã cũ;</text>
141
+ <text class="eco-t" x="62" y="284">push, publish, lệnh có mạng chờ bạn duyệt.</text>
142
+ <rect class="eco-box" x="40" y="320" width="372" height="96" rx="16"/>
143
+ <text class="eco-h" x="62" y="354">Sandbox của chế độ công ty</text>
144
+ <text class="eco-t" x="62" y="380">Lệnh chạy không mạng, không đọc Keychain,</text>
145
+ <text class="eco-t" x="62" y="400">.env hay SSH key; mạng chỉ mở theo lần duyệt.</text>
146
+ <rect class="eco-chip" x="40" y="440" width="176" height="34" rx="17"/>
147
+ <text class="eco-chip-t" x="58" y="462">piagent dashboard</text>
148
+ <rect class="eco-chip" x="226" y="440" width="186" height="34" rx="17"/>
149
+ <text class="eco-chip-t" x="244" y="462">piagent studio --web</text>
150
+ <rect class="eco-chip" x="40" y="486" width="76" height="34" rx="17"/>
151
+ <text class="eco-chip-t" x="64" y="508">pi</text>
152
+ <rect class="eco-chip" x="126" y="486" width="186" height="34" rx="17"/>
153
+ <text class="eco-chip-t" x="144" y="508">piagent-doctor</text>
154
+ <rect class="eco-box" x="500" y="68" width="250" height="96" rx="18"/>
155
+ <text class="eco-h" x="522" y="102">Model cá nhân</text>
156
+ <text class="eco-t" x="522" y="128">Đăng nhập bằng tài khoản</text>
157
+ <text class="eco-t" x="522" y="148">riêng: Codex, Claude, Copilot…</text>
158
+ <rect class="eco-box" x="500" y="184" width="250" height="232" rx="18"/>
159
+ <text class="eco-k" x="522" y="216">Ứng dụng macOS</text>
160
+ <text class="eco-h" x="522" y="244">Agent Watch</text>
161
+ <text class="eco-t" x="522" y="272">Giữ key công ty trong</text>
162
+ <text class="eco-t" x="522" y="292">Keychain; nhập cấu hình</text>
163
+ <text class="eco-t" x="522" y="312">cho Piagent; cấp quyền</text>
164
+ <text class="eco-t" x="522" y="332">ngắn hạn cho từng lượt.</text>
165
+ <text class="eco-t" x="522" y="364">Model không bao giờ thấy</text>
166
+ <text class="eco-t" x="522" y="384">key.</text>
167
+ <rect class="eco-zone" x="800" y="16" width="304" height="528" rx="22"/>
168
+ <text class="eco-k" x="824" y="48">Máy chủ công ty</text>
169
+ <rect class="eco-box" x="824" y="68" width="256" height="300" rx="18"/>
170
+ <text class="eco-h" x="846" y="102">Agent Studio</text>
171
+ <text class="eco-t" x="846" y="132">Thành viên, key, ngân sách</text>
172
+ <text class="eco-t" x="846" y="152">và usage theo ngày.</text>
173
+ <text class="eco-t" x="846" y="186">Harness của team:</text>
174
+ <text class="eco-label-lime" x="846" y="210">kế hoạch · check · review</text>
175
+ <text class="eco-t" x="846" y="244">Chọn model cho từng vai:</text>
176
+ <text class="eco-label-lime" x="846" y="268">main · research · review</text>
177
+ <text class="eco-t" x="846" y="302">Mỗi vai một model riêng,</text>
178
+ <text class="eco-t" x="846" y="322">thinking theo Harness.</text>
179
+ <rect class="eco-box" x="824" y="392" width="256" height="128" rx="18"/>
180
+ <text class="eco-h" x="846" y="426">Model của công ty</text>
181
+ <text class="eco-t" x="846" y="454">Claude, GPT, DeepSeek, Kimi,</text>
182
+ <text class="eco-t" x="846" y="474">GLM, Qwen… qua key công ty;</text>
183
+ <text class="eco-t" x="846" y="494">key chỉ nằm trên máy chủ.</text>
184
+ <path class="eco-line" d="M412 300 L 500 300" marker-end="url(#eco-arrow)"/>
185
+ <text class="eco-label" x="424" y="290">công ty</text>
186
+ <path class="eco-line" d="M750 300 C 790 300, 790 220, 824 220" marker-end="url(#eco-arrow)"/>
187
+ <text class="eco-label" x="748" y="348">lượt có hạn</text>
188
+ <path class="eco-line" d="M952 368 L952 392" marker-end="url(#eco-arrow)"/>
189
+ <path class="eco-line-lime" d="M412 116 L 500 116" marker-end="url(#eco-arrow-lime)"/>
190
+ <text class="eco-label-lime" x="420" y="106">cá nhân</text>
191
+ </svg>
192
+ <figcaption class="diagram-hint">Vuốt ngang để xem hết sơ đồ.</figcaption>
193
+ </figure>
194
+ </section>
195
+
196
+ <section class="section">
197
+ <p class="section-kicker">Thành phần</p>
198
+ <h2 id="thanh-phan">Mỗi phần làm một việc</h2>
199
+ <div class="grid cols-2">
200
+ <article class="card">
201
+ <h3 id="piagent">Piagent</h3>
202
+ <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>
203
+ </article>
204
+ <article class="card">
205
+ <h3 id="guard">Guard</h3>
206
+ <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>
207
+ </article>
208
+ <article class="card">
209
+ <h3 id="agent-watch">Agent Watch</h3>
210
+ <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>
211
+ </article>
212
+ <article class="card">
213
+ <h3 id="agent-studio">Agent Studio</h3>
214
+ <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>
215
+ </article>
216
+ </div>
217
+ </section>
218
+
219
+ <section class="section">
220
+ <p class="section-kicker">Một lượt ở chế độ công ty</p>
221
+ <h2 id="mot-luot">Từ tin nhắn tới "Check đã qua · Review không có lỗi chặn"</h2>
222
+ <div class="steps">
223
+ <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>
224
+ <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>
225
+ <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>
226
+ <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>
227
+ <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>
228
+ </div>
229
+ <figure class="shot">
230
+ <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">
231
+ <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>
232
+ </figure>
233
+ </section>
234
+
235
+ <section class="section">
236
+ <p class="section-kicker">Chọn chế độ</p>
237
+ <h2 id="chon-che-do">Khi nào dùng cá nhân, khi nào dùng công ty</h2>
238
+ <div class="table-wrap"><table>
239
+ <thead><tr><th></th><th>Cá nhân</th><th>Công ty</th></tr></thead>
240
+ <tbody>
241
+ <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>
242
+ <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>
243
+ <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>
244
+ <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>
245
+ <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>
246
+ </tbody>
247
+ </table></div>
248
+ <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>
249
+ </section>
250
+ <nav class="pager" aria-label="Trang kế tiếp">
251
+ <a class="pager-prev" href="/">
252
+ <span class="pager-label">Trước</span>
253
+ <span class="pager-title">Overview</span>
254
+ </a>
255
+ <a class="pager-next" href="/quickstart">
256
+ <span class="pager-label">Tiếp</span>
257
+ <span class="pager-title">Quickstart</span>
258
+ </a>
259
+ </nav>
260
+
261
+ <footer class="footer">
262
+ <p>Pi Agent Platform docs · static HTML · governed agent workflow</p>
263
+ <div class="footer-links" aria-label="Liên kết ngoài">
264
+ <a href="https://piagent.io.vn" target="_blank" rel="noopener noreferrer">piagent.io.vn</a>
265
+ <a href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer">GitHub repository</a>
266
+ <a href="/en/ecosystem" hreflang="en">English</a>
267
+ <a href="https://www.facebook.com/vinhtam0544/" target="_blank" rel="noopener noreferrer">Facebook profile</a>
268
+ </div>
269
+ </footer>
270
+ </div>
271
+ </main>
272
+
273
+ <aside class="toc" aria-label="Mục lục trang">
274
+ <p class="toc-title">Trên trang này</p>
275
+ <nav data-toc></nav>
276
+ </aside>
277
+ </div>
278
+ <script>
279
+ window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };
280
+ </script>
281
+ <script defer src="/_vercel/insights/script.js"></script>
282
+ </body>
283
+ </html>
@@ -30,7 +30,7 @@
30
30
  <span>Pi Agent Platform</span>
31
31
  </a>
32
32
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.8.0 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.9.0 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/architecture" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/architecture" hreflang="en" lang="en" aria-current="true">EN</a>
@@ -59,6 +59,7 @@
59
59
  <div class="nav-group">
60
60
  <p class="nav-title">Get started</p>
61
61
  <a class="nav-link" href="/en/">Overview</a>
62
+ <a class="nav-link" href="/en/ecosystem">Ecosystem</a>
62
63
  <a class="nav-link" href="/en/quickstart">Quickstart</a>
63
64
  <a class="nav-link" href="/en/whats-new">What’s new</a>
64
65
  <a class="nav-link" href="/en/scope">Platform scope</a>
@@ -125,7 +126,7 @@
125
126
  </div>
126
127
  <div class="grid cols-3">
127
128
  <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>
128
- <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>
129
+ <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>
129
130
  <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>
130
131
  <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>
131
132
  <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>
@@ -30,7 +30,7 @@
30
30
  <span>Pi Agent Platform</span>
31
31
  </a>
32
32
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.8.0 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.9.0 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/benchmark" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/benchmark" hreflang="en" lang="en" aria-current="true">EN</a>
@@ -59,6 +59,7 @@
59
59
  <div class="nav-group">
60
60
  <p class="nav-title">Get started</p>
61
61
  <a class="nav-link" href="/en/">Overview</a>
62
+ <a class="nav-link" href="/en/ecosystem">Ecosystem</a>
62
63
  <a class="nav-link" href="/en/quickstart">Quickstart</a>
63
64
  <a class="nav-link" href="/en/whats-new">What’s new</a>
64
65
  <a class="nav-link" href="/en/scope">Platform scope</a>
@@ -102,6 +103,11 @@
102
103
  <h1>Quality and efficiency evidence</h1>
103
104
  <p>The production benchmark compares Piagent with codex-cli using the same model, thinking level, 18 task families, and 108 automatically graded sessions.</p>
104
105
  </div>
106
+ <div class="callout">
107
+ <strong>Historical figures</strong>
108
+ <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>
109
+ </div>
110
+
105
111
  <section class="benchmark-summary" aria-labelledby="benchmark-verdict">
106
112
  <div class="benchmark-verdict">
107
113
  <div>
@@ -30,7 +30,7 @@
30
30
  <span>Pi Agent Platform</span>
31
31
  </a>
32
32
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.8.0 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.9.0 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/commands" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/commands" hreflang="en" lang="en" aria-current="true">EN</a>
@@ -59,6 +59,7 @@
59
59
  <div class="nav-group">
60
60
  <p class="nav-title">Get started</p>
61
61
  <a class="nav-link" href="/en/">Overview</a>
62
+ <a class="nav-link" href="/en/ecosystem">Ecosystem</a>
62
63
  <a class="nav-link" href="/en/quickstart">Quickstart</a>
63
64
  <a class="nav-link" href="/en/whats-new">What’s new</a>
64
65
  <a class="nav-link" href="/en/scope">Platform scope</a>
@@ -106,8 +107,8 @@
106
107
  <div class="grid cols-2">
107
108
  <article class="card">
108
109
  <h3 id="session-basics">Session basics</h3>
109
- <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>
110
- <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>
110
+ <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>
111
+ <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>
111
112
  </article>
112
113
  <article class="card">
113
114
  <h3 id="project-profile">Project profile</h3>
@@ -115,19 +116,19 @@
115
116
  <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>
116
117
  </article>
117
118
  <article class="card">
118
- <h3 id="implementation-workflow">Implementation workflow</h3>
119
- <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>
120
- <p>Packages context loading, task contracts, implementation, verification evidence, and final handoff.</p>
119
+ <h3 id="implementation-workflow">Assigning work</h3>
120
+ <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>
121
+ <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>
121
122
  </article>
122
123
  <article class="card">
123
124
  <h3 id="git-handoff">Git handoff</h3>
124
- <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>
125
- <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>
125
+ <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>
126
+ <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>
126
127
  </article>
127
128
  <article class="card">
128
- <h3 id="fresh-sessions">Fresh sessions</h3>
129
- <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>
130
- <p>Start a clean workflow when the current context is heavy or belongs to a different task.</p>
129
+ <h3 id="fresh-sessions">New sessions</h3>
130
+ <div class="tag-list"><span class="tag">/new</span><span class="tag">/compact</span></div>
131
+ <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>
131
132
  </article>
132
133
  <article class="card">
133
134
  <h3 id="mcp">MCP</h3>
@@ -153,9 +154,9 @@
153
154
  <p>Inspect intent, risk, scope, runtime, solver route, phases, tool and helper recommendations, backend, approvals, and blockers before starting.</p>
154
155
  </article>
155
156
  <article class="command-card">
156
- <header><span>Live task status</span><button class="clip-btn" data-clip="/piagent-status">Copy</button></header>
157
+ <header><span>Session status</span><button class="clip-btn" data-clip="/piagent-status">Copy</button></header>
157
158
  <pre><code>/piagent-status</code></pre>
158
- <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>
159
+ <p>The session's profile, guard, runtime and model. It changes no file, reruns no check and starts no model turn.</p>
159
160
  </article>
160
161
  <article class="command-card">
161
162
  <header><span>Activity, diff, and context</span><button class="clip-btn" data-clip="/piagent-inspector">Copy</button></header>
@@ -175,7 +176,24 @@
175
176
  </div>
176
177
  <div class="callout">
177
178
  <strong>Sourced diffs, no token estimates.</strong>
178
- <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>
179
+ <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>
180
+ </div>
181
+ </section>
182
+
183
+ <section class="section">
184
+ <p class="section-kicker">Optional skills and packages</p>
185
+ <h2 id="skills-and-packages">Audit test quality, run experiment loops</h2>
186
+ <div class="command-grid">
187
+ <article class="command-card">
188
+ <header><span>Test audit</span><button class="clip-btn" data-clip="/skill:test-audit audit the tests of the billing module">Copy</button></header>
189
+ <pre><code>/skill:test-audit audit the tests of the billing module</code></pre>
190
+ <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>
191
+ </article>
192
+ <article class="command-card">
193
+ <header><span>Experiment loop</span><button class="clip-btn" data-clip="git switch -c experiment/test-speed">Copy</button></header>
194
+ <pre><code>git switch -c experiment/test-speed</code></pre>
195
+ <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>
196
+ </article>
179
197
  </div>
180
198
  </section>
181
199
  <nav class="pager" aria-label="Adjacent pages">
@@ -30,7 +30,7 @@
30
30
  <span>Pi Agent Platform</span>
31
31
  </a>
32
32
  <div class="top-actions">
33
- <span class="pill"><span class="pill-dot"></span>v1.8.0 docs · EN</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.9.0 docs · EN</span>
34
34
  <nav class="language-switch" aria-label="Language">
35
35
  <a class="language-option" href="/context-engine" hreflang="vi" lang="vi">VI</a>
36
36
  <a class="language-option current" href="/en/context-engine" hreflang="en" lang="en" aria-current="true">EN</a>
@@ -59,6 +59,7 @@
59
59
  <div class="nav-group">
60
60
  <p class="nav-title">Get started</p>
61
61
  <a class="nav-link" href="/en/">Overview</a>
62
+ <a class="nav-link" href="/en/ecosystem">Ecosystem</a>
62
63
  <a class="nav-link" href="/en/quickstart">Quickstart</a>
63
64
  <a class="nav-link" href="/en/whats-new">What’s new</a>
64
65
  <a class="nav-link" href="/en/scope">Platform scope</a>