@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
@@ -0,0 +1,528 @@
1
+ <!-- language: vi; english-index: docs/en/README.md -->
2
+
3
+ # Kế hoạch cải thiện lõi Piagent: giải quyết việc đúng, ít lãng phí hơn
4
+
5
+ **Plan ID:** PCL-2026-09-06 · **Version:** 1.1 · **Ngày nghiên cứu:** 2026-09-06
6
+ **Trạng thái:** PCL_A_APPROVED / OFFLINE_IMPLEMENTED / QUALIFICATION_RECORDED_SEPARATELY
7
+ **Repo triển khai duy nhất:** `/Users/vtamm/Documents/piagent-35-recovery-20260831T090020Z/implementation`
8
+ **Liên quan:** PRB-108-2026-09-06; kế hoạch này không thay thế, mở lại hay tự mở rộng quyền của PRB.
9
+
10
+ ## 1. Quyết định đề xuất
11
+
12
+ Đưa trọng tâm về **khả năng hoàn thành công việc thực tế của cùng một model khi chạy qua Piagent**. Ưu tiên sửa phần làm model thiếu thông tin, lặp việc, dùng công cụ sai hoặc mất trạng thái; chỉ giữ tối ưu token khi chất lượng công việc được bảo toàn.
13
+
14
+ Không có cơ sở để kết luận toàn bộ lõi Piagent đã lỗi thời. Repo đã có retrieval, context governor, durable task state, edit freshness, phase tools, model policy và progress guard. Vấn đề cụ thể là mức tích hợp, hiệu quả thực tế và tính tương thích chưa được chứng minh đủ. Vì vậy, đề xuất nâng cấp có chọn lọc trên nền hiện tại, không viết lại agent framework.
15
+
16
+ “Cải thiện logic của model” trong kế hoạch này nghĩa là giúp model **hiểu đúng yêu cầu, lấy đúng bằng chứng, chọn bước có ích, sửa đúng nguyên nhân và kiểm tra kết quả**. Kế hoạch không thay trọng số model và không hứa tăng năng lực suy luận nội tại hoặc giải mọi lỗi trong một lần.
17
+
18
+ Đề xuất đợt đầu gồm C0–C5 dưới đây, với C6 là nhánh tương thích cần hoàn tất trước khi khóa candidate phát hành. C7 là đánh giá sản phẩm sau khi có quyền tương ứng; nghiên cứu này chưa tạo quyền gọi provider. Tất cả thực hiện tuần tự, local, single-agent.
19
+
20
+ ## 2. Cơ sở nghiên cứu và giới hạn
21
+
22
+ Đã đối chiếu 10 hệ coding agent: Pi, Codex, Claude Code, Cursor, Aider, mini-SWE-agent, OpenHands SDK, Gemini CLI, OpenCode và Cline. Tám repo công khai được ghim commit; đọc các đoạn triển khai liên quan trong 13 file nguồn và một changelog. Claude Code và Cursor được nghiên cứu qua bài kỹ thuật của tác giả, không coi đó là audit mã nguồn lõi. Bốn bài nghiên cứu được dùng ở mức abstract/phạm vi kết luận để kiểm tra giả định, không coi là tái lập thí nghiệm.
23
+
24
+ Danh mục nguồn, mức đọc, SHA và đối chiếu với Piagent nằm trong [bản nghiên cứu](piagent-core-reasoning-research-2026-09-06.md) và [manifest nguồn](piagent-core-research-sources-2026-09-06.json). Các phần thiết kế bên dưới là tổng hợp đề xuất cho Piagent; kết quả của tác giả khác không phải bằng chứng Piagent sẽ đạt mức tiết kiệm tương tự.
25
+
26
+ Các nguồn thay đổi quyết định thiết kế rõ nhất:
27
+
28
+ - Codex giải thích tác động của prefix/tool order lên cache và cách quản lý lịch sử. Piagent cần dùng telemetry ở payload thực tế cùng usage, thay vì suy từ độ dài prompt. [OpenAI, agent loop](https://openai.com/index/unrolling-the-codex-agent-loop/)
29
+ - Anthropic ghi nhận thay đổi effort, mất reasoning khi resume và chỉ dẫn giảm verbosity có thể làm giảm chất lượng. Không mặc định hạ effort, cắt lịch sử hoặc ép trả lời ngắn để đạt chỉ tiêu token. [Postmortem 23/04/2026](https://www.anthropic.com/engineering/april-23-postmortem)
30
+ - Cursor mô tả lấy context theo nhu cầu và đánh giá thêm bằng công việc thực tế. Piagent cần nguồn chi tiết có thể đọc lại và ghi nhận phần sửa phải làm lại sau bàn giao. [Dynamic context](https://cursor.com/blog/dynamic-context-discovery), [harness improvement](https://cursor.com/blog/continually-improving-agent-harness)
31
+ - Aider cho thấy định dạng sửa code là một biến riêng; mini-SWE-agent cho thấy lõi đơn giản vẫn là đối chứng đáng xem xét. Không giả định thêm orchestration luôn tốt hơn. [Aider edit formats](https://aider.chat/docs/more/edit-formats.html), [mini-SWE-agent](https://mini-swe-agent.com/latest/)
32
+
33
+ ## 3. Điểm xuất phát phải giữ nguyên
34
+
35
+ | Hạng mục | Trạng thái đối chiếu |
36
+ |---|---|
37
+ | HEAD / branch | `c3a4427396984554eb1571e687caba0f831176ae` / `codex/piagent-35-recovery-20260831` |
38
+ | Working tree trước khi thêm bộ tài liệu này | 153 đường dẫn thay đổi; 0 staged. Mốc 95 là checkpoint cũ, không phải trạng thái hiện tại |
39
+ | E14 | `benchmark-validity-recovery-20260906T135741Z`; giữ nguyên evidence đã niêm phong |
40
+ | Full qualification lịch sử | 4.820 PASS / 22 FAIL / 222 SKIP; không có full qualification mới trong đợt nghiên cứu |
41
+ | E14 targeted | Worker 46 PASS; NDJSON/replay thực SDK 4 PASS; docs native command 6 PASS và schema/composite 268 PASS. Đây là bằng chứng phạm vi tương ứng |
42
+ | Docs còn mở | Chưa hoàn tất integration docs qua toàn bộ hành trình SDK đã cấu hình |
43
+ | Contract còn mở | Khác biệt expiry/reference về arity; 18 kỳ vọng correct-completion mặc định đỏ vẫn phải được giữ |
44
+ | R5 offline | 108 scripted sessions / 54 pairs; không chứng minh suy luận hay token thực của model |
45
+ | Run-6 | 13 started / 12 accepted exact / 1 unknown; `INVALID_MEASUREMENT`, không resume/retry/regrade/reuse/merge |
46
+ | D-026 | 76/184 đã dùng; fresh tối đa 108, 0 retry, 3.000.000 fresh token / 4 giờ; 12 → 18 → 54 → 108; unknown mới thì dừng |
47
+ | Quyền paid | D-026 khóa candidate cũ. Candidate mới cần rebind/qualification đúng identity; kế hoạch PCL không cấp quyền đó |
48
+ | Runtime đang dùng | Pi SDK 0.84.1; xem xét 0.85.1 qua kiểm tra tương thích riêng, chưa nâng |
49
+
50
+ E14 manifest SHA-256: `995bcc902f89e40e7ea0828b6e6d9fdcc9098bfb5f35ee7418624aa6ba4ab5fa`.
51
+
52
+ Chỉ thêm tài liệu trong đợt này. Tài liệu mới làm thay đổi selection của toàn candidate; không mô tả working tree mới là candidate E14 đã được qualification. Không sửa checkpoint E14 để làm nó trông khớp với nội dung mới.
53
+
54
+ ## 4. Mục tiêu sản phẩm và cách biết có ích
55
+
56
+ ### 4.1 Kết quả cần đạt
57
+
58
+ 1. Model hoàn thành đúng nhiều công việc hơn ngay trong lần bàn giao đầu, với cùng cấu hình model/effort và phạm vi quyền.
59
+ 2. Khi chưa đúng, model nhận được bằng chứng lỗi đủ dùng và sửa đúng phần liên quan; không đọc lại toàn repo hoặc sửa lại phần đã đạt vô cớ.
60
+ 3. Sau pause/resume/compaction, model tiếp tục đúng việc, nhớ ràng buộc và không lặp side effect.
61
+ 4. Tổng token, chi phí, thời gian và công sửa của người dùng giảm trên tập công việc tương đương.
62
+ 5. Lỗi đo, lỗi môi trường và lỗi sản phẩm được phân biệt; thiếu usage phải hiện là unknown, không biến thành 0.
63
+
64
+ ### 4.2 Chỉ số chính
65
+
66
+ | Chỉ số | Định nghĩa / cách dùng |
67
+ |---|---|
68
+ | First-handoff correctness | Việc đạt contract và đọc lại kết quả đúng ở lần bàn giao đầu; báo riêng theo loại việc/model |
69
+ | Eventual correctness | Đạt sau số vòng sửa đã cho phép; không gộp với thành công ngay lần đầu |
70
+ | False completion | Báo completed khi sai/thiếu/không có quyền; mọi trường hợp phát hiện được đều chặn phát hành |
71
+ | Cost per accepted task | Tổng chi phí của **mọi attempt trong cohort**, gồm thất bại và chi phí điều phối, chia số task đạt; bằng 0 task đạt thì không tính tỷ lệ hữu hạn |
72
+ | Token per assigned task | Tổng token theo các trường provider có thể đối soát / toàn bộ task được giao; không chỉ chọn những task thành công |
73
+ | Matched-success cost | Chi phí trên những cặp mà cả hai biến thể đều đúng; chỉ là chỉ số phụ vì có selection bias |
74
+ | User rework | Task phải mở lại, lý do, thời gian sửa tay, mức thay đổi bị bỏ/sửa; việc user giữ code không tự chứng minh code đúng |
75
+ | Latency | Thời gian tổng, thời gian chờ provider/tool/verifier, p50/p95; phân biệt thời gian chờ người dùng |
76
+ | Recovery fidelity | Giữ đúng yêu cầu, quyền, nguồn, việc còn mở và trạng thái side effect sau resume |
77
+
78
+ Đo riêng input/cache-read/cache-write/output/reasoning nếu provider công bố. Không cộng reasoning lần hai khi nó đã nằm trong output. Context occupancy, token ước tính, token provider và tiền thực là bốn loại dữ liệu khác nhau. Giá phải gắn model/provider/thời điểm; unknown không tự nội suy thành exact.
79
+
80
+ **Chỉ tiêu đề xuất cho đợt đầu:** giảm ít nhất 15% cost per accepted task trên cohort công việc đã khóa, giữ chất lượng không kém baseline và không xuất hiện false completion mới. Đây là mục tiêu cần kiểm nghiệm, không phải kết quả hay thay đổi threshold PRB. Nếu dữ liệu đủ lớn, dùng khoảng tin cậy cho chênh lệch chất lượng; margin đề xuất tối đa 2 điểm phần trăm, phải chốt trước chạy. Tập nhỏ không đủ chứng minh margin đó: kết quả được ghi inconclusive, không tuyên bố giữ nguyên hiệu năng toàn bộ model.
81
+
82
+ Không đợi đạt con số tiết kiệm mới công nhận một sửa lỗi correctness cần thiết. Sửa lỗi correctness và tối ưu chi phí có lý do phát hành khác nhau.
83
+
84
+ ## 5. Kiến trúc đích: dùng lại lõi đang có
85
+
86
+ ```mermaid
87
+ flowchart LR
88
+ A[Yêu cầu và quyền đã chốt] --> B[Trạng thái task hiện có]
89
+ B --> C[Context đúng nguồn và đúng thời điểm]
90
+ C --> D[Model chọn bước tiếp theo]
91
+ D --> E[Công cụ hiện có và guard]
92
+ E --> F[Kết quả quan sát được]
93
+ F --> G[Kiểm chứng theo contract]
94
+ G -->|Đạt| H[Đọc lại và bàn giao]
95
+ G -->|Sai và còn quyền sửa| B
96
+ G -->|Không hỗ trợ hoặc hết quyền| I[Bàn giao hữu hạn]
97
+ E --> J[Usage và tiến độ gắn task]
98
+ G --> J
99
+ ```
100
+
101
+ Model quyết định dựa trên source và observations. Durable task state giữ yêu cầu, quyền và trạng thái; memory chỉ giúp tìm thông tin. Receipt/verifier mới quyết định acceptance trong phạm vi được cấp. Một ghi chú, một lời tự đánh giá hoặc một test do model tự tạo không được tự nâng thành quyền hoàn tất.
102
+
103
+ ## 6. Các gói công việc
104
+
105
+ Đường dẫn ở phần này tương đối với repo duy nhất ở đầu tài liệu. Đây là **candidate file/hunk dự kiến**, không phải quyền ghi đè cả file. Chỉ sửa hunk có bằng chứng thiếu/sai; ưu tiên không thay đổi module đã đáp ứng.
106
+
107
+ | Gói | Ưu tiên | Phụ thuộc | Đầu ra |
108
+ |---|---|---|---|
109
+ | C0 — Khóa phạm vi | Bắt buộc | Đọc plan | Manifest bảo toàn, danh sách invariant, đối chứng và backlog hữu hạn |
110
+ | C1 — Nối chi phí với task | Cao nhất | C0 | Báo cáo task có usage, tool count và nguồn số liệu rõ |
111
+ | C2 — Payload và context | Cao | C1 | Context hữu ích, cache được quan sát, compaction giữ nghĩa |
112
+ | C3 — Công cụ sửa code | Cao | C1, C2 phần liên quan | Ít lỗi đọc/sửa/đọc lại; lỗi công cụ có hành động sửa rõ |
113
+ | C4 — Luồng giải quyết và sửa lỗi | Cao | C2–C3 | Vòng xử lý dựa trên evidence, giữ correct/wrong/unsupported |
114
+ | C5 — Memory và resume | Vừa | C2, C4 | Tiếp nối công việc đúng sau đổi context/khởi động lại |
115
+ | C6 — Tương thích SDK/model | Cao trước freeze | C0, C1 | Phiên bản và payload được kiểm tra; model pin giữ nguyên |
116
+ | C7 — Đánh giá sản phẩm, qualification | Sau triển khai | Candidate đã freeze | Quyết định giữ/bỏ từng tối ưu và phát hành có giới hạn rõ |
117
+
118
+ ### C0. Khóa một đợt nâng cấp có thể kết thúc
119
+
120
+ - Dùng lại E14 và finite register 27 dòng; không mở lại toàn bộ audit. Tạo bảng liên kết lỗi cũ với gói PCL khi thực sự chung nguyên nhân.
121
+ - Ghi candidate hunks riêng với baseline hash, lý do, tests liên quan, feature flag nếu phù hợp. Không gom 153 đường dẫn vào một “clean candidate”.
122
+ - Chốt nhóm invariant: quyền, source identity, dirty work, model pin, đúng/sai/unsupported, tool-call/result pairing, exact usage, continuation maximum 1.
123
+ - Chốt tập công việc ở mục 8 trước khi tối ưu. Những task từng dùng để sửa code thuộc development set.
124
+ - **Đóng C0:** có danh sách file/hunk hữu hạn và cách khôi phục đúng phần mới mà không chạm recovery cũ. Không chạy full suite ở C0 chỉ để tìm số PASS.
125
+
126
+ ### C1. Đo đúng tiền/token và việc phải làm lại
127
+
128
+ **Bằng chứng:** `runtime/product/efficiency-metrics.ts` nhận `exactUsage` nhưng các call site đã đọc không truyền vào; `actualInvocationCounts` và `timeToFirstCorrectEditMs` còn null. Đây là khoảng trống trong báo cáo task, không phải kết luận toàn bộ hệ usage/benchmark thiếu accounting.
129
+
130
+ **Candidate:** `runtime/product/efficiency-metrics.ts`, `runtime/product/operator-projections.ts`, `runtime/registration/context-commands.ts`; đọc/tận dụng `runtime/session/usage.ts`, các hooks quan sát message/tool và `runtime/trajectory/trajectory-store.ts`. Nếu thiếu cầu nối, thêm module nhỏ cùng khu vực product; không tạo collector cạnh tranh với accounting đã có.
131
+
132
+ **Hunks dự kiến:** nối usage snapshot vào task bằng taskRunId/request identity; phân biệt delta/cumulative; chống đếm đôi sau replay; ghi tool invocation thực; marker edit→verifier phải gắn đúng source digest. Dùng bảng tổng hợp và metadata được phép, không lưu raw session/reasoning/auth.
133
+
134
+ **Đóng C1:** fixtures đối soát được success, lỗi parse có thể đã tính phí, abort, late usage, unknown, replay trùng và hai task cùng session. Không thể gắn chắc usage vào task thì giữ unknown. Task report và nguồn runtime khớp; không cần provider để kiểm logic cộng số, nhưng chưa được tuyên bố số thật đã exact end-to-end khi chưa có bằng chứng runtime phù hợp.
135
+
136
+ ### C2. Context đủ dùng, giữ cache và giữ nghĩa
137
+
138
+ **Tái sử dụng:** `extensions/context-engine.js`, `runtime/context/adaptive-planner.ts`, `runtime/context/context-delivery.ts`, `runtime/hooks/agent-start-hook.ts`, `runtime/session/adaptive-context-governor.ts`, `adaptive-context-ledger.ts`, `runtime/session/system-prompt.ts`, `runtime/model/provider-wire-fingerprint.ts`.
139
+
140
+ **Candidate hunks:**
141
+
142
+ 1. Lập bản đồ thành phần prompt/tool/context thực sự được gửi. Giữ riêng canonical telemetry và fingerprint có thứ tự tool ở payload; module wire đã tồn tại, không viết thêm bản trùng. Fingerprint tương đương theo relocation không được dùng thay bằng chứng cache hit thực.
143
+ 2. Bỏ phần hướng dẫn trùng hoặc context tiêm lại **chỉ sau khi chỉ ra invariant nào đã có nơi giữ**. Không sửa nội dung yêu cầu và benchmark prompt/oracle.
144
+ 3. Giữ pack nhỏ khi đã có path rõ; chỉ mở rộng theo symbol/dependency/evidence thiếu. Index hiện có đã lexical/symbol/RRF; chưa thêm vector database hay embedding service mặc định.
145
+ 4. Ưu tiên đoạn source hiện hành, phạm vi thay đổi, contract và kết quả liên quan. Kết quả dài dùng phần tóm tắt có cấu trúc kèm tham chiếu đọc lại được trong quyền cho phép; giữ exit code, truncation marker, vị trí lỗi và nguồn.
146
+ 5. Compaction giữ task truth nguyên nghĩa, open obligations và protocol. Dùng governor hiện có; không sao chép threshold 50%/số token từ agent khác. Kiểm xem compaction SDK và governor có hoạt động chồng lấn trong host thực hay không; chưa coi đó là lỗi đã xác nhận.
147
+
148
+ **Đóng C2:** các phép biến đổi giữ user correction, tool-call/result pairing, nguồn và quyền; context cũ sau đổi source không được nhận là source mới. Có controls dài/ngắn, code đa ngôn ngữ, mất cache, cold resume. C1 phải cho thấy giảm dữ liệu lặp mà không tăng đọc lại; lợi ích token/model thực chờ C7.
149
+
150
+ ### C3. Công cụ giúp model sửa đúng ngay từ thao tác
151
+
152
+ **Tái sử dụng:** `runtime/quality/edit-freshness-guard.ts`, `runtime/tools/phase-tool-runtime.ts`, `runtime/tools/phase-tools.ts`, `runtime/hooks/tool-result-retrieval.ts` và tool registrations liên quan được truy ra ở C0.
153
+
154
+ **Candidate hunks:** chuẩn hóa lỗi đọc/sửa thành reason code + vị trí + current source reference + bước hợp lệ tiếp theo; tránh lặp lại toàn log. Kiểm stale-read trước edit bằng guard đã có. Phân biệt lỗi hunk không khớp, lỗi đường dẫn, tool bị cắt giữa chừng và lỗi code sau khi edit thành công. Nếu SDK đã xử lý đúng thì chỉ nối telemetry/feedback.
155
+
156
+ Dùng patch/search-replace phù hợp khả năng model đang được pin; không bắt mọi model xuất lại nguyên file. Không tự sửa sang file khác khi path ban đầu sai. Thay đổi format/wrapper ảnh hưởng treatment phải được ghi rõ; không bật ngầm.
157
+
158
+ Phase tools hiện có cần được kiểm tra tính hữu dụng và cache cost: giảm danh mục có thể giúp chọn tool nhưng thay danh mục liên tục cũng có thể mất cache. Chọn tại ranh giới hợp lệ, không rung cấu hình theo từng câu. Không thêm công cụ chỉ để tăng số tính năng.
159
+
160
+ **Đóng C3:** xử lý được file đổi sau read, ambiguous match, multi-hunk có phần đã áp, partial output và permission denial; không sửa nhầm file, không phát lại side effect. Đo edit failure và re-read bằng C1. Không nới guard để tạo PASS.
161
+
162
+ ### C4. Cải thiện luồng suy luận bằng trạng thái và phản hồi
163
+
164
+ **Tái sử dụng:** `runtime/solver/solver-policy.ts`, `solver-shadow.ts`, `runtime/trajectory/*`, `runtime/recovery/recovery-policy.ts`, `semantic-repair-runtime.ts`, `continuation-budget.ts`, `runtime/hooks/completion-hook.ts` và verification runtime hiện có.
165
+
166
+ **Thay đổi hành vi đề xuất:**
167
+
168
+ - Việc nhỏ, rõ: đọc đúng vùng → sửa → kiểm tra phù hợp → bàn giao; không bắt qua mọi pha hoặc viết lại một plan dài.
169
+ - Việc khó: giữ một bản trạng thái ngắn gồm mục tiêu, điều chưa biết, giả thuyết hiện hành, bằng chứng cần phân biệt và bước kế tiếp. Đây là trạng thái công việc, không yêu cầu lưu chain-of-thought riêng tư.
170
+ - Khi fail: xác định lớp lỗi trước; chọn kiểm tra nhỏ nhất có thể bác bỏ giả thuyết. Sửa phần có liên hệ nhân quả; giữ nguyên phần đúng.
171
+ - Một bước được coi là tiến bộ khi có source/evidence/nghĩa vụ đổi liên quan. Không dùng số tool call làm đại diện cho chất lượng; không coi lặp test sau sửa source là cùng một lần không tiến bộ.
172
+ - Đúng phải được completed theo contract. Wrong phải bị chặn với evidence. Unsupported phải bàn giao hữu hạn, nói rõ capability thiếu; không biến thành completed hay dùng test handoff xanh xóa correct-completion đỏ.
173
+
174
+ Solver hiện mặc định shadow; nhánh host model routing đã đọc báo `hostBoundary: unavailable`. Không suy từ đề xuất solver thành hành vi đã được enforce. Nếu cần thêm consumer cho recommendation phải ghi thành hunk riêng, chứng minh không làm tăng quyền hoặc tự đổi model.
175
+
176
+ **Đóng C4:** controls đi qua hành trình task thực cho correct, sai nhưng test yếu xanh, unsupported, stale evidence và repeated signature. Dùng đúng global continuation maximum 1 hiện có; không thêm bộ đếm, không tự tạo lượt model retry. C4 đóng lỗi điều phối, không thay thế model-quality evidence ở C7.
177
+
178
+ ### C5. Memory và tiếp nối có kiểm nguồn
179
+
180
+ **Tái sử dụng:** `extensions/repository-memory.js`, `runtime/context/repository-memory-hints.ts`, `runtime/recovery/resume-state.ts`, `runtime/session/adaptive-context-ledger.ts`, `runtime/trajectory/trajectory-store.ts`.
181
+
182
+ Memory hiện đã có citations, expiry, protected-path filtering và lời nhắc advisory. Không xây “bộ nhớ thông minh” thứ hai. Phần cần kiểm là hint còn hữu ích sau rename/source change hay không và model có thật sự đọc lại nguồn trước khi dựa vào nó.
183
+
184
+ **Candidate hunks:** bổ sung freshness checking vào đúng đường chọn/giao hint nếu thiếu; lưu quyết định đã được xác minh và bằng chứng tối thiểu, giới hạn kích thước/tuổi. Resume phải lấy task state hiện tại, không khôi phục một plan suy đoán hoặc receipt của tree cũ. Không lấy ghi chú model làm authorization.
185
+
186
+ **Đóng C5:** đổi file, rename, cache cũ, user đổi ý, pause/resume và side effect chưa rõ đều giữ đúng nghĩa vụ. Không replay gửi/gọi bên ngoài khi kết quả chưa rõ. Không đọc raw session/secret để dựng memory cho nghiên cứu này.
187
+
188
+ ### C6. Giữ Piagent phù hợp SDK và model mới
189
+
190
+ **Candidate:** `package.json`, `package-lock.json` chỉ sau quyết định phiên bản; `runtime/model/capabilities.ts`, `runtime-snapshot.ts`, `provider-wire-fingerprint.ts`, `openai-codex-reasoning.ts`, `model-route-policy.ts` và các tests host/SDK đang có.
191
+
192
+ Pi 0.85.1 là ứng viên tương thích được ghi nhận trong nguồn release. 0.85.0 từng có lỗi import SDK mà 0.85.1 sửa; “mới nhất” không đủ làm lý do nâng trực tiếp. [Pi releases](https://github.com/earendil-works/pi/releases)
193
+
194
+ Thực hiện một ma trận contract hữu hạn: import/package closure; hook order; steering/abort; tool-call/result; usage/cache semantics; reasoning/phase/compaction opaque state; cwd/session resume. Không yêu cầu lộ reasoning; chỉ giữ đúng protocol do provider trả. Chỉ chuyển SDK khi contract cần dùng qua được và không mất recovery work.
195
+
196
+ Model routing đang có bảng lựa chọn cụ thể và bảo toàn explicit pin; mặc định off, host đã đọc không cho auto prelaunch. Đề xuất tách **khả năng protocol** khỏi **xếp hạng chất lượng**: catalog giúp biết hỗ trợ gì, không tự chứng minh model nào giỏi hơn. Giữ model/effort của người dùng; không tự thêm Astra hay đổi sang model rẻ để tạo mức tiết kiệm.
197
+
198
+ **Đóng C6:** mỗi host/model được ghi supported/unsupported/unknown theo contract; khóa SDK, dependency, payload policy và tests đúng identity. Nếu phải đổi SDK, đối chứng và Piagent trong phép đo causal đều dùng cùng SDK; không đổi SDK cùng một hunk tối ưu context rồi quy toàn bộ lợi ích cho context.
199
+
200
+ ### C7. Đánh giá trên sản phẩm và quyết định phát hành
201
+
202
+ Chỉ bắt đầu phần phụ thuộc provider khi có quyền riêng phù hợp. Trước đó có thể chuẩn bị task specification, adapter usage và protocol offline; không reserve campaign hoặc tạo paid authority.
203
+
204
+ Sau C1–C6, khóa candidate và chạy các kiểm tra liên quan theo hunk. Chạy full qualification đúng identity **một lần tại ranh giới freeze**; chỉ chạy lại khi có sửa đổi/failure cụ thể cần xác minh. Giữ toàn bộ fail cũ và lý do; targeted PASS không thay thế full.
205
+
206
+ Sau đó đánh giá theo mục 8; báo công việc hoàn tất, lỗi còn lại, token/chi phí, latency và phần người dùng phải sửa. Nếu thiếu mẫu hoặc thiếu exact usage thì kết luận giới hạn/inconclusive, không mở thêm lượt để tìm PASS. Hạng mục không có lợi ích hoặc gây hại được tắt phần mới theo manifest hunk, bảo toàn phần phục hồi.
207
+
208
+ ## 7. Danh sách vấn đề hữu hạn cho đợt PCL
209
+
210
+ Đây là register bổ sung cho vấn đề lõi; không thay finite register PRB 27 dòng.
211
+
212
+ | ID | Loại / mức bằng chứng | Hướng xử lý | Điều kiện đóng |
213
+ |---|---|---|---|
214
+ | L01 | Phép đo: task report thiếu exactUsage wiring, tool count và marker edit→verification; xác nhận trong code | C1 nối nguồn hiện có | Đối soát không trùng/mất, unknown được giữ |
215
+ | L02 | Context/chi phí: hiệu quả cache và dữ liệu lặp chưa được chứng minh; giả thuyết, đã có wire telemetry | C2 đo rồi tối ưu hunk gây lãng phí | Giảm tổng chi phí có bảo toàn chất lượng, hoặc bác bỏ và không đổi |
216
+ | L03 | Context/logic: nguy cơ mất nghĩa ở giao điểm governor–SDK–resume; cần kiểm integration | C2/C5 ma trận bảo toàn | Correct/correction/protocol/nguồn sống qua mọi transition đã khai báo |
217
+ | L04 | Công cụ: chưa có bằng chứng đầy đủ về edit failure cost theo model; không coi mọi format là bug | C3 thống kê và sửa đường lỗi có thật | Ít lỗi thao tác, không sửa nhầm file hoặc phát lại phần đã áp |
218
+ | L05 | Điều phối: solver có recommendation/shadow, chưa chứng minh giá trị hành vi | C4 kiểm consumer và tối giản pha không cần | Hoàn thành đúng với bước có ích; giữ nguyên quyền/counter |
219
+ | L06 | Memory: cơ chế advisory/freshness tồn tại một phần; chưa chứng minh giảm đọc lại | C5 kiểm nguồn và hiệu quả | Hints sai/cũ không dẫn đến acceptance; không có lợi thì giữ/tắt theo baseline |
220
+ | L07 | Tương thích: SDK 0.84.1 so với ứng viên mới, model policy cụ thể | C6 qualification hữu hạn | Phiên bản/payload được hỗ trợ rõ; không silent substitution |
221
+ | L08 | Bằng chứng sản phẩm: chưa có causal benefit của core và real-work retention cho candidate mới | C7 đối chứng và holdout | Có kết luận theo dữ liệu, kể cả no-benefit/inconclusive |
222
+
223
+ Mỗi dòng đóng bằng bằng chứng hoặc quyết định “không thay đổi vì giả thuyết bị bác bỏ”. Không cần phải viết code cho đủ tám dòng.
224
+
225
+ Các việc PRB vẫn mở được quản lý riêng: docs full SDK integration; expiry contract/reference; 18 correct-completion đỏ; full qualification; identity/rebind paid. Research lõi không xóa chúng. Nếu chúng chặn một task sản phẩm đã chọn, giải đúng issue hiện có trước, không mở thêm bộ chứng minh tổng quát.
226
+
227
+ ## 8. Đánh giá thực tế mà không biến toàn bộ dự án thành benchmark
228
+
229
+ ### 8.1 Ba tầng bằng chứng
230
+
231
+ | Tầng | Trả lời được | Không trả lời được |
232
+ |---|---|---|
233
+ | Offline contracts/replay | Protocol, accounting, state, guard và lỗi đã tái hiện | Model thật có tự tìm ra lời giải hay không |
234
+ | Cùng model + cùng SDK, chỉ thay feature PCL | Đóng góp của cơ chế Piagent trong điều kiện đã khóa | Ưu thế toàn sản phẩm so với Codex ở host khác |
235
+ | Công việc sử dụng thực tế và đối chiếu sản phẩm | Người dùng có nhận kết quả hữu ích, ít phải sửa lại hơn | Quan hệ nhân quả của từng module nếu nhiều yếu tố cùng đổi |
236
+
237
+ PRB Piagent–Codex là so sánh sản phẩm/hệ chạy; không dùng nó một mình để kết luận thuật toán lõi Piagent làm model suy luận tốt hơn.
238
+
239
+ ### 8.2 Corpus công việc đề xuất, chưa cấp session
240
+
241
+ Khởi đầu với **24 task specifications**, không phải 24 phiên provider đã được phép. Đề xuất 12 development / 12 holdout, chia theo repo hoặc cụm nguyên nhân để tránh biến thể cùng lỗi rơi vào cả hai tập. Đây là đợt kiểm tra khả thi; không đủ chứng minh mọi model không suy giảm 2 điểm phần trăm.
242
+
243
+ | Nhóm việc | Số spec dự kiến | Kết quả người dùng cần |
244
+ |---|---:|---|
245
+ | Sửa lỗi trong code có sẵn | 4 | Sửa đúng nguyên nhân, giữ API và hành vi lân cận |
246
+ | Tính năng chạm nhiều file | 4 | Luồng hoàn chỉnh, không chỉ unit test xanh |
247
+ | Refactor/migration có tương thích | 4 | Giữ nghĩa và cấu trúc dễ bảo trì |
248
+ | Debug theo log/dữ liệu lỗi | 4 | Phân biệt runtime, dữ liệu và phép đo |
249
+ | Resume sau gián đoạn/user correction | 4 | Tiếp tục đúng, không lặp việc hoặc side effect |
250
+ | Docs/config/việc nhỏ | 4 | Hoàn tất nhẹ, đủ và đúng phạm vi |
251
+
252
+ Mỗi spec có yêu cầu, source identity, tiêu chí hành vi và lệnh kiểm chứng hợp lệ; không tạo private business logic trong core. Chỉ dùng repo/task mà người dùng có quyền chia sẻ; không lấy raw session riêng tư làm dataset. Một task thiếu quyền/không hỗ trợ có expected handoff riêng, không tính là completed.
253
+
254
+ Nguồn task thực ưu tiên backlog người dùng thường làm và case mới chưa từng dùng sửa core. Nếu chưa có đủ repo sạch quyền, ghi thiếu corpus; không bịa “real-world evidence” từ 24 fixtures.
255
+
256
+ ### 8.3 Đối chứng và số lượt
257
+
258
+ - Baseline là Piagent hiện tại đóng băng và Pi SDK tối thiểu có cùng quyền/công cụ cần thiết. Không tháo safety guard để tạo baseline rẻ hơn.
259
+ - Một phép thử thay một nhóm cơ chế; cùng model snapshot/effort, provider, task, source, quyền, tài nguyên, timeout và cache condition. Ghi rõ thứ tự/cold-warm; tránh memory hoặc kết quả lần trước rò sang lần sau.
260
+ - Chọn tối đa hai giả thuyết tối ưu đáng giá nhất sau dữ liệu C1; không chạy toàn bộ tích Descartes model × prompt × tool × compaction.
261
+ - Trước bất kỳ lượt trả phí nào, lập số lượt tối đa từ số spec × biến thể × model × repetition và toàn bộ chi phí phụ; chốt ngân sách, stopping rules và phân tích trước chạy. Kế hoạch này chưa chọn hay cấp một campaign mới.
262
+ - Sau development chỉ có một đợt holdout theo protocol đã khóa. Nếu nhìn failure holdout rồi sửa, nó chuyển thành regression/development; cần holdout mới được chốt riêng, không chạy lại cùng đề rồi gọi là unseen.
263
+
264
+ **Quan hệ với 108:** không thêm canary ngoài 108; không tự chuyển các mốc 12 → 18 → 54 → 108 sang corpus này. Nếu chọn candidate PCL cho PRB thì cần quyết định thay identity/treatment và rebind đúng quyền trước paid. Nếu giữ PRB cũ, PCL chạy thành đánh giá riêng chỉ sau ngân sách riêng. Không dùng campaign invalid làm đối chứng hợp lệ.
265
+
266
+ ## 9. Quy tắc ngăn vòng sửa–giả lập–fail kéo dài
267
+
268
+ 1. Trước sửa phải có: loại lỗi, evidence tối thiểu, giả thuyết, hunk định sửa, kiểm tra có thể bác bỏ giả thuyết và điều kiện đóng.
269
+ 2. Tái sử dụng failure register. Cùng biểu hiện chưa chắc cùng nguyên nhân; cùng nguyên nhân trên nhiều case phải sửa ở điểm chung thay vì thêm nhánh theo tên đề.
270
+ 3. Sau hai **vòng phát triển** không tạo bằng chứng mới cho một giả thuyết, dừng vá giả thuyết đó, viết kết luận và giới hạn capability. Đây là giới hạn quản lý công việc của người triển khai, không phải counter runtime mới hay hai provider retries.
271
+ 4. Chỉ nghiên cứu tiếp đúng câu hỏi chưa trả lời: tối đa một khối 4 giờ kỹ thuật cho mỗi unknown được đưa vào C0; đầu ra là trả lời/prototype bounded/không hỗ trợ. Không mở nhánh nghiên cứu vô thời hạn.
272
+ 5. Không sửa grader/oracle/threshold để hạ tiêu chuẩn, không nhận test yếu làm đủ bằng chứng, không tăng budget runtime để che thuật toán chậm.
273
+ 6. Không chạy full suite lặp để tìm PASS. Sau kiểm tra cần thiết, khóa candidate và quyết định; mọi lần chạy lại phải có thay đổi hay failure cụ thể làm lý do.
274
+ 7. Đóng đợt bằng một trong ba kết luận: có lợi và đạt contract; không có lợi nên bỏ phần tối ưu; chưa đủ bằng chứng và giữ phạm vi chưa phát hành. Không buộc mọi thử nghiệm thành thành công.
275
+
276
+ “Dứt điểm” ở đây là chấm dứt vòng làm việc không có tiêu chí dừng và sửa ở nguyên nhân chung. Không ai có thể bảo đảm từ nay không còn lỗi hoặc model không bao giờ thất bại.
277
+
278
+ ## 10. Phân bổ công việc và điều kiện tiếp tục
279
+
280
+ Ước lượng cho một người triển khai, tính bằng ngày làm việc tập trung, chưa gồm thời gian chờ quyền/provider/unknown mới:
281
+
282
+ | Chặng | Ước lượng | Review hữu hạn |
283
+ |---|---:|---|
284
+ | C0 + C1 | 2–3 ngày | Có số liệu task đáng tin trước tối ưu |
285
+ | C2 + C3 | 3–5 ngày | Context/tool changes có lý do và controls |
286
+ | C4 + C5 | 3–4 ngày | Correctness, recovery và memory không mất nghĩa |
287
+ | C6 | 1–2 ngày | SDK/model contract được khóa |
288
+ | C7 offline + báo cáo | 1–2 ngày | Qualification và readiness; paid đánh giá riêng |
289
+
290
+ Tổng offline dự kiến **10–16 ngày**, là phạm vi lập kế hoạch, không phải cam kết mọi issue sẽ hết trong thời gian đó. C0 có quyền cắt các gói không có gap thật. Không dành thời gian viết thêm framework/benchmark mới để thay cho sửa đường chạy sản phẩm.
291
+
292
+ ## 11. Quyền và thay đổi contract cần được ghi nhận
293
+
294
+ PCL-A đã được người dùng duyệt rõ ràng cho C0–C6 offline và chuẩn bị C7. Pause cũ được gỡ trong phạm vi này. Các phê duyệt A-v1/A-v2 và ranh giới PRB được bảo toàn; không phát sinh quyền paid hoặc nâng SDK.
295
+
296
+ | Quyết định tương lai | Nội dung cụ thể | Trạng thái hiện tại |
297
+ |---|---|---|
298
+ | PCL-A | Resume C0–C6 offline, theo hunk manifest; cho sửa telemetry/context/tool/task-state trong phạm vi đề xuất; giữ mọi invariant quyền và acceptance | Đã duyệt và triển khai offline; xem báo cáo PCL |
299
+ | PCL-SDK | Chọn version SDK sau ma trận tương thích; nếu có đổi package/lock thì khóa identity mới | Chưa đổi |
300
+ | PCL-EVAL | Khóa spec, quality margin, số lượt, chi phí và provider cho phép đánh giá sản phẩm | Chưa tạo authority |
301
+ | PRB-B/rebind | Chọn candidate nào tiếp tục 108, đúng qualification và D-026 binding | Chưa được suy ra từ PCL |
302
+ | Contract PRB còn mở | Expiry/reference và kỳ vọng default completion xử lý theo finite register, có decision cụ thể nếu cần đổi contract | Giữ nguyên; cần quyết định contract riêng |
303
+
304
+ Không tự thêm independent verifier, reviewer model, multi-agent, vector service, network backend hay quyền đọc dữ liệu riêng. Prompt/tool policy mới thuộc candidate mới; không âm thầm nhập vào treatment PRB đã khóa.
305
+
306
+ ## 12. Bảo toàn recovery và next action
307
+
308
+ - Giữ nguyên tất cả recovery files hiện có và E14. Không stash/reset/discard, không worktree, commit, push hoặc publish trong đợt này.
309
+ - Candidate PCL dùng manifest theo hunk và baseline hash. Một file đang dirty vẫn có thể nhận hunk mới sau khi resume đúng quyền, nhưng phải lưu riêng preimage và diff của hunk đó; không đưa toàn bộ thay đổi cũ vào candidate một cách mặc định.
310
+ - Rollback chỉ đảo đúng hunk PCL khi preimage còn khớp; conflict thì dừng phần đó để xử lý, không restore cả file từ HEAD.
311
+ - Giữ tài liệu nghiên cứu tách khỏi source và evidence đã khóa. Manifest nguồn chỉ chứa metadata công khai, không chứa auth/token/raw session.
312
+
313
+ **Next action:** đọc [báo cáo triển khai offline](piagent-core-offline-implementation-2026-09-06.md), kết quả qualification và checkpoint PCL mới trước khi chọn candidate/contract/SDK/paid. Không dùng E14 để qualification identity PCL.
314
+
315
+ ## 13. Checklist / checkpoint của plan này
316
+
317
+ - [x] Đọc chỉ dẫn repo và kế hoạch PRB; pause lịch sử đã được PCL-A gỡ cho offline.
318
+ - [x] Đối chiếu HEAD/branch/153 đường dẫn thay đổi, E14 và qualification lịch sử.
319
+ - [x] Nghiên cứu blog/docs của tác giả, ghim tám repo, đọc đoạn nguồn liên quan.
320
+ - [x] Phân biệt cơ chế có sẵn, gap xác nhận và giả thuyết chưa chứng minh.
321
+ - [x] Lập C0–C7, register L01–L08, file/hunk dự kiến và điều kiện đóng.
322
+ - [x] Tách real model/product evidence khỏi offline fixture và PRB 108.
323
+ - [x] Lập quyền, bảo toàn, rollback và bước tiếp theo cụ thể.
324
+ - [x] Resume và thực hiện PCL-A local, single-agent.
325
+ - [x] C0: preimage, 153 recovery hashes, 188 E14 artifacts và hunk manifest.
326
+ - [x] C1: request/task usage, actual tool execution, solver binding và marker edit→verifier; unknown giữ nguyên.
327
+ - [x] C2: đo payload tại hook; kiểm governor/SDK compaction/resume, chưa cắt thêm context.
328
+ - [x] C3–C5: kiểm lại cơ chế công cụ, pha, continuation, advisory memory/resume; không thêm engine/counter.
329
+ - [x] C6: giữ 0.84.1, kiểm contract offline; quyết định nâng 0.85.1 vẫn riêng.
330
+ - [x] C7 offline: 24 spec đề xuất, protocol, freeze và đường dẫn kết quả qualification.
331
+ - [ ] Full qualification PASS và toàn bộ correct-completion đỏ được đóng.
332
+ - [ ] Lợi ích model/token và memory retention trên công việc thật được chứng minh.
333
+ - [ ] C7 có bằng chứng model thật và công việc thực tế.
334
+ - [ ] Chốt candidate/rebind trước paid PRB nếu dùng candidate mới.
335
+
336
+ Checkpoint tài liệu: [piagent-core-plan-checkpoint-2026-09-06.json](piagent-core-plan-checkpoint-2026-09-06.json). Việc hoàn tất nghiên cứu không được diễn giải thành hoàn tất benchmark hay nâng cấp lõi.
337
+
338
+
339
+ ## 14. Bàn giao PCL-A offline
340
+
341
+ Báo cáo, giới hạn theo phase và hai giả thuyết tiếp theo: [offline implementation](piagent-core-offline-implementation-2026-09-06.md). [24 task specifications](piagent-core-evaluation-specs-2026-09-06.json) là đề xuất chưa có source identity/quyền; không phải corpus mới được phép chạy.
342
+
343
+ Evidence local giữ tại `.tmp/pcl-20260906/`: `00-preservation.json`, `20-candidate-freeze.json`, `21-pcl-hunks.patch`, `30-finite-register.json`, `31-pcl-checkpoint.json`, `32-offline-report.md`, `33-evidence-manifest.json`. Kết quả qualification thuộc đúng freeze này và được ghi kể cả FAIL/SKIP; không suy ra từ checklist. Checkpoint nghiên cứu cũ giữ nguyên làm parent, E14 không sửa.
344
+
345
+
346
+ ## 15. Tiếp tục triển khai và chạy đầy đủ
347
+
348
+ Người dùng yêu cầu tiếp tục xử lý toàn bộ, không dừng ở lỗi đầu tiên. Evidence nối tiếp ở `.tmp/pcl-full-20260906/`; các manifest và báo cáo PCL-A trước đó giữ nguyên.
349
+
350
+ - [x] Chạy hết canonical offline với worker đã pin và giữ kết quả lỗi: 5.176 tests, 5.071 PASS, 44 FAIL, 3 cancelled, 58 SKIP. Browser và typecheck PASS; các bước cuối đã chạy. Đây là kết quả stage 1, không phải qualification của các sửa đổi tiếp theo.
351
+ - [x] Xác minh lại toàn bộ 2.718 tệp của stage 1 không đổi trong lượt chạy; bảo toàn preimage trước stage 2.
352
+ - [x] Sửa đối chiếu vật liệu tài liệu: dùng baseline đã gắn với task/session và HEAD lúc bắt đầu, giữ đúng khác biệt giữa raw content hash và working-tree digest; kiểm thứ tự đọc lại sau ghi bằng journal có chữ ký.
353
+ - [x] Hành trình implement tài liệu qua SDK thật, mô hình kịch bản offline: bản đúng completed và bền sau đóng phiên; bản thiếu restart command bị chặn. Không cấp quyền production và không thay expected outcome mặc định.
354
+ - [x] Kiểm tra hồi quy API baseline, composite acceptance, signed verifier, stale document, thiếu cấu hình và hash giả; targeted PASS không thay full.
355
+ - [x] Năm ca lỗi của stage 1 đạt khi chạy riêng tuần tự với cùng deadline; có cơ sở giới hạn cạnh tranh tài nguyên trong canonical test runner xuống hai tệp đồng thời, giữ đủ selection và assertions.
356
+ - [x] Full stage 3: 5.179 tests, 5.103 PASS, 18 FAIL, 0 cancelled, 58 SKIP; browser và typecheck PASS. Hai tệp chạy song song được xác minh từ tiến trình thật. Toàn bộ 2.719 tệp giữ nguyên qua lượt chạy. Lượt stage 2 trước đó không đủ qualification vì tham số Node đặt sai vị trí; log và lý do hủy giữ nguyên.
357
+ - [x] Kiểm offline hành trình docs scout → implement → review với hợp đồng do fixture host duyệt: cả ba lượt completed và bền sau đóng phiên; thiếu restart command bị chặn. Rà soát không ghi lại tài liệu đã đúng. Đây không phải đóng default correct-completion.
358
+ - [ ] Giữ mở 18 kỳ vọng default correct-completion, expiry API/reference và các lỗi full còn lại cho tới khi có bằng chứng đóng đúng contract.
359
+
360
+ Không có bằng chứng mới về năng lực model thật, mức tiết kiệm token hoặc billed cost. SDK 0.84.1 giữ nguyên. Dữ liệu corpus và rebind paid chưa phát sinh từ lượt offline này.
361
+
362
+
363
+ ## 16. Bản sửa tiếp nối stage 4
364
+
365
+ Bộ định tuyến nay giải phóng hồ sơ thao tác native đã hoàn tất bằng đúng session/operation/request identity, sau khi kiểm hồ sơ đóng hợp lệ. Không gọi callback composite của tác vụ thường và không phát sinh acceptance authority. Các trường hợp pending, hủy, bị chặn, lỗi ranh giới hoặc hồ sơ không hợp lệ vẫn không được giải phóng theo đường này.
366
+
367
+ Kiểm phạm vi chỉ đòi journal ghi cho tệp thực sự thay đổi; quyền được phép sửa không buộc lượt review phải ghi lại tệp. Thay đổi ngoài scope vẫn FAIL, thay đổi thiếu journal vẫn UNKNOWN. Gateway báo lỗi nếu giải phóng hồ sơ thất bại. Phần kết thúc thao tác được tách thành helper rõ ràng để giữ ngân sách supervisor 500 dòng; không đổi ngân sách kiến trúc.
368
+
369
+ Trước khi tách helper, nhóm hồi quy có 108 PASS. Một lượt kế tiếp có 42 PASS/1 FAIL bị mất tính hợp lệ vì chỉnh kiểu dữ liệu giữa lượt làm thay đổi hash source; runtime từ chối approval cũ. Log này giữ nguyên. Lượt source cố định sau sửa có 64 PASS, 0 FAIL/cancelled/SKIP; bao gồm gateway, SDK ba lượt, ca sai và public inventory. Source giữ nguyên đủ 2.720 tệp trong lượt kiểm. Typecheck và kiến trúc được kiểm riêng.
370
+
371
+ Evidence: `.tmp/pcl-full-20260906/53-stage3-final-result.json`, `57-stage3-skip-inventory.json`, `55-stage4-targets-receipt.json`, `61-target-invalidation.json`, `63-stable-settlement-targets-receipt.json`. Manifest source và kết quả full stage 4 được ghi riêng sau freeze; targeted PASS không thay cho kết quả đó.
372
+
373
+ 18 kỳ vọng default correct-completion, khác biệt arity của expiry/reference và giới hạn proof vẫn mở. Phân trang phải giữ đúng phép chia Number của JavaScript đã ghi trong yêu cầu công khai. Không đổi prompt, oracle, grader, expected outcome, SDK hoặc quyền provider/paid.
374
+
375
+
376
+ ## 17. Tiếp tục đóng tiêu chí mặc định — stage 5
377
+
378
+ Full stage 4 đã kết thúc trên đúng 2.720 tệp không đổi: 5.182 tests, 5.106 PASS, 18 FAIL, 0 cancelled, 58 SKIP. Trình duyệt và typecheck PASS; tất cả các bước cuối đã chạy. Không có lỗi mới ngoài 18 kỳ vọng default correct-completion. Kết quả đầy đủ và danh sách skip: `.tmp/pcl-full-20260906/89-stage4-final-result.json`, `89-stage4-skip-inventory.json`.
379
+
380
+ Bộ đối chiếu API hiện có được bổ sung phạm vi hẹp cho mảng tạo cục bộ: khai báo, lời gọi collection và mọi nhánh trả về phải thuộc cú pháp được kiểm. Không suy ra tương đương hành vi từ cùng kiểu mảng. Chỉ dẫn sửa một hàm có tên và đường dẫn chính xác được đối chiếu với source origin hiện có; tên mơ hồ, sai tệp, thay API và thay thân hàm công khai không liên quan vẫn bị từ chối. Các cú pháp primitive được hỗ trợ trước đó vẫn giữ nguyên.
381
+
382
+ Phép tái hiện riêng cũng xác nhận lỗi ở lượng từ: yêu cầu không sửa bất kỳ đối số nào trong hai đối số có thể bị đánh dấu satisfied khi test chỉ kiểm một đối số, dù source sửa đối số kia. Runtime nay dùng đường kiểm tất cả đối số sẵn có cho both/either/all/any, giữ yêu cầu về scope và snapshot. Kiểm đủ cả hai vẫn đạt; kiểm thiếu một đối số không đủ để chấp nhận.
383
+
384
+ - [x] 161 kiểm tra hồi quy trên source thật PASS; typecheck và kiến trúc PASS, không đổi ngân sách module.
385
+ - [x] SDK 0.84.1 mặc định, loopback HTTP/WebSocket, không có hợp đồng independent: `stable-dedup/helper-reference` có scout, implement và verify đều completed; bản sai equal-sequence giữ pending và verifier thất bại. Hai ca PASS với toàn bộ 2.720 tệp không đổi qua lượt kiểm. Đây là kiểm tra live trong phiên; không bổ sung tuyên bố cold readback.
386
+ - [x] Chỉ cập nhật hash cây public tests sau khi thêm hồi quy; giữ 469 tệp và toàn bộ metadata khác.
387
+ - [x] Full stage 5 chạy đến hết trên 2.720 tệp không đổi: 5.225 tests, 5.150 PASS, 17 FAIL, 58 SKIP, không cancelled; browser/typecheck PASS. Stable-dedup đóng trong full, không có tên lỗi mới.
388
+ - [ ] Còn 17 kỳ vọng FAIL; toàn candidate chưa qualified PASS. Không dùng configured/targeted PASS để miễn các kỳ vọng còn lại.
389
+
390
+ Evidence: `90-stage5-preservation.json`, `91-stage5-application.json`, `92-stage5-public-inventory.json`, `93-stage5-regressions.log`, `96-default-api-sdk-receipt.json` trong thư mục evidence nối tiếp. Các bản nháp bị bác bỏ, lỗi callback che khuất biến và hồi quy primitive được giữ lại ở các log 75–88; chúng không được dùng thay qualification.
391
+
392
+ Mục tiêu đầy đủ vẫn mở. Chưa có bằng chứng model thật, giảm billed cost/token hoặc corpus có quyền cho C7. Không đổi SDK, package/lock, prompt, oracle, grader, expected outcome hoặc quyền provider/paid.
393
+
394
+
395
+ ## 18. Giữ đúng authority của yêu cầu API — stage 6
396
+
397
+ Phép kiểm thực thi xác nhận câu “Preserve the API…” bị suy ra thành boundary-case, khiến tiêu chí có thể mượn kiểm tra boundary và được chấp nhận khi chữ ký public đã đổi, kể cả thiếu API baseline reader. Đây là lỗi chọn bằng chứng của runtime, tách biệt với việc cú pháp source của expiry còn unsupported.
398
+
399
+ - [x] Bảo toàn bảy preimage từ freeze stage 5; sửa đường dispatch/reader hiện có và thêm hồi quy cần thiết; giữ nguyên manifest store.
400
+ - [x] Câu yêu cầu API chính xác luôn dùng baseline reader sẵn có; category suy ra không cho phép chuyển sang bằng chứng yếu hơn. Giữ nguyên text/hash/identity của tiêu chí.
401
+ - [x] Trường hợp giữ API nhận task-baseline-public-api; đổi arity hoặc thiếu reader vẫn pending, kể cả khi receipt trước đã satisfied. Hai phản ví dụ sửa xong và 70 hồi quy API/inference PASS.
402
+ - [x] Đã chạy hồi quy rộng, SDK hiện cài và full stage6; kết quả đầy đủ ở phần19, canonical vẫn FAIL.
403
+
404
+ Kết quả full stage 5, all-skip inventory và audit được giữ trong evidence 107–114; bảy preimage stage 6 ở116. Không đổi benchmark prompt/grader/oracle/threshold/expected outcome. Không coi reference có arity sai là đúng và không dùng đường freeze-only để chứng minh không mutation.
405
+
406
+ Hồi quy rộng stage 6 tìm được hai ca temporal helper đúng bị chặn. Reader API hiện có được bổ sung kiểu trả boolean đóng; không coi kiểu trả về là bằng chứng hành vi. Baseline chỉ thiếu byte của tệp được bảo vệ có thể cung cấp phần source khác nếu inventory đầy đủ. Tệp đích protected, inventory bị cắt, oversized và lỗi đọc vẫn bị từ chối. Bốn ca guard sẵn có giữ đúng kỳ vọng (hai đúng completed, hai sai pending). Evidence 123–127 giữ cả lỗi trung gian và lỗi setup của fixture âm đã sửa bằng thay đổi byte thật. Freeze 122 chưa được dùng cho SDK/full và đã bị thay thế.
407
+
408
+ - [x] Chạy lại 62 tệp acceptance: 829 tests, 826 PASS, 0 FAIL, 3 SKIP, 0 cancelled (129); typecheck và 634 kiểm tra kiến trúc PASS (130).
409
+
410
+ - [x] SDK 0.84.1 qua HTTP/WebSocket: 4 ca không đổi, 3 PASS, 1 FAIL, 0 SKIP/cancelled (132–133), đủ 2.720 tệp giữ hash. Hai ca stable-dedup giữ đúng kỳ vọng; expiry mutant vẫn bị chặn. Expiry reference còn FAIL như trước, nhưng tiêu chí API giữ ID/hash/category nay pending thay vì mượn bằng chứng boundary. Không miễn lỗi này; full của freeze sau vẫn cần chạy.
411
+
412
+
413
+ ## 19. Kết quả full stage 6 và sửa tiếp stage 7
414
+
415
+ Full stage 6 đã kết thúc trên đúng 2.720 tệp không đổi: 5.253 tests, 5.177 PASS, 18 FAIL, 58 SKIP, không cancelled. Browser và typecheck PASS; canonical vẫn FAIL. Evidence137 giữ đủ kết quả và skip. Cả 17 lỗi default từ stage 5 còn nguyên. Một ca guard owned-Date mới FAIL vì baseline dùng tên tham số timestamp, source dùng expiresAt; API reader hiện coi tên khác là thay contract. Không sửa fixture hoặc miễn expected completion để làm xanh.
416
+
417
+ - [x] Bảo toàn 10 preimage trước stage 7; chỉ áp dụng các hunk đã có phản ví dụ và kiểm tra bản nháp.
418
+ - [x] API reader giữ giá trị mặc định, vị trí tham số mặc định và function.length; hỗ trợ kiểu trả số đóng cùng phép reduce cục bộ. Cùng kiểu trả về không chứng minh đúng phép tính. Chỉ dẫn Repair dùng cùng cách ràng buộc hàm/tệp chính xác như Fix.
419
+ - [x] Ràng buộc yêu cầu đầu vào số nguyên với từng tham số được khai báo, guard nguồn và witness âm/phân số riêng. Không dùng lỗi của tax để chấp nhận yêu cầu money/quantity. Tên thuộc tính chưa ràng buộc, cú pháp dư và witness che lấp nhau vẫn pending.
420
+ - [x] Tích hợp 75 kiểm tra mới vào ba tệp test sẵn có. Các kỳ vọng benchmark và source reference giữ nguyên; chỉ thay hash cây public tests, vẫn 469 tệp.
421
+ - [x] Đã chạy qualification trên source áp dụng: hồi quy, kiểm tra kiểu/kiến trúc và SDK, có kết quả riêng bên dưới. Bản nháp không thay qualification.
422
+ - [ ] Tiếp tục xử lý 18 lỗi full; riêng invoice còn thiếu chứng minh ánh xạ thuộc tính money/quantity, nên sửa scalar này không đóng invoice.
423
+
424
+ Evidence 143/155 lưu bản đề xuất; 156–158 lưu preimage, hunk đã áp dụng và inventory. Lượt151 dùng phép viết lại import sai đã bị loại; lượt152 thay bằng AST-only và giữ nguyên fixture strings. Lượt153 sai kỳ vọng về continuation của test mới; lượt154 kiểm đúng tối đa một continuation rồi bàn giao nếu không có bằng chứng mới, không thay runtime budget. SDK0.84.1, quyền provider và dữ liệu C7 không đổi.
425
+
426
+
427
+ Hồi quy source stage7 trước sửa tên tham số đạt 904 tests: 901 PASS, 0 FAIL, 3 SKIP; typecheck và kiến trúc PASS, 2.720 tệp giữ nguyên (159–166). Lỗi mới của full được tái hiện bằng hai hàm có cùng cách gọi và kết quả nhưng khác tên biến tham số. Bộ đối chiếu nay cho phép tên nội bộ mới ở cùng vị trí; tên cũ còn giữ không được chuyển vị trí. Arity, default, kiểu trả về, export, phạm vi hàm được sửa và thân hàm không liên quan vẫn kiểm riêng. Không coi API tương thích là hành vi đúng.
428
+
429
+ Bản nháp sửa này đạt 148 kiểm tra API, ba ca receipt và ca guard owned-Date gốc với cả bản đúng/bản sai (163–165), không đổi fixture hoặc expected outcome. Sau khi bảo toàn năm preimage167, sửa được áp dụng cùng 20 hồi quy bổ sung168. Source mới cần qualification riêng; số full18FAIL vẫn là kết quả lịch sử của stage6, chưa phải verdict stage7.
430
+
431
+ Qualification sau sửa tên tham số: 370 tests, 370 PASS, 0 FAIL, 0 SKIP, 0 cancelled (171); gồm toàn bộ tệp guard integration gốc. Typecheck/kiến trúc PASS. SDK mặc định chạy bốn ca invoice/expiry:2 PASS,2 FAIL, không skip/cancelled, toàn bộ2.720 tệp giữ hash. API invoice đạt; invalid money/quantity vẫn pending. Expiry vẫn pending vì invalid-date/default-signature; hai mutant giữ đúng kết quả. Evidence174–176 giữ từng tiêu chí và finite register. Full mới cần xác minh lỗi guard từ full stage6 đã được đóng; không suy ra số lỗi còn lại từ targeted PASS.
432
+
433
+ ## 20. Full stage 7 và parser local bookkeeping — stage 8
434
+
435
+ - [x] Full stage7 đã kết thúc: 5348 TESTS, 5270 PASS, 20 FAIL, 58 SKIPPED, 0 CANCELLED; browser=PASS, typecheck=PASS. Evidence `.tmp/pcl-resume-20260907/03-stage7-final-result.json` xác nhận toàn bộ2.720 tệp giữ hash đến hết full. Targeted PASS không thay kết quả này.
436
+ - [x] Bản thử thu hẹp đúng gap trong bộ chứng minh trạng thái parser hiện có: chấp nhận thao tác push/reset của mảng cục bộ sở hữu riêng; kiểm bước bỏ qua ký tự escape, quan hệ else khi đóng quote, mọi thay đổi chỉ số và không có tác động khởi tạo module. Chỉ gắn câu nghĩa vụ không nêu tên với một export/import duy nhất, giữ nguyên câu và hash tiêu chí.
437
+ - [x] Đã bảo toàn bảy preimage197 và áp dụng bốn tệp source/test theo patch198. Thêm58 ca vào tệp parser hiện có và hai ca guard; toàn bộ nội dung kiểm tra cũ được giữ. Không thay benchmark source/prompt/oracle/grader/expected outcome, authority, continuation budget hay SDK.
438
+ - [ ] Qualification trên source vừa áp dụng: hồi quy acceptance, guard, API/inventory, typecheck/kiến trúc và SDK mặc định.
439
+ - [ ] Freeze sau qualification; full cuối khi candidate ổn định theo kế hoạch tiếp tục198. Không full sau từng hunk nhỏ. Không dùng draft78 ca parser,319 hồi quy hoặc2 guard để suy ra full.
440
+
441
+ Bản thử196 ghi rõ phản ví dụ và kết quả: bỏ bước escape có input `"a""` không ném lỗi dù cần SyntaxError; sửa prototype từ ngoài hàm không được nhận là môi trường intrinsic ổn định. Guard mới chứng minh ca đúng hoàn tất, ca sai vẫn pending sau verifier thực PASS và bàn giao hữu hạn không tự sửa source. Discrepancy104 của CSV helper-reference vẫn mở: test hiện tại PASS nhưng kỳ vọng focused-error vẫn là true; không đổi kỳ vọng hay phá source đúng để tạo PASS.
442
+
443
+ ## 21. Stage 9 — Number formula, stable snapshots and resume fixture clock
444
+
445
+ - [x] Stage8 parser đã áp dụng. SDK CSV: public-contract-implementation PASS, escaped-quote-mutant PASS; helper-reference FAIL tại kỳ vọng focused-error đã ghi104, không được miễn. Hồi quy acceptance984 ca:980 PASS/1 FAIL/3 SKIP; lỗi tạo container có bằng chứng cleanup riêng40 và kiểm lại nguyên nhóm41. Typecheck/architecture42 PASS. Không gộp kiểm lại thành một lượt broad toàn PASS.
446
+ - [x] Bảo toàn mười preimage44 và áp dụng bảy tệp source/test: công thức Number/Math.ceil với miền input được khai báo; kiểm tính toàn vẹn snapshot trên own-data; cố định đồng hồ của một fixture resume và kiểm biên hết hạn30 ngày. Các draft12/28/38 đã kiểm riêng; áp dụng không đồng nghĩa qualification.
447
+ - [ ] Kiểm source đã áp dụng, các đường đọc bằng chứng lân cận, SDK pagination đúng/sai và giữ stable-dedup hoàn tất. Full cuối chỉ khi candidate ổn định.
448
+
449
+ Snapshot mới chặn sửa snapshot/alias, phục hồi input và thay assertion/clone để che mutation; chưa đóng các nghĩa vụ loop/group, byte-view và async. Không thay benchmark prompt/reference/expected outcome, TTL runtime, SDK, authority hay retry budget. CSV/expiry contract còn chờ quyết định riêng. Full stage7 mới vẫn là5.270 PASS/20 FAIL/58 SKIP; docs settlement và các nhóm P2–P8 còn mở.
450
+
451
+ ## 22. Stage 10 — tránh Git probes lặp trong cùng snapshot
452
+
453
+ - [x] Stage9 đã kiểm source áp dụng:1.069 PASS/0 FAIL/4 SKIP; typecheck/architecture PASS. SDK pagination và stable-dedup đúng/sai:4 PASS. Đây là targeted qualification55, không thay full stage7 hoặc full cuối.
454
+ - [x] Profile43/47b xác định chi phí Git probes lặp trong composite settlement của configured docs. Bản thử giảm6 xuống4 lệnh Git mỗi root trong cùng lần capture, giữ snapshot bằng nhau trên7 trạng thái và giữ nguyên source/material/revision fences. Không cache giữa các lần capture.
455
+ - [x] Bảo toàn năm preimage60; áp dụng hunk task-state và thêm3 fault tests. Khi repo biến mất sau probe, source cũ trả cây rỗng; bản sửa đánh dấu enumeration unavailable. Draft44 PASS; control trên source cũ2 PASS/1 FAIL đúng ca disappearance.
456
+ - [ ] Kiểm source áp dụng và luồng configured docs correct/missing-restart nguyên bản. Không tăng deadline, đổi kỳ vọng hay giảm nghĩa vụ để lấy PASS.
457
+
458
+ Các mục P2–P8, required SKIP, CSV/expiry contract và full candidate cuối còn mở. Stage10 chưa có bằng chứng giảm token/model cost.
459
+
460
+ ## 22. Stage10 qualified; stage11 callback argument binding applied
461
+
462
+ - [x] Stage10 configured docs nguyên bản đạt2/2; source/verifier/resume và native Pi bash đạt165/165, typecheck/architecture đạt. Receipt63/64/65, checkpoint67 khóa2.720 file. Default docs vẫn mở.
463
+ - [x] Stage11 bảo toàn năm preimage75, sửa đúng hai dòng nhận dạng callback ngoài assertion; callback nằm trong đối số không còn che lời gọi được kiểm tra. Thêm19 kiểm tra vào file hiện có, giữ20 kiểm tra cũ. Draft229 PASS; source hiện áp dụng chưa qualification.
464
+ - [ ] Kiểm SDK retry nguyên bản đúng/sai, hồi quy acceptance, rồi tiếp tục các mục P2–P8. Không coi targeted PASS là full.
465
+
466
+ Không thay benchmark contract, anonymous-function lexical policy, SDK, authority hoặc continuation budget. CSV/expiry còn chờ quyết định; full hoàn chỉnh gần nhất vẫn stage7:5.270 PASS/20 FAIL/58 SKIP.
467
+
468
+ ## 23. Stage11 qualified; stage12 per-record integer evidence applied
469
+
470
+ - [x] Stage11 SDK retry nguyên bản đạt3/3: hai bản đúng hoàn tất, exponential-backoff mutant còn pending. Acceptance1.046 PASS/0 FAIL/3 SKIP, typecheck/architecture PASS. Checkpoint85 giữ full stage7 riêng.
471
+ - [x] Stage12 bảo toàn chín preimage94, nối ngữ cảnh yêu cầu có sẵn vào bộ đọc parameter contract. Tên thuộc tính tiền/số lượng phải khớp ngữ cảnh, source helper và literal test độc lập; guard phải chạy trên từng phần tử, không sửa native environment hoặc bỏ qua input. Không thay source/tests benchmark.
472
+ - [ ] Kiểm SDK invoice nguyên bản đúng/sai và hồi quy source đã áp dụng. Draft v1:1.073 PASS/0 FAIL/3 SKIP; phát hiện riêng alias Array làm sai witness và sửa,88 kiểm tra cuối đạt. Chưa lấy broad v1 làm bằng chứng cho delta cuối.
473
+
474
+ Các mục expiry/billing, shape/nonmutation, replay/chat/workflow/cycle, docs mặc định,108 mapping, final full và D026 rebind còn mở. CSV/expiry contract chưa được áp dụng khi chưa có quyết định.
475
+
476
+ ## 24. Stage12 qualified; stage13 finite interval evidence applied
477
+
478
+ - [x] Stage12 invoice SDK đúng/sai đạt2/2, hồi quy1.101 PASS/0 FAIL/3 SKIP; typecheck/architecture PASS. Full stage7 vẫn là bằng chứng lịch sử riêng.
479
+ - [x] Stage13 bảo toàn15 preimage và áp dụng bộ đọc có giới hạn trong tám module hiện có: đối chiếu đủ trường thời gian/skew, thứ tự điều kiện và kết quả mặc định từ yêu cầu; đọc native test/factory và snapshot chung cho hai input qua bốn kết quả cùng đường throw. Không dùng tên bài benchmark để chọn nhánh. Bốn tệp kiểm tra chỉ được nối thêm, giữ nguyên các kiểm tra cũ.
480
+ - [x] Bản nháp tổng hợp đạt1.244 PASS/0 FAIL/3 SKIP; source và năm public test billing nguyên bản giữ nguyên, ba tiêu chí còn mở đều được nhận qua receipt có verifier thực. Các đối chứng thiếu guard, sai receiver, test che lỗi, nhánh sai, mutation/restore, snapshot alias và thay clone/assert bị từ chối.
481
+ - [ ] SDK billing đúng/sai trên source đã áp dụng, hồi quy và kiểm tra static. Chưa đóng billing bằng kết quả bản nháp; chưa kết luận READY.
482
+
483
+ Expiry/CSV contract còn chờ quyết định riêng. Cache/checkpoint/chunk/abort, replay/chat/workflow/cycle, docs mặc định, mapping108, final full và D026 rebind vẫn còn nghĩa vụ độc lập. Không thay prompt/reference/oracle/expected outcome hoặc SDK.
484
+
485
+ ## 25. Stage13 qualified; stage14 cached record evidence applied
486
+
487
+ - [x] Stage13 billing SDK đạt2/2: bản đúng hoàn tất, mutant sai biên còn pending. Hồi quy1.244 PASS/0 FAIL/3 SKIP, typecheck/architecture PASS.
488
+ - [x] Stage14 bảo toàn chín preimage, cập nhật ba module hiện có và nối thêm kiểm tra ở ba tệp. Tiêu chí input lỗi phải khớp từng nhóm định danh không rỗng, số nguyên hữu hạn, trường nullable và object không phải array; các trường lấy từ ngữ cảnh cùng quan hệ source. Test null-only không thay cho bằng chứng từng trường. Hai snapshot độc lập phải phủ true/false/throw, chặn alias, sửa rồi phục hồi và thay clone/assert.
489
+ - [x] Bản nháp đạt1.365 PASS/0 FAIL/3 SKIP; source và bảy public test cache nguyên bản giữ nguyên. Hai tiêu chí còn mở được nhận qua receipt có verifier thực.
490
+ - [ ] SDK cache đúng/sai trên source đã áp dụng, hồi quy và static. Chưa đóng cache từ bản nháp; full stage7 vẫn giữ riêng.
491
+
492
+ Checkpoint/chunk/abort, expiry/CSV contract, replay/chat/workflow/cycle, docs mặc định, mapping108, final full và D026 rebind còn mở. Không thay benchmark hoặc SDK.
493
+
494
+ ## 26. Stage14 qualified; stage15 byte ownership evidence applied
495
+
496
+ - [x] Stage14 cache SDK2/2, hồi quy1.365 PASS/0 FAIL/3 SKIP và static PASS.
497
+ - [x] Stage15 bảo toàn sáu preimage, cập nhật hai module và nối22kiểm tra vào tệp có sẵn. Snapshot byte phải phủ backing buffer đầy đủ, giữ độ dài mảng chunk và identity từng view. Source chỉ đọc input qua phép kiểm kiểu, iteration và native decoder; mutation/restore không được chấp nhận. Tiêu chí không thêm dependency vẫn kiểm riêng theo phép AND.
498
+ - [x] Bản thử1.387 PASS/0 FAIL/3 SKIP; bốn public test byte nguyên bản giữ nguyên. Phản ví dụ reverse/restore vẫn PASS cả4test nhưng Proxy ghi nhận4lầnghi, và bản thử vẫn giữ non-mutation pending.
499
+ - [ ] SDK byte đúng/sai trên source đã áp dụng, hồi quy/static và final full.
500
+
501
+ Checkpoint shape vẫn là draft162. Phản ví dụ164 cho thấy error alias input tạo mâu thuẫn giữa giữ error identity/gắn checkpoint và cấm sửa input. Đề xuất contract167 chưa duyệt, chưa áp dụng; CSV/expiry cũng còn chờ. Abort, replay/chat/workflow/cycle, docs mặc định, mapping108 và D026 rebind còn mở.
502
+
503
+ ## 27. Stage15 qualified; stage16 pure reducer evidence applied
504
+
505
+ - [x] Stage15 byte SDK 2/2, regression 1,387 PASS / 0 FAIL / 3 SKIP and static checks PASS.
506
+ - [x] Stage16 preserves six preimages and updates two existing source modules, one additive test file, the test inventory digest and these documents. Source purity is checked across every reducer branch; input writes, restore sequences, unknown calls and freezing an input cannot establish non-mutation. Source-bound executable record/array witnesses remain required.
507
+ - [x] Draft regression: 1,408 PASS / 0 FAIL / 3 SKIP, including 174 bound-literal controls. The original four abort public tests are unchanged. A conditional mutable-state write passes all four but mutates ordinary input; the draft keeps its criterion pending.
508
+ - [ ] Applied abort SDK correct/mutant, regression/static checks and final full remain required.
509
+
510
+ Checkpoint shape draft162 remains separate. CSV, expiry and checkpoint error-alias contract proposals remain unapproved/unapplied. Replay/chat/workflow/cycle, default docs, mapping108 and D026 rebind remain open.
511
+
512
+ ## 28. Stage16 qualified; stage17 local record origin correction applied
513
+
514
+ - [x] Stage16 abort SDK 2/2, regression 1,408 PASS / 0 FAIL / 3 SKIP and static checks PASS.
515
+ - [x] Stage17 preserves five preimages and corrects callable-origin inventory for a computed plain-record store into a function-local empty record or native cloned parameter. Native clone and local binding stability remain required; child members are still inventoried and callable ambiguity remains unresolved. This change provides origin classification only.
516
+ - [x] Draft regression 1,446 PASS / 0 FAIL / 3 SKIP, including 77 origin controls. Original replay public fixtures remain unchanged.
517
+ - [ ] Applied regression/static validation and the unchanged replay SDK are pending. Replay completion remains open: contextual identifier field evidence must reject the executed missing-ID mutant213, which passes all four public tests but accepts events missing either required ID.
518
+
519
+ Checkpoint shape draft162 and CSV/expiry/checkpoint contract proposals remain separate. Chat/workflow/cycle, default docs, mapping108, final full and D026 rebind remain open.
520
+
521
+ ## 29. Stage17 origin validated; stage18 ordered record evidence applied
522
+
523
+ - [x] Stage17 regression 1,446 PASS / 0 FAIL / 3 SKIP and static checks PASS; original replay SDK remained 1 PASS / 1 FAIL at the combined field/order criterion.
524
+ - [x] Stage18 preserves seven preimages. Optional nested literal facts and bounded source/test evidence now retain record shape, individual IDs, integer revisions and applied order in one contract. Existing receipt, current-verifier, binding and source-origin gates remain required.
525
+ - [x] Draft regression 1,515 PASS / 0 FAIL / 3 SKIP, including 243 focused controls. Both executed missing-ID and sorted-ID variants pass the four original public tests but remain pending in the draft.
526
+ - [ ] Applied SDK, regression/static checks and final full are pending. Replay is not closed by a loader diagnostic.
527
+
528
+ Workspace SDK235 on stage17 remains 1 PASS / 1 FAIL: cycle rejection and input non-mutation are pending. CSV/expiry/checkpoint decisions, chat/workflow, default docs, mapping108 and D026 rebind remain open.