@piagent/platform 1.37.1 → 1.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +5 -3
  3. package/README.vi.md +2 -2
  4. package/catalog/capabilities.json +2 -2
  5. package/docs/command-reference-vietnamese.md +4 -3
  6. package/docs/distribution-standard.md +6 -6
  7. package/docs/en/maintainer-guide.md +8 -0
  8. package/docs/en/workspace-editor.md +222 -0
  9. package/docs/languages.json +13 -4
  10. package/docs/operator-manual-vietnamese.md +7 -7
  11. package/docs/publishing-for-teams.md +2 -0
  12. package/docs/release-install-policy.md +2 -2
  13. package/docs/research/ide-m0-spike.md +101 -0
  14. package/docs/team-onboarding.md +2 -2
  15. package/docs/vi/maintainer-guide.md +8 -0
  16. package/docs/vi/workspace-editor.md +217 -0
  17. package/docs-site/architecture.html +1 -1
  18. package/docs-site/benchmark.html +1 -1
  19. package/docs-site/commands.html +1 -1
  20. package/docs-site/content/en/index.html +4 -4
  21. package/docs-site/content/en/whats-new.html +17 -0
  22. package/docs-site/content/index.html +4 -4
  23. package/docs-site/content/whats-new.html +17 -0
  24. package/docs-site/context-engine.html +1 -1
  25. package/docs-site/ecosystem.html +1 -1
  26. package/docs-site/en/architecture.html +1 -1
  27. package/docs-site/en/benchmark.html +1 -1
  28. package/docs-site/en/commands.html +1 -1
  29. package/docs-site/en/context-engine.html +1 -1
  30. package/docs-site/en/ecosystem.html +1 -1
  31. package/docs-site/en/index.html +5 -5
  32. package/docs-site/en/mcp-approval.html +1 -1
  33. package/docs-site/en/mcp-auth.html +1 -1
  34. package/docs-site/en/mcp-servers.html +1 -1
  35. package/docs-site/en/mcp.html +1 -1
  36. package/docs-site/en/permissions.html +1 -1
  37. package/docs-site/en/profiles.html +1 -1
  38. package/docs-site/en/quickstart.html +1 -1
  39. package/docs-site/en/runtime.html +1 -1
  40. package/docs-site/en/scope.html +1 -1
  41. package/docs-site/en/security.html +1 -1
  42. package/docs-site/en/team.html +1 -1
  43. package/docs-site/en/whats-new.html +18 -1
  44. package/docs-site/en/windows.html +1 -1
  45. package/docs-site/en/workflows.html +1 -1
  46. package/docs-site/index.html +5 -5
  47. package/docs-site/mcp-approval.html +1 -1
  48. package/docs-site/mcp-auth.html +1 -1
  49. package/docs-site/mcp-servers.html +1 -1
  50. package/docs-site/mcp.html +1 -1
  51. package/docs-site/permissions.html +1 -1
  52. package/docs-site/profiles.html +1 -1
  53. package/docs-site/quickstart.html +1 -1
  54. package/docs-site/runtime.html +1 -1
  55. package/docs-site/scope.html +1 -1
  56. package/docs-site/security.html +1 -1
  57. package/docs-site/team.html +1 -1
  58. package/docs-site/whats-new.html +18 -1
  59. package/docs-site/windows.html +1 -1
  60. package/docs-site/workflows.html +1 -1
  61. package/evals/fixtures/piagent-webui/checkpoint-v1.invalid.json +21 -0
  62. package/evals/fixtures/piagent-webui/checkpoint-v1.valid.json +20 -0
  63. package/evals/fixtures/piagent-webui/terminal-v1.invalid.json +17 -0
  64. package/evals/fixtures/piagent-webui/terminal-v1.valid.json +16 -0
  65. package/evals/fixtures/piagent-webui/workspace-file-v1.invalid.json +24 -0
  66. package/evals/fixtures/piagent-webui/workspace-file-v1.valid.json +23 -0
  67. package/evals/fixtures/piagent-webui/workspace-paths-v1.invalid.json +24 -0
  68. package/evals/fixtures/piagent-webui/workspace-paths-v1.valid.json +24 -0
  69. package/evals/fixtures/piagent-webui/workspace-search-v1.invalid.json +26 -0
  70. package/evals/fixtures/piagent-webui/workspace-search-v1.valid.json +26 -0
  71. package/evals/fixtures/piagent-webui/workspace-tree-v1.invalid.json +28 -0
  72. package/evals/fixtures/piagent-webui/workspace-tree-v1.valid.json +27 -0
  73. package/evals/fixtures/piagent-webui/workspace-write-v1.invalid.json +19 -0
  74. package/evals/fixtures/piagent-webui/workspace-write-v1.valid.json +19 -0
  75. package/evals/long-task-soak-v1/README.md +17 -0
  76. package/evals/long-task-soak-v1/lib/session-loop.mjs +19 -3
  77. package/evals/long-task-soak-v1/scenarios/ide-editor-terminal.json +19 -0
  78. package/evals/long-task-soak-v1/surfaces/webui-gateway.mjs +17 -2
  79. package/evals/long-task-soak-v1/surfaces/workspace-actions.mjs +95 -0
  80. package/evals/private-holdout-v1/public-exposure.v2.json +2 -2
  81. package/package.json +7 -3
  82. package/packages/piagent-core/extensions/fallback-base-policy.ts +1 -1
  83. package/packages/piagent-core/extensions/guard-types.ts +3 -1
  84. package/packages/piagent-core/extensions/path-suggestions.ts +137 -0
  85. package/packages/piagent-core/extensions/piagent-guard.ts +85 -7
  86. package/packages/piagent-core/extensions/workspace-inspection.ts +145 -0
  87. package/packages/piagent-core/extensions/workspace-policy.d.ts +7 -0
  88. package/packages/piagent-core/extensions/workspace-policy.js +3 -0
  89. package/packages/piagent-core/extensions/workspace-search-index.mjs +8 -0
  90. package/packages/piagent-core/extensions/workspace-search.ts +74 -0
  91. package/packages/piagent-core/extensions/workspace-write.ts +116 -0
  92. package/packages/piagent-core/managed/background-process.mjs +9 -4
  93. package/packages/piagent-core/managed/boundary-package-proxy.mjs +21 -0
  94. package/packages/piagent-core/managed/boundary-queue.mjs +24 -0
  95. package/packages/piagent-core/managed/checkpoint-git.mjs +16 -0
  96. package/packages/piagent-core/managed/checkpoints.mjs +17 -64
  97. package/packages/piagent-core/managed/command-tools.mjs +6 -6
  98. package/packages/piagent-core/managed/continuation.mjs +3 -0
  99. package/packages/piagent-core/managed/dist/workspace/assets/adapters/backend-api/profile.json +88 -0
  100. package/packages/piagent-core/managed/dist/workspace/assets/adapters/be-readonly-fe/profile.json +130 -0
  101. package/packages/piagent-core/managed/dist/workspace/assets/adapters/data/profile.json +88 -0
  102. package/packages/piagent-core/managed/dist/workspace/assets/adapters/devops/profile.json +90 -0
  103. package/packages/piagent-core/managed/dist/workspace/assets/adapters/docs/profile.json +74 -0
  104. package/packages/piagent-core/managed/dist/workspace/assets/adapters/fullstack/profile.json +92 -0
  105. package/packages/piagent-core/managed/dist/workspace/assets/adapters/generic/profile.json +95 -0
  106. package/packages/piagent-core/managed/dist/workspace/assets/adapters/mobile/profile.json +86 -0
  107. package/packages/piagent-core/managed/dist/workspace/assets/adapters/node-typescript/profile.json +74 -0
  108. package/packages/piagent-core/managed/dist/workspace/assets/adapters/python/profile.json +75 -0
  109. package/packages/piagent-core/managed/dist/workspace/assets/adapters/web-frontend/profile.json +99 -0
  110. package/packages/piagent-core/managed/dist/workspace/assets/local-state-path-BrmghxEZ.js +284 -0
  111. package/packages/piagent-core/managed/dist/workspace/assets/packages/piagent-core/policies/base-policy.json +351 -0
  112. package/packages/piagent-core/managed/dist/workspace/manifest.json +65 -0
  113. package/packages/piagent-core/managed/dist/workspace/worker.mjs +7374 -0
  114. package/packages/piagent-core/managed/dist/workspace/workspace-search-index.mjs +1007 -0
  115. package/packages/piagent-core/managed/patch-snapshot.mjs +6 -8
  116. package/packages/piagent-core/managed/permission.mjs +29 -6
  117. package/packages/piagent-core/managed/repository-operation.mjs +2 -1
  118. package/packages/piagent-core/managed/review-snapshot-request.mjs +21 -0
  119. package/packages/piagent-core/managed/sandbox-diagnostic.mjs +2 -0
  120. package/packages/piagent-core/managed/session-mutation-observations.mjs +37 -0
  121. package/packages/piagent-core/managed/session.mjs +2 -2
  122. package/packages/piagent-core/managed/source-revert-requests.mjs +21 -0
  123. package/packages/piagent-core/managed/terminal-boundary.mjs +88 -0
  124. package/packages/piagent-core/managed/terminal-channel.mjs +66 -0
  125. package/packages/piagent-core/managed/terminal-runtime.mjs +64 -0
  126. package/packages/piagent-core/managed/terminal-seatbelt.mjs +48 -0
  127. package/packages/piagent-core/managed/terminal-worker.mjs +70 -0
  128. package/packages/piagent-core/managed/tool-boundary.mjs +45 -35
  129. package/packages/piagent-core/managed/tool-freshness.mjs +47 -0
  130. package/packages/piagent-core/managed/tool-worker.mjs +18 -3
  131. package/packages/piagent-core/managed/workspace-worker-pins.mjs +26 -0
  132. package/packages/piagent-core/package.json +1 -1
  133. package/packages/piagent-core/policies/base-policy.json +2 -1
  134. package/packages/piagent-core/runtime/checkpoints/checkpoint-authority.ts +43 -0
  135. package/packages/piagent-core/runtime/checkpoints/checkpoint-refs.mjs +51 -0
  136. package/packages/piagent-core/runtime/checkpoints/checkpoint-store.mjs +179 -0
  137. package/packages/piagent-core/runtime/checkpoints/checkpoint-worker.ts +28 -0
  138. package/packages/piagent-core/runtime/checkpoints/git-adapter.mjs +36 -0
  139. package/packages/piagent-core/runtime/checkpoints/persistent-history.mjs +96 -0
  140. package/packages/piagent-core/runtime/checkpoints/personal-git.ts +272 -0
  141. package/packages/piagent-core/runtime/checkpoints/personal-runtime.ts +158 -0
  142. package/packages/piagent-core/runtime/checkpoints/prune.mjs +29 -0
  143. package/packages/piagent-core/runtime/checkpoints/restore-preview.mjs +46 -0
  144. package/packages/piagent-core/runtime/checkpoints/turn-checkpoints.mjs +167 -0
  145. package/packages/piagent-core/runtime/hooks/session-hooks.ts +19 -16
  146. package/packages/piagent-core/runtime/hooks/session-start-hook.ts +3 -0
  147. package/packages/piagent-core/runtime/hooks/tool-call-hook.ts +2 -2
  148. package/packages/piagent-core/runtime/inspection/diff-projection.ts +2 -1
  149. package/packages/piagent-core/runtime/inspection/managed-source-revert.ts +90 -0
  150. package/packages/piagent-core/runtime/inspection/review-state-projection.ts +19 -8
  151. package/packages/piagent-core/runtime/inspection/session-diff-projection.ts +47 -0
  152. package/packages/piagent-core/runtime/inspection/session-hunk-provenance.ts +56 -0
  153. package/packages/piagent-core/runtime/inspection/session-mutation-observer.ts +125 -0
  154. package/packages/piagent-core/runtime/inspection/source-action-contract.ts +123 -0
  155. package/packages/piagent-core/runtime/inspection/source-change-projection.ts +3 -9
  156. package/packages/piagent-core/runtime/inspection/source-mutation-projection.ts +3 -41
  157. package/packages/piagent-core/runtime/inspection/source-mutation-store.ts +6 -36
  158. package/packages/piagent-core/runtime/inspection/source-revert-projection.ts +36 -30
  159. package/packages/piagent-core/runtime/inspection/text-diff.ts +5 -4
  160. package/packages/piagent-core/runtime/inspection/workspace-worker.ts +79 -0
  161. package/packages/piagent-core/runtime/policy/source-index-transaction.ts +3 -10
  162. package/packages/piagent-core/runtime/policy/source-mutation-guard-binding.ts +27 -2
  163. package/packages/piagent-core/runtime/policy/source-mutation-guard.ts +42 -12
  164. package/packages/piagent-core/runtime/policy/source-worktree-transaction.ts +10 -5
  165. package/packages/piagent-core/runtime/policy/workspace-write-authority.ts +51 -0
  166. package/packages/piagent-core/runtime/process-owner.mjs +20 -0
  167. package/packages/piagent-core/runtime/process-tree-watch.mjs +46 -0
  168. package/packages/piagent-core/runtime/quality/model-mutation-proof.ts +8 -5
  169. package/packages/piagent-core/runtime/registration/permission-commands.ts +10 -2
  170. package/packages/piagent-core/runtime/registration/task-evidence-tools.ts +1 -1
  171. package/packages/piagent-core/runtime/session/workspace-member-edits.d.mts +7 -0
  172. package/packages/piagent-core/runtime/session/workspace-member-edits.mjs +41 -0
  173. package/packages/piagent-core/security/workspace-file-reader.ts +2 -1
  174. package/packages/piagent-webui/dist/client/assets/Alert-DXF8-XqE.js +1 -0
  175. package/packages/piagent-webui/dist/client/assets/Button-DZJosXQi.js +1 -0
  176. package/packages/piagent-webui/dist/client/assets/DialogTitle-CL-fzCnT.js +3 -0
  177. package/packages/piagent-webui/dist/client/assets/MarkdownMessage-k4tq1y8s.js +29 -0
  178. package/packages/piagent-webui/dist/client/assets/TerminalPanel-DvOPgrGI.js +2 -0
  179. package/packages/piagent-webui/dist/client/assets/TerminalView-B_a16moC.js +9 -0
  180. package/packages/piagent-webui/dist/client/assets/TerminalView-kHJ-D0s7.css +1 -0
  181. package/packages/piagent-webui/dist/client/assets/Typography-DMZL1kLS.js +1 -0
  182. package/packages/piagent-webui/dist/client/assets/WorkspaceCodeEditor-BCiYM9NA.js +2 -0
  183. package/packages/piagent-webui/dist/client/assets/WorkspaceExplorer-DttpQtpf.js +5 -0
  184. package/packages/piagent-webui/dist/client/assets/WorkspaceQuickOpen-fgXwQ46B.js +1 -0
  185. package/packages/piagent-webui/dist/client/assets/bootstrap-CedkNtRG.js +1 -0
  186. package/packages/piagent-webui/dist/client/assets/dist-B1M7IjfA.js +10 -0
  187. package/packages/piagent-webui/dist/client/assets/dist-BUYtGaUP.js +1 -0
  188. package/packages/piagent-webui/dist/client/assets/dist-C82AtDDT.js +6 -0
  189. package/packages/piagent-webui/dist/client/assets/dist-D9b8j6pJ.js +1 -0
  190. package/packages/piagent-webui/dist/client/assets/dist-DLfpWwLs.js +23 -0
  191. package/packages/piagent-webui/dist/client/assets/dist-DcEu_WYV.js +1 -0
  192. package/packages/piagent-webui/dist/client/assets/dist-_JsfplOG.js +9 -0
  193. package/packages/piagent-webui/dist/client/assets/dist-idN8f9Fc.js +1 -0
  194. package/packages/piagent-webui/dist/client/assets/dist-nvgpa2Us.js +1 -0
  195. package/packages/piagent-webui/dist/client/assets/index-BW8-BUMx.js +102 -0
  196. package/packages/piagent-webui/dist/client/assets/index-Brs_HjIo.css +1 -0
  197. package/packages/piagent-webui/dist/client/assets/rolldown-runtime-hePW80VL.js +1 -0
  198. package/packages/piagent-webui/dist/client/assets/tab-close-HE0XxoJf.js +1 -0
  199. package/packages/piagent-webui/dist/client/assets/ui-preferences-DiddStu0.js +124 -0
  200. package/packages/piagent-webui/dist/client/assets/useTheme-_ESOj7MI.js +10 -0
  201. package/packages/piagent-webui/dist/client/assets/workspace-api-O7auv_td.js +1 -0
  202. package/packages/piagent-webui/dist/client/index.html +10 -2
  203. package/packages/piagent-webui/extension/same-session-bridge.ts +2 -3
  204. package/packages/piagent-webui/extension/source-revert-controller.ts +14 -208
  205. package/packages/piagent-webui/gateway/checkpoint-sessions.ts +99 -0
  206. package/packages/piagent-webui/gateway/checkpoint-store.ts +6 -0
  207. package/packages/piagent-webui/gateway/company-relay.ts +5 -0
  208. package/packages/piagent-webui/gateway/company-terminal-cache.ts +54 -0
  209. package/packages/piagent-webui/gateway/company-terminal-channel.ts +117 -0
  210. package/packages/piagent-webui/gateway/company-terminal-relay.ts +75 -0
  211. package/packages/piagent-webui/gateway/gateway-protocol-service.ts +12 -0
  212. package/packages/piagent-webui/gateway/gateway-service.ts +48 -4
  213. package/packages/piagent-webui/gateway/managed-gateway.mjs +30 -3
  214. package/packages/piagent-webui/gateway/managed-projection.ts +5 -3
  215. package/packages/piagent-webui/gateway/managed-source-revert-controller.ts +45 -0
  216. package/packages/piagent-webui/gateway/managed-source-revert-sessions.ts +74 -0
  217. package/packages/piagent-webui/gateway/managed-terminal-binding.ts +30 -0
  218. package/packages/piagent-webui/gateway/managed-terminal-processes.ts +74 -0
  219. package/packages/piagent-webui/gateway/managed-terminal-sessions.ts +9 -0
  220. package/packages/piagent-webui/gateway/path-suggestions.ts +1 -124
  221. package/packages/piagent-webui/gateway/personal-terminal-binding.ts +36 -0
  222. package/packages/piagent-webui/gateway/personal-terminal-diagnostic.mjs +16 -0
  223. package/packages/piagent-webui/gateway/personal-terminal-processes.ts +119 -0
  224. package/packages/piagent-webui/gateway/personal-terminal-sessions.ts +22 -0
  225. package/packages/piagent-webui/gateway/runtime-session-controls.ts +2 -1
  226. package/packages/piagent-webui/gateway/session-catalog.ts +3 -2
  227. package/packages/piagent-webui/gateway/session-command-controller.ts +4 -4
  228. package/packages/piagent-webui/gateway/session-inspection-registry.ts +29 -5
  229. package/packages/piagent-webui/gateway/session-runtime-supervisor.ts +8 -8
  230. package/packages/piagent-webui/gateway/signed-session-journal.ts +77 -0
  231. package/packages/piagent-webui/gateway/source-revert-sessions.ts +74 -0
  232. package/packages/piagent-webui/gateway/source-revert-store.ts +47 -0
  233. package/packages/piagent-webui/gateway/terminal-command-ledger.ts +33 -0
  234. package/packages/piagent-webui/gateway/terminal-mentions.ts +29 -0
  235. package/packages/piagent-webui/gateway/terminal-output-buffer.ts +58 -0
  236. package/packages/piagent-webui/gateway/terminal-router.ts +12 -0
  237. package/packages/piagent-webui/gateway/terminal-sessions.ts +247 -0
  238. package/packages/piagent-webui/gateway/workspace-write-sessions.ts +69 -0
  239. package/packages/piagent-webui/gateway/workspace-write-store.ts +6 -0
  240. package/packages/piagent-webui/package.json +14 -2
  241. package/packages/piagent-webui/server/checkpoint-command.ts +30 -0
  242. package/packages/piagent-webui/server/checkpoint-controller.ts +87 -0
  243. package/packages/piagent-webui/server/checkpoint-routes.ts +38 -0
  244. package/packages/piagent-webui/server/control-command-digest.ts +5 -0
  245. package/packages/piagent-webui/server/core-inspection-provider.ts +16 -22
  246. package/packages/piagent-webui/server/gateway-websocket.ts +36 -8
  247. package/packages/piagent-webui/server/loopback-server.ts +9 -0
  248. package/packages/piagent-webui/server/read-model-provider.ts +3 -0
  249. package/packages/piagent-webui/server/read-only-router.ts +3 -0
  250. package/packages/piagent-webui/server/session-auth.ts +4 -1
  251. package/packages/piagent-webui/server/session-source-revert-routes.ts +54 -0
  252. package/packages/piagent-webui/server/source-projection-binding.ts +18 -0
  253. package/packages/piagent-webui/server/source-revert-controller.ts +225 -0
  254. package/packages/piagent-webui/server/terminal-command.ts +35 -0
  255. package/packages/piagent-webui/server/terminal-websocket-stream.ts +56 -0
  256. package/packages/piagent-webui/server/transcript-projection.ts +2 -1
  257. package/packages/piagent-webui/server/workspace-read-routes.ts +32 -0
  258. package/packages/piagent-webui/server/workspace-reader.ts +23 -0
  259. package/packages/piagent-webui/server/workspace-write-controller.ts +118 -0
  260. package/packages/piagent-webui/server/workspace-write-routes.ts +38 -0
  261. package/packages/piagent-webui/shared/terminal-message.ts +23 -0
  262. package/schemas/piagent-webui/catalog-v1.json +63 -0
  263. package/schemas/piagent-webui/checkpoint-v1.schema.json +466 -0
  264. package/schemas/piagent-webui/control-command-v1.schema.json +68 -3
  265. package/schemas/piagent-webui/diff-v1.schema.json +4 -0
  266. package/schemas/piagent-webui/gateway-protocol-v1.schema.json +123 -3
  267. package/schemas/piagent-webui/session-catalog-v1.schema.json +1 -1
  268. package/schemas/piagent-webui/session-command-v1.schema.json +1 -1
  269. package/schemas/piagent-webui/snapshot-v1.schema.json +2 -1
  270. package/schemas/piagent-webui/source-revert-v1.schema.json +22 -3
  271. package/schemas/piagent-webui/terminal-v1.schema.json +495 -0
  272. package/schemas/piagent-webui/workspace-file-v1.schema.json +79 -0
  273. package/schemas/piagent-webui/workspace-paths-v1.schema.json +71 -0
  274. package/schemas/piagent-webui/workspace-search-v1.schema.json +80 -0
  275. package/schemas/piagent-webui/workspace-tree-v1.schema.json +87 -0
  276. package/schemas/piagent-webui/workspace-write-v1.schema.json +276 -0
  277. package/schemas/project-profile.schema.json +8 -3
  278. package/scripts/company-terminal.mjs +16 -11
  279. package/scripts/pi-auto.sh +5 -1
  280. package/scripts/team-doctor.sh +8 -0
  281. package/packages/piagent-webui/dist/client/assets/MarkdownMessage-CfgyQQbW.js +0 -29
  282. package/packages/piagent-webui/dist/client/assets/index-HyzWKvDu.js +0 -234
  283. package/packages/piagent-webui/dist/client/assets/index-_0nGP2n3.css +0 -1
@@ -262,6 +262,69 @@
262
262
  "role": "transport",
263
263
  "supported": true,
264
264
  "current": true
265
+ },
266
+ {
267
+ "name": "workspace-tree-v1",
268
+ "file": "workspace-tree-v1.schema.json",
269
+ "id": "https://piagent.io.vn/schemas/piagent-webui/workspace-tree-v1.schema.json",
270
+ "documentVersion": 1,
271
+ "role": "read-model",
272
+ "supported": true,
273
+ "current": true
274
+ },
275
+ {
276
+ "name": "workspace-file-v1",
277
+ "file": "workspace-file-v1.schema.json",
278
+ "id": "https://piagent.io.vn/schemas/piagent-webui/workspace-file-v1.schema.json",
279
+ "documentVersion": 1,
280
+ "role": "read-model",
281
+ "supported": true,
282
+ "current": true
283
+ },
284
+ {
285
+ "name": "workspace-paths-v1",
286
+ "file": "workspace-paths-v1.schema.json",
287
+ "id": "https://piagent.io.vn/schemas/piagent-webui/workspace-paths-v1.schema.json",
288
+ "documentVersion": 1,
289
+ "role": "read-model",
290
+ "supported": true,
291
+ "current": true
292
+ },
293
+ {
294
+ "name": "workspace-search-v1",
295
+ "file": "workspace-search-v1.schema.json",
296
+ "id": "https://piagent.io.vn/schemas/piagent-webui/workspace-search-v1.schema.json",
297
+ "documentVersion": 1,
298
+ "role": "read-model",
299
+ "supported": true,
300
+ "current": true
301
+ },
302
+ {
303
+ "name": "workspace-write-v1",
304
+ "file": "workspace-write-v1.schema.json",
305
+ "id": "https://piagent.io.vn/schemas/piagent-webui/workspace-write-v1.schema.json",
306
+ "documentVersion": 1,
307
+ "role": "command",
308
+ "supported": true,
309
+ "current": true
310
+ },
311
+ {
312
+ "name": "terminal-v1",
313
+ "file": "terminal-v1.schema.json",
314
+ "id": "https://piagent.io.vn/schemas/piagent-webui/terminal-v1.schema.json",
315
+ "documentVersion": 1,
316
+ "role": "transport",
317
+ "supported": true,
318
+ "current": true
319
+ },
320
+ {
321
+ "name": "checkpoint-v1",
322
+ "file": "checkpoint-v1.schema.json",
323
+ "id": "https://piagent.io.vn/schemas/piagent-webui/checkpoint-v1.schema.json",
324
+ "documentVersion": 1,
325
+ "role": "command",
326
+ "supported": true,
327
+ "current": true
265
328
  }
266
329
  ]
267
330
  }
@@ -0,0 +1,466 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://piagent.io.vn/schemas/piagent-webui/checkpoint-v1.schema.json",
4
+ "title": "Piagent WebUI checkpoint v1",
5
+ "oneOf": [
6
+ {
7
+ "$ref": "#/$defs/state"
8
+ },
9
+ {
10
+ "$ref": "#/$defs/preview"
11
+ },
12
+ {
13
+ "$ref": "#/$defs/command"
14
+ },
15
+ {
16
+ "$ref": "#/$defs/receipt"
17
+ }
18
+ ],
19
+ "$defs": {
20
+ "revisions": {
21
+ "title": "Checkpoint revisions",
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "checkpointRevision"
26
+ ],
27
+ "properties": {
28
+ "checkpointRevision": {
29
+ "$ref": "common-v1.schema.json#/$defs/hash"
30
+ }
31
+ }
32
+ },
33
+ "point": {
34
+ "title": "Checkpoint point",
35
+ "type": "object",
36
+ "additionalProperties": false,
37
+ "required": [
38
+ "id",
39
+ "turnRef",
40
+ "at"
41
+ ],
42
+ "properties": {
43
+ "id": {
44
+ "type": "string",
45
+ "pattern": "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
46
+ },
47
+ "turnRef": {
48
+ "type": "string",
49
+ "minLength": 1,
50
+ "maxLength": 256
51
+ },
52
+ "at": {
53
+ "type": "integer",
54
+ "minimum": 0
55
+ }
56
+ }
57
+ },
58
+ "state": {
59
+ "title": "Checkpoint state",
60
+ "type": "object",
61
+ "additionalProperties": false,
62
+ "required": [
63
+ "schemaVersion",
64
+ "version",
65
+ "messageType",
66
+ "identity",
67
+ "revisions",
68
+ "available",
69
+ "agentRunning",
70
+ "points"
71
+ ],
72
+ "properties": {
73
+ "schemaVersion": {
74
+ "const": 1
75
+ },
76
+ "version": {
77
+ "const": "piagent-webui-checkpoint-v1"
78
+ },
79
+ "messageType": {
80
+ "const": "state"
81
+ },
82
+ "identity": {
83
+ "$ref": "common-v1.schema.json#/$defs/identity"
84
+ },
85
+ "revisions": {
86
+ "$ref": "#/$defs/revisions"
87
+ },
88
+ "available": {
89
+ "type": "boolean"
90
+ },
91
+ "agentRunning": {
92
+ "type": "boolean"
93
+ },
94
+ "points": {
95
+ "type": "array",
96
+ "maxItems": 64,
97
+ "items": {
98
+ "$ref": "#/$defs/point"
99
+ }
100
+ }
101
+ }
102
+ },
103
+ "step": {
104
+ "title": "Checkpoint step",
105
+ "type": "object",
106
+ "additionalProperties": false,
107
+ "required": [
108
+ "id",
109
+ "turnRef",
110
+ "restore",
111
+ "remove"
112
+ ],
113
+ "properties": {
114
+ "id": {
115
+ "type": "string",
116
+ "pattern": "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
117
+ },
118
+ "turnRef": {
119
+ "type": "string",
120
+ "minLength": 1,
121
+ "maxLength": 256
122
+ },
123
+ "restore": {
124
+ "type": "array",
125
+ "maxItems": 10000,
126
+ "items": {
127
+ "type": "string",
128
+ "minLength": 1,
129
+ "maxLength": 4096
130
+ }
131
+ },
132
+ "remove": {
133
+ "type": "array",
134
+ "maxItems": 10000,
135
+ "items": {
136
+ "type": "string",
137
+ "minLength": 1,
138
+ "maxLength": 4096
139
+ }
140
+ }
141
+ }
142
+ },
143
+ "preview": {
144
+ "title": "Checkpoint preview",
145
+ "type": "object",
146
+ "additionalProperties": false,
147
+ "required": [
148
+ "schemaVersion",
149
+ "version",
150
+ "messageType",
151
+ "identity",
152
+ "revisions",
153
+ "targetId",
154
+ "result",
155
+ "previewDigest",
156
+ "tree",
157
+ "steps",
158
+ "files",
159
+ "conflicts",
160
+ "stoppedAt"
161
+ ],
162
+ "properties": {
163
+ "schemaVersion": {
164
+ "const": 1
165
+ },
166
+ "version": {
167
+ "const": "piagent-webui-checkpoint-v1"
168
+ },
169
+ "messageType": {
170
+ "const": "preview"
171
+ },
172
+ "identity": {
173
+ "$ref": "common-v1.schema.json#/$defs/identity"
174
+ },
175
+ "revisions": {
176
+ "$ref": "#/$defs/revisions"
177
+ },
178
+ "targetId": {
179
+ "type": "string",
180
+ "pattern": "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
181
+ },
182
+ "result": {
183
+ "enum": [
184
+ "ready",
185
+ "conflict",
186
+ "busy",
187
+ "none",
188
+ "unavailable"
189
+ ]
190
+ },
191
+ "previewDigest": {
192
+ "anyOf": [
193
+ {
194
+ "$ref": "common-v1.schema.json#/$defs/hash"
195
+ },
196
+ {
197
+ "type": "null"
198
+ }
199
+ ]
200
+ },
201
+ "tree": {
202
+ "anyOf": [
203
+ {
204
+ "type": "string",
205
+ "pattern": "^(?:[a-f0-9]{40}|[a-f0-9]{64})$"
206
+ },
207
+ {
208
+ "type": "null"
209
+ }
210
+ ]
211
+ },
212
+ "steps": {
213
+ "type": "array",
214
+ "maxItems": 64,
215
+ "items": {
216
+ "$ref": "#/$defs/step"
217
+ }
218
+ },
219
+ "files": {
220
+ "type": "array",
221
+ "maxItems": 10000,
222
+ "items": {
223
+ "type": "string",
224
+ "minLength": 1,
225
+ "maxLength": 4096
226
+ }
227
+ },
228
+ "conflicts": {
229
+ "type": "array",
230
+ "maxItems": 10000,
231
+ "items": {
232
+ "type": "string",
233
+ "minLength": 1,
234
+ "maxLength": 4096
235
+ }
236
+ },
237
+ "stoppedAt": {
238
+ "anyOf": [
239
+ {
240
+ "type": "string",
241
+ "pattern": "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
242
+ },
243
+ {
244
+ "type": "null"
245
+ }
246
+ ]
247
+ }
248
+ }
249
+ },
250
+ "payload": {
251
+ "title": "Checkpoint payload",
252
+ "type": "object",
253
+ "additionalProperties": false,
254
+ "required": [
255
+ "targetId",
256
+ "previewDigest",
257
+ "expectedTree",
258
+ "confirmed"
259
+ ],
260
+ "properties": {
261
+ "targetId": {
262
+ "type": "string",
263
+ "pattern": "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
264
+ },
265
+ "previewDigest": {
266
+ "$ref": "common-v1.schema.json#/$defs/hash"
267
+ },
268
+ "expectedTree": {
269
+ "type": "string",
270
+ "pattern": "^(?:[a-f0-9]{40}|[a-f0-9]{64})$"
271
+ },
272
+ "confirmed": {
273
+ "const": true
274
+ }
275
+ }
276
+ },
277
+ "command": {
278
+ "type": "object",
279
+ "additionalProperties": false,
280
+ "required": [
281
+ "schemaVersion",
282
+ "version",
283
+ "messageType",
284
+ "commandId",
285
+ "idempotencyKey",
286
+ "requestedAt",
287
+ "expiresAt",
288
+ "action",
289
+ "actionDigest",
290
+ "identity",
291
+ "expectedRevisions",
292
+ "payload"
293
+ ],
294
+ "properties": {
295
+ "schemaVersion": {
296
+ "const": 1
297
+ },
298
+ "version": {
299
+ "const": "piagent-webui-checkpoint-v1"
300
+ },
301
+ "messageType": {
302
+ "const": "command"
303
+ },
304
+ "commandId": {
305
+ "$ref": "common-v1.schema.json#/$defs/opaqueRef"
306
+ },
307
+ "idempotencyKey": {
308
+ "type": "string",
309
+ "pattern": "^[A-Za-z0-9._~-]{32,128}$"
310
+ },
311
+ "requestedAt": {
312
+ "$ref": "common-v1.schema.json#/$defs/timestamp"
313
+ },
314
+ "expiresAt": {
315
+ "$ref": "common-v1.schema.json#/$defs/timestamp"
316
+ },
317
+ "action": {
318
+ "const": "checkpoint.restore"
319
+ },
320
+ "actionDigest": {
321
+ "$ref": "common-v1.schema.json#/$defs/digest"
322
+ },
323
+ "identity": {
324
+ "$ref": "common-v1.schema.json#/$defs/identity"
325
+ },
326
+ "expectedRevisions": {
327
+ "$ref": "#/$defs/revisions"
328
+ },
329
+ "payload": {
330
+ "$ref": "#/$defs/payload"
331
+ }
332
+ },
333
+ "title": "Checkpoint command"
334
+ },
335
+ "receipt": {
336
+ "type": "object",
337
+ "additionalProperties": false,
338
+ "required": [
339
+ "schemaVersion",
340
+ "version",
341
+ "messageType",
342
+ "commandId",
343
+ "idempotencyKeyDigest",
344
+ "action",
345
+ "actionDigest",
346
+ "identity",
347
+ "phase",
348
+ "resultCode",
349
+ "requestedAt",
350
+ "settledAt",
351
+ "observedRevisionsBefore",
352
+ "observedRevisionsAfter",
353
+ "deduplicated",
354
+ "targetId",
355
+ "completed",
356
+ "files",
357
+ "conflicts",
358
+ "stoppedAt"
359
+ ],
360
+ "properties": {
361
+ "schemaVersion": {
362
+ "const": 1
363
+ },
364
+ "version": {
365
+ "const": "piagent-webui-checkpoint-v1"
366
+ },
367
+ "messageType": {
368
+ "const": "receipt"
369
+ },
370
+ "commandId": {
371
+ "$ref": "common-v1.schema.json#/$defs/opaqueRef"
372
+ },
373
+ "idempotencyKeyDigest": {
374
+ "$ref": "common-v1.schema.json#/$defs/digest"
375
+ },
376
+ "action": {
377
+ "const": "checkpoint.restore"
378
+ },
379
+ "actionDigest": {
380
+ "$ref": "common-v1.schema.json#/$defs/digest"
381
+ },
382
+ "identity": {
383
+ "$ref": "common-v1.schema.json#/$defs/identity"
384
+ },
385
+ "phase": {
386
+ "enum": [
387
+ "settled",
388
+ "rejected",
389
+ "uncertain"
390
+ ]
391
+ },
392
+ "resultCode": {
393
+ "enum": [
394
+ "restored",
395
+ "conflict",
396
+ "stale-revision",
397
+ "identity-mismatch",
398
+ "read-only",
399
+ "busy",
400
+ "unavailable",
401
+ "expired",
402
+ "idempotency-payload-mismatch",
403
+ "effect-unknown"
404
+ ]
405
+ },
406
+ "requestedAt": {
407
+ "$ref": "common-v1.schema.json#/$defs/timestamp"
408
+ },
409
+ "settledAt": {
410
+ "$ref": "common-v1.schema.json#/$defs/timestamp"
411
+ },
412
+ "observedRevisionsBefore": {
413
+ "$ref": "#/$defs/revisions"
414
+ },
415
+ "observedRevisionsAfter": {
416
+ "$ref": "#/$defs/revisions"
417
+ },
418
+ "deduplicated": {
419
+ "type": "boolean"
420
+ },
421
+ "targetId": {
422
+ "type": "string",
423
+ "pattern": "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
424
+ },
425
+ "completed": {
426
+ "type": "array",
427
+ "maxItems": 64,
428
+ "items": {
429
+ "type": "string",
430
+ "pattern": "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
431
+ }
432
+ },
433
+ "files": {
434
+ "type": "array",
435
+ "maxItems": 10000,
436
+ "items": {
437
+ "type": "string",
438
+ "minLength": 1,
439
+ "maxLength": 4096
440
+ }
441
+ },
442
+ "conflicts": {
443
+ "type": "array",
444
+ "maxItems": 10000,
445
+ "items": {
446
+ "type": "string",
447
+ "minLength": 1,
448
+ "maxLength": 4096
449
+ }
450
+ },
451
+ "stoppedAt": {
452
+ "anyOf": [
453
+ {
454
+ "type": "string",
455
+ "pattern": "^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$"
456
+ },
457
+ {
458
+ "type": "null"
459
+ }
460
+ ]
461
+ }
462
+ },
463
+ "title": "Checkpoint receipt"
464
+ }
465
+ }
466
+ }
@@ -11,6 +11,71 @@
11
11
  }
12
12
  ],
13
13
  "$defs": {
14
+ "sourceRevertIdentityBinding": {
15
+ "if": {
16
+ "type": "object",
17
+ "properties": {
18
+ "action": {
19
+ "const": "source.revert"
20
+ }
21
+ },
22
+ "required": [
23
+ "action"
24
+ ]
25
+ },
26
+ "then": {
27
+ "oneOf": [
28
+ {
29
+ "type": "object",
30
+ "properties": {
31
+ "identity": {
32
+ "type": "object",
33
+ "properties": {
34
+ "taskId": {
35
+ "type": "null"
36
+ },
37
+ "taskRunId": {
38
+ "type": "null"
39
+ }
40
+ }
41
+ },
42
+ "expectedRevisions": {
43
+ "type": "object",
44
+ "properties": {
45
+ "taskRevision": {
46
+ "type": "null"
47
+ }
48
+ }
49
+ }
50
+ }
51
+ },
52
+ {
53
+ "type": "object",
54
+ "properties": {
55
+ "identity": {
56
+ "type": "object",
57
+ "properties": {
58
+ "taskId": {
59
+ "$ref": "common-v1.schema.json#/$defs/publicId"
60
+ },
61
+ "taskRunId": {
62
+ "$ref": "common-v1.schema.json#/$defs/publicId"
63
+ }
64
+ }
65
+ },
66
+ "expectedRevisions": {
67
+ "type": "object",
68
+ "properties": {
69
+ "taskRevision": {
70
+ "$ref": "common-v1.schema.json#/$defs/revisionToken"
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ ]
77
+ }
78
+ },
14
79
  "action": {
15
80
  "enum": [
16
81
  "chat.send",
@@ -579,6 +644,7 @@
579
644
  }
580
645
  },
581
646
  "allOf": [
647
+ { "$ref": "#/$defs/sourceRevertIdentityBinding" },
582
648
  {
583
649
  "$ref": "#/$defs/commandActionBindings"
584
650
  }
@@ -1029,7 +1095,7 @@
1029
1095
  "expectedRevisions": {
1030
1096
  "properties": {
1031
1097
  "taskRevision": {
1032
- "$ref": "common-v1.schema.json#/$defs/revisionToken"
1098
+ "$ref": "common-v1.schema.json#/$defs/nullableRevisionToken"
1033
1099
  },
1034
1100
  "workspaceRevision": {
1035
1101
  "$ref": "common-v1.schema.json#/$defs/revisionToken"
@@ -1160,7 +1226,6 @@
1160
1226
  "review.mark",
1161
1227
  "source.stage",
1162
1228
  "source.unstage",
1163
- "source.revert",
1164
1229
  "source.open-in-vscode",
1165
1230
  "commit-summary.generate"
1166
1231
  ]
@@ -1662,6 +1727,7 @@
1662
1727
  }
1663
1728
  },
1664
1729
  "allOf": [
1730
+ { "$ref": "#/$defs/sourceRevertIdentityBinding" },
1665
1731
  {
1666
1732
  "$ref": "#/$defs/receiptActionResultBinding"
1667
1733
  },
@@ -1700,7 +1766,6 @@
1700
1766
  "review.mark",
1701
1767
  "source.stage",
1702
1768
  "source.unstage",
1703
- "source.revert",
1704
1769
  "source.open-in-vscode",
1705
1770
  "commit-summary.generate"
1706
1771
  ]
@@ -35,6 +35,10 @@
35
35
  "file": { "$ref": "source-change-v1.schema.json#/$defs/fileChange" },
36
36
  "availability": { "$ref": "#/$defs/availability" },
37
37
  "fallback": { "$ref": "#/$defs/fallback" },
38
+ "agentHunkRefs": {
39
+ "type": "array", "maxItems": 128, "uniqueItems": true,
40
+ "items": { "$ref": "common-v1.schema.json#/$defs/opaqueRef" }
41
+ },
38
42
  "hunks": {
39
43
  "type": "array",
40
44
  "maxItems": 128,