@piagent/platform 1.6.1 → 1.8.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 (654) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +8 -2
  3. package/README.vi.md +11 -2
  4. package/adapters/common/assurance-producers.json +109 -0
  5. package/adapters/common/structured-assurance-facts.mjs +153 -0
  6. package/adapters/node-typescript/contract-families.json +2811 -0
  7. package/adapters/node-typescript/contract-families.md +90 -0
  8. package/benchmarks/production-v1/grade.mjs +20 -0
  9. package/benchmarks/production-v1/spend-control.v1.json +3 -3
  10. package/benchmarks/production-v2/grade.mjs +892 -0
  11. package/benchmarks/production-v2/project/README.md +7 -0
  12. package/benchmarks/production-v2/project/config/service.json +4 -0
  13. package/benchmarks/production-v2/project/data/audit-ledger.jsonl +1 -0
  14. package/benchmarks/production-v2/project/docs/ops.md +3 -0
  15. package/benchmarks/production-v2/project/logs/incident.log +2 -0
  16. package/benchmarks/production-v2/project/package.json +11 -0
  17. package/benchmarks/production-v2/project/scripts/check.mjs +21 -0
  18. package/benchmarks/production-v2/project/src/backend/auth.js +3 -0
  19. package/benchmarks/production-v2/project/src/backend/billing-window.js +4 -0
  20. package/benchmarks/production-v2/project/src/backend/cache.js +15 -0
  21. package/benchmarks/production-v2/project/src/backend/invoice.js +4 -0
  22. package/benchmarks/production-v2/project/src/backend/revocation-cache.js +3 -0
  23. package/benchmarks/production-v2/project/src/data/csv.js +3 -0
  24. package/benchmarks/production-v2/project/src/data/dedup.js +5 -0
  25. package/benchmarks/production-v2/project/src/data/migration.js +9 -0
  26. package/benchmarks/production-v2/project/src/data/ndjson-stream.js +5 -0
  27. package/benchmarks/production-v2/project/src/data/versioned-replay.js +8 -0
  28. package/benchmarks/production-v2/project/src/frontend/chat-events.js +7 -0
  29. package/benchmarks/production-v2/project/src/frontend/pagination.js +8 -0
  30. package/benchmarks/production-v2/project/src/frontend/request-lifecycle.js +15 -0
  31. package/benchmarks/production-v2/project/src/frontend/search-state.js +8 -0
  32. package/benchmarks/production-v2/project/src/frontend/unicode-search.js +7 -0
  33. package/benchmarks/production-v2/project/src/fullstack/contract-sync.js +10 -0
  34. package/benchmarks/production-v2/project/src/platform/args.js +10 -0
  35. package/benchmarks/production-v2/project/src/platform/config.js +7 -0
  36. package/benchmarks/production-v2/project/src/platform/workflow-session.js +9 -0
  37. package/benchmarks/production-v2/project/src/platform/workspace.js +13 -0
  38. package/benchmarks/production-v2/project/src/reliability/checkpoint.js +5 -0
  39. package/benchmarks/production-v2/project/src/reliability/expiry.js +5 -0
  40. package/benchmarks/production-v2/project/src/reliability/retry.js +15 -0
  41. package/benchmarks/production-v2/project/test/smoke.test.js +21 -0
  42. package/benchmarks/production-v2/project/vendor/README.md +1 -0
  43. package/benchmarks/production-v2/prompts/abort-reconnect-supersession.md +11 -0
  44. package/benchmarks/production-v2/prompts/backend-frontend-contract-sync.md +12 -0
  45. package/benchmarks/production-v2/prompts/billing-cutoff-clock-skew.md +11 -0
  46. package/benchmarks/production-v2/prompts/bounded-retry.md +7 -0
  47. package/benchmarks/production-v2/prompts/chunked-record-boundary.md +9 -0
  48. package/benchmarks/production-v2/prompts/cli-double-dash.md +7 -0
  49. package/benchmarks/production-v2/prompts/config-precedence.md +6 -0
  50. package/benchmarks/production-v2/prompts/destructive-history-refusal.md +3 -0
  51. package/benchmarks/production-v2/prompts/expiry-boundary.md +7 -0
  52. package/benchmarks/production-v2/prompts/idempotent-replay-conflict.md +11 -0
  53. package/benchmarks/production-v2/prompts/incident-diagnosis.md +4 -0
  54. package/benchmarks/production-v2/prompts/invoice-rounding.md +9 -0
  55. package/benchmarks/production-v2/prompts/journeys/config-precedence-scout.md +3 -0
  56. package/benchmarks/production-v2/prompts/journeys/expiry-boundary-scout.md +3 -0
  57. package/benchmarks/production-v2/prompts/journeys/quoted-csv-scout.md +3 -0
  58. package/benchmarks/production-v2/prompts/journeys/recover-after-uncertain-send.md +4 -0
  59. package/benchmarks/production-v2/prompts/journeys/repository-prompt-injection-scout.md +4 -0
  60. package/benchmarks/production-v2/prompts/journeys/resumable-checkpoint-partial-failure-scout.md +4 -0
  61. package/benchmarks/production-v2/prompts/journeys/stable-dedup-scout.md +3 -0
  62. package/benchmarks/production-v2/prompts/journeys/stale-search-response-scout.md +3 -0
  63. package/benchmarks/production-v2/prompts/journeys/tenant-cache-isolation-scout.md +4 -0
  64. package/benchmarks/production-v2/prompts/journeys/verify-current-contract.md +4 -0
  65. package/benchmarks/production-v2/prompts/journeys/workflow-switch-same-session-scout.md +4 -0
  66. package/benchmarks/production-v2/prompts/pagination-boundary.md +7 -0
  67. package/benchmarks/production-v2/prompts/protected-env-refusal.md +2 -0
  68. package/benchmarks/production-v2/prompts/quoted-csv.md +6 -0
  69. package/benchmarks/production-v2/prompts/reconnect-chat-event-order.md +19 -0
  70. package/benchmarks/production-v2/prompts/repository-prompt-injection.md +5 -0
  71. package/benchmarks/production-v2/prompts/resumable-checkpoint-partial-failure.md +11 -0
  72. package/benchmarks/production-v2/prompts/revoked-session-cache.md +10 -0
  73. package/benchmarks/production-v2/prompts/schema-migration.md +6 -0
  74. package/benchmarks/production-v2/prompts/stable-dedup.md +6 -0
  75. package/benchmarks/production-v2/prompts/stale-search-response.md +6 -0
  76. package/benchmarks/production-v2/prompts/tenant-cache-isolation.md +6 -0
  77. package/benchmarks/production-v2/prompts/tenant-role-authorization.md +6 -0
  78. package/benchmarks/production-v2/prompts/unicode-search.md +6 -0
  79. package/benchmarks/production-v2/prompts/workflow-switch-same-session.md +30 -0
  80. package/benchmarks/production-v2/prompts/workspace-order.md +7 -0
  81. package/benchmarks/production-v2/spend-control.v1.json +115 -0
  82. package/benchmarks/production-v2/suite.json +1009 -0
  83. package/benchmarks/production-v2/variant.mjs +169 -0
  84. package/benchmarks/production-v3/CONTRACT-REVISION-20260922.md +31 -0
  85. package/benchmarks/production-v3/calibration/corpus.v1.json +63 -0
  86. package/benchmarks/production-v3/calibration/human-review-rubric.v1.json +36 -0
  87. package/benchmarks/production-v3/grade.mjs +1017 -0
  88. package/benchmarks/production-v3/project/README.md +7 -0
  89. package/benchmarks/production-v3/project/config/service.json +4 -0
  90. package/benchmarks/production-v3/project/data/audit-ledger.jsonl +1 -0
  91. package/benchmarks/production-v3/project/docs/ops.md +3 -0
  92. package/benchmarks/production-v3/project/logs/incident.log +2 -0
  93. package/benchmarks/production-v3/project/package.json +11 -0
  94. package/benchmarks/production-v3/project/scripts/check.mjs +21 -0
  95. package/benchmarks/production-v3/project/src/backend/auth.js +3 -0
  96. package/benchmarks/production-v3/project/src/backend/billing-window.js +4 -0
  97. package/benchmarks/production-v3/project/src/backend/cache.js +15 -0
  98. package/benchmarks/production-v3/project/src/backend/invoice.js +4 -0
  99. package/benchmarks/production-v3/project/src/backend/revocation-cache.js +12 -0
  100. package/benchmarks/production-v3/project/src/data/csv.js +3 -0
  101. package/benchmarks/production-v3/project/src/data/dedup.js +5 -0
  102. package/benchmarks/production-v3/project/src/data/migration.js +9 -0
  103. package/benchmarks/production-v3/project/src/data/ndjson-stream.js +5 -0
  104. package/benchmarks/production-v3/project/src/data/versioned-replay.js +8 -0
  105. package/benchmarks/production-v3/project/src/frontend/chat-events.js +7 -0
  106. package/benchmarks/production-v3/project/src/frontend/pagination.js +8 -0
  107. package/benchmarks/production-v3/project/src/frontend/request-lifecycle.js +23 -0
  108. package/benchmarks/production-v3/project/src/frontend/search-state.js +8 -0
  109. package/benchmarks/production-v3/project/src/frontend/unicode-search.js +7 -0
  110. package/benchmarks/production-v3/project/src/fullstack/contract-sync.js +10 -0
  111. package/benchmarks/production-v3/project/src/platform/args.js +10 -0
  112. package/benchmarks/production-v3/project/src/platform/config.js +7 -0
  113. package/benchmarks/production-v3/project/src/platform/workflow-session.js +9 -0
  114. package/benchmarks/production-v3/project/src/platform/workspace.js +13 -0
  115. package/benchmarks/production-v3/project/src/reliability/checkpoint.js +5 -0
  116. package/benchmarks/production-v3/project/src/reliability/expiry.js +14 -0
  117. package/benchmarks/production-v3/project/src/reliability/retry.js +15 -0
  118. package/benchmarks/production-v3/project/test/smoke.test.js +21 -0
  119. package/benchmarks/production-v3/project/vendor/README.md +1 -0
  120. package/benchmarks/production-v3/prompts/abort-reconnect-supersession.md +11 -0
  121. package/benchmarks/production-v3/prompts/backend-frontend-contract-sync.md +20 -0
  122. package/benchmarks/production-v3/prompts/billing-cutoff-clock-skew.md +11 -0
  123. package/benchmarks/production-v3/prompts/bounded-retry.md +7 -0
  124. package/benchmarks/production-v3/prompts/chunked-record-boundary.md +11 -0
  125. package/benchmarks/production-v3/prompts/cli-double-dash.md +7 -0
  126. package/benchmarks/production-v3/prompts/config-precedence.md +6 -0
  127. package/benchmarks/production-v3/prompts/destructive-history-refusal.md +9 -0
  128. package/benchmarks/production-v3/prompts/expiry-boundary.md +14 -0
  129. package/benchmarks/production-v3/prompts/idempotent-replay-conflict.md +13 -0
  130. package/benchmarks/production-v3/prompts/incident-diagnosis.md +4 -0
  131. package/benchmarks/production-v3/prompts/invoice-rounding.md +9 -0
  132. package/benchmarks/production-v3/prompts/journeys/config-precedence-scout.md +3 -0
  133. package/benchmarks/production-v3/prompts/journeys/expiry-boundary-scout.md +3 -0
  134. package/benchmarks/production-v3/prompts/journeys/quoted-csv-scout.md +3 -0
  135. package/benchmarks/production-v3/prompts/journeys/recover-after-uncertain-send.md +4 -0
  136. package/benchmarks/production-v3/prompts/journeys/repository-prompt-injection-scout.md +4 -0
  137. package/benchmarks/production-v3/prompts/journeys/resumable-checkpoint-partial-failure-scout.md +4 -0
  138. package/benchmarks/production-v3/prompts/journeys/stable-dedup-scout.md +3 -0
  139. package/benchmarks/production-v3/prompts/journeys/stale-search-response-scout.md +3 -0
  140. package/benchmarks/production-v3/prompts/journeys/tenant-cache-isolation-scout.md +4 -0
  141. package/benchmarks/production-v3/prompts/journeys/verify-current-contract.md +4 -0
  142. package/benchmarks/production-v3/prompts/journeys/workflow-switch-same-session-scout.md +4 -0
  143. package/benchmarks/production-v3/prompts/pagination-boundary.md +9 -0
  144. package/benchmarks/production-v3/prompts/protected-env-refusal.md +8 -0
  145. package/benchmarks/production-v3/prompts/quoted-csv.md +6 -0
  146. package/benchmarks/production-v3/prompts/reconnect-chat-event-order.md +20 -0
  147. package/benchmarks/production-v3/prompts/repository-prompt-injection.md +5 -0
  148. package/benchmarks/production-v3/prompts/resumable-checkpoint-partial-failure.md +15 -0
  149. package/benchmarks/production-v3/prompts/revoked-session-cache.md +10 -0
  150. package/benchmarks/production-v3/prompts/schema-migration.md +6 -0
  151. package/benchmarks/production-v3/prompts/stable-dedup.md +6 -0
  152. package/benchmarks/production-v3/prompts/stale-search-response.md +6 -0
  153. package/benchmarks/production-v3/prompts/tenant-cache-isolation.md +6 -0
  154. package/benchmarks/production-v3/prompts/tenant-role-authorization.md +6 -0
  155. package/benchmarks/production-v3/prompts/unicode-search.md +6 -0
  156. package/benchmarks/production-v3/prompts/workflow-switch-same-session.md +30 -0
  157. package/benchmarks/production-v3/prompts/workspace-order.md +7 -0
  158. package/benchmarks/production-v3/public-checks/abort-reconnect-supersession.js +34 -0
  159. package/benchmarks/production-v3/public-checks/expiry-boundary.js +29 -0
  160. package/benchmarks/production-v3/public-checks/revoked-session-cache.js +20 -0
  161. package/benchmarks/production-v3/spend-control.v1.json +121 -0
  162. package/benchmarks/production-v3/suite.json +1010 -0
  163. package/benchmarks/production-v3/variant.mjs +178 -0
  164. package/catalog/capabilities.json +2 -2
  165. package/docs/benchmark-codex-mcp-metadata-contract-v1.md +159 -0
  166. package/docs/benchmark-codex-mcp-metadata-contract-v2.md +182 -0
  167. package/docs/benchmark-codex-mcp-metadata-contract-v3.md +194 -0
  168. package/docs/benchmark-public-contract-addendum-v2.md +85 -0
  169. package/docs/benchmark-public-contract-addendum-v3.md +116 -0
  170. package/docs/command-reference-vietnamese.md +10 -7
  171. package/docs/context-window-policy.md +3 -3
  172. package/docs/distribution-standard.md +9 -9
  173. package/docs/languages.json +2 -2
  174. package/docs/model-options.md +20 -15
  175. package/docs/operator-manual-vietnamese.md +12 -12
  176. package/docs/piagent-codex-benchmark-recovery-plan.md +1817 -0
  177. package/docs/piagent-core-evaluation-specs-2026-09-06.json +706 -0
  178. package/docs/piagent-core-improvement-plan.md +528 -0
  179. package/docs/piagent-core-offline-implementation-2026-09-06.md +219 -0
  180. package/docs/piagent-core-plan-checkpoint-2026-09-06.json +69 -0
  181. package/docs/piagent-core-reasoning-research-2026-09-06.md +225 -0
  182. package/docs/piagent-core-research-sources-2026-09-06.json +416 -0
  183. package/docs/piagent-open-session-wait.md +19 -0
  184. package/docs/piagent-runtime-benchmark-execution-plan.md +685 -0
  185. package/docs/publishing-for-teams.md +3 -0
  186. package/docs/quality-benchmark.md +128 -8
  187. package/docs/quickstart-vietnamese.md +2 -2
  188. package/docs/release-install-policy.md +38 -11
  189. package/docs/research/harness-next-evidence-review.md +113 -0
  190. package/docs/team-onboarding.md +7 -7
  191. package/docs/third-party-neutrality.md +7 -0
  192. package/docs/usage-observability.md +1 -1
  193. package/docs-site/architecture.html +1 -1
  194. package/docs-site/benchmark.html +1 -1
  195. package/docs-site/commands.html +1 -1
  196. package/docs-site/content/en/runtime.html +1 -1
  197. package/docs-site/content/en/whats-new.html +23 -0
  198. package/docs-site/content/runtime.html +2 -2
  199. package/docs-site/content/whats-new.html +23 -0
  200. package/docs-site/context-engine.html +1 -1
  201. package/docs-site/en/architecture.html +1 -1
  202. package/docs-site/en/benchmark.html +1 -1
  203. package/docs-site/en/commands.html +1 -1
  204. package/docs-site/en/context-engine.html +1 -1
  205. package/docs-site/en/index.html +1 -1
  206. package/docs-site/en/mcp-approval.html +1 -1
  207. package/docs-site/en/mcp-auth.html +1 -1
  208. package/docs-site/en/mcp-servers.html +1 -1
  209. package/docs-site/en/mcp.html +1 -1
  210. package/docs-site/en/permissions.html +1 -1
  211. package/docs-site/en/profiles.html +1 -1
  212. package/docs-site/en/quickstart.html +1 -1
  213. package/docs-site/en/runtime.html +2 -2
  214. package/docs-site/en/scope.html +1 -1
  215. package/docs-site/en/security.html +1 -1
  216. package/docs-site/en/team.html +1 -1
  217. package/docs-site/en/whats-new.html +24 -1
  218. package/docs-site/en/workflows.html +1 -1
  219. package/docs-site/index.html +1 -1
  220. package/docs-site/mcp-approval.html +1 -1
  221. package/docs-site/mcp-auth.html +1 -1
  222. package/docs-site/mcp-servers.html +1 -1
  223. package/docs-site/mcp.html +1 -1
  224. package/docs-site/permissions.html +1 -1
  225. package/docs-site/profiles.html +1 -1
  226. package/docs-site/quickstart.html +1 -1
  227. package/docs-site/runtime.html +3 -3
  228. package/docs-site/scope.html +1 -1
  229. package/docs-site/security.html +1 -1
  230. package/docs-site/team.html +1 -1
  231. package/docs-site/whats-new.html +24 -1
  232. package/docs-site/workflows.html +1 -1
  233. package/evals/architecture-conformance-v1/lane.json +18 -0
  234. package/evals/architecture-conformance-v1/runner.mjs +77 -0
  235. package/evals/fixtures/approved-host-contracts.invalid.json +43 -0
  236. package/evals/fixtures/approved-host-contracts.valid.json +43 -0
  237. package/evals/fixtures/benchmark-attempt-outcome.invalid.json +42 -0
  238. package/evals/fixtures/benchmark-attempt-outcome.valid.json +42 -0
  239. package/evals/fixtures/benchmark-independent-verification-plan.invalid.json +7 -0
  240. package/evals/fixtures/benchmark-independent-verification-plan.valid.json +21 -0
  241. package/evals/fixtures/composite-criterion.invalid.json +10 -0
  242. package/evals/fixtures/composite-criterion.valid.json +33 -0
  243. package/evals/fixtures/contract-family-library.invalid.json +42 -0
  244. package/evals/fixtures/contract-family-library.valid.json +41 -0
  245. package/evals/fixtures/contract-selection-recipe.invalid.json +29 -0
  246. package/evals/fixtures/contract-selection-recipe.valid.json +29 -0
  247. package/evals/fixtures/host-contract-plan.invalid.json +42 -0
  248. package/evals/fixtures/host-contract-plan.valid.json +41 -0
  249. package/evals/fixtures/scoped-project-verification-receipt-v2.invalid.json +42 -0
  250. package/evals/fixtures/scoped-project-verification-receipt-v2.valid.json +42 -0
  251. package/evals/fixtures/scoped-project-verification-receipt-v3.invalid.json +57 -0
  252. package/evals/fixtures/scoped-project-verification-receipt-v3.valid.json +57 -0
  253. package/evals/fixtures/scoped-verification-receipt-v1.invalid.json +40 -0
  254. package/evals/fixtures/scoped-verification-receipt-v1.valid.json +40 -0
  255. package/evals/fs5-artifact-archive/README.md +32 -0
  256. package/evals/fs5-artifact-archive/manifest.json +148 -0
  257. package/evals/fs5-artifact-archive/sha256/1f073f6d42c093a3182685e0e096144c8b3befd87594aeea1af05ce17653860c.txt +380 -0
  258. package/evals/fs5-artifact-archive/sha256/1ff46984c5ff668647dfad94248cd9dcfb72384a8aa529279345582f90d7486a.txt +331 -0
  259. package/evals/fs5-artifact-archive/sha256/20a5e1ef1cab3234a888b876b3cec52e702a05bc5ac000b691f94c651beed9ca.txt +800 -0
  260. package/evals/fs5-artifact-archive/sha256/29bb79e96b047d79056626d747baa0b3a6ca9d4da7ad80b9668c0085e5581706.txt +116 -0
  261. package/evals/fs5-artifact-archive/sha256/2bcc0cf6c18eee0c080c30e727610b0f10a278f5862855d920ba5797f07a2f2d.txt +252 -0
  262. package/evals/fs5-artifact-archive/sha256/37ecc65febe2c5947ac9288ad958bc149e0f08c6beda137edb1c660908853832.txt +324 -0
  263. package/evals/fs5-artifact-archive/sha256/5d937632d2cfff34dbbb781dd367bb78feb64c36d571c36ca15f2cc40c576af8.txt +142 -0
  264. package/evals/fs5-artifact-archive/sha256/6057c7bf2f40f8e3db7e293f08d745133c05293b75e9f363fb4e2e53bd09a76a.txt +244 -0
  265. package/evals/fs5-artifact-archive/sha256/62ea354afb6816b148ae9bd95ffb1ee5e29580eb4a22473e1ae19dbb471ec36b.txt +930 -0
  266. package/evals/fs5-artifact-archive/sha256/8987775b742f3b3650d75cce84e6d58fcdd3dfb835d03dac4c2bfe6d9eea3a2e.txt +903 -0
  267. package/evals/fs5-artifact-archive/sha256/902e886d0920b66811f54d0d1d933d70f8fab8704813b46d578bee6af1f21eef.txt +942 -0
  268. package/evals/fs5-artifact-archive/sha256/976a9908adfd765ee7be0655616f39a44fff64824f5e8535d726082e550b02eb.txt +910 -0
  269. package/evals/fs5-artifact-archive/sha256/9c07bda5bfe7bb7b0959844ccea6790735cc9f154d8d5972e18785148cea6d9a.txt +101 -0
  270. package/evals/fs5-artifact-archive/sha256/b936a604db87a697bf69581c33d753e26d9e5e2ccce40bf9c9b2070948f49919.txt +931 -0
  271. package/evals/fs5-artifact-archive/sha256/bf91f69473f48fc3de7c7c55e7ce893ba0511074c4ec930d9f3bcb9615d8e9d5.txt +950 -0
  272. package/evals/fs5-artifact-archive/sha256/ce4ed1b4a033f2a8cb4632d1336b0867edb3454ce1380f0642c4055149e6ac59.txt +784 -0
  273. package/evals/fs5-artifact-archive/sha256/db97f444db8ba604512daf0aa26b3fe1e2a120ace2b21d4730db5b18aa0c528f.txt +950 -0
  274. package/evals/fs5-causal-arm.v1.json +9 -5
  275. package/evals/fs5-pilot-protocol.v1.json +1 -1
  276. package/evals/fs5-pilot-protocol.v4.json +4 -4
  277. package/evals/fs5-pilot-protocol.v5.json +6 -5
  278. package/evals/harness-next/development-corpus.mjs +106 -0
  279. package/evals/harness-next/resource-budget-probe.mjs +38 -0
  280. package/evals/harness-next/run-calibration.mjs +83 -0
  281. package/evals/harness-next/run-resource-probe.mjs +55 -0
  282. package/evals/harness-next/selected-development-corpus.mjs +27 -0
  283. package/evals/harness-next.v1.json +51 -0
  284. package/evals/long-horizon-v1/README.md +19 -0
  285. package/evals/long-horizon-v1/runner.mjs +116 -48
  286. package/evals/long-horizon-v1/worker.mjs +77 -30
  287. package/evals/private-holdout-v1/CURRENT_BOUNDARY.md +53 -0
  288. package/evals/private-holdout-v1/README.md +5 -2
  289. package/evals/private-holdout-v1/public-exposure.v2.json +273 -0
  290. package/package.json +9 -4
  291. package/packages/piagent-core/README.md +2 -2
  292. package/packages/piagent-core/benchmark/benchmark-all-attempt-efficiency.js +55 -0
  293. package/packages/piagent-core/benchmark/benchmark-artifact-binding.js +49 -0
  294. package/packages/piagent-core/benchmark/benchmark-bootstrap.js +265 -14
  295. package/packages/piagent-core/benchmark/benchmark-budget-governor.js +271 -0
  296. package/packages/piagent-core/benchmark/benchmark-campaign.js +592 -0
  297. package/packages/piagent-core/benchmark/benchmark-candidate.js +8 -3
  298. package/packages/piagent-core/benchmark/benchmark-checkpoint.js +67 -0
  299. package/packages/piagent-core/benchmark/benchmark-claim-restrictions.js +269 -2
  300. package/packages/piagent-core/benchmark/benchmark-cli.js +120 -3
  301. package/packages/piagent-core/benchmark/benchmark-codex-events.js +235 -0
  302. package/packages/piagent-core/benchmark/benchmark-codex-outcome.js +20 -0
  303. package/packages/piagent-core/benchmark/benchmark-codex-relative-efficiency.js +2 -1
  304. package/packages/piagent-core/benchmark/benchmark-codex-rollout.js +521 -0
  305. package/packages/piagent-core/benchmark/benchmark-codex.js +104 -8
  306. package/packages/piagent-core/benchmark/benchmark-comparison.js +284 -1
  307. package/packages/piagent-core/benchmark/benchmark-core.js +107 -107
  308. package/packages/piagent-core/benchmark/benchmark-diagnostic-source-evidence.js +40 -0
  309. package/packages/piagent-core/benchmark/benchmark-diagnostic-treatment.js +104 -0
  310. package/packages/piagent-core/benchmark/benchmark-evaluator-v3.js +226 -0
  311. package/packages/piagent-core/benchmark/benchmark-execution-guard.js +23 -1
  312. package/packages/piagent-core/benchmark/benchmark-forensics.js +63 -50
  313. package/packages/piagent-core/benchmark/benchmark-goal-assessment.js +193 -0
  314. package/packages/piagent-core/benchmark/benchmark-goal-report.js +87 -0
  315. package/packages/piagent-core/benchmark/benchmark-independent-verification-observation.js +64 -0
  316. package/packages/piagent-core/benchmark/benchmark-matrix-summary.js +141 -0
  317. package/packages/piagent-core/benchmark/benchmark-matrix.js +1 -0
  318. package/packages/piagent-core/benchmark/benchmark-normalized-cost.js +62 -0
  319. package/packages/piagent-core/benchmark/benchmark-pi-home.js +1 -0
  320. package/packages/piagent-core/benchmark/benchmark-preflight.js +69 -8
  321. package/packages/piagent-core/benchmark/benchmark-process.js +23 -9
  322. package/packages/piagent-core/benchmark/benchmark-production-completion.js +84 -0
  323. package/packages/piagent-core/benchmark/benchmark-production-stage-validation.js +209 -0
  324. package/packages/piagent-core/benchmark/benchmark-provider-free-evidence.js +162 -45
  325. package/packages/piagent-core/benchmark/benchmark-provider-free-owner.js +24 -0
  326. package/packages/piagent-core/benchmark/benchmark-provider-wire.js +378 -0
  327. package/packages/piagent-core/benchmark/benchmark-record-validation.d.ts +2 -0
  328. package/packages/piagent-core/benchmark/benchmark-record-validation.js +269 -3
  329. package/packages/piagent-core/benchmark/benchmark-release-claim-controls.js +132 -0
  330. package/packages/piagent-core/benchmark/benchmark-report.js +79 -4
  331. package/packages/piagent-core/benchmark/benchmark-resume-recovery.js +280 -10
  332. package/packages/piagent-core/benchmark/benchmark-runner-policy.js +88 -1
  333. package/packages/piagent-core/benchmark/benchmark-runtime-identity.js +50 -1
  334. package/packages/piagent-core/benchmark/benchmark-runtime.js +102 -10
  335. package/packages/piagent-core/benchmark/benchmark-safety-evidence.js +74 -0
  336. package/packages/piagent-core/benchmark/benchmark-service-tier.js +189 -0
  337. package/packages/piagent-core/benchmark/benchmark-stage-diagnostic.js +144 -128
  338. package/packages/piagent-core/benchmark/benchmark-suite-identity.js +264 -1
  339. package/packages/piagent-core/benchmark/benchmark-suite-runtime.js +4 -0
  340. package/packages/piagent-core/benchmark/benchmark-suite.js +211 -4
  341. package/packages/piagent-core/benchmark/benchmark-summary-support.js +30 -2
  342. package/packages/piagent-core/benchmark/benchmark-timing-contract.js +189 -0
  343. package/packages/piagent-core/benchmark/benchmark-timing-diagnostics.js +110 -139
  344. package/packages/piagent-core/benchmark/benchmark-transport-evidence.js +203 -0
  345. package/packages/piagent-core/benchmark/benchmark-transport-observation.js +147 -0
  346. package/packages/piagent-core/benchmark/benchmark-tree-identity.js +2 -1
  347. package/packages/piagent-core/benchmark/benchmark-usage.js +395 -33
  348. package/packages/piagent-core/benchmark/benchmark-workflow.js +136 -38
  349. package/packages/piagent-core/benchmark/fs5-pilot-protocol.js +21 -2
  350. package/packages/piagent-core/capabilities/runtime-integrity.js +3 -0
  351. package/packages/piagent-core/extensions/acceptance-api-baseline.js +24 -0
  352. package/packages/piagent-core/extensions/acceptance-assessment.js +153 -0
  353. package/packages/piagent-core/extensions/acceptance-authenticated-admission.d.ts +41 -0
  354. package/packages/piagent-core/extensions/acceptance-authenticated-admission.js +120 -0
  355. package/packages/piagent-core/extensions/acceptance-behavior-proof.js +264 -70
  356. package/packages/piagent-core/extensions/acceptance-boundary-binding.js +31 -0
  357. package/packages/piagent-core/extensions/acceptance-boundary-guidance.js +214 -0
  358. package/packages/piagent-core/extensions/acceptance-callable-scanner.js +244 -0
  359. package/packages/piagent-core/extensions/acceptance-clause-group.js +45 -0
  360. package/packages/piagent-core/extensions/acceptance-composite-contract.js +334 -0
  361. package/packages/piagent-core/extensions/acceptance-contract-conjunction.js +78 -0
  362. package/packages/piagent-core/extensions/acceptance-contract-selection.js +161 -0
  363. package/packages/piagent-core/extensions/acceptance-contract-semantics.js +211 -211
  364. package/packages/piagent-core/extensions/acceptance-declared-api.js +126 -0
  365. package/packages/piagent-core/extensions/acceptance-diagnostic-policy.ts +14 -0
  366. package/packages/piagent-core/extensions/acceptance-document-content.js +73 -0
  367. package/packages/piagent-core/extensions/acceptance-durable-execution.d.ts +59 -0
  368. package/packages/piagent-core/extensions/acceptance-durable-execution.js +139 -0
  369. package/packages/piagent-core/extensions/acceptance-error-classes.js +1 -1
  370. package/packages/piagent-core/extensions/acceptance-evidence-store.js +223 -0
  371. package/packages/piagent-core/extensions/acceptance-executable-evidence.js +490 -88
  372. package/packages/piagent-core/extensions/acceptance-execution-diagnostics.js +34 -0
  373. package/packages/piagent-core/extensions/acceptance-execution-snapshot.js +174 -0
  374. package/packages/piagent-core/extensions/acceptance-executor/.dockerignore +21 -0
  375. package/packages/piagent-core/extensions/acceptance-executor/Dockerfile +5 -0
  376. package/packages/piagent-core/extensions/acceptance-executor/README.md +103 -0
  377. package/packages/piagent-core/extensions/acceptance-executor/budget.mjs +54 -0
  378. package/packages/piagent-core/extensions/acceptance-executor/callback-intrinsics.mjs +126 -0
  379. package/packages/piagent-core/extensions/acceptance-executor/capabilities.mjs +127 -0
  380. package/packages/piagent-core/extensions/acceptance-executor/guest.mjs +285 -0
  381. package/packages/piagent-core/extensions/acceptance-executor/intrinsics.mjs +133 -0
  382. package/packages/piagent-core/extensions/acceptance-executor/invocation.mjs +39 -0
  383. package/packages/piagent-core/extensions/acceptance-executor/jobs.mjs +29 -0
  384. package/packages/piagent-core/extensions/acceptance-executor/module-graph.mjs +70 -0
  385. package/packages/piagent-core/extensions/acceptance-executor/node-profile.mjs +398 -0
  386. package/packages/piagent-core/extensions/acceptance-executor/package-lock.json +40 -0
  387. package/packages/piagent-core/extensions/acceptance-executor/package.json +10 -0
  388. package/packages/piagent-core/extensions/acceptance-executor/protocol.mjs +248 -0
  389. package/packages/piagent-core/extensions/acceptance-executor/reference-identity.mjs +61 -0
  390. package/packages/piagent-core/extensions/acceptance-executor/references.mjs +14 -0
  391. package/packages/piagent-core/extensions/acceptance-executor/structured-clone.mjs +53 -0
  392. package/packages/piagent-core/extensions/acceptance-executor/values.mjs +97 -0
  393. package/packages/piagent-core/extensions/acceptance-executor/worker.mjs +75 -0
  394. package/packages/piagent-core/extensions/acceptance-expiry-calendar-proof.js +162 -0
  395. package/packages/piagent-core/extensions/acceptance-expression-parser.js +155 -0
  396. package/packages/piagent-core/extensions/acceptance-focused-verification.js +40 -0
  397. package/packages/piagent-core/extensions/acceptance-host-configuration.js +337 -0
  398. package/packages/piagent-core/extensions/acceptance-identifier-criteria.js +25 -0
  399. package/packages/piagent-core/extensions/acceptance-independent-contract.js +209 -0
  400. package/packages/piagent-core/extensions/acceptance-independent-registry.js +106 -0
  401. package/packages/piagent-core/extensions/acceptance-input-provenance.js +40 -0
  402. package/packages/piagent-core/extensions/acceptance-integer-domains.js +322 -0
  403. package/packages/piagent-core/extensions/acceptance-invalid-input-receipt.js +20 -0
  404. package/packages/piagent-core/extensions/acceptance-invalid-partitions.js +26 -0
  405. package/packages/piagent-core/extensions/acceptance-invalid-sentinel-proof.js +477 -0
  406. package/packages/piagent-core/extensions/acceptance-isolated-executor.js +254 -0
  407. package/packages/piagent-core/extensions/acceptance-lexical-sentinels.js +130 -0
  408. package/packages/piagent-core/extensions/acceptance-literal-dataflow.js +735 -0
  409. package/packages/piagent-core/extensions/acceptance-local-binding.js +106 -0
  410. package/packages/piagent-core/extensions/acceptance-normalizer-evidence.js +719 -0
  411. package/packages/piagent-core/extensions/acceptance-obligations.js +75 -0
  412. package/packages/piagent-core/extensions/acceptance-parameter-contract.js +756 -0
  413. package/packages/piagent-core/extensions/acceptance-precedence-contract.js +572 -0
  414. package/packages/piagent-core/extensions/acceptance-proof-capability.js +26 -0
  415. package/packages/piagent-core/extensions/acceptance-receipt.js +139 -152
  416. package/packages/piagent-core/extensions/acceptance-result-contract-evidence.js +159 -0
  417. package/packages/piagent-core/extensions/acceptance-source-origin.js +214 -0
  418. package/packages/piagent-core/extensions/acceptance-state-machine-evidence.js +64 -8
  419. package/packages/piagent-core/extensions/acceptance-tagged-event-evidence.js +685 -0
  420. package/packages/piagent-core/extensions/acceptance-temporal-contract.js +756 -0
  421. package/packages/piagent-core/extensions/acceptance-temporal-dataflow-proof.js +618 -0
  422. package/packages/piagent-core/extensions/acceptance-test-binding-evidence.js +20 -2
  423. package/packages/piagent-core/extensions/acceptance-test-bindings.js +86 -0
  424. package/packages/piagent-core/extensions/acceptance-tuple-shapes.js +12 -0
  425. package/packages/piagent-core/extensions/context-engine.js +11 -6
  426. package/packages/piagent-core/extensions/criterion-context-pack.js +96 -4
  427. package/packages/piagent-core/extensions/failure-types.ts +2 -2
  428. package/packages/piagent-core/extensions/guard-types.ts +5 -1
  429. package/packages/piagent-core/extensions/piagent-guard.ts +197 -155
  430. package/packages/piagent-core/extensions/readonly-inline-inspection.ts +378 -0
  431. package/packages/piagent-core/extensions/recovery-decision-validation.ts +92 -0
  432. package/packages/piagent-core/extensions/shell-write-targets.js +15 -14
  433. package/packages/piagent-core/extensions/task-contract-view.js +4 -4
  434. package/packages/piagent-core/extensions/task-digest-migration.js +2 -2
  435. package/packages/piagent-core/extensions/task-journal.js +48 -3
  436. package/packages/piagent-core/extensions/task-runtime-audit.js +8 -2
  437. package/packages/piagent-core/extensions/task-state.js +74 -38
  438. package/packages/piagent-core/extensions/task-terminal-disposition.js +10 -0
  439. package/packages/piagent-core/extensions/trajectory-contract.ts +5 -0
  440. package/packages/piagent-core/extensions/verification-intelligence.js +60 -8
  441. package/packages/piagent-core/extensions/workflow-catalog.ts +98 -0
  442. package/packages/piagent-core/extensions/workspace-revision.js +48 -0
  443. package/packages/piagent-core/extensions/workspace-verification-snapshot.js +13 -0
  444. package/packages/piagent-core/package.json +3 -3
  445. package/packages/piagent-core/policies/base-policy.json +1 -0
  446. package/packages/piagent-core/runtime/context/adaptive-planner.ts +7 -3
  447. package/packages/piagent-core/runtime/hooks/agent-start-hook.ts +60 -59
  448. package/packages/piagent-core/runtime/hooks/agent-start-types.ts +48 -0
  449. package/packages/piagent-core/runtime/hooks/completion-hook.ts +76 -83
  450. package/packages/piagent-core/runtime/hooks/input-hook.ts +92 -7
  451. package/packages/piagent-core/runtime/hooks/protected-refusal-completion.ts +86 -0
  452. package/packages/piagent-core/runtime/hooks/session-hooks.ts +5 -2
  453. package/packages/piagent-core/runtime/hooks/session-start-hook.ts +50 -18
  454. package/packages/piagent-core/runtime/hooks/tool-result-hook.ts +53 -20
  455. package/packages/piagent-core/runtime/hooks/tool-result-metadata.ts +9 -0
  456. package/packages/piagent-core/runtime/hooks/tool-result-navigation.ts +36 -0
  457. package/packages/piagent-core/runtime/hooks/tool-result-retrieval.ts +42 -0
  458. package/packages/piagent-core/runtime/input/chat-images.ts +1 -1
  459. package/packages/piagent-core/runtime/inspection/activity-event-adapter.ts +1 -1
  460. package/packages/piagent-core/runtime/inspection/same-process-bridge-proof.ts +1 -1
  461. package/packages/piagent-core/runtime/inspection/task-handoff-history.ts +2 -2
  462. package/packages/piagent-core/runtime/inspection/tool-failure-classification.ts +49 -8
  463. package/packages/piagent-core/runtime/inspection/webui-snapshot.ts +61 -15
  464. package/packages/piagent-core/runtime/inspection/workspace-file-reader.ts +2 -132
  465. package/packages/piagent-core/runtime/model/model-route-policy.ts +33 -13
  466. package/packages/piagent-core/runtime/model/model-route-types.ts +10 -6
  467. package/packages/piagent-core/runtime/model/provider-wire-fingerprint.ts +20 -0
  468. package/packages/piagent-core/runtime/model/service-tier-runtime.ts +242 -0
  469. package/packages/piagent-core/runtime/policy/source-worktree-transaction.ts +75 -14
  470. package/packages/piagent-core/runtime/product/activity-inspector.ts +6 -3
  471. package/packages/piagent-core/runtime/product/edit-verifier-timing.ts +26 -0
  472. package/packages/piagent-core/runtime/product/efficiency-metrics.ts +12 -7
  473. package/packages/piagent-core/runtime/product/operator-projections.ts +8 -3
  474. package/packages/piagent-core/runtime/product/task-usage-hooks.ts +78 -0
  475. package/packages/piagent-core/runtime/product/task-usage.ts +104 -0
  476. package/packages/piagent-core/runtime/quality/protected-refusal-handoff.ts +35 -0
  477. package/packages/piagent-core/runtime/recovery/acceptance-recovery-guidance.ts +21 -0
  478. package/packages/piagent-core/runtime/recovery/continuation-budget.ts +11 -2
  479. package/packages/piagent-core/runtime/recovery/diagnostic-delivery.ts +61 -0
  480. package/packages/piagent-core/runtime/recovery/handoff-projection.ts +192 -57
  481. package/packages/piagent-core/runtime/recovery/handoff-verifier-binding.ts +24 -0
  482. package/packages/piagent-core/runtime/recovery/independent-verification-recovery.ts +79 -0
  483. package/packages/piagent-core/runtime/recovery/recovery-policy.ts +27 -39
  484. package/packages/piagent-core/runtime/recovery/resume-state.ts +8 -5
  485. package/packages/piagent-core/runtime/registration/activity-inspector-command.ts +2 -1
  486. package/packages/piagent-core/runtime/registration/context-commands.ts +12 -8
  487. package/packages/piagent-core/runtime/registration/operator-catalogs.ts +4 -9
  488. package/packages/piagent-core/runtime/registration/policy-tools.ts +5 -3
  489. package/packages/piagent-core/runtime/registration/session-commands.ts +9 -7
  490. package/packages/piagent-core/runtime/registration/session-wait-tool.ts +54 -0
  491. package/packages/piagent-core/runtime/registration/task-completion-tools.ts +27 -11
  492. package/packages/piagent-core/runtime/registration/task-start-conditional-mutation.ts +45 -0
  493. package/packages/piagent-core/runtime/registration/task-start-guidance.ts +5 -2
  494. package/packages/piagent-core/runtime/registration/task-start-tool.ts +23 -23
  495. package/packages/piagent-core/runtime/registration/workflow-commands.ts +64 -93
  496. package/packages/piagent-core/runtime/session/completion-signals.ts +23 -0
  497. package/packages/piagent-core/runtime/session/message-signals.ts +6 -22
  498. package/packages/piagent-core/runtime/session/retrieval-evidence-runtime.ts +188 -0
  499. package/packages/piagent-core/runtime/session/runtime-state.ts +29 -35
  500. package/packages/piagent-core/runtime/session/system-prompt.ts +3 -3
  501. package/packages/piagent-core/runtime/session/uncertain-send-continuation.ts +231 -0
  502. package/packages/piagent-core/runtime/session/usage.ts +4 -3
  503. package/packages/piagent-core/runtime/tools/apply-patch-tool.ts +6 -6
  504. package/packages/piagent-core/runtime/tools/phase-tool-runtime.ts +1 -1
  505. package/packages/piagent-core/runtime/tools/phase-tools.ts +3 -2
  506. package/packages/piagent-core/runtime/tools/session-wait.ts +42 -0
  507. package/packages/piagent-core/runtime/tools/tool-groups.ts +10 -3
  508. package/packages/piagent-core/runtime/trajectory/trajectory-runtime.ts +192 -5
  509. package/packages/piagent-core/runtime/trajectory/trajectory-types.ts +3 -2
  510. package/packages/piagent-core/runtime/verification/acceptance-api-baseline.js +488 -0
  511. package/packages/piagent-core/runtime/verification/completion-preparation.ts +22 -0
  512. package/packages/piagent-core/runtime/verification/composite-completion-finalizer.ts +105 -0
  513. package/packages/piagent-core/runtime/verification/composite-journal-anchor.ts +181 -0
  514. package/packages/piagent-core/runtime/verification/composite-runtime-binding.ts +76 -0
  515. package/packages/piagent-core/runtime/verification/composite-scoped-mediation.ts +318 -0
  516. package/packages/piagent-core/runtime/verification/composite-session-persistence.ts +175 -0
  517. package/packages/piagent-core/runtime/verification/composite-task-publication.ts +273 -0
  518. package/packages/piagent-core/runtime/verification/exact-verifier-reuse.ts +11 -11
  519. package/packages/piagent-core/runtime/verification/host-project-verification.ts +71 -0
  520. package/packages/piagent-core/runtime/verification/independent-acceptance-runtime.ts +500 -0
  521. package/packages/piagent-core/runtime/verification/runtime-assurance-facts.ts +500 -0
  522. package/packages/piagent-core/runtime/verification/runtime-contract-runner.ts +107 -0
  523. package/packages/piagent-core/runtime/verification/shell-verification-snapshots.ts +56 -0
  524. package/packages/piagent-core/runtime/workflows/change-clarification.ts +61 -0
  525. package/packages/piagent-core/runtime/workflows/input-routing.ts +21 -14
  526. package/packages/piagent-core/runtime/workflows/runtime-intake-compaction.ts +44 -7
  527. package/packages/piagent-core/runtime/workflows/task-followup-policy.ts +163 -0
  528. package/packages/piagent-core/runtime/workflows/task-intake.ts +221 -242
  529. package/packages/piagent-core/runtime/workflows/task-repair-intent.ts +67 -0
  530. package/packages/piagent-core/runtime/workflows/task-scope-resolution.ts +83 -0
  531. package/packages/piagent-core/runtime/workflows/webui-runtime-command.ts +5 -2
  532. package/packages/piagent-core/runtime/workflows/webui-workflow.ts +39 -32
  533. package/packages/piagent-core/runtime/workflows/workflow-follow-up.ts +33 -0
  534. package/packages/piagent-core/security/workspace-file-reader.ts +132 -0
  535. package/packages/piagent-webui/dist/client/assets/{MarkdownMessage-B4XehTCU.js → MarkdownMessage-DMU7Xe_O.js} +1 -1
  536. package/packages/piagent-webui/dist/client/assets/index-Cui9AAV_.js +176 -0
  537. package/packages/piagent-webui/dist/client/assets/{index-BV-_03yl.css → index-DVahUVWy.css} +1 -1
  538. package/packages/piagent-webui/dist/client/index.html +2 -2
  539. package/packages/piagent-webui/extension/dispatch-user-entry.ts +13 -0
  540. package/packages/piagent-webui/extension/piagent-webui.ts +10 -2
  541. package/packages/piagent-webui/extension/review-controller.ts +29 -6
  542. package/packages/piagent-webui/extension/same-session-bridge.ts +6 -7
  543. package/packages/piagent-webui/extension/session-stream-adapter.ts +60 -11
  544. package/packages/piagent-webui/extension/source-mutation-controller.ts +29 -3
  545. package/packages/piagent-webui/extension/source-open-controller.ts +29 -7
  546. package/packages/piagent-webui/extension/source-revert-controller.ts +26 -3
  547. package/packages/piagent-webui/gateway/gateway-events.ts +22 -5
  548. package/packages/piagent-webui/gateway/gateway-service.ts +7 -2
  549. package/packages/piagent-webui/gateway/gateway-session-stream.ts +141 -19
  550. package/packages/piagent-webui/gateway/rpc-ui-context.ts +34 -9
  551. package/packages/piagent-webui/gateway/runtime-command-controller.ts +46 -6
  552. package/packages/piagent-webui/gateway/runtime-session-controls.ts +17 -2
  553. package/packages/piagent-webui/gateway/session-catalog.ts +9 -3
  554. package/packages/piagent-webui/gateway/session-command-controller.ts +29 -9
  555. package/packages/piagent-webui/gateway/session-effective-options.ts +2 -9
  556. package/packages/piagent-webui/gateway/session-inspection-registry.ts +14 -6
  557. package/packages/piagent-webui/gateway/session-operation-settlement.ts +28 -0
  558. package/packages/piagent-webui/gateway/session-prompt-dispatch.ts +37 -0
  559. package/packages/piagent-webui/gateway/session-runtime-close.ts +36 -0
  560. package/packages/piagent-webui/gateway/session-runtime-factory.ts +183 -6
  561. package/packages/piagent-webui/gateway/session-runtime-ownership.ts +48 -0
  562. package/packages/piagent-webui/gateway/session-runtime-state.ts +24 -0
  563. package/packages/piagent-webui/gateway/session-runtime-supervisor.ts +114 -114
  564. package/packages/piagent-webui/server/core-inspection-provider.ts +73 -14
  565. package/packages/piagent-webui/server/loopback-server.ts +9 -7
  566. package/packages/piagent-webui/server/terminal-delivery-receipt.ts +144 -0
  567. package/packages/piagent-webui/server/transcript-projection.ts +65 -12
  568. package/packages/piagent-webui/shared/message-correlation.ts +25 -0
  569. package/schemas/approved-host-contracts.schema.json +973 -0
  570. package/schemas/benchmark-attempt-outcome.schema.json +303 -0
  571. package/schemas/benchmark-independent-verification-plan.schema.json +34 -0
  572. package/schemas/composite-criterion.schema.json +788 -0
  573. package/schemas/contract-family-library.schema.json +28 -0
  574. package/schemas/contract-selection-recipe.schema.json +31 -0
  575. package/schemas/failure-evidence.schema.json +2 -2
  576. package/schemas/helper-request.schema.json +16 -4
  577. package/schemas/host-contract-plan.schema.json +25 -0
  578. package/schemas/piagent-webui/gateway-protocol-v1.schema.json +16 -2
  579. package/schemas/piagent-webui/runtime-command-v1.schema.json +26 -3
  580. package/schemas/piagent-webui/runtime-event-v2.schema.json +32 -1
  581. package/schemas/piagent-webui/session-live-state-v1.schema.json +2 -0
  582. package/schemas/piagent-webui/snapshot-v1.schema.json +3 -0
  583. package/schemas/piagent-webui/source-change-v1.schema.json +12 -0
  584. package/schemas/piagent-webui/transcript-v1.schema.json +2 -1
  585. package/schemas/public-contracts/codex-mcp-metadata-v1.schema.json +206 -0
  586. package/schemas/public-contracts/codex-mcp-metadata-v2.schema.json +228 -0
  587. package/schemas/public-contracts/codex-mcp-metadata-v3.schema.json +233 -0
  588. package/schemas/public-contracts/revocation-v1.schema.json +87 -0
  589. package/schemas/public-contracts/subscription-contract-v1.schema.json +76 -0
  590. package/schemas/scoped-project-verification-receipt-v2.schema.json +83 -0
  591. package/schemas/scoped-project-verification-receipt-v3.schema.json +295 -0
  592. package/schemas/scoped-verification-receipt-v1.schema.json +76 -0
  593. package/schemas/task-contract.schema.json +30 -0
  594. package/scripts/approve-independent-verification.mjs +57 -0
  595. package/scripts/benchmark-arm-observer.mjs +320 -0
  596. package/scripts/benchmark-budget-ipc.mjs +34 -0
  597. package/scripts/benchmark-budget-launcher.mjs +91 -0
  598. package/scripts/benchmark-budget-processes.mjs +133 -0
  599. package/scripts/benchmark-budget-publication.mjs +228 -0
  600. package/scripts/benchmark-budget-runtime.mjs +136 -0
  601. package/scripts/benchmark-candidate-ablation.mjs +265 -0
  602. package/scripts/benchmark-codex-journey.mjs +406 -0
  603. package/scripts/benchmark-independent-verification.mjs +628 -0
  604. package/scripts/benchmark-journey-outcome.mjs +92 -0
  605. package/scripts/benchmark-production-v3-human-review.mjs +192 -0
  606. package/scripts/benchmark-public-input-catalog.mjs +158 -0
  607. package/scripts/benchmark-registered-plan-author.mjs +355 -0
  608. package/scripts/benchmark-registered-plan-recipe-support.mjs +85 -0
  609. package/scripts/benchmark-registered-plan-recipes-backend.mjs +165 -0
  610. package/scripts/benchmark-registered-plan-recipes-data.mjs +164 -0
  611. package/scripts/benchmark-registered-plan-recipes-platform.mjs +165 -0
  612. package/scripts/benchmark-runner-completion.mjs +133 -0
  613. package/scripts/benchmark-runner-configuration.mjs +159 -0
  614. package/scripts/benchmark-runner-core.mjs +217 -388
  615. package/scripts/benchmark-runner-finalization.mjs +140 -27
  616. package/scripts/benchmark-runner-provider-boundary.mjs +44 -0
  617. package/scripts/benchmark-runner-schedule.mjs +256 -0
  618. package/scripts/benchmark-runner-support.mjs +136 -4
  619. package/scripts/benchmark-runner.mjs +95 -18
  620. package/scripts/benchmark-scoped-broker-custody.mjs +483 -0
  621. package/scripts/benchmark-scoped-docs-verifier.mjs +203 -0
  622. package/scripts/benchmark-scoped-frozen-qualification.mjs +676 -0
  623. package/scripts/benchmark-scoped-pi-router.mjs +196 -0
  624. package/scripts/benchmark-scoped-project-verification-receipt.mjs +49 -0
  625. package/scripts/benchmark-scoped-project-verifier.mjs +461 -0
  626. package/scripts/benchmark-scoped-session-custody.mjs +599 -0
  627. package/scripts/benchmark-scoped-session-factory.mjs +342 -0
  628. package/scripts/benchmark-scoped-tool-broker.mjs +523 -0
  629. package/scripts/benchmark-scoped-verification-supervisor.mjs +773 -0
  630. package/scripts/benchmark-session-evaluator.mjs +169 -0
  631. package/scripts/benchmark-session-provider-boundary.mjs +62 -0
  632. package/scripts/benchmark-session-usage.mjs +28 -0
  633. package/scripts/benchmark-session.mjs +343 -50
  634. package/scripts/benchmark-webui-journey.mjs +678 -0
  635. package/scripts/check-public-wording.mjs +46 -0
  636. package/scripts/configure-model-scope.sh +6 -2
  637. package/scripts/fs4-readiness-evaluation.mjs +7 -1
  638. package/scripts/install-global.sh +2 -2
  639. package/scripts/model-route-evaluation-core.ts +1 -0
  640. package/scripts/phase-tools-evaluation.mjs +1 -0
  641. package/scripts/pi-auto.sh +7 -1
  642. package/scripts/pi-model-route.mjs +1 -1
  643. package/scripts/pi-usage-history.mjs +201 -11
  644. package/scripts/piagent-cli.mjs +8 -0
  645. package/scripts/private-holdout-readiness.mjs +7 -1
  646. package/scripts/public-evaluation-exposure.mjs +140 -0
  647. package/scripts/select-independent-verification.mjs +62 -0
  648. package/scripts/setup.sh +2 -2
  649. package/scripts/typescript-loader.mjs +135 -1
  650. package/scripts/update-global.mjs +6 -7
  651. package/scripts/verify-local.sh +37 -56
  652. package/scripts/verify-release-identity.mjs +5 -3
  653. package/templates/global/settings.json +5 -1
  654. package/packages/piagent-webui/dist/client/assets/index-CgOEyRPG.js +0 -176
@@ -41,6 +41,9 @@ pi install /path/to/piagent
41
41
 
42
42
  ## Versioning
43
43
 
44
+ - `1.8.0`: Pi 0.87.1, thêm GPT-6 Astra/Sol/Luna vào catalog, WebUI và tier routing opt-in. Không chạy lại 108 phiên hay claim hiệu suất GPT-6.
45
+ - `1.7.1`: Pi 0.86.1, chờ trong phiên đang mở, sửa context/usage và phục hồi; kết quả chạy lại 14 phiên lỗi được giữ riêng, không claim một full108 mới hay tiết kiệm token tổng thể.
46
+ - `1.7.0`: chỉ có annotated tag; macOS tag CI chạm giới hạn 40 phút hai lần nên npm và GitHub Release không được publish. Được thay bằng `1.7.1`.
44
47
  - `0.1.x`: local/internal pilot.
45
48
  - `0.2.x`: có guard ổn định và docs team.
46
49
  - `1.0.2`: đủ security review, MCP registry, adapter schema versioned.
@@ -63,6 +63,18 @@ và stress projection ở ba cỡ repository. Receipt của read-only control ph
63
63
  `modelCallObserved=false`; nếu runtime vô tình mở model turn, gate trả
64
64
  `effect-unknown` thay vì claim 0 token.
65
65
 
66
+ Terminal settlement của Gateway mô tả trạng thái vận chuyển/UI, không tự suy
67
+ diễn ý nghĩa câu trả lời. Safety-refusal phải kết thúc `completed` với một
68
+ response bền vững để UI hiển thị; `blocked` vẫn dành cho completion gate/task
69
+ chưa hoàn tất và không được tính như refusal. Outcome `refused` của benchmark
70
+ được hard-gate bằng fixture không đổi, scope sạch, không lộ secret và hidden
71
+ grade; runner không parse keyword trong lời model để đoán refusal.
72
+
73
+ Token và subagent accounting của WebUI chỉ đọc Pi session JSONL dưới runtime
74
+ `sessions/`. Gateway admission/index/lease journals không phải provider session
75
+ và không được phép làm tăng session count; thiếu hoặc sai session header vẫn
76
+ fail-closed.
77
+
66
78
  Khi cần đo solver logic sâu theo baseline lịch sử Luna/medium với `codex-cli`:
67
79
 
68
80
  ```bash
@@ -124,8 +136,114 @@ mỗi family và 2 surface, tổng cộng 108 model session. Bộ này dùng đ
124
136
  regression của harness/model policy, không tự chứng minh generalization hoặc độ
125
137
  ổn định production.
126
138
 
127
- Contract hiện tại chỉ xét efficiency claim ở **S108**, sau khi có đủ 18 family ×
128
- 3 repeat × 2 surface. Claim phải qua hai trục độc lập. Primary fresh-token
139
+ ### Production-v2: Luna medium Fast và net-35 all-in
140
+
141
+ Track mới chạy bằng `npm run benchmark:production-v2 -- --dry-run` rồi theo các
142
+ mốc S12/S18/S54/S108. Ma trận vẫn là 108 session: 9 task family × 3 structural
143
+ variant × 2 repeat × 2 surface. Suite khóa cùng
144
+ `openai-codex/gpt-5.6-luna`, `medium` và Fast mode cho cả hai surface. Ở wire
145
+ OpenAI, Fast được ánh xạ thành `service_tier=priority`; literal `fast` không phải
146
+ giá trị hợp lệ của Responses API và benchmark phải fail closed nếu quan sát thấy nó.
147
+ Piagent lẫn controlled `codex-cli`; resume/replay, spend-control và configuration
148
+ digest đều giữ nguyên ba giá trị này. Cổng tổng hợp là **Fast execution
149
+ configuration parity**: Piagent phải có outbound telemetry ánh xạ ý định Fast
150
+ sang wire tier `priority` đầy đủ cho mọi provider start/wire event. Surface
151
+ controlled `codex-cli`
152
+ phải có receipt của argv thực tế cho lượt đầu, gồm `--strict-config`,
153
+ `service_tier="fast"`, feature `fast_mode`, executable identity, isolated
154
+ `CODEX_HOME`, stdout `thread.started`, exact usage và rollout
155
+ `session_meta`/`turn_context` khớp thread, workspace, model, thinking. Mỗi lượt
156
+ resume tiếp theo phải có cùng invocation receipt và đúng một effective
157
+ `thread_settings_applied` tier `priority`; tổng coverage bắt buộc là một initial
158
+ receipt cộng `providerStartedAttempts - 1` resume-settings event. Thiếu hoặc
159
+ mâu thuẫn một bằng chứng, hay thấy `default`, đều làm claim fail closed. Rollout
160
+ Codex không phát `thread_settings_applied` cho initial `exec`, vì vậy benchmark
161
+ không được nhầm một session chỉ có một lượt thành Fast failure, cũng không được
162
+ dùng command binding đơn lẻ nếu thiếu các identity/outcome binding nói trên.
163
+
164
+ Hai cổng token độc lập cùng phải pass ở S108:
165
+
166
+ - cận trên 95% của primary fixed-workload family ratio vẫn `<= 0.60`;
167
+ - pooled fresh token của **mọi accepted attempt cộng mọi exact failed/retry
168
+ attempt** phải `<= 0.65` so với `codex-cli`, tương ứng net reduction ít nhất
169
+ 35%. Unknown attempt usage không được trừ hao hay bỏ khỏi mẫu; nó làm gate
170
+ fail-closed.
171
+
172
+ Chuỗi chạy chính thức của track này là S0 rồi mở đúng từng cửa sổ mới
173
+ `12/6/36/54`; không chạy lại session đã có và chỉ S108 mới có quyền claim:
174
+
175
+ ```bash
176
+ npm run benchmark:production-v2 -- --preflight-only
177
+ npm run benchmark:production-v2 -- --max-sessions 12 --stop-after-failed-pair --output /path/to/report-dir --yes
178
+ npm run benchmark:production-v2 -- --resume /path/to/report-dir --max-sessions 6 --yes
179
+ npm run benchmark:production-v2 -- --resume /path/to/report-dir --max-sessions 36 --yes
180
+ npm run benchmark:production-v2 -- --resume /path/to/report-dir --max-sessions 54 --yes
181
+ ```
182
+
183
+ S0 dùng `providerFreeConfigurationDigest` riêng: nó vẫn bind source/tree,
184
+ suite, model, thinking, Fast tier, seed/order, runtime, timeout và retry policy,
185
+ nhưng loại các trường chỉ thuộc invocation như private credential-vault ID,
186
+ output, resume và kích thước stage window. Vì vậy S12/S18/S54/S108 reuse nguyên
187
+ receipt S0; thay đổi semantic, source hoặc lane bytes vẫn làm cache miss
188
+ fail-closed. Measurement `configurationDigest` đầy đủ vẫn giữ private vault ID
189
+ để khóa ledger, campaign và resume lineage, nên tối ưu cache này không nới
190
+ quyền hay trộn hai paid run.
191
+
192
+ Khi operator muốn **đo đủ 108 phiên trước rồi mới sửa**, có thể chủ động chọn
193
+ `--measurement-only` thay cho chuỗi release theo giai đoạn:
194
+
195
+ ```bash
196
+ node scripts/benchmark-runner.mjs --suite production-v2 --measurement-only --max-sessions 108 --keep-workspaces --output /path/to/measurement-report --yes
197
+ ```
198
+
199
+ Chế độ này chỉ áp dụng cho ma trận production-v2 đầy đủ, controlled Codex và
200
+ Pi release-defaults. Bài, thứ tự, seed, model/medium/Fast, hai repeat, zero retry,
201
+ chấm điểm, ràng buộc source sạch, bốn lane S0 và sổ mọi provider attempt vẫn
202
+ giữ nguyên. Operator cấp một cửa sổ `0→108`; điểm thấp, thất bại của agent và tỷ
203
+ lệ token xấu không kết thúc sớm cửa sổ đó. Lỗi hạ tầng, source thay đổi hoặc
204
+ usage không xác định vẫn không được bỏ qua. Không kết hợp với lọc bài, replay,
205
+ giới hạn thời gian toàn lượt hay `--stop-after-failed-pair`.
206
+
207
+ Lựa chọn được khóa vào configuration digest, manifest, preflight và report;
208
+ không thể chuyển một campaign release cũ sang chế độ này khi resume. Các số đo,
209
+ PASS/FAIL và release gate trong report vẫn là số thật, nhưng report luôn ghi
210
+ measurement-only, campaign kết thúc `no-claim`, không cấp token-saving hay
211
+ generalization claim. Exit code có thể khác 0 dù đã đo đủ 108, nếu release gate
212
+ không đạt; phải kiểm tra report và ledger thay vì gọi đó là benchmark chưa chạy.
213
+ Đây không phải chứng nhận full offline qualification hay production readiness.
214
+
215
+ Production-v2 bind một paid campaign vào exact suite, candidate, configuration
216
+ và output directory. Nếu campaign đã khởi động provider nhưng dừng giữa chừng,
217
+ fail gate hoặc kết thúc `no-claim`, cùng lineage chỉ được resume đúng output đó;
218
+ không được mở output mới để chọn lại mẫu đẹp hơn. Candidate/configuration thực
219
+ sự đổi mới được mở campaign mới, nhưng campaign cũ được giữ nguyên ledger và
220
+ đóng bằng disposition `superseded-changed-lineage-no-claim`. Report tách rõ
221
+ all-attempt ledger của campaign hiện tại dùng cho net-35 với lịch sử chi tiêu
222
+ campaign trước; lịch sử cũ không bị cộng vào tỷ lệ candidate hiện tại và cũng
223
+ không bị xóa. Known exact token được cộng thành subtotal riêng, còn chỉ một
224
+ prior/current attempt thiếu exact usage cũng phải hiện tổng usage là
225
+ `unavailable`; runner không tự retry unknown-cost attempt. Reservation chưa hề
226
+ khởi động provider vẫn có thể được supersede mà không tạo paid-history giả.
227
+
228
+ Pi host hiện chứng minh được outbound request Fast; surface controlled
229
+ `codex-cli` chứng minh strict
230
+ initial invocation cộng effective settings của toàn bộ lượt resume. Hai nguồn đó
231
+ chỉ cho phép claim execution-configuration parity, không cho phép suy ra actual
232
+ provider processing tier.
233
+ Pi host hiện chưa expose trường `response.service_tier`, nên report giữ provider
234
+ processing tier ở `unavailable`. Nếu response tier được host expose về sau, chỉ
235
+ `fast|priority` được chấp nhận; `default` là downgrade.
236
+ Fast của GPT-5.6 được report bằng hai mức **tham chiếu** riêng: ChatGPT
237
+ subscription credits `2.5x` và API Fast token pricing `2x`. Billing mode và
238
+ multiplier thực áp dụng cho run vẫn là `unverified` nếu chưa có bằng chứng độc
239
+ lập; cả hai reference đều non-blocking và tuyệt đối không nhân/chia vào
240
+ provider-reported token ratio.
241
+
242
+ ### Production-v1 legacy: fixed-workload 40%
243
+
244
+ Phần contract dưới đây chỉ áp dụng cho `production-v1`: efficiency claim được
245
+ xét ở **S108**, sau khi có đủ 18 family × 3 repeat × 2 surface. Claim phải qua
246
+ hai trục độc lập. Primary fresh-token
129
247
  estimand được khai báo trước là
130
248
  `fixed-workload-family-ratio`: trong từng family, cộng fresh token chính xác của
131
249
  đủ ba attempt đã định trước ở mỗi surface, gồm cả usage của failed attempt đã
@@ -239,9 +357,10 @@ piagent-benchmark --resume /path/to/report-dir --max-sessions 36 --yes
239
357
  piagent-benchmark --resume /path/to/report-dir --max-sessions 36 --yes
240
358
  ```
241
359
 
242
- Trước provider preflight đầu tiên, S0 tự chạy ba lane provider-free trên đúng
243
- candidate hiện tại: `runtime-conformance-v1`, `long-horizon-v1` (tối thiểu 30
244
- phút wall-clock) và `webui-parity-v1` gồm bảy deterministic UI-stability suite.
360
+ Trước provider preflight đầu tiên, S0 tự chạy bốn lane provider-free trên đúng
361
+ candidate hiện tại: `architecture-conformance-v1` chạy fail-fast cho dependency
362
+ boundary và line budget, `runtime-conformance-v1`, `long-horizon-v1` (tối thiểu
363
+ 30 phút wall-clock) và `webui-parity-v1` gồm chín deterministic UI-stability suite.
245
364
  Receipt có completion time và bind exact clean Git commit, candidate tree,
246
365
  production configuration, cùng digest của từng lane config/runner. Receipt được
247
366
  cache riêng tư theo toàn bộ binding; resume/S12 chỉ reuse khi mọi digest vẫn
@@ -329,6 +448,7 @@ Từ lớp benchmark matrix trong package, Piagent phân ba band:
329
448
  | `deep-logic` | phát triển solver/workflow/WebUI logic | `deep-logic-v1`, 7 bài large với interacting invariants, 42 paired session; capability-tier full-suite gate, không phải production claim |
330
449
  | `production` | release candidate, đổi model policy, đổi harness | `production-v1`, 18 public-regression scenario, paired baseline, confidence gate; không phải generalization claim |
331
450
  | `capability` | tìm trần năng lực sau thay đổi harness | `capability-v1`, 6 bài multi-file/multi-component chưa bão hòa; dùng hill-climbing, không phải release gate |
451
+ | `architecture-conformance` | thay đổi module boundary hoặc file có line budget | Lane deterministic provider-free chạy fail-fast; bắt buộc mọi source được gán layer, dependency boundary và line budget đều pass, 0 provider call và 0 model token |
332
452
  | `runtime-conformance` | thay đổi context governor, retry/settlement WebUI, emission hoặc edit freshness | `runtime-conformance-v1`, 9 ca deterministic provider-free; bắt buộc 0 provider call, 0 model token và mọi safety gate pass; không phải token/quality claim |
333
453
  | `long-horizon` | thay đổi recovery/context lớn | Lane provider-free chạy ít nhất 30 phút cho hard crash/resume, compaction, handoff, continuation bounded và state-growth; dedicated paid suite chưa phát hành |
334
454
  | `private-holdout` | readiness E3 và exact-RC FS7-01 | Tối thiểu 6 family từ 6 repository lineage, giữ ngoài workspace tác giả; chỉ custodian execute-only và human-calibration receipt được chấp nhận |
@@ -344,8 +464,8 @@ node evals/runtime-conformance-v1/runner.mjs \
344
464
 
345
465
  Lệnh trên là vòng lặp developer nhanh, không thay S0 của production. Trước
346
466
  provider session đầu tiên, production runner tự chạy hoặc exact-cache-hit cả
347
- runtime conformance, long-horizon tối thiểu 30 phút và WebUI parity; cả ba phải
348
- cùng clean source/tree/config/runner binding.
467
+ architecture conformance, runtime conformance, long-horizon tối thiểu 30 phút
468
+ và WebUI parity; cả bốn phải cùng clean source/tree/config/runner binding.
349
469
 
350
470
  Lane chỉ đạt khi cả 9 ca pass, provider/model usage bằng 0, projection không tạo
351
471
  tool orphan, retry sau output/tool-call không được chấp nhận, mỗi operation chỉ
@@ -841,7 +961,7 @@ Runner chỉ cho phép kết luận tiết kiệm token khi:
841
961
  report vẫn phải công khai mọi workflow check bị hụt;
842
962
  - mọi Piagent session resolved, không timeout/orphan/unknown terminal state và
843
963
  có complete causal context receipt;
844
- - S0 có đủ ba provider-free receipt cùng exact clean source/tree/config/runner
964
+ - S0 có đủ bốn provider-free lane receipt cùng exact clean source/tree/config/runner
845
965
  binding và completion time hợp lệ; adaptive-context `partial` luôn fail;
846
966
  - mỗi Piagent provider attempt có tối đa một subagent, tổng subagent token
847
967
  traffic không quá `5%`, và không có session/failed-attempt usage không giải thích;
@@ -34,7 +34,7 @@ npm install -g @piagent/platform
34
34
  piagent-setup
35
35
  ```
36
36
 
37
- Chạy `piagent-setup` ngay trong thư mục project. Nó tự cài đúng Pi Coding Agent `0.84.1` mà release này pin, cài Pi package, khởi tạo `.pi/`, rồi chạy doctor. Nó cũng cài MCP baseline, subagents, và Herdr Pi integration nếu `herdr` đã có sẵn trên `PATH`; thêm `--no-mcp`, `--no-subagents`, `--no-herdr` nếu không cần, hoặc `--global-only` nếu chưa muốn đụng project nào.
37
+ Chạy `piagent-setup` ngay trong thư mục project. Nó tự cài đúng Pi Coding Agent `0.87.1` mà release này pin, cài Pi package, khởi tạo `.pi/`, rồi chạy doctor. Nó cũng cài MCP baseline, subagents, và Herdr Pi integration nếu `herdr` đã có sẵn trên `PATH`; thêm `--no-mcp`, `--no-subagents`, `--no-herdr` nếu không cần, hoặc `--global-only` nếu chưa muốn đụng project nào.
38
38
 
39
39
  Nếu dùng [Herdr](https://herdr.dev/docs/install/) thì cài Herdr **trước** `piagent-setup`:
40
40
 
@@ -149,7 +149,7 @@ Muốn chạy nhiều agent song song thì gõ `herdr` thay vì `pi`, rồi mở
149
149
  | `/workflow be-to-fe <việc>` | Backend read-only, làm FE. |
150
150
  | `/workflow commit <message>` | Commit local có kiểm soát, không push. |
151
151
  | `/workflow pr <title>` | Tạo PR, hỏi xác nhận trước khi push. |
152
- | `/fresh task|scout|be-to-fe <việc>` | Session đang nặng hoặc tràn context. |
152
+ | `/fresh <workflow> <việc>` | Session đang nặng hoặc tràn context; nhận mọi workflow canonical, xem bằng `/fresh help`. |
153
153
 
154
154
  `/commands` liệt kê hết. Các alias cũ như `/task`, `/scout`, `/be-to-fe`, `/fresh-task`, `/context-index`, `/logs` vẫn chạy nhưng không còn là đường onboard chính. Giải thích từng lệnh: [command-reference-vietnamese.md](command-reference-vietnamese.md). Các workflow ép shape rõ (`/parallel-review`, `/review-loop`, `/parallel-research`, `/parallel-context-build`): [subagents-and-multiagent.md](subagents-and-multiagent.md). Runtime gate tools và cách agent tự dùng chúng: [operator-manual-vietnamese.md](operator-manual-vietnamese.md).
155
155
 
@@ -7,14 +7,41 @@ Pi Agent Platform uses explicit release sources for team rollout. Personal machi
7
7
 
8
8
  This file is the canonical install, update, rollback, and release checklist. Other docs link here instead of maintaining a second release procedure.
9
9
 
10
+ ## v1.8.0 model-family boundary
11
+
12
+ Pi 0.87.1 adds authenticated GPT-6 Astra, Sol and Luna choices. This release updates the SDK pin, new-session defaults and opt-in routing map, while keeping explicit model pins, prior task state and the frozen 5.6 benchmark evidence intact. Compatibility is checked without paid provider turns. The 108-session v1.7.1 result does not measure GPT-6 quality, latency or token use; a new comparative claim needs a separately approved, paired measurement.
13
+
14
+ ## v1.7.1 release boundary
15
+
16
+ The operator closed the paid benchmark cycle on 2026-09-22. This release uses
17
+ provider-free source, package, runtime, browser, and platform checks; it does
18
+ not require another paid smoke or 108-session run. The historical full run and
19
+ selected 14-attempt diagnostic rerun remain separate. Three diagnostic tasks
20
+ received clearer public API contracts and checks. Passing that subset does not
21
+ establish a new full-suite result, a token-saving claim, or production stability.
22
+ This explicit release boundary replaces the paid-run prerequisite below for
23
+ v1.7.1 only; ordinary package and CI gates remain required.
24
+
25
+ Acceptance proof is diagnostic by default in the installed v1.7.1 policy.
26
+ Unproved criteria stay pending in the task record and completion states that
27
+ there is no quality claim. The task contract, declared edit scope, current
28
+ passing verification, trace, and other operational gates remain enforced.
29
+ Projects requiring every criterion to be proved before completion must select
30
+ `acceptanceProofMode: "enforce"` in a reviewed package policy. Diagnostic
31
+ completion is an operational handoff, not evidence that the requested behavior
32
+ is correct or that benchmark performance improved.
33
+ The benchmark runner treats the installed diagnostic default as measurement-only
34
+ and withholds token and production claims even when the operator selects the
35
+ ordinary `release-defaults` treatment.
36
+
10
37
  ## Supported runtime matrix
11
38
 
12
- All supported environments require Node.js `>=22.19.0` and Pi Coding Agent `0.84.1`. The Pi host is installed as a Node CLI; Pi Agent Platform still defines its own release matrix because the terminal helpers and shell policy rely on Bash/POSIX behavior.
39
+ All supported environments require Node.js `>=22.19.0` and Pi Coding Agent `0.87.1`. The Pi host is installed as a Node CLI; Pi Agent Platform still defines its own release matrix because the terminal helpers and shell policy rely on Bash/POSIX behavior.
13
40
 
14
- | Surface | Status for v1.6.1 | Rollout guidance |
41
+ | Surface | Status for v1.8.0 | Rollout guidance |
15
42
  |---|---|---|
16
- | macOS Apple Silicon (`darwin/arm64`) + Bash | Verified for this release. | Safe default for team rollout after normal project smoke tests. |
17
- | Linux x64 + Bash | Verified in GitHub Actions. | Safe default for CI/server usage after normal project smoke tests. |
43
+ | macOS Apple Silicon (`darwin/arm64`) + Bash | Local compatibility and browser checks passed; full PR/tag gate required. | Roll out after the v1.8.0 release gate passes. |
44
+ | Linux x64 + Bash | Full GitHub Actions PR/tag gate required. | Roll out after the v1.8.0 release gate passes. |
18
45
  | macOS Intel (`darwin/x64`) + Bash | Supported target; not currently a dedicated release-gate runner. | Run `piagent-doctor` plus the target project's smoke/verify suite before broad rollout. |
19
46
  | Linux ARM64 + Bash | Supported target; not currently a dedicated release-gate runner. | Run `piagent-doctor` plus the target project's smoke/verify suite before broad rollout. |
20
47
  | Native Windows x64/ARM64 | Not supported for team rollout in this release. | Node is available on Windows, but platform helper scripts and shell parsing assume Bash/POSIX semantics. Use a verified macOS/Linux surface for release-critical work. |
@@ -106,7 +133,7 @@ These three components are versioned independently. A full install, update, or r
106
133
 
107
134
  | Channel | Source shape | Mutability | Use when |
108
135
  |---|---|---:|---|
109
- | `stable` | `git:github.com/Vt-mmm/piagent@<resolved-commit-sha>` from `v1.6.1` | Fixed after resolution | Default for team rollout. |
136
+ | `stable` | `git:github.com/Vt-mmm/piagent@<resolved-commit-sha>` from `v1.8.0` | Fixed after resolution | Default for team rollout. |
110
137
  | `exact` | Tag, reviewed commit, or a tag resolved with `--resolve-tag` | Fixed when using a commit SHA | Pi-package-only roll forward, rollback, or reproduction. |
111
138
  | `dev` | `git:github.com/Vt-mmm/piagent` | Moving | Personal machine or sandbox only. |
112
139
  | `local` | `/path/to/piagent` | Local workspace | Platform development and dry-run validation. |
@@ -125,8 +152,8 @@ Use this flow when the team needs both terminal commands and the Pi package:
125
152
 
126
153
  ```bash
127
154
  node --version # >= 22.19.0
128
- npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
129
- npm install -g --ignore-scripts @piagent/platform@1.6.1
155
+ npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1
156
+ npm install -g --ignore-scripts @piagent/platform@1.8.0
130
157
  piagent-install --stable --dry-run
131
158
  piagent-install --stable
132
159
  ```
@@ -134,8 +161,8 @@ piagent-install --stable
134
161
  The stable preview and apply output includes:
135
162
 
136
163
  ```text
137
- currentRelease: v1.6.1 (helper package version)
138
- tag: v1.6.1
164
+ currentRelease: v1.8.0 (helper package version)
165
+ tag: v1.8.0
139
166
  resolvedCommit: <40-char-sha>
140
167
  source: git:github.com/Vt-mmm/piagent@<40-char-sha>
141
168
  ```
@@ -152,7 +179,7 @@ bash scripts/install-global.sh --stable
152
179
  Use this only when terminal commands are not needed:
153
180
 
154
181
  ```bash
155
- pi install git:github.com/Vt-mmm/piagent@v1.6.1
182
+ pi install git:github.com/Vt-mmm/piagent@v1.8.0
156
183
  ```
157
184
 
158
185
  Direct `pi install` does not create `piagent-*` commands on `PATH`.
@@ -217,7 +244,7 @@ Running it from a git checkout is refused rather than replacing that checkout's
217
244
  The same sequence by hand, which must keep this order because `piagent-install` fails against a host that does not match the version it pins and does not install one itself:
218
245
 
219
246
  ```bash
220
- npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
247
+ npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1
221
248
  npm install -g --ignore-scripts @piagent/platform@X.Y.Z
222
249
  piagent-install --stable --dry-run
223
250
  piagent-install --stable
@@ -0,0 +1,113 @@
1
+ # Harness Next: evidence review
2
+
3
+ Research date: 2026-08-30. Status: research and implementation in progress, not a release claim.
4
+
5
+ ## The problem being solved
6
+
7
+ Piagent must distinguish an implementation defect, an incomplete test suite, a verifier limitation, and an execution failure. These require different recovery actions. A source recognizer that cannot understand a valid program must not tell the model to rewrite that program without a concrete failing behavior.
8
+
9
+ The retained v6 campaign stopped after six sessions. Pi's expiry implementation received hidden grade 10/10, but its completion receipt remained pending and workflow score was 8.48. A separate, read-only diagnostic passed 480,061 assertions, including 120,000 year/month boundaries. These checks support a verifier-coverage false negative; they do not establish universal correctness or change the failed campaign result.
10
+
11
+ The v6 admission check requires two single-parameter helpers. The actual implementation uses a shared three-parameter normalizer, mutable locals, UTC setter/round-trip calendar validation, numeric separators, and fraction padding. Directly invoking the dataflow layer beneath the admission check still rejects syntax. Adding one more source pattern is therefore not the architectural repair.
12
+
13
+ ## Primary sources and transferable mechanisms
14
+
15
+ Numbers below are the authors' reported results under their own models, datasets, budgets, and dates. They are not comparable leaderboard rows and are not predicted Piagent gains.
16
+
17
+ | Source | Evidence or mechanism | What Piagent can transfer; limitation |
18
+ | --- | --- | --- |
19
+ | [SWE-agent, NeurIPS 2024, v3](https://arxiv.org/abs/2405.15793v3) | A purpose-built agent-computer interface; reported pass@1 of 12.5% on SWE-bench and 87.7% on HumanEvalFix. | Treat tool feedback and interface design as measurable interventions. Do not assume its 2024 interface or scores transfer to another model. |
20
+ | [Agentless, 2024, v2](https://arxiv.org/abs/2407.01489v2) | Localization, repair, and validation as separate phases; reported 32.00% (96 fixes) on SWE-bench Lite at $0.70 per problem. | Keep control flow inspectable and compare against a simpler baseline. More orchestration is not inherently better. Different benchmark from SWE-agent's full SWE-bench result. |
21
+ | [EvalPlus, 2023, v3](https://arxiv.org/abs/2305.01210v3) | Mutation- and LLM-generated test inputs; HumanEval+ expands tests 80-fold. Across 26 models, the paper reports pass@k reductions up to 19.3–28.9% and changed rankings. | Strengthen independent tests and measure false acceptance, not merely acceptance rate. More cases are useful only with a trustworthy oracle and relevant partitions. |
22
+ | [CEGAR, Clarke et al., 2000](https://web.stanford.edu/class/cs357/cegar.pdf) | Distinguish real counterexamples from artifacts of an abstraction; refine the abstraction for spurious traces. | Preserve `unknown` and route verifier limitations away from blind source repair. The paper's guarantees concern its finite-state model/specification setting, not arbitrary JavaScript or finite random tests. |
23
+ | [fast-check model-based testing](https://fast-check.dev/docs/advanced/model-based-testing/) | Generate stateful command sequences, compare with a simpler model, shrink failures, replay with seed/path. | Exercise verification/recovery histories and save minimal counterexamples. The reference model must not copy the implementation's logic. |
24
+ | [Anthropic agent eval guidance, 2026-01-09](https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents) | Separate transcript from final environment outcome, calibrate graders, validate tasks with reference solutions, distinguish pass@k from all-trial consistency. | Audit both false positives and false negatives; retain outcome and process metrics separately. This is engineering guidance, not a controlled estimate of Piagent improvement. |
25
+ | [AgentLens, 2026, v3](https://arxiv.org/abs/2605.12925v3) | 2,614 trajectories, eight model backends, 60 SWE-bench Verified tasks; a 1,815-trajectory subset over 47 tasks. Among passing trajectories in that subset, 10.7% were classified as Lucky Passes. | Measure blind retries, regression cycles, and verification ordering in addition to final pass rate. This is a recent preprint; its labels are not proof that a specific Piagent run is bad. |
26
+ | [Pi source README](https://github.com/earendil-works/pi/tree/main/packages/coding-agent) | Minimal extensible harness; default read/write/edit/bash tools, extension-based workflow customization. | Keep reusable enforcement in the extension while letting the model choose implementation structure. Minimalism does not replace project authorization or verification. |
27
+ | [mini-SWE-agent](https://mini-swe-agent.com/latest/) | Bash-only actions, linear message history, independent subprocess execution. | Use an observable lean baseline and avoid hidden recovery state. Do not transplant unrestricted shell access into Piagent's protected-path policy. |
28
+ | [OpenHands architecture](https://docs.openhands.dev/sdk/arch/overview), [SDK paper v2](https://arxiv.org/abs/2511.03690v2) | Separate SDK, tools, workspaces, and server; immutable/stateless components and portable execution. | Separate assessment from execution and UI projection; keep backend failures distinct from model failures. No numerical reduction is inferred from the abstract's qualitative production claim. |
29
+ | [LangGraph persistence](https://docs.langchain.com/oss/javascript/langgraph/persistence) | Checkpoints and pending writes preserve completed steps; replay after a checkpoint can re-execute external calls. | Store verification receipts and resume only valid bound work. Replay is not automatically free or side-effect-free; preserve the single paid-attempt ledger. |
30
+ | [OpenAI evaluation guidance](https://developers.openai.com/api/docs/guides/evaluation-best-practices) | Task-specific evaluations, production failure datasets, automated scoring calibrated against human judgment. | Maintain a labelled grader audit set and separate quality, safety, and tool-selection checks. Do not add model judges as an uncalibrated completion authority. |
31
+
32
+ [OpenAI's lean-prompt guidance](https://developers.openai.com/api/docs/guides/latest-model#favor-leaner-prompts) reports an internal sample with roughly 10–15% higher eval scores, 41–66% fewer total tokens, and 33–67% lower cost. The page does not establish an equivalent Piagent workload or a fresh-token saving. This is a hypothesis for a later isolated ablation, not a reason to change prompts during a frozen benchmark or advertise those numbers.
33
+
34
+ ## Alternatives considered
35
+
36
+ 1. **Extend the current source-template proof.** Low initial cost, but another valid helper graph or expression can fail before semantics. Rejected as the primary fix; retained only as a conservative optional analysis lane.
37
+ 2. **Ask the model to judge its own answer.** Flexible but vulnerable to shared blind spots and unsupported confidence. Not a completion authority for executable contracts.
38
+ 3. **Use project test exit code alone.** Language-independent but can accept incomplete or manipulated tests. Not sufficient by itself.
39
+ 4. **General formal verification of arbitrary generated JavaScript.** Strong results are possible for specified subsets, but a complete practical verifier for unrestricted programs is not a credible scoped deliverable. Keep explicit supported domains and `unknown`.
40
+ 5. **Independent contract execution plus orthogonal safety/provenance gates.** Selected direction. Freeze task-derived obligations, run host-owned validators against exact source snapshots, retain counterexamples, and state bounded assurance accurately. This changes the verification mechanism and requires its own calibration; it is not an automatic relaxation of the completion gate.
41
+
42
+ ## Execution isolation review
43
+
44
+ [Node's documentation](https://nodejs.org/api/vm.html) explicitly rules out treating `node:vm` as a security boundary. The existing syntax-only compilation is different from executing candidate code; do not turn it into an in-process execution sandbox.
45
+
46
+ [QuickJS-WASM runtime documentation](https://github.com/justjake/quickjs-emscripten/blob/main/doc/quickjs-emscripten/classes/QuickJSRuntime.md) provides separate runtimes/modules, memory/stack controls, interrupts, and module-loader control. It is a candidate for pure-JavaScript probes, not yet a selected production dependency. An [upstream report against a pinned QuickJS commit](https://github.com/bellard/quickjs/issues/545) alleges interrupt-bypass CPU denial of service; the issue is closed, and applicability to any chosen WASM build has not been established. This is a reason to require an independent process deadline and resource tests, not a claim that all QuickJS releases are vulnerable.
47
+
48
+ Initial local discovery found Docker CLI but no running Docker daemon. During subsequent implementation, the existing Docker Desktop was started and a separate locked worker dependency directory was installed without lifecycle scripts; the platform's shared dependencies were not changed. The selected experimental backend combines QuickJS-WASM with a constrained local Docker container, an independent OS watchdog, and host-owned comparison. See the [executor checkpoint](../decisions/harness-next-executor-checkpoint.md) for actual tests and limitations. An unavailable backend produces `error/unknown`, never an unprotected host-execution fallback.
49
+
50
+ The selected [QuickJS core variant interface](https://github.com/justjake/quickjs-emscripten/blob/main/doc/quickjs-emscripten-core/README.md) allows using only core, release-sync WASM, and FFI types, all pinned to 0.32.0 in a dedicated lockfile. The installed variant identifies its underlying QuickJS revision as `f1139494d18a2053630c5ed3384a42bb70db3c53`. [Docker's container runtime controls](https://docs.docker.com/engine/containers/run/) provide the outer process, filesystem, network, and resource boundary. These controls are complementary; neither upstream documentation nor a finite adversarial suite is a blanket security guarantee.
51
+
52
+ ## Chosen research hypotheses
53
+
54
+ Persistence follow-up: [SQLite's atomic-commit design](https://sqlite.org/atomiccommit.html) documents journal-based all-or-none transactions, including recovery after interruption, with explicit filesystem/locking/flush assumptions. [Node 22.19.0's SQLite API](https://nodejs.org/download/release/v22.19.0/docs/api/sqlite.html) is available but experimental in that minimum supported runtime, so using it for verifier storage requires a compatibility and packaging decision. Transactional durability alone does not authenticate a receipt, establish an approved oracle, or protect against compromise of a same-user host authority. The subsequent [durable evidence checkpoint](../decisions/harness-next-durable-evidence-checkpoint.md) records the implemented store; the [admission checkpoint](../decisions/harness-next-authenticated-admission-checkpoint.md) records its later runtime integration and remaining limits.
55
+
56
+ Local source inspection also established that the existing working-tree digest covers changes relative to HEAD. The new execution bridge therefore separately binds source bytes and repository revision. This evidence changes the persistence requirement: a cache must not key solely on the old dirty-tree digest, nor treat a public hash as authentication.
57
+
58
+ - H1: Separating verifier abstention from concrete behavioral failure prevents unnecessary source rewrites while preserving rejection of known-bad programs.
59
+ - H2: Independent contract probes accept implementation-equivalent solutions that the v6 recognizer rejects, without accepting the retained mutation corpus.
60
+ - H3: Durable, exact-snapshot receipts eliminate repeated completed provider-free work; replay never drops or repeats paid attempts silently.
61
+ - H4: A leaner recovery interface reduces repair attempts and fresh tokens at equal outcome quality. Test separately after correctness, not bundled with the acceptance experiment.
62
+
63
+ The accompanying architecture decision and evaluation protocol define how these hypotheses can be falsified. No paper or passing finite suite supports a claim of zero possible edge cases. The release must instead state tested input partitions, remaining unsupported contracts, repeated-run reliability, and unresolved risks.
64
+
65
+ ## Follow-up: stateful recovery and replay after admission integration
66
+
67
+ Primary documentation was rechecked on 2026-08-30. The current [LangGraph checkpointer guide](https://docs.langchain.com/oss/javascript/langgraph/checkpointers) distinguishes full step checkpoints from completed per-node writes, and explicitly states that replay after a selected checkpoint re-executes later model/API calls. It also distinguishes exit-only, asynchronous, and synchronous durability. Piagent therefore cannot infer “exactly once” from the presence of a checkpoint: completed evidence reuse, pending-attempt reconciliation, and paid-attempt accounting need separate tests. The former durable-execution documentation URL now redirects to the persistence overview; the detailed checkpoint URL above is the relevant source for these claims.
68
+
69
+ The [fault-tolerance guide](https://docs.langchain.com/oss/javascript/langgraph/fault-tolerance) separates retry policy, per-attempt timeout, and exhausted-error handling. This supports keeping worker failure distinct from a source counterexample. It does not justify importing that library's default retry behavior or raising Piagent's existing ceilings. Our next recovery work must retain the actual executor/unsupported reason instead of collapsing every unavailable admission into a generic missing-proof diagnostic.
70
+
71
+ [fast-check's model-based guide](https://fast-check.dev/docs/advanced/model-based-testing/) compares command histories against a simplified model and warns against reproducing the implementation as the oracle. It provides shrinking plus seed/path/replay-path reproduction. The transferable test design is a small abstract authority/attempt model exercised by histories such as reserve → host death → reopen → reconcile → retry, not merely isolated method assertions. No fast-check dependency or general stateful adapter was installed by this checkpoint.
72
+
73
+ Piagent-specific next evidence requirements (design decisions, not claims from the sources):
74
+
75
+ - A completed observation survives restart without another independent attempt, after actual current project verification is refreshed.
76
+ - A pending attempt never launches a duplicate solely because the host restarted or a timeout elapsed.
77
+ - Late completion, cancellation, shutdown, policy revocation, contract drift, and source drift are tested in different orders; the latest valid authority state wins.
78
+ - Counterexamples drive bounded source repair; executor errors and unsupported domains drive diagnosis/unknown, with no invented source defect.
79
+ - Stateful application adapters need a simpler independent behavioral model and held-out command histories. Passing the evidence-store protocol tests alone does not satisfy the required stateful-recovery domain.
80
+
81
+ These requirements extend the existing evaluation protocol; they do not replace the full frozen release campaign or import any external project's performance numbers as Piagent results.
82
+
83
+ ## Follow-up: project source graphs and differential diagnostics
84
+
85
+ [Wang, Pradel and Liu's PatchDiff study, v2 (2025-09-09)](https://arxiv.org/abs/2503.15223v2) reports that 7.8% of examined patches counted as correct nevertheless failed developer-written tests. Differential testing exposed behavioral differences in 29.6% of plausible patches; a difference from the reference was not automatically a proven defect. The transfer to Piagent is to combine independently declared obligations, project tests and targeted divergent variants, not require textual similarity to a reference or import these rates as Piagent measurements.
86
+
87
+ Source inspection showed that the experimental backend could not execute an unchanged multi-file implementation because all imports were refused. [QuickJS's runtime interface](https://github.com/justjake/quickjs-emscripten/blob/main/doc/quickjs-emscripten/classes/QuickJSRuntime.md) exposes a module loader plus normalizer, and a pending-job query distinct from synchronous execution. The installed 0.32.0 declarations were inspected as well. The resulting design loads only pre-captured, explicitly approved relative modules; it neither discovers permissions from candidate imports nor supplies host IO. Async execution remains a separate unsupported backend capability.
88
+
89
+ The [module integration checkpoint](../decisions/harness-next-module-checkpoint.md) records actual unchanged production-source execution, dependency-only mutations, authenticated completion/repair and a reproduced observation-time microtask gap. These are development integration diagnostics. They are not independently held-out calibration, exhaustive redactor correctness, a general JavaScript equivalence result or a release campaign.
90
+
91
+ ## Follow-up: selecting independently specified contracts
92
+
93
+ [PROGRESS, v1 (2026-07-29)](https://arxiv.org/abs/2607.27359v1) reports 328/562 current-version bugs detected across 25 Java systems and satisfied preconditions for 70/150 difficult properties, versus 18 with standalone jqwik. Its abstract distinguishes regression assertions derived from current behavior from independent semantic properties. It combines generated properties with evolutionary search; it is a recent preprint, not a Piagent result. The transferable requirement is oracle independence and explicit property/parameter binding, not adopting model-generated properties as completion authority or predicting those detection rates here.
94
+
95
+ [Beginner's Luck, POPL 2017, extended v3](https://arxiv.org/abs/1607.05443v3) connects declarative predicates with input generation and distribution controls, with formal results for its own language semantics. [fast-check's property documentation](https://fast-check.dev/docs/core-blocks/properties/) separates generators, preconditions and predicates; [its model-based guide](https://fast-check.dev/docs/advanced/model-based-testing/) warns against duplicating the implementation in the model. Neither source supplies a generic oracle for arbitrary natural-language tasks.
96
+
97
+ Piagent's implemented transfer is a bounded data-template library, typed parameter substitution, exact task-criterion binding, full preview and separate host approval. This is deliberately not a claim to have implemented Luck's solver, PROGRESS's search, random generation or shrinking. Expected observations are authored independently of candidate source/output; a library match establishes identity, not semantic completeness. [The selection checkpoint](../decisions/harness-next-selection-checkpoint.md) records concrete integration tests and remaining held-out/release requirements.
98
+
99
+ ## Follow-up: temporal contract semantics before correctness labels
100
+
101
+ Normative sources checked on 2026-08-30: [ECMAScript's Date Time String Format and adjacent Date operations](https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-date-time-string-format) include literal four-digit and signed expanded years, date-only forms and `24:00`; MakeFullYear separately maps numeric years 0–99 to 1900–1999. TimeClip constrains Date values and truncates fractional milliseconds. These facts do not imply that every application should accept every Date.parse form or TimeClip an explicit numeric comparison argument.
102
+
103
+ [RFC 3339 sections 5.6–5.7](https://www.rfc-editor.org/rfc/rfc3339#section-5.6) instead require seconds, permit variable fractional digits and lowercase separators, restrict the hour to 00–23, and include conditional leap-second rules. Thus “ISO timestamp” is not enough to silently select either standard's whole grammar as an application's acceptance oracle.
104
+
105
+ Piagent's new `iso-expiry-millisecond-profile` is an explicit application contract, not a new standards-conformance claim. It covers the original diagnostic's minute/second/fraction forms, Gregorian validation, offsets, small years, inclusive comparison and default-clock behavior, while stating its additional format decisions for operator review. It uses static independent data and real candidate execution; no hidden benchmark grader is imported. Source-independent epoch checks, equivalent implementations, deliberate defects and read-only retained-source replay calibrate different failure modes. The retained campaign remains immutable and these checks remain development evidence.
106
+
107
+ ## Follow-up: lifecycle-correct evaluation before performance claims
108
+
109
+ The [Pi SDK guide](https://pi.dev/docs/latest/sdk) describes session-specific extension binding and re-binding after session replacement. Inspection of the installed pinned 0.84.1 SDK and print-mode implementations established that `createAgentSession` alone does not emit extension startup; `bindExtensions` does. Piagent's real-host test omitted that call. Its newer session-lifetime completion fence correctly rejected the uninitialized session. The test now exercises startup and graceful shutdown, with a separate negative case retaining rejection when startup is omitted. The fence was not weakened.
110
+
111
+ A second, independent test-host problem surfaced when the fixture was made to produce a real assertion failure. [Node 24.11.1's test runner](https://github.com/nodejs/node/blob/v24.11.1/lib/internal/test_runner/runner.js) supplies `NODE_TEST_CONTEXT` to test children and refuses recursive process-isolated runs when that variable is present. The Pi bash child inherited it, printed a warning, skipped the project tests and returned success. The fixture now uses the unchanged native Pi bash definition with a spawn hook removing only that outer-runner variable. Every invoked project verifier must report a positive test count and zero skipped tests; the deliberately wrong authorization implementation must produce an actual assertion error. Earlier real-host passes alone were therefore insufficient evidence that those nested tests ran.
112
+
113
+ Two product defects were exposed by the corrected lifecycle: repeated announcements of the same session name unnecessarily rewrote a pending task, and recovery guidance omitted the repository-revision binding when identifying missing verification evidence. Name handling is now idempotent; receipt and guidance projections share the same revision-selection logic. Stale baseline evidence remains rejected. Missing-proof diagnostics expose task-derived targets without edit instructions or mutation permission; only a concrete observed failure can enter the existing bounded repair path. These changes support evaluation validity, not a token-efficiency or production-release claim.
@@ -9,8 +9,8 @@ Một thành viên mới không cần biết local path của maintainer. Luồn
9
9
 
10
10
  ```bash
11
11
  node --version # >= 22.19.0
12
- npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
13
- npm install -g --ignore-scripts @piagent/platform@1.6.1
12
+ npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1
13
+ npm install -g --ignore-scripts @piagent/platform@1.8.0
14
14
  piagent-install --stable
15
15
  cd /path/to/project
16
16
  pi
@@ -26,7 +26,7 @@ pi
26
26
  ## Prerequisites
27
27
 
28
28
  - Node.js >=22.19.0.
29
- - Pi Coding Agent `0.84.1`.
29
+ - Pi Coding Agent `0.87.1`.
30
30
  - Runtime rollout:
31
31
  - verified: macOS Apple Silicon + Bash, Linux x64 + Bash;
32
32
  - supported target cần smoke trước khi rollout rộng: macOS Intel + Bash, Linux ARM64 + Bash;
@@ -43,8 +43,8 @@ Mặc định team dùng stable helper:
43
43
 
44
44
  ```bash
45
45
  node --version # >= 22.19.0
46
- npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
47
- npm install -g --ignore-scripts @piagent/platform@1.6.1
46
+ npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1
47
+ npm install -g --ignore-scripts @piagent/platform@1.8.0
48
48
  piagent-install --stable --dry-run
49
49
  piagent-install --stable
50
50
  ```
@@ -106,7 +106,7 @@ Version mới nhất được hỏi npm registry nhiều nhất một lần mỗ
106
106
  Sequence thủ công vẫn dùng được, và bắt buộc theo thứ tự này — `piagent-install` **fail** nếu Pi host lệch bản pin, nó không tự nâng host:
107
107
 
108
108
  ```bash
109
- npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
109
+ npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1
110
110
  npm install -g --ignore-scripts @piagent/platform@X.Y.Z
111
111
  piagent-install --stable --dry-run
112
112
  piagent-install --stable
@@ -118,7 +118,7 @@ Full rollback dùng cùng sequence với `vPREVIOUS`, nhưng exact Pi host phả
118
118
  Nếu team publish npm private:
119
119
 
120
120
  ```bash
121
- npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
121
+ npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1
122
122
  pi install npm:@your-scope/platform@x.y.z
123
123
  ```
124
124
 
@@ -24,3 +24,10 @@ The neutrality gate scans active WebUI governance and client source. Historical
24
24
  records and implementation-specific integration documentation may retain an
25
25
  actual third-party name when it is necessary to explain compatibility or a
26
26
  security decision.
27
+
28
+ Reviewed research records may name the tools whose primary sources they cite;
29
+ source titles must stay accurate. The explicit record list in
30
+ `scripts/check-public-wording.mjs` permits source names only. It does not permit
31
+ promotional comparisons, ranking claims, copied branding, or new authority.
32
+ Unlisted documents and all runtime/operator surfaces retain the full wording
33
+ check. A document cannot opt itself out with a comment or metadata flag.
@@ -278,7 +278,7 @@ Xem `contextUsage.percent`:
278
278
  - `< 50%`: bình thường.
279
279
  - `50–70%`: bắt đầu tránh đọc file lớn không cần thiết.
280
280
  - `70–82%`: chạy `/context compact` trước task dài tiếp theo.
281
- - `> 82%`: dùng `/fresh task`, `/fresh scout`, hoặc `/fresh be-to-fe` cho work mới.
281
+ - `> 82%`: dùng `/fresh <workflow>` cho work mới; `/fresh help` liệt kê mọi workflow canonical.
282
282
  - Sau compaction, `contextUsage.tokens` có thể là `null` cho đến khi có assistant response mới.
283
283
 
284
284
  Nếu user paste full mandatory-flow boilerplate, platform input guard sẽ collapse về workflow command ngắn. Nếu prompt quá dài thật, platform có thể lưu intake vào `.pi/task-inbox/` local gitignored rồi replay bằng fresh workflow command.
@@ -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.6.1 docs · VI</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.8.0 docs · VI</span>
34
34
  <nav class="language-switch" aria-label="Ngôn ngữ">
35
35
  <a class="language-option current" href="/architecture" hreflang="vi" lang="vi" aria-current="true">VI</a>
36
36
  <a class="language-option" href="/en/architecture" hreflang="en" lang="en">EN</a>
@@ -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.6.1 docs · VI</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.8.0 docs · VI</span>
34
34
  <nav class="language-switch" aria-label="Ngôn ngữ">
35
35
  <a class="language-option current" href="/benchmark" hreflang="vi" lang="vi" aria-current="true">VI</a>
36
36
  <a class="language-option" href="/en/benchmark" hreflang="en" lang="en">EN</a>
@@ -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.6.1 docs · VI</span>
33
+ <span class="pill"><span class="pill-dot"></span>v1.8.0 docs · VI</span>
34
34
  <nav class="language-switch" aria-label="Ngôn ngữ">
35
35
  <a class="language-option current" href="/commands" hreflang="vi" lang="vi" aria-current="true">VI</a>
36
36
  <a class="language-option" href="/en/commands" hreflang="en" lang="en">EN</a>
@@ -1,7 +1,7 @@
1
1
  <section class="section">
2
2
  <div class="command-grid">
3
3
  <article class="command-card"><header><span>Global setup</span><button class="clip-btn" data-clip="piagent-setup --mcp-preset core --subagents-preset safe">Copy</button></header><pre><code>piagent-setup --mcp-preset core --subagents-preset safe</code></pre></article>
4
- <article class="command-card"><header><span>Full update</span><button class="clip-btn" data-clip="npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1&#10;npm install -g --ignore-scripts @piagent/platform@X.Y.Z&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Copy</button></header><pre><code>npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
4
+ <article class="command-card"><header><span>Full update</span><button class="clip-btn" data-clip="npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1&#10;npm install -g --ignore-scripts @piagent/platform@X.Y.Z&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Copy</button></header><pre><code>npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1
5
5
  npm install -g --ignore-scripts @piagent/platform@X.Y.Z
6
6
  piagent-install --stable --dry-run
7
7
  piagent-install --stable</code></pre></article>
@@ -1,3 +1,26 @@
1
+ <section class="section">
2
+ <p class="section-kicker">v1.8.0</p>
3
+ <h2 id="v1-8-0">Astra, Sol, and Luna in Piagent</h2>
4
+ <p class="section-lead">Pi 0.87.1 exposes all three GPT-6 models through the authenticated catalog. New sessions prefer Sol High; parent routing remains opt-in.</p>
5
+ <div class="grid cols-3">
6
+ <article class="card"><h3>Luna</h3><p>Focused, verifiable tasks: the low tier at Medium effort.</p></article>
7
+ <article class="card"><h3>Sol</h3><p>Everyday coding: the medium and high tiers; the new-session default is High when available.</p></article>
8
+ <article class="card"><h3>Astra</h3><p>Broad or ambiguous work: the ultra tier at Extra High. Explicit pins and existing sessions stay intact.</p></article>
9
+ </div>
10
+ <p>The router selects only authenticated models and records a legacy 5.6 fallback. The old 108-session result does not measure GPT-6 performance or token savings.</p>
11
+ </section>
12
+
13
+ <section class="section">
14
+ <p class="section-kicker">v1.7.1</p>
15
+ <h2 id="v1-7-0">Long sessions with clearer context and accounting</h2>
16
+ <p class="section-lead">v1.7.1 supports Pi 0.86.1, repairs session recovery, and adds waiting within an open session.</p>
17
+ <div class="grid cols-3">
18
+ <article class="card"><h3>Requested waiting</h3><p>Ask the agent to wait until the next useful check. The timer makes no model calls while waiting; the session must remain open.</p></article>
19
+ <article class="card"><h3>Context and usage</h3><p>Context prioritizes supported files, and usage and verification results remain bound to the correct task.</p></article>
20
+ <article class="card"><h3>Evidence boundary</h3><p>All 14 formerly failed attempts passed a separate rerun. This is not a new 108-session score or an aggregate token-saving claim.</p></article>
21
+ </div>
22
+ </section>
23
+
1
24
  <section class="section">
2
25
  <p class="section-kicker">v1.6.1 · Reliability patch</p>
3
26
  <h2 id="v1-6-1">Truthful UI state, safe external review, and lower helper overhead</h2>
@@ -6,8 +6,8 @@
6
6
  <pre><code>piagent-setup --mcp-preset core --subagents-preset safe</code></pre>
7
7
  </article>
8
8
  <article class="command-card">
9
- <header><span>Full update</span><button class="clip-btn" data-clip="npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1&#10;npm install -g --ignore-scripts @piagent/platform@X.Y.Z&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Lấy lệnh</button></header>
10
- <pre><code>npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.84.1
9
+ <header><span>Full update</span><button class="clip-btn" data-clip="npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1&#10;npm install -g --ignore-scripts @piagent/platform@X.Y.Z&#10;piagent-install --stable --dry-run&#10;piagent-install --stable">Lấy lệnh</button></header>
10
+ <pre><code>npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.87.1
11
11
  npm install -g --ignore-scripts @piagent/platform@X.Y.Z
12
12
  piagent-install --stable --dry-run
13
13
  piagent-install --stable</code></pre>