pi-session-mcp 0.8.3 → 0.12.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 (843) hide show
  1. package/.pi-session-mcp-cli/client-adapters/command.js +33 -0
  2. package/.pi-session-mcp-cli/client-adapters/mcp-verifier.js +198 -0
  3. package/.pi-session-mcp-cli/client-adapters/types.js +1 -0
  4. package/.pi-session-mcp-cli/config.js +29 -3
  5. package/.pi-session-mcp-cli/container-runtime.js +18 -0
  6. package/.pi-session-mcp-cli/doctor.js +370 -4
  7. package/.pi-session-mcp-cli/execution-modes.js +83 -0
  8. package/.pi-session-mcp-cli/execution-profile.js +1 -0
  9. package/.pi-session-mcp-cli/override-lock.js +4 -4
  10. package/.pi-session-mcp-cli/session-tools.js +45 -0
  11. package/.pi-session-mcp-cli/setup-platform.js +64 -36
  12. package/.pi-session-mcp-cli/setup-process.js +455 -0
  13. package/.pi-session-mcp-cli/skill-library.js +8 -4
  14. package/.pi-session-mcp-cli/turn-events.js +97 -0
  15. package/.pi-session-mcp-cli/writer-boundary.js +321 -0
  16. package/.pi-session-mcp-cli/writer-fence.js +50 -0
  17. package/.pi-session-mcp-cli/writer-lease.js +140 -0
  18. package/.pi-session-mcp-cli/writer-lifecycle.js +567 -0
  19. package/.pi-session-mcp-cli/writer-state.js +199 -0
  20. package/.pi-session-mcp-cli/writer-wrapper.js +14 -0
  21. package/CHANGELOG.md +527 -0
  22. package/README.md +8 -2
  23. package/dist/capabilities.d.ts +9 -1
  24. package/dist/capabilities.js +8 -3
  25. package/dist/child-stdio-transport.d.ts +21 -0
  26. package/dist/child-stdio-transport.js +88 -0
  27. package/dist/client-adapters/claude-code.js +3 -2
  28. package/dist/client-adapters/command.d.ts +8 -0
  29. package/dist/client-adapters/command.js +9 -1
  30. package/dist/client-adapters/mcp-verifier.d.ts +7 -0
  31. package/dist/client-adapters/mcp-verifier.js +21 -4
  32. package/dist/client-adapters/types.d.ts +5 -1
  33. package/dist/client-adapters/writer-registration.d.ts +16 -0
  34. package/dist/client-adapters/writer-registration.js +156 -0
  35. package/dist/config.d.ts +12 -1
  36. package/dist/config.js +29 -3
  37. package/dist/container-runtime.d.ts +2 -0
  38. package/dist/container-runtime.js +18 -0
  39. package/dist/doctor.d.ts +36 -2
  40. package/dist/doctor.js +370 -4
  41. package/dist/event-spool.d.ts +70 -0
  42. package/dist/event-spool.js +180 -0
  43. package/dist/execution-modes.d.ts +60 -0
  44. package/dist/execution-modes.js +83 -0
  45. package/dist/execution-profile.d.ts +2 -0
  46. package/dist/execution-profile.js +1 -0
  47. package/dist/main.js +63 -8
  48. package/dist/override-lock.d.ts +2 -0
  49. package/dist/override-lock.js +4 -4
  50. package/dist/pi-adapter.d.ts +31 -1
  51. package/dist/pi-adapter.js +12 -0
  52. package/dist/process-diagnostics.d.ts +1 -1
  53. package/dist/process-diagnostics.js +2 -1
  54. package/dist/refusal-server.d.ts +6 -0
  55. package/dist/refusal-server.js +46 -0
  56. package/dist/sdk-pi-adapter.js +16 -9
  57. package/dist/server.d.ts +3 -2
  58. package/dist/server.js +27 -53
  59. package/dist/session-registry.d.ts +32 -2
  60. package/dist/session-registry.js +61 -11
  61. package/dist/session-tools.d.ts +14 -5
  62. package/dist/session-tools.js +13 -9
  63. package/dist/setup-cli.d.ts +14 -0
  64. package/dist/setup-cli.js +132 -0
  65. package/dist/setup-command-guardian.js +9 -3
  66. package/dist/setup-hooks.d.ts +158 -0
  67. package/dist/setup-hooks.js +657 -0
  68. package/dist/setup-main.d.ts +1 -1
  69. package/dist/setup-main.js +18 -2
  70. package/dist/setup-modes.d.ts +18 -0
  71. package/dist/setup-modes.js +131 -0
  72. package/dist/setup-ownership.d.ts +1 -0
  73. package/dist/setup-ownership.js +11 -3
  74. package/dist/setup-platform.d.ts +9 -1
  75. package/dist/setup-platform.js +64 -36
  76. package/dist/setup-process.d.ts +23 -1
  77. package/dist/setup-process.js +88 -10
  78. package/dist/setup-writers.d.ts +42 -0
  79. package/dist/setup-writers.js +510 -0
  80. package/dist/setup.d.ts +4 -1
  81. package/dist/setup.js +23 -10
  82. package/dist/skill-library.d.ts +2 -0
  83. package/dist/skill-library.js +8 -4
  84. package/dist/tool-schemas.d.ts +339 -0
  85. package/dist/tool-schemas.js +49 -0
  86. package/dist/turn-events.d.ts +45 -0
  87. package/dist/turn-events.js +97 -0
  88. package/dist/wake-hook.d.ts +180 -0
  89. package/dist/wake-hook.js +638 -0
  90. package/dist/wake-main.d.ts +8 -0
  91. package/dist/wake-main.js +111 -0
  92. package/dist/writer-acceptance.d.ts +10 -0
  93. package/dist/writer-acceptance.js +192 -0
  94. package/dist/writer-boundary.d.ts +52 -0
  95. package/dist/writer-boundary.js +321 -0
  96. package/dist/writer-credentials.d.ts +29 -0
  97. package/dist/writer-credentials.js +85 -0
  98. package/dist/writer-fence.d.ts +12 -0
  99. package/dist/writer-fence.js +50 -0
  100. package/dist/writer-guard.d.ts +13 -0
  101. package/dist/writer-guard.js +54 -0
  102. package/dist/writer-launch.d.ts +29 -0
  103. package/dist/writer-launch.js +232 -0
  104. package/dist/writer-lease.d.ts +28 -0
  105. package/dist/writer-lease.js +140 -0
  106. package/dist/writer-lifecycle.d.ts +96 -0
  107. package/dist/writer-lifecycle.js +567 -0
  108. package/dist/writer-relay.d.ts +33 -0
  109. package/dist/writer-relay.js +359 -0
  110. package/dist/writer-state.d.ts +111 -0
  111. package/dist/writer-state.js +199 -0
  112. package/dist/writer-wrapper.d.ts +3 -0
  113. package/dist/writer-wrapper.js +14 -0
  114. package/docs/acceptance.md +1694 -1
  115. package/docs/adr/0003-post-mvp-maintenance.md +2 -2
  116. package/docs/adr/0006-pi-extension-allowlist.md +3 -1
  117. package/docs/adr/0008-coding-profile-isolation.md +295 -0
  118. package/docs/adr/0009-execution-modes.md +131 -0
  119. package/docs/adr/0010-read-only-extension-tools.md +68 -0
  120. package/docs/adr/0011-turn-events-and-controller-wake.md +173 -0
  121. package/docs/adr/0012-leased-writer-pool.md +357 -0
  122. package/docs/architecture.md +96 -8
  123. package/docs/client-setup-design.md +12 -8
  124. package/docs/client-setup.md +84 -2
  125. package/docs/doctor-design.md +48 -0
  126. package/docs/evaluation/2026-10-17-live-screening.md +121 -0
  127. package/docs/evaluation/2026-10-17-node-runtime-followup.md +33 -0
  128. package/docs/evaluation/2026-10-17-profile-evaluation-evidence.md +155 -0
  129. package/docs/evaluation/2026-10-17-test-coverage.md +127 -0
  130. package/docs/evaluation/README.md +123 -0
  131. package/docs/evaluation/client-reconnect-2026-10-17/README.md +41 -0
  132. package/docs/evaluation/client-reconnect-2026-10-17/checks.json +38 -0
  133. package/docs/evaluation/client-reconnect-2026-10-17/integrity.json +30 -0
  134. package/docs/evaluation/client-reconnect-2026-10-17/reconnect.json +57 -0
  135. package/docs/evaluation/client-reconnect-2026-10-17/registration-verification.json +389 -0
  136. package/docs/evaluation/client-reconnect-2026-10-17/review.json +10 -0
  137. package/docs/evaluation/controller-ledger-hooks-2026-10-26/README.md +115 -0
  138. package/docs/evaluation/evidence-2026-10-17/budget.proposed.json +13 -0
  139. package/docs/evaluation/evidence-2026-10-17/changed-files.txt +82 -0
  140. package/docs/evaluation/evidence-2026-10-17/checks.json +103 -0
  141. package/docs/evaluation/evidence-2026-10-17/comparison.json +247 -0
  142. package/docs/evaluation/evidence-2026-10-17/development-collection-failure.json +15 -0
  143. package/docs/evaluation/evidence-2026-10-17/full-attempt-default.json +19 -0
  144. package/docs/evaluation/evidence-2026-10-17/full-tests.json +17 -0
  145. package/docs/evaluation/evidence-2026-10-17/inventory.json +239 -0
  146. package/docs/evaluation/evidence-2026-10-17/manifest.json +359 -0
  147. package/docs/evaluation/evidence-2026-10-17/offline.json +1020 -0
  148. package/docs/evaluation/evidence-2026-10-17/ui-reference/T3-1280.png +0 -0
  149. package/docs/evaluation/evidence-2026-10-17/ui-reference/T3-375.png +0 -0
  150. package/docs/evaluation/evidence-2026-10-17/ui-reference/result.json +141 -0
  151. package/docs/evaluation/extension-ablation-2026-10-20/README.md +414 -0
  152. package/docs/evaluation/extension-ablation-2026-10-20/setup.md +140 -0
  153. package/docs/evaluation/extension-ablation-repeat-2026-10-21/README.md +142 -0
  154. package/docs/evaluation/extension-ablation-repeat-2026-10-21/setup.md +69 -0
  155. package/docs/evaluation/extension-audit-2026-10-17/README.md +149 -0
  156. package/docs/evaluation/extension-audit-2026-10-17/checks.json +38 -0
  157. package/docs/evaluation/extension-audit-2026-10-17/cursor-static-evidence.json +93 -0
  158. package/docs/evaluation/extension-audit-2026-10-17/installed-artifact-comparison.json +85 -0
  159. package/docs/evaluation/extension-audit-2026-10-17/installed-packages.json +100 -0
  160. package/docs/evaluation/extension-audit-2026-10-17/integrity.json +108 -0
  161. package/docs/evaluation/extension-audit-2026-10-17/navigation-cursor-registry.json +290 -0
  162. package/docs/evaluation/extension-audit-2026-10-17/navigation-static-evidence.json +185 -0
  163. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-bindings.json +25 -0
  164. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-cleanup.json +12 -0
  165. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-probe.mjs +63 -0
  166. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-reproduction.json +91 -0
  167. package/docs/evaluation/extension-audit-2026-10-17/openwiki-headless-result.json +83 -0
  168. package/docs/evaluation/extension-audit-2026-10-17/permission-cache-artifact-verification.json +24 -0
  169. package/docs/evaluation/extension-audit-2026-10-17/permission-cache-evidence.json +133 -0
  170. package/docs/evaluation/extension-audit-2026-10-17/permission-cache-report.md +64 -0
  171. package/docs/evaluation/extension-audit-2026-10-17/publication-export.json +10 -0
  172. package/docs/evaluation/extension-audit-2026-10-17/resolver-gates.json +51 -0
  173. package/docs/evaluation/extension-audit-2026-10-17/review.json +28 -0
  174. package/docs/evaluation/extension-audit-2026-10-17/run-openwiki-headless-probe.mjs +29 -0
  175. package/docs/evaluation/extension-audit-2026-10-17/summary.json +123 -0
  176. package/docs/evaluation/extension-audit-2026-10-17/web-openwiki-artifacts.json +29 -0
  177. package/docs/evaluation/extension-audit-2026-10-17/web-openwiki-evidence.json +116 -0
  178. package/docs/evaluation/extension-audit-2026-10-17/web-openwiki-report.md +113 -0
  179. package/docs/evaluation/extension-functions-2026-10-17/README.md +33 -0
  180. package/docs/evaluation/extension-functions-2026-10-17/bridges/README.md +39 -0
  181. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-03dc1dad-9959-40df-b51c-7820991bf7e3.json +79 -0
  182. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-0c43651e-8c7d-4c7c-aa9b-5b5761141e3b.json +54 -0
  183. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-51247b13-87c1-4ec6-886b-82d922b0585a.json +89 -0
  184. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-5337f6bf-503f-4c45-aac0-43b142385a87.json +47 -0
  185. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-60285194-b1d1-4335-b616-6614941585df.json +46 -0
  186. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-6d2fbaa9-a720-4582-9be1-a95f4764786d.json +69 -0
  187. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-6fbb576c-d87d-478d-9c05-4b5ef3563598.json +125 -0
  188. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-730926d1-ef20-4b2d-ab74-7e542f1065e9.json +48 -0
  189. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-a1baa47a-5bbe-4a16-ade8-a350599eb911.json +48 -0
  190. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-bc1d69c7-784f-4ddb-9335-0d905330d568.json +91 -0
  191. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-d582757d-2859-4683-8310-ec158bf6d551.json +99 -0
  192. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts/extension-functions-bridges-e6533a23-4933-4d6e-a250-b1b27f010d18.json +60 -0
  193. package/docs/evaluation/extension-functions-2026-10-17/bridges/attempts.json +138 -0
  194. package/docs/evaluation/extension-functions-2026-10-17/bridges/guard.mjs +74 -0
  195. package/docs/evaluation/extension-functions-2026-10-17/bridges/integrity.json +86 -0
  196. package/docs/evaluation/extension-functions-2026-10-17/bridges/openwiki-final.json +125 -0
  197. package/docs/evaluation/extension-functions-2026-10-17/bridges/run.mjs +36 -0
  198. package/docs/evaluation/extension-functions-2026-10-17/bridges/web-final.json +99 -0
  199. package/docs/evaluation/extension-functions-2026-10-17/bridges/worker.mjs +102 -0
  200. package/docs/evaluation/extension-functions-2026-10-17/cache/README.md +21 -0
  201. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-30-31-440Z-b1a47f88-8d86-4238-9ef8-af890d9ba74b.json +129 -0
  202. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-31-04-505Z-a3736add-73b8-4d77-8ea6-084ce8aa4599.json +129 -0
  203. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-31-15-654Z-b0197bff-8363-4d46-b84b-46d9ed67fc39.json +248 -0
  204. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-31-39-137Z-e373f24d-8a8c-46b0-86aa-9f687cfadb9b.json +278 -0
  205. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-32-05-324Z-f63095f1-755e-43fc-9d28-3cd1a9ff4f4d.json +251 -0
  206. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-32-25-191Z-fc9a83af-ceae-40d7-a737-8ef861ba7946.json +282 -0
  207. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-33-14-993Z-5e7eae34-09f0-4c80-9210-b8cc4d1acb5f.json +282 -0
  208. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-38-39-010Z-57cf6a26-f091-45de-8849-b616b303a46c.json +283 -0
  209. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-40-32-118Z-54528e43-ac07-4f9c-8f12-10c041130983.json +283 -0
  210. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-41-49-525Z-48195b6e-f20d-49a5-bd53-a732a0af10c1.json +324 -0
  211. package/docs/evaluation/extension-functions-2026-10-17/cache/cache-function-evidence-2026-10-17T13-42-18-175Z-215330e7-06a6-4666-af9c-2ecb214d8d71.json +324 -0
  212. package/docs/evaluation/extension-functions-2026-10-17/cache/integrity.json +165 -0
  213. package/docs/evaluation/extension-functions-2026-10-17/cache/probe.mjs +161 -0
  214. package/docs/evaluation/extension-functions-2026-10-17/cache/receipt-archive.json +150 -0
  215. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-3feeffc5-97bf-4079-8505-8119fab7956a.json +54 -0
  216. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-42e5eace-ad87-480a-94d9-448c1dd167b8.json +49 -0
  217. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-50f39f1c-8b48-442b-8d15-1f9c8f63bd81.json +49 -0
  218. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/commands-headless-8482b2b0-f600-488b-9f36-905e0125177a.json +54 -0
  219. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-128ffdce-6fd5-431b-8019-32b40ba4174d.json +42 -0
  220. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-3b572182-a737-471f-b9cb-b01d5da1752a.json +42 -0
  221. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-6c225370-2f47-4a0a-80d5-87d12f6c6fdc.json +37 -0
  222. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-codex-bypass-b48399db-cbed-43de-9071-ac27c34e3757.json +37 -0
  223. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-3a8f52b6-c8d6-4d1c-844c-782a6624a29e.json +45 -0
  224. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-6fcdbc20-b14b-4b80-a4da-bf24078da8d2.json +50 -0
  225. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-a8d6f628-40e1-437e-b192-f7232a051a44.json +50 -0
  226. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/payload-openai-c3c39463-a2d6-4ff8-b985-8f6d1fb1aa02.json +45 -0
  227. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-a23c264f-151d-4ff0-aab4-bdbb2f6560d8.json +53 -0
  228. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-d8178bd3-6530-4915-9cf1-056a975bfbcd.json +53 -0
  229. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-e3985119-e101-459e-91cd-21a0905287ba.json +48 -0
  230. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/stats-synthetic-e7a40382-2d27-4db5-a133-dbe346a5dc60.json +48 -0
  231. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-223d7adc-2dbc-4017-b1ec-0c38294320e2.json +41 -0
  232. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-347a8548-d2e0-4846-a08e-b0399f8fd3b4.json +41 -0
  233. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-49b45e2b-e2d2-456f-b73f-e6bc938b6378.json +46 -0
  234. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-unknown-aaf432f2-bb91-41a7-b951-2d4316389632.json +46 -0
  235. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-204ab3e8-f1fe-4894-8fb0-08299deb4c21.json +41 -0
  236. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-9388d2df-fa15-479c-a4ef-2a774c366c0f.json +46 -0
  237. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-e0bb4742-214a-4b3f-88d2-44de54394e2f.json +46 -0
  238. package/docs/evaluation/extension-functions-2026-10-17/cache/receipts/warming-disabled-zero-f77e1e2d-742a-490f-9955-1dfb19f59c9c.json +41 -0
  239. package/docs/evaluation/extension-functions-2026-10-17/cache/runner.mjs +36 -0
  240. package/docs/evaluation/extension-functions-2026-10-17/cursor/README.md +20 -0
  241. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-10-753Z-2bb4fff5-48cc-4f6b-ae1b-5cc1a07f610b.json +54 -0
  242. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-26-537Z-5adc4fb1-0008-4ef9-a106-aa372dabf061.json +56 -0
  243. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-32-362Z-30949c31-73a3-4dae-af81-68deded51543.json +56 -0
  244. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-38-494Z-8eec81b8-5576-48cb-b2fa-c279269db058.json +56 -0
  245. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-36-45-546Z-991647e5-7ea4-43c4-a90d-868e4ac38d83.json +56 -0
  246. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-37-02-277Z-2296fb35-e5cb-4bf1-9e83-7370bcb46bfe.json +56 -0
  247. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-37-28-390Z-e9c3d106-b4c9-4146-ae83-a2799c907fe5.json +56 -0
  248. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-37-37-371Z-8545c893-a8e3-4dc6-973b-81dfd97d798b.json +56 -0
  249. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-38-41-612Z-c57c4778-261d-4397-8a36-df9cc23ca629.json +58 -0
  250. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-38-51-661Z-0eb898de-7471-4f17-a308-5ef5d86421ff.json +58 -0
  251. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-38-55-412Z-8169d843-a9e7-48f4-88b1-3a90e1592df1.json +58 -0
  252. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-39-15-274Z-a5610333-e428-4cc6-9f5a-9206748ee512.json +58 -0
  253. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-39-39-506Z-d4c80a7b-76b4-4d11-bf0f-552d11b131b2.json +136 -0
  254. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-39-53-515Z-db409f47-8ee5-4354-b7f9-a258eb7e17d0.json +136 -0
  255. package/docs/evaluation/extension-functions-2026-10-17/cursor/evidence-2026-10-17T13-42-04-909Z-01d70cb3-6897-46ca-b8aa-1c69d5b5c7fc.json +148 -0
  256. package/docs/evaluation/extension-functions-2026-10-17/cursor/integrity.json +205 -0
  257. package/docs/evaluation/extension-functions-2026-10-17/cursor/probe.mjs +151 -0
  258. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipt-archive.json +186 -0
  259. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-104e378f-8f82-4ae9-bffc-7f1d52e00e74.json +15 -0
  260. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-182a8009-c52a-4760-9768-9cba15fceb9c.json +14 -0
  261. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-1f07360d-046f-4f0c-b40f-6b57a027220c.json +65 -0
  262. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-256cb86e-40ae-4fec-a2d2-9b7f66cc4be8.json +14 -0
  263. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-2667d991-3133-44c3-b883-c401b3c14cb1.json +14 -0
  264. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-394fc425-ed51-408f-ab09-6d26aee0d48f.json +14 -0
  265. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-531d3f1d-c326-4914-b768-3d32103513b9.json +14 -0
  266. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-5c7d0d62-8290-494f-8729-5d60bc626ad7.json +14 -0
  267. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-64af1d94-ea73-481f-b827-dbf6755d8591.json +66 -0
  268. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-65fce696-864c-4247-960e-59f6d671cbf9.json +15 -0
  269. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-66acde31-19c7-4d3e-9814-ddeb2cffd373.json +14 -0
  270. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-79d220d0-fc0b-4cad-85cc-40b9e904fb97.json +14 -0
  271. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-a58f0281-71bc-4757-9d6f-e281f813135e.json +65 -0
  272. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-c2b61e4b-fd33-4969-ab29-118957ca5fbb.json +15 -0
  273. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/activation-and-resources-f61b5020-2c05-40ad-9cb8-590b22790186.json +15 -0
  274. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-0ee0df5a-299f-451c-96e3-5abcf8bfa999.json +45 -0
  275. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-169e5146-09a2-4231-8017-ebd8d4b75f0a.json +14 -0
  276. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-19d479f2-7162-463e-90de-2d89a13e59a3.json +15 -0
  277. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-1bd882bb-2403-4269-8335-90f9803f57b7.json +14 -0
  278. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-2ab9d418-68b2-4679-bf42-f31b6945ea5a.json +15 -0
  279. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-3a6aa7d7-b956-4fe5-9555-a2c63408c067.json +45 -0
  280. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-6333425f-0b46-4ced-a272-3d48895ee853.json +15 -0
  281. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-6eccb170-ff45-40e2-afc5-dfc0f77c229f.json +14 -0
  282. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-7f330c57-9c3f-4879-a1d0-67c4c5c36050.json +14 -0
  283. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-8d9de272-165c-4bb8-a147-d1b306388472.json +14 -0
  284. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-c1ffa69f-25fa-4f45-a691-af3bc422c089.json +14 -0
  285. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-c24ad0c8-5e7e-4d71-9b22-3e2708ce1626.json +14 -0
  286. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-c5a3140e-a28e-4264-9ee6-51b1310b3123.json +14 -0
  287. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-cdbb3dde-2441-46ae-9111-f2a299d45807.json +46 -0
  288. package/docs/evaluation/extension-functions-2026-10-17/cursor/receipts/bridge-disabled-d68f774c-d1f0-4620-b334-301a20edffc3.json +15 -0
  289. package/docs/evaluation/extension-functions-2026-10-17/cursor/runner.mjs +147 -0
  290. package/docs/evaluation/extension-functions-2026-10-17/integrity.json +618 -0
  291. package/docs/evaluation/extension-functions-2026-10-17/navigation/README.md +22 -0
  292. package/docs/evaluation/extension-functions-2026-10-17/navigation/SHA256SUMS.txt +8 -0
  293. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempt.json +13 -0
  294. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-30-37-626Z-7ba0ce60-b805-4bf1-813f-80f0673c519d.json +50 -0
  295. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-31-06-997Z-0df6e689-b7f6-4daf-a730-724638c7e9bb.json +52 -0
  296. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-31-22-489Z-dfa50911-d117-400d-9ea3-76b224693c10.json +59 -0
  297. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-31-39-899Z-6792c0ef-c795-4136-98e2-b9a9b00489bd.json +59 -0
  298. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-31-58-555Z-e23d44fb-d2cb-42b6-b76b-f2ac53645401.json +59 -0
  299. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-32-18-734Z-3708117d-bca6-44a6-9f61-4339a67535ae.json +60 -0
  300. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-32-34-897Z-abbfb675-7120-46fc-8638-2dde943a3c51.json +114 -0
  301. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-33-30-753Z-f1965485-aa41-4a9a-b62e-267fc9d7686c.json +72 -0
  302. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-33-46-589Z-e3b46364-e0dd-4a95-91ce-c11f5192d83f.json +72 -0
  303. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-33-57-569Z-d296148e-2f64-4921-bad7-391d0f3cc61d.json +74 -0
  304. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-34-30-540Z-51791e8c-b2a7-4f93-bff6-9b0467aeba51.json +109 -0
  305. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-34-57-906Z-2c3e469c-6d89-4707-8bc6-e62dcfacdc7c.json +114 -0
  306. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-35-16-679Z-035260fc-f3d1-4c1c-9619-81f2aa2ced55.json +115 -0
  307. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-36-05-641Z-24ceb58d-441b-4ffe-9853-ef4d15eb8c81.json +73 -0
  308. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-37-00-445Z-1ca606b7-306f-41e9-8745-b53879c620bb.json +72 -0
  309. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-37-23-659Z-c958d5fc-5c17-46b9-abc0-87913f14fd4b.json +73 -0
  310. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-38-49-639Z-9e74ee3c-7cea-4d9e-832f-0b5068d161ec.json +112 -0
  311. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-39-53-463Z-5d834e9f-e247-4887-8200-dee41070567f.json +32 -0
  312. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-40-16-811Z-0be9d64c-a0d7-405c-b81a-12f8c6cfebac.json +33 -0
  313. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-40-36-020Z-412777d5-f352-4fa0-9a07-f017b5f04cbb.json +124 -0
  314. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-42-03-506Z-a0cca711-1300-4431-bfff-5814a409d0af.json +120 -0
  315. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-42-28-426Z-fb70da7e-4888-469a-b5cd-b74da52afa9f.json +112 -0
  316. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-42-41-596Z-c8e99863-70e2-40f1-a516-e9f41156ef44.json +71 -0
  317. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-44-06-279Z-39516e45-daf6-409b-b216-64179608cc2e.json +97 -0
  318. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-45-34-538Z-87ddef90-2fda-4211-a513-0516dec235f4.json +112 -0
  319. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-45-48-020Z-06f478f2-43c4-48a7-ac02-7e53d4df8aaf.json +112 -0
  320. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-46-00-807Z-a98cc49d-6cf6-4109-aa95-f2d36e8d35c3.json +97 -0
  321. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-46-34-183Z-77f75abc-9ec3-41b2-896f-b6f4a180dca8.json +160 -0
  322. package/docs/evaluation/extension-functions-2026-10-17/navigation/attempts/isolated-extensions-results-2026-10-17T13-46-56-605Z-f46134c2-8523-4892-ab76-e88195d79ed2.json +163 -0
  323. package/docs/evaluation/extension-functions-2026-10-17/navigation/child-guard.mjs +30 -0
  324. package/docs/evaluation/extension-functions-2026-10-17/navigation/final-result.json +42 -0
  325. package/docs/evaluation/extension-functions-2026-10-17/navigation/function-probe.mjs +521 -0
  326. package/docs/evaluation/extension-functions-2026-10-17/navigation/function-runner.mjs +201 -0
  327. package/docs/evaluation/extension-functions-2026-10-17/navigation/integrity.json +153 -0
  328. package/docs/evaluation/extension-functions-2026-10-17/navigation/receipt-archive.json +160 -0
  329. package/docs/evaluation/extension-functions-2026-10-17/review.json +27 -0
  330. package/docs/evaluation/extension-functions-2026-10-17/summary.json +102 -0
  331. package/docs/evaluation/extension-functions-2026-10-17/verification.json +103 -0
  332. package/docs/evaluation/isolation-acceptance-2026-10-18/README.md +106 -0
  333. package/docs/evaluation/isolation-acceptance-2026-10-18/auth-warmup.mjs +33 -0
  334. package/docs/evaluation/isolation-acceptance-2026-10-18/contained-agent-ro.json +433 -0
  335. package/docs/evaluation/isolation-acceptance-2026-10-18/contained.json +439 -0
  336. package/docs/evaluation/isolation-acceptance-2026-10-18/control.json +403 -0
  337. package/docs/evaluation/isolation-acceptance-2026-10-18/live.json +75 -0
  338. package/docs/evaluation/isolation-acceptance-2026-10-18/wrapper.sh +37 -0
  339. package/docs/evaluation/ledger-event-bridge-2026-10-21/README.md +360 -0
  340. package/docs/evaluation/ledger-event-bridge-2026-10-21/design.md +150 -0
  341. package/docs/evaluation/ledger-event-bridge-2026-10-21/inventory.md +113 -0
  342. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/README.md +117 -0
  343. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/dry-run/dry-01-L1-A.json +202 -0
  344. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/dry-run/dry-02-L1-C.json +259 -0
  345. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/01-L1-A.json +169 -0
  346. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/02-L1-A.json +202 -0
  347. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/03-L1-C.json +256 -0
  348. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run/approval.json +31 -0
  349. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run-2/01-L1-C.json +256 -0
  350. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run-2/02-L1-A.json +201 -0
  351. package/docs/evaluation/ledger-event-bridge-2026-10-21/live/run-2/approval.json +16 -0
  352. package/docs/evaluation/ledger-event-bridge-2026-10-21/live-plan.md +87 -0
  353. package/docs/evaluation/ledger-event-bridge-2026-10-21/pre-registration.md +117 -0
  354. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S1.json +361 -0
  355. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S2.json +544 -0
  356. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S3.json +470 -0
  357. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S4.json +271 -0
  358. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S5.json +271 -0
  359. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/S6.json +266 -0
  360. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/X6.json +29 -0
  361. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-1/summary.json +269 -0
  362. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S1.json +391 -0
  363. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S2.json +600 -0
  364. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S3.json +519 -0
  365. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S4.json +281 -0
  366. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S5.json +294 -0
  367. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S6.json +280 -0
  368. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/S8.json +280 -0
  369. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/X6.json +32 -0
  370. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-2/summary.json +307 -0
  371. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S1.json +391 -0
  372. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S2.json +600 -0
  373. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S3.json +519 -0
  374. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S4.json +281 -0
  375. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S5.json +294 -0
  376. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S6.json +280 -0
  377. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/S8.json +280 -0
  378. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/X6.json +32 -0
  379. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-3/summary.json +307 -0
  380. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S1.json +409 -0
  381. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S2.json +634 -0
  382. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S3.json +537 -0
  383. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S4.json +281 -0
  384. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S5.json +294 -0
  385. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S6.json +280 -0
  386. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/S8.json +280 -0
  387. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/X6.json +32 -0
  388. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-4/summary.json +307 -0
  389. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S1.json +409 -0
  390. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S2.json +634 -0
  391. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S3.json +537 -0
  392. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S4.json +281 -0
  393. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S5.json +294 -0
  394. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S6.json +280 -0
  395. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/S8.json +280 -0
  396. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/X6.json +32 -0
  397. package/docs/evaluation/ledger-event-bridge-2026-10-21/probe/attempt-5/summary.json +307 -0
  398. package/docs/evaluation/live-rescreen-2026-10-17/README.md +114 -0
  399. package/docs/evaluation/live-rescreen-2026-10-17/approval.json +18 -0
  400. package/docs/evaluation/live-rescreen-2026-10-17/approved-budget.json +13 -0
  401. package/docs/evaluation/live-rescreen-2026-10-17/approved-manifest.json +315 -0
  402. package/docs/evaluation/live-rescreen-2026-10-17/audit-rescreen.mjs +78 -0
  403. package/docs/evaluation/live-rescreen-2026-10-17/audit.json +152 -0
  404. package/docs/evaluation/live-rescreen-2026-10-17/backend-independent-checks.json +38 -0
  405. package/docs/evaluation/live-rescreen-2026-10-17/checks.json +54 -0
  406. package/docs/evaluation/live-rescreen-2026-10-17/execution.json +19 -0
  407. package/docs/evaluation/live-rescreen-2026-10-17/integrity.json +138 -0
  408. package/docs/evaluation/live-rescreen-2026-10-17/planning-ledger.json +26 -0
  409. package/docs/evaluation/live-rescreen-2026-10-17/review.json +16 -0
  410. package/docs/evaluation/live-rescreen-2026-10-17/runs/comparison.json +177 -0
  411. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-1.claim +1 -0
  412. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-1.diagnostic.json +1 -0
  413. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-1.json +97 -0
  414. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.claim +1 -0
  415. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.json +104 -0
  416. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.patch +11 -0
  417. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.snapshot/contract.mjs +4 -0
  418. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-2.snapshot/package.json +1 -0
  419. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-3.claim +1 -0
  420. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-3.json +89 -0
  421. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.claim +1 -0
  422. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.json +104 -0
  423. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.patch +11 -0
  424. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.snapshot/contract.mjs +4 -0
  425. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-4.snapshot/package.json +1 -0
  426. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-5.claim +1 -0
  427. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-5.diagnostic.json +1 -0
  428. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-5.json +117 -0
  429. package/docs/evaluation/live-rescreen-2026-10-17/runs/rescreen-6.json +53 -0
  430. package/docs/evaluation/live-rescreen-2026-10-17/runtime-observation.json +11 -0
  431. package/docs/evaluation/live-screening-2026-10-17/approval.json +13 -0
  432. package/docs/evaluation/live-screening-2026-10-17/approved-budget.json +13 -0
  433. package/docs/evaluation/live-screening-2026-10-17/approved-manifest.json +359 -0
  434. package/docs/evaluation/live-screening-2026-10-17/audit.json +143 -0
  435. package/docs/evaluation/live-screening-2026-10-17/integrity.json +148 -0
  436. package/docs/evaluation/live-screening-2026-10-17/inventory.json +239 -0
  437. package/docs/evaluation/live-screening-2026-10-17/runs/comparison.json +247 -0
  438. package/docs/evaluation/live-screening-2026-10-17/runs/screen-1.claim +1 -0
  439. package/docs/evaluation/live-screening-2026-10-17/runs/screen-1.diagnostic.json +1 -0
  440. package/docs/evaluation/live-screening-2026-10-17/runs/screen-1.json +98 -0
  441. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.claim +1 -0
  442. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.json +104 -0
  443. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.patch +11 -0
  444. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.snapshot/contract.mjs +4 -0
  445. package/docs/evaluation/live-screening-2026-10-17/runs/screen-2.snapshot/package.json +1 -0
  446. package/docs/evaluation/live-screening-2026-10-17/runs/screen-3.claim +1 -0
  447. package/docs/evaluation/live-screening-2026-10-17/runs/screen-3.diagnostic.json +1 -0
  448. package/docs/evaluation/live-screening-2026-10-17/runs/screen-3.json +97 -0
  449. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.claim +1 -0
  450. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.json +104 -0
  451. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.patch +11 -0
  452. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.snapshot/contract.mjs +4 -0
  453. package/docs/evaluation/live-screening-2026-10-17/runs/screen-4.snapshot/package.json +1 -0
  454. package/docs/evaluation/live-screening-2026-10-17/runs/screen-5.claim +1 -0
  455. package/docs/evaluation/live-screening-2026-10-17/runs/screen-5.diagnostic.json +1 -0
  456. package/docs/evaluation/live-screening-2026-10-17/runs/screen-5.json +97 -0
  457. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.claim +1 -0
  458. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.json +104 -0
  459. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.patch +11 -0
  460. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.snapshot/contract.mjs +4 -0
  461. package/docs/evaluation/live-screening-2026-10-17/runs/screen-6.snapshot/package.json +1 -0
  462. package/docs/evaluation/live-screening-2026-10-17/runs/screen-7.claim +1 -0
  463. package/docs/evaluation/live-screening-2026-10-17/runs/screen-7.json +108 -0
  464. package/docs/evaluation/live-screening-2026-10-17/runs/screen-8.claim +1 -0
  465. package/docs/evaluation/live-screening-2026-10-17/runs/screen-8.diagnostic.json +1 -0
  466. package/docs/evaluation/live-screening-2026-10-17/runs/screen-8.json +116 -0
  467. package/docs/evaluation/m1-ab-proposal-2026-10-18/README.md +124 -0
  468. package/docs/evaluation/m1-ab-proposal-2026-10-18/ab-proposal.json +135 -0
  469. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/README.md +25 -0
  470. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/approved-budget.json +13 -0
  471. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/approved-decision.json +79 -0
  472. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/approved-manifest.json +271 -0
  473. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-1/token-live-result.json +546 -0
  474. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/README.md +22 -0
  475. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/approved-budget.json +13 -0
  476. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/approved-decision.json +80 -0
  477. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/approved-manifest.json +271 -0
  478. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-2/token-live-result.json +1663 -0
  479. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/README.md +23 -0
  480. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/approved-budget.json +13 -0
  481. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/approved-decision.json +71 -0
  482. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/approved-manifest.json +271 -0
  483. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-3/token-live-result.json +1748 -0
  484. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/README.md +25 -0
  485. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/approved-budget.json +13 -0
  486. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/approved-decision.json +71 -0
  487. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/approved-manifest.json +271 -0
  488. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-A/token-live-result.json +3019 -0
  489. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/approved-budget.json +13 -0
  490. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/approved-decision.json +71 -0
  491. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/approved-manifest.json +271 -0
  492. package/docs/evaluation/m1-ab-proposal-2026-10-18/probe/attempt-4/arm-B/token-live-result.json +2859 -0
  493. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/README.md +67 -0
  494. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/approved-budget.json +13 -0
  495. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/approved-decision.json +71 -0
  496. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/approved-manifest.json +271 -0
  497. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r1-pair1-A/token-live-result.json +3019 -0
  498. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/approved-budget.json +13 -0
  499. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/approved-decision.json +71 -0
  500. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/approved-manifest.json +271 -0
  501. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r2-pair1-B/token-live-result.json +2981 -0
  502. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/approved-budget.json +13 -0
  503. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/approved-decision.json +71 -0
  504. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/approved-manifest.json +271 -0
  505. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r3-pair2-B/token-live-result.json +2887 -0
  506. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/approved-budget.json +13 -0
  507. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/approved-decision.json +71 -0
  508. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/approved-manifest.json +271 -0
  509. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r4-pair2-A/token-live-result.json +3189 -0
  510. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/approved-budget.json +13 -0
  511. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/approved-decision.json +71 -0
  512. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/approved-manifest.json +271 -0
  513. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r5-pair3-B/token-live-result.json +2929 -0
  514. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/approved-budget.json +13 -0
  515. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/approved-decision.json +71 -0
  516. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/approved-manifest.json +271 -0
  517. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r6-pair3-A/token-live-result.json +3085 -0
  518. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/approved-budget.json +13 -0
  519. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/approved-decision.json +71 -0
  520. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/approved-manifest.json +271 -0
  521. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r7-pair4-A/token-live-result.json +3019 -0
  522. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/approved-budget.json +13 -0
  523. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/approved-decision.json +71 -0
  524. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/approved-manifest.json +271 -0
  525. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/r8-pair4-B/token-live-result.json +2925 -0
  526. package/docs/evaluation/m1-ab-proposal-2026-10-18/results/summary-rows.json +338 -0
  527. package/docs/evaluation/node24-followup-2026-10-17/README.md +55 -0
  528. package/docs/evaluation/node24-followup-2026-10-17/client-migration-review.json +20 -0
  529. package/docs/evaluation/node24-followup-2026-10-17/client-registration-migration.json +31 -0
  530. package/docs/evaluation/node24-followup-2026-10-17/client-registration-verification.json +389 -0
  531. package/docs/evaluation/node24-followup-2026-10-17/closure-checks.json +33 -0
  532. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-probe.mjs +259 -0
  533. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-report.md +39 -0
  534. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result-attempt-2.json +49 -0
  535. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result-attempt-3.json +76 -0
  536. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result-attempt-4.json +108 -0
  537. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-result.json +12 -0
  538. package/docs/evaluation/node24-followup-2026-10-17/cursor-headless-run.mjs +96 -0
  539. package/docs/evaluation/node24-followup-2026-10-17/download.json +16 -0
  540. package/docs/evaluation/node24-followup-2026-10-17/extension-summary.json +97 -0
  541. package/docs/evaluation/node24-followup-2026-10-17/final-review.json +15 -0
  542. package/docs/evaluation/node24-followup-2026-10-17/install.json +10 -0
  543. package/docs/evaluation/node24-followup-2026-10-17/integrity.json +204 -0
  544. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-evidence.json +39 -0
  545. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-probe.mjs +277 -0
  546. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-report.md +35 -0
  547. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-19-48-378Z-b378dc9f-9ab8-4349-8892-78af8184f78f.json +151 -0
  548. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-20-22-821Z-85cfcba4-c05e-4c5a-9658-d8d70f5c8d1a.json +223 -0
  549. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-20-54-825Z-fd5d8373-6e29-4197-84bd-2e65251b4db8.json +207 -0
  550. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-21-44-636Z-488698ad-f8bf-4d7e-b85a-615275c32e5d.json +82 -0
  551. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-05-375Z-16f5d77c-32a2-4d0a-905a-e080b392316f.json +94 -0
  552. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-07-471Z-fcbe7c98-fed3-4120-a860-b2e3f9572836.json +63 -0
  553. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-17-638Z-45ec386d-3429-4a7c-a10e-8673c03861f0.json +63 -0
  554. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-22-485Z-1b08e134-667c-4416-8372-cb233939c48b.json +125 -0
  555. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-22-25-490Z-223fd05e-52f9-4996-88d7-3ec43a6ecdd9.json +125 -0
  556. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-23-42-291Z-f4af1e12-844e-4b2d-a090-9068e7626dd5.json +82 -0
  557. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-24-36-866Z-30770d13-c7ae-4309-921b-5c1b43050adb.json +52 -0
  558. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-25-05-378Z-2a5dffc1-3f3a-433a-823f-6e77964dcaee.json +53 -0
  559. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-25-15-842Z-798946f5-b9a5-4810-8a0c-35be6f40abb3.json +83 -0
  560. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-results-2026-10-17T09-25-19-099Z-89bd000d-bb51-4e3a-b713-51ff1ff4e38b.json +87 -0
  561. package/docs/evaluation/node24-followup-2026-10-17/isolated-extensions-runner.mjs +172 -0
  562. package/docs/evaluation/node24-followup-2026-10-17/isolated-install.json +121 -0
  563. package/docs/evaluation/node24-followup-2026-10-17/isolated-package-lock.json +2321 -0
  564. package/docs/evaluation/node24-followup-2026-10-17/isolated-package.json +12 -0
  565. package/docs/evaluation/node24-followup-2026-10-17/launcher-review.json +17 -0
  566. package/docs/evaluation/node24-followup-2026-10-17/launcher-switch.json +28 -0
  567. package/docs/evaluation/node24-followup-2026-10-17/mcp-launcher-test.json +24 -0
  568. package/docs/evaluation/node24-followup-2026-10-17/migrate-client-node.mjs +129 -0
  569. package/docs/evaluation/node24-followup-2026-10-17/node-runtime-report.md +127 -0
  570. package/docs/evaluation/node24-followup-2026-10-17/node24-checks.json +44 -0
  571. package/docs/evaluation/node24-followup-2026-10-17/pi-launcher-test.json +13 -0
  572. package/docs/evaluation/node24-followup-2026-10-17/publication-export.json +11 -0
  573. package/docs/evaluation/node24-followup-2026-10-17/restore-launchers.mjs +26 -0
  574. package/docs/evaluation/node24-followup-2026-10-17/verify-client-node.mjs +36 -0
  575. package/docs/evaluation/permission-gates-2026-10-17/README.md +23 -0
  576. package/docs/evaluation/permission-gates-2026-10-17/attempts.json +53 -0
  577. package/docs/evaluation/permission-gates-2026-10-17/integrity.json +46 -0
  578. package/docs/evaluation/permission-gates-2026-10-17/permission-gate-probe.mjs +132 -0
  579. package/docs/evaluation/permission-gates-2026-10-17/permission-gate-worker.mjs +209 -0
  580. package/docs/evaluation/permission-gates-2026-10-17/permission-gates-result-final.json +53 -0
  581. package/docs/evaluation/permission-gates-2026-10-17/permission-gates-result-verified.json +54 -0
  582. package/docs/evaluation/permission-gates-2026-10-17/permission-gates-result.json +53 -0
  583. package/docs/evaluation/permission-gates-2026-10-17/review.json +19 -0
  584. package/docs/evaluation/permission-gates-2026-10-17/superseded-initial-receipt.json +40 -0
  585. package/docs/evaluation/pi-lens-registration-2026-10-19/README.md +90 -0
  586. package/docs/evaluation/pi-lens-registration-2026-10-19/probe.mjs +126 -0
  587. package/docs/evaluation/pi-lens-registration-2026-10-19/result.json +1 -0
  588. package/docs/evaluation/plan-continuation-2026-10-17/README.md +107 -0
  589. package/docs/evaluation/plan-continuation-2026-10-17/budget.proposed.json +13 -0
  590. package/docs/evaluation/plan-continuation-2026-10-17/checks.json +1048 -0
  591. package/docs/evaluation/plan-continuation-2026-10-17/integrity.json +58 -0
  592. package/docs/evaluation/plan-continuation-2026-10-17/inventory.json +239 -0
  593. package/docs/evaluation/plan-continuation-2026-10-17/manifest.proposed.json +315 -0
  594. package/docs/evaluation/plan-continuation-2026-10-17/next-stage-ledger.json +19 -0
  595. package/docs/evaluation/plan-continuation-2026-10-17/prepare-rescreen.mjs +30 -0
  596. package/docs/evaluation/plan-continuation-2026-10-17/prior-integrity.json +25 -0
  597. package/docs/evaluation/plan-continuation-2026-10-17/proposal-validation.json +14 -0
  598. package/docs/evaluation/plan-continuation-2026-10-17/receipt-contract-update.patch +40 -0
  599. package/docs/evaluation/plan-continuation-2026-10-17/review.json +8 -0
  600. package/docs/evaluation/plan-continuation-2026-10-17/source-delta.json +14 -0
  601. package/docs/evaluation/profile-evaluation.md +297 -0
  602. package/docs/evaluation/publication-2026-10-17/README.md +88 -0
  603. package/docs/evaluation/publication-2026-10-17/checks.json +117 -0
  604. package/docs/evaluation/publication-2026-10-17/integrity.json +21 -0
  605. package/docs/evaluation/publication-2026-10-17/publication-scan.json +63 -0
  606. package/docs/evaluation/publication-2026-10-17/review.json +21 -0
  607. package/docs/evaluation/s5-decision-inputs-2026-10-18/README.md +16 -0
  608. package/docs/evaluation/s5-decision-inputs-2026-10-18/bounded-wait.md +78 -0
  609. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/README.md +151 -0
  610. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-1/claude-projection.json +126 -0
  611. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-2/claude-projection.json +1895 -0
  612. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-3/claude-projection.json +1895 -0
  613. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-4/claude-projection.json +1797 -0
  614. package/docs/evaluation/s5-decision-inputs-2026-10-18/claude-projection/attempt-5/claude-projection.json +1797 -0
  615. package/docs/evaluation/s5-decision-inputs-2026-10-18/worker-usage.md +63 -0
  616. package/docs/evaluation/s7-live-acceptance-2026-10-24/README.md +212 -0
  617. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/binding.json +20 -0
  618. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-ev-off.json +43 -0
  619. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-ev-spool.json +43 -0
  620. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-l3.json +39 -0
  621. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/config-pre.json +31 -0
  622. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e-teardown-setup-remove.json +1 -0
  623. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-clean-10s.json +15 -0
  624. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-clean.json +15 -0
  625. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-digest-ev-e1.json +8 -0
  626. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-leaks.json +131 -0
  627. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-oracle.json +74 -0
  628. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-run.json +33 -0
  629. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-setup-1-dryrun.json +1 -0
  630. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-setup-2-apply.json +1 -0
  631. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e1-setup-3-verify.json +1 -0
  632. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-clean-10s.json +15 -0
  633. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-clean.json +15 -0
  634. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-digest-ev-e2l.json +8 -0
  635. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-digest-ev-e2s.json +8 -0
  636. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-leaks.json +205 -0
  637. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-oracle.json +110 -0
  638. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e2-run.json +33 -0
  639. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-clean-10s.json +15 -0
  640. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-clean.json +15 -0
  641. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-digest-ev-e3.json +8 -0
  642. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-leaks.json +215 -0
  643. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-oracle.json +79 -0
  644. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e3b-run.json +33 -0
  645. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-clean-10s.json +15 -0
  646. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-clean.json +15 -0
  647. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-digest-ev-e4a.json +8 -0
  648. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-digest-ev-e4b.json +8 -0
  649. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-late-a.json +16 -0
  650. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-late-b.json +16 -0
  651. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-leaks.json +167 -0
  652. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-oracle.json +70 -0
  653. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e4-run.json +37 -0
  654. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-clean-10s.json +15 -0
  655. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-clean.json +15 -0
  656. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-digest-ev-e5.json +8 -0
  657. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-leaks.json +82 -0
  658. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-oracle.json +60 -0
  659. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-run.json +33 -0
  660. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e5-server-env-names.txt +14 -0
  661. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-clean-10s.json +15 -0
  662. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-clean.json +15 -0
  663. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-digest-ev-e1.json +8 -0
  664. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-leaks.json +156 -0
  665. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-run.json +37 -0
  666. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-setup-apply.json +1 -0
  667. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/e6b-teardown-remove.json +1 -0
  668. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/final-e-clean.json +15 -0
  669. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/kit.sha256 +23 -0
  670. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-packed-off.json +1185 -0
  671. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-packed-spool.json +1334 -0
  672. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-wt-off.json +1185 -0
  673. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l2-wt-spool.json +1334 -0
  674. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-clean-10s.json +15 -0
  675. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-clean.json +15 -0
  676. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-digest-cc-analysis.json +8 -0
  677. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-leaks.json +80 -0
  678. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-oracle.json +61 -0
  679. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv1-run.json +33 -0
  680. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-clean-10s.json +15 -0
  681. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-clean.json +15 -0
  682. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-leaks.json +80 -0
  683. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-oracle-stage1.json +34 -0
  684. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-oracle-stage2.json +35 -0
  685. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-run.json +33 -0
  686. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-snapshot-stage1.txt +4 -0
  687. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv2-snapshot-stage2.txt +5 -0
  688. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-clean-10s.json +15 -0
  689. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-clean.json +15 -0
  690. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-digest-cc-abort.json +8 -0
  691. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-leaks.json +82 -0
  692. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-oracle-flow.json +61 -0
  693. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-oracle-late.json +16 -0
  694. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cc-inv3-run.json +33 -0
  695. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-controller-skill-remove.json +1 -0
  696. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-controller-skill-setup.json +1 -0
  697. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-clean-10s.json +15 -0
  698. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-clean.json +15 -0
  699. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-digest-cx-analysis.json +8 -0
  700. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-leaks.json +93 -0
  701. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-oracle.json +61 -0
  702. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv1-run.json +33 -0
  703. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-clean-10s.json +15 -0
  704. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-clean.json +15 -0
  705. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-leaks.json +93 -0
  706. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-oracle-stage1.json +34 -0
  707. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-oracle-stage2.json +35 -0
  708. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-run.json +33 -0
  709. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-snapshot-stage1.txt +4 -0
  710. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv2-snapshot-stage2.txt +5 -0
  711. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-clean-10s.json +15 -0
  712. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-clean.json +15 -0
  713. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-digest-cx-abort.json +8 -0
  714. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-leaks.json +95 -0
  715. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-oracle-flow.json +61 -0
  716. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-oracle-late.json +16 -0
  717. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/l3-cx-inv3-run.json +33 -0
  718. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-clean-10s.json +15 -0
  719. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-clean.json +15 -0
  720. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-digest-pre-analysis.json +8 -0
  721. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-digest-pre-code.json +8 -0
  722. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-leaks.json +86 -0
  723. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-oracle.json +39 -0
  724. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0-run.json +33 -0
  725. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-clean-10s.json +15 -0
  726. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-clean.json +15 -0
  727. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-digest-pre-analysis.json +8 -0
  728. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-digest-pre-code.json +8 -0
  729. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-leaks.json +47 -0
  730. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-oracle.json +39 -0
  731. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/p0a-harness-fail-run.json +33 -0
  732. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-after-cc.json +6 -0
  733. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-after-cx.json +6 -0
  734. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-after-e.json +6 -0
  735. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/regdigest-before.json +6 -0
  736. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-control-apply.json +1 -0
  737. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-control-dryrun.json +1 -0
  738. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-provision-apply-attempt1.json +1 -0
  739. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-provision-apply-attempt2.json +1 -0
  740. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-provision-dryrun.json +1 -0
  741. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w1-writer-verify.json +1 -0
  742. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2-leaks.json +130 -0
  743. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2-oracle.txt +14 -0
  744. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2-run.json +33 -0
  745. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2b-oracle.txt +16 -0
  746. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2c-oracle.txt +8 -0
  747. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2d-oracle.txt +6 -0
  748. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2r-leaks.json +130 -0
  749. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2r-oracle.txt +3 -0
  750. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w2r-run.json +33 -0
  751. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3-collect.json +1 -0
  752. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3-finish.json +1 -0
  753. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3r-collect.json +1 -0
  754. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w3r-finish.json +1 -0
  755. package/docs/evaluation/s7-live-acceptance-2026-10-24/evidence/w4-remove.json +1 -0
  756. package/docs/evaluation/subagent-probe-2026-10-26/README.md +132 -0
  757. package/docs/evaluation/subagent-probe-2026-10-26/results/K7.json +463 -0
  758. package/docs/evaluation/subagent-probe-2026-10-26/results/summary.json +50 -0
  759. package/docs/evaluation/test-coverage-2026-10-17.json +483 -0
  760. package/docs/evaluation/test-coverage-review-2026-10-17.json +22 -0
  761. package/docs/evaluation/test-coverage-verification-2026-10-17.json +31 -0
  762. package/docs/evaluation/token-footprint-2026-10-17/README.md +297 -0
  763. package/docs/evaluation/token-footprint-2026-10-17/baseline.json +25871 -0
  764. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/README.md +24 -0
  765. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/baseline.json +30346 -0
  766. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/client-projection.json +2538 -0
  767. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-approval/budget.json +13 -0
  768. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-approval/decision.json +69 -0
  769. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-approval/manifest.json +271 -0
  770. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/live-package.json +785 -0
  771. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/measurement.json +37956 -0
  772. package/docs/evaluation/token-footprint-2026-10-17/calibration-2/summary.json +119 -0
  773. package/docs/evaluation/token-footprint-2026-10-17/checks-final.json +273 -0
  774. package/docs/evaluation/token-footprint-2026-10-17/checks.json +190 -0
  775. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/README.md +25 -0
  776. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/attempt-4.json +2274 -0
  777. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/pilot-1.json +77 -0
  778. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/pilot-2.json +81 -0
  779. package/docs/evaluation/token-footprint-2026-10-17/client-attempts/pilot-3.json +121 -0
  780. package/docs/evaluation/token-footprint-2026-10-17/current-calibration/baseline.json +30346 -0
  781. package/docs/evaluation/token-footprint-2026-10-17/current-calibration/measurement.json +37956 -0
  782. package/docs/evaluation/token-footprint-2026-10-17/current-calibration/summary.json +119 -0
  783. package/docs/evaluation/token-footprint-2026-10-17/current-client-projection.json +2538 -0
  784. package/docs/evaluation/token-footprint-2026-10-17/follow-up.md +76 -0
  785. package/docs/evaluation/token-footprint-2026-10-17/integrity.json +171 -0
  786. package/docs/evaluation/token-footprint-2026-10-17/live-approval/README.md +36 -0
  787. package/docs/evaluation/token-footprint-2026-10-17/live-approval/budget.json +13 -0
  788. package/docs/evaluation/token-footprint-2026-10-17/live-approval/decision.json +69 -0
  789. package/docs/evaluation/token-footprint-2026-10-17/live-approval/manifest.json +271 -0
  790. package/docs/evaluation/token-footprint-2026-10-17/live-package.json +795 -0
  791. package/docs/evaluation/token-footprint-2026-10-17/live-proposal.json +427 -0
  792. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/README.md +75 -0
  793. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/approved-budget.json +13 -0
  794. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/approved-decision.json +69 -0
  795. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/approved-manifest.json +271 -0
  796. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-1/token-live-result.json +837 -0
  797. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/approved-budget.json +13 -0
  798. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/approved-decision.json +69 -0
  799. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/approved-manifest.json +271 -0
  800. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-2/token-live-result.json +985 -0
  801. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/approved-budget.json +13 -0
  802. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/approved-decision.json +69 -0
  803. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/approved-manifest.json +271 -0
  804. package/docs/evaluation/token-footprint-2026-10-17/m1-pilot/attempt-3/token-live-result.json +3055 -0
  805. package/docs/evaluation/token-footprint-2026-10-17/measurement.json +32476 -0
  806. package/docs/evaluation/token-footprint-2026-10-17/prior-calibration/README.md +20 -0
  807. package/docs/evaluation/token-footprint-2026-10-17/prior-calibration/integrity.json +40 -0
  808. package/docs/evaluation/token-footprint-2026-10-17/summary.json +119 -0
  809. package/docs/evaluation/tool-definitions-2026-10-18/README.md +204 -0
  810. package/docs/evaluation/tool-definitions-2026-10-18/codex-projection/after/client-projection.json +2853 -0
  811. package/docs/evaluation/tool-definitions-2026-10-18/codex-projection/before/client-projection.json +2853 -0
  812. package/docs/evaluation/tool-definitions-2026-10-18/compare-validation.mjs +64 -0
  813. package/docs/evaluation/tool-definitions-2026-10-18/diff-validation.mjs +13 -0
  814. package/docs/evaluation/tool-definitions-2026-10-18/measure-wire.mjs +31 -0
  815. package/docs/evaluation/worker-system-prompt-2026-10-26/README.md +95 -0
  816. package/docs/evaluation/worker-system-prompt-2026-10-26/probe.mjs +155 -0
  817. package/docs/execution-modes.md +388 -0
  818. package/docs/installation.md +246 -12
  819. package/docs/isolation-setup.md +258 -0
  820. package/docs/macos-setup-design.md +2 -2
  821. package/docs/pi-extensions-design.md +71 -16
  822. package/docs/releasing.md +12 -6
  823. package/docs/reviews/2026-10-18-adr-0008-decision-brief.md +53 -0
  824. package/docs/roadmap.md +320 -9
  825. package/docs/session-mcp.md +5 -1
  826. package/docs/skills.md +23 -0
  827. package/docs/sprints/2026-10-15-s4-decision.md +73 -4
  828. package/docs/sprints/2026-10-17-token-footprint.md +130 -0
  829. package/docs/sprints/2026-10-18-s5-maintenance-orchestration.md +202 -0
  830. package/docs/sprints/2026-10-21-s6-ledger-event-bridge.md +120 -0
  831. package/docs/sprints/2026-10-24-s7-stabilization-live-acceptance.md +173 -0
  832. package/docs/sprints/2026-10-24-s8-writer-migration.md +235 -0
  833. package/docs/sprints/2026-10-26-s10-orchestration-reliability.md +250 -0
  834. package/docs/sprints/2026-10-26-s11-orchestration-gaps.md +173 -0
  835. package/docs/threat-model.md +37 -6
  836. package/docs/tool-contracts.md +91 -9
  837. package/package.json +17 -11
  838. package/scripts/isolation-acceptance.mjs +709 -0
  839. package/scripts/isolation-probe.cjs +213 -0
  840. package/skills/pi-session-implementation/SKILL.md +13 -3
  841. package/skills/pi-session-orchestration/SKILL.md +50 -13
  842. package/skills/pi-session-orchestration/references/start-errors.md +12 -0
  843. package/skills/pi-session-review/SKILL.md +13 -5
@@ -0,0 +1,36 @@
1
+ import {spawn} from 'node:child_process';
2
+ import {mkdtemp,mkdir,readFile,readdir,writeFile,rm} from 'node:fs/promises';
3
+ import {randomUUID,createHash} from 'node:crypto';
4
+ import {homedir} from 'node:os';
5
+ import {dirname,join,resolve} from 'node:path';
6
+ import {fileURLToPath} from 'node:url';
7
+ const mode=process.argv[2];
8
+ if(!['web','openwiki'].includes(mode))throw Error('mode_required');
9
+ const repo=process.cwd(),here=dirname(fileURLToPath(import.meta.url));
10
+ const {sourceBinding}=await import(new URL('../../../..'+'/.profile-eval/eval/profiles/files.js',import.meta.url));
11
+ const source=await sourceBinding(repo),startedAt=new Date().toISOString();
12
+ if(source.digest!=='sha256:a4524626851448908b8d21ecbd7248c9956ce830406e81c45fda46c8eb6fffc5')throw Error('source_binding_changed');
13
+ const harness=[];for(const name of ['run.mjs','worker.mjs','guard.mjs'])harness.push({path:name,sha256:createHash('sha256').update(await readFile(join(here,name))).digest('hex')});
14
+ const id='extension-functions-bridges-'+randomUUID(),out=join(repo,'eval/results',id);
15
+ await mkdir(out,{mode:0o700});await writeFile(join(out,'.owner'),id,{flag:'wx',mode:0o600});
16
+ const scope=await mkdtemp('/tmp/pi-functions-');await writeFile(join(scope,'.owner'),id,{mode:0o600});
17
+ const child=spawn(process.execPath,[join(here,'worker.mjs'),mode],{cwd:repo,detached:true,stdio:['ignore','pipe','pipe'],env:{HOME:scope,PATH:dirname(process.execPath)+':/usr/bin:/bin',EXT_FUNCTION_SCOPE:scope,EXT_FUNCTION_OWNER:id,EXT_FUNCTION_INSTALLED_AGENT:join(homedir(),'.pi/agent'),EXT_FUNCTION_KIND:mode,DO_NOT_TRACK:'1',OPENWIKI_TELEMETRY_DISABLED:'1'}});
18
+ let stdout='',stderrDebug='',stderrBytes=0,overflow=false,timedOut=false,escalation;
19
+ const signal=s=>{try{process.kill(-child.pid,s);}catch(e){if(e.code!=='ESRCH')throw e;}};
20
+ const timer=setTimeout(()=>{timedOut=true;signal('SIGTERM');escalation=setTimeout(()=>signal('SIGKILL'),1000);},60000);
21
+ child.stdout.on('data',b=>{if(Buffer.byteLength(stdout)+b.length>65536){overflow=true;signal('SIGKILL');}else if(!overflow)stdout+=b;});
22
+ child.stderr.on('data',b=>{stderrBytes+=b.length;if(stderrDebug.length<4096)stderrDebug+=b.toString();});
23
+ const terminal=await new Promise(r=>{child.once('error',()=>r({code:null,signal:null,spawn_error:true}));child.once('close',(code,signal)=>r({code,signal}));});
24
+ clearTimeout(timer);if(escalation)clearTimeout(escalation);
25
+ async function groupEmpty(){for(const pid of await readdir('/proc')){if(!/^\d+$/.test(pid))continue;try{const stat=await readFile('/proc/'+pid+'/stat','utf8'),f=stat.slice(stat.lastIndexOf(')')+2).trim().split(/\s+/);if(Number(f[2])===child.pid&&!['Z','X'].includes(f[0]))return false;}catch(e){if(e.code!=='ENOENT'&&e.code!=='ESRCH')return false;}}return true;}
26
+ let gone=await groupEmpty();if(!gone){signal('SIGTERM');await new Promise(r=>setTimeout(r,100));signal('SIGKILL');await new Promise(r=>setTimeout(r,100));gone=await groupEmpty();}
27
+ let receipt;try{receipt=JSON.parse(stdout.trim());}catch{receipt={status:'FAIL',code:'missing_sanitized_receipt'};}
28
+ let removed=false;if(gone&&await readFile(join(scope,'.owner'),'utf8')===id){await rm(scope,{recursive:true});removed=true;}
29
+ const supervisor={worker_exit_code:terminal.code,worker_signal:terminal.signal,timed_out:timedOut,output_overflow:overflow,stderr_bytes_discarded:stderrBytes,process_group_empty:gone,owned_scope_removed:removed};
30
+ if(terminal.code!==0||timedOut||overflow||!gone||!removed)receipt.status='FAIL';
31
+ if(receipt.status==='FAIL')receipt.sanitized_stderr=stderrDebug.replaceAll(scope,'<owned-scope>').replaceAll(repo,'<eval-repo>').replace(/\/home\/[^\s\"')]+/g,'<host-path>').replace(/file:\/\/[^\s)]+/g,'<module>').slice(0,4096);
32
+ receipt.source_binding=source;receipt.started_at=startedAt;receipt.ended_at=new Date().toISOString();receipt.harness=harness;
33
+ receipt.supervisor=supervisor;receipt.scope_id=id;
34
+ await writeFile(join(out,'result.json'),JSON.stringify(receipt,null,2)+'\n',{flag:'wx',mode:0o600});
35
+ process.stdout.write(JSON.stringify({mode,status:receipt.status,scope_id:id,cases:receipt.cases,supervisor})+'\n');
36
+ if(receipt.status==='FAIL')process.exitCode=1;
@@ -0,0 +1,99 @@
1
+ {
2
+ "kind": "actual-extension-functional-probe",
3
+ "package": "pi-web-access@0.41.0",
4
+ "package_files": [
5
+ {
6
+ "path": "package.json",
7
+ "sha256": "c5ccc33fe7241a28d1a32f6a633dae06b6a23e4fb3b841b0527e148d66d21ee7"
8
+ },
9
+ {
10
+ "path": "dist/mcp-cli.js",
11
+ "sha256": "2eae8d7b75b02f9df03b9334c5c0b4df5b53ef08536c69f8baea8757b829bd71"
12
+ }
13
+ ],
14
+ "node": "24.22.0",
15
+ "cases": [
16
+ {
17
+ "id": "pi-extension-resolver-gate",
18
+ "status": "PASS",
19
+ "expected_blocker": "directory_manifest_entry",
20
+ "pi_profile_status": "BLOCKED"
21
+ },
22
+ {
23
+ "id": "standalone-mcp-tool-discovery",
24
+ "status": "PASS",
25
+ "tools": [
26
+ "web_search",
27
+ "fetch_content",
28
+ "get_search_content",
29
+ "source_check"
30
+ ]
31
+ },
32
+ {
33
+ "id": "standalone-raw-fetch-owned-http",
34
+ "status": "PASS",
35
+ "canary_preserved": true
36
+ },
37
+ {
38
+ "id": "standalone-stored-content-search",
39
+ "status": "PASS",
40
+ "original_content_retrieved": true
41
+ },
42
+ {
43
+ "id": "standalone-invalid-fetch-rejected",
44
+ "status": "PASS"
45
+ },
46
+ {
47
+ "id": "standalone-model-answer-mode-rejected",
48
+ "status": "PASS"
49
+ }
50
+ ],
51
+ "model_prompts_submitted": 0,
52
+ "provider_calls": 0,
53
+ "integration": "Standalone MCP functional path; production Pi extension loading remains BLOCKED.",
54
+ "status": "PASS",
55
+ "cleanup": "PASS",
56
+ "guards": {
57
+ "network_allowed": 1,
58
+ "network_denied": 0,
59
+ "git_allowed": 0,
60
+ "children_allowed": 1,
61
+ "children_denied": 0
62
+ },
63
+ "diagnostics": [],
64
+ "limits": [
65
+ "No model prompt or paid provider request.",
66
+ "JavaScript network/child guards are instrumentation, not OS containment.",
67
+ "Only named synthetic function cases are qualified; model quality and production use remain unproven."
68
+ ],
69
+ "source_binding": {
70
+ "commit": "406dae7e6b99aa5715960490e869bd3fc668cca2",
71
+ "digest": "sha256:a4524626851448908b8d21ecbd7248c9956ce830406e81c45fda46c8eb6fffc5"
72
+ },
73
+ "started_at": "2026-10-17T13:35:28.891Z",
74
+ "ended_at": "2026-10-17T13:35:29.926Z",
75
+ "harness": [
76
+ {
77
+ "path": "run.mjs",
78
+ "sha256": "21fb7b96d8df277f75926f6848154a10717d59db722be33539704ea4f2f0470e"
79
+ },
80
+ {
81
+ "path": "worker.mjs",
82
+ "sha256": "3f7299cb8972ee268cf6fd2b187b0cdde21ff53b4d1132b69d5d19e21c3b450f"
83
+ },
84
+ {
85
+ "path": "guard.mjs",
86
+ "sha256": "cb1fd997320e858f5beab49c5796858ce194b026c21d73a04384543cd859fec9"
87
+ }
88
+ ],
89
+ "supervisor": {
90
+ "worker_exit_code": 0,
91
+ "worker_signal": null,
92
+ "timed_out": false,
93
+ "output_overflow": false,
94
+ "stderr_bytes_discarded": 0,
95
+ "process_group_empty": true,
96
+ "owned_scope_removed": true
97
+ },
98
+ "scope_id": "extension-functions-bridges-d582757d-2859-4683-8310-ec158bf6d551"
99
+ }
@@ -0,0 +1,102 @@
1
+ import assert from 'node:assert/strict';
2
+ import {createHash} from 'node:crypto';
3
+ import {cp,mkdir,readFile,readdir,writeFile,symlink} from 'node:fs/promises';
4
+ import {join,resolve} from 'node:path';
5
+ import {pathToFileURL} from 'node:url';
6
+ import {execFile} from 'node:child_process';
7
+ import {promisify} from 'node:util';
8
+ import http from 'node:http';
9
+ const repo=process.cwd(),scope=process.env.EXT_FUNCTION_SCOPE,mode=process.argv[2];
10
+ const workspace=join(scope,'workspace'),agent=join(scope,'agent'),installed=process.env.EXT_FUNCTION_INSTALLED_AGENT;
11
+ const packageName=mode==='web'?'pi-web-access':mode==='openwiki'?'openwiki':'pi-cursor-sdk';
12
+ const root=join(installed,'npm/node_modules',packageName);
13
+ const metadata=JSON.parse(await readFile(join(root,'package.json'),'utf8'));
14
+ assert.equal(metadata.version,mode==='web'?'0.41.0':'0.7.2');
15
+ const packageFiles=[];for(const path of ['package.json',...(mode==='web'?['dist/mcp-cli.js']:['dist/integrations/pi/openwiki.js','dist/cli/cli.js'])])packageFiles.push({path,sha256:createHash('sha256').update(await readFile(join(root,path))).digest('hex')});
16
+ const cases=[],diagnostics=[];
17
+ let activeCase='setup',handle,client,transport,webServer,session,guard;
18
+ const record=(id,details={})=>cases.push({id,status:'PASS',...details});
19
+ let receipt={kind:'actual-extension-functional-probe',package:packageName+'@'+metadata.version,package_files:packageFiles,node:process.versions.node,cases,model_prompts_submitted:0,provider_calls:0};
20
+ try{
21
+ await mkdir(workspace,{recursive:true});await mkdir(agent);
22
+ for(const d of ['config','cache','data'])await mkdir(join(scope,d));
23
+ process.env.HOME=scope;process.env.PI_CODING_AGENT_DIR=agent;
24
+ process.env.XDG_CONFIG_HOME=join(scope,'config');process.env.XDG_CACHE_HOME=join(scope,'cache');process.env.XDG_DATA_HOME=join(scope,'data');
25
+ process.env.DO_NOT_TRACK='1';process.env.OPENWIKI_TELEMETRY_DISABLED='1';
26
+ const source='export function fixtureCatalog() { return "FIXTURE_CATALOG_CANARY_71"; }\n';
27
+ await mkdir(join(workspace,'src'));await writeFile(join(workspace,'src/catalog.js'),source);
28
+ await writeFile(join(workspace,'README.md'),'Synthetic fixture catalog. No external systems.\n');
29
+ const git=promisify(execFile),gitEnv={...process.env,GIT_CONFIG_NOSYSTEM:'1',GIT_CONFIG_GLOBAL:'/dev/null',GIT_CONFIG_COUNT:'1',GIT_CONFIG_KEY_0:'core.hooksPath',GIT_CONFIG_VALUE_0:'/dev/null'};
30
+ for(const args of [['init','-q'],['add','README.md','src/catalog.js'],['-c','user.name=Fixture','-c','user.email=fixture@example.invalid','commit','-q','-m','synthetic-fixture']])await git('/usr/bin/git',args,{cwd:workspace,env:gitEnv,timeout:3000});
31
+ process.chdir(workspace);
32
+ process.env.EXT_FUNCTION_CHILD_ENTRY=mode==='web'?join(root,'dist/mcp-cli.js'):join(root,'dist/cli/cli.js');
33
+ process.env.EXT_FUNCTION_ALLOW_CHILD='1';
34
+ if(mode==='web'){
35
+ await mkdir(join(scope,'.pi'),{recursive:true});await writeFile(join(scope,'.pi/web-search.json'),JSON.stringify({ssrf:{allowRanges:['127.0.0.1/32']}}));
36
+ const text='Synthetic page title\nWEB_FETCH_CANARY_429\n'+('The quick brown fixture fox.\n'.repeat(20));
37
+ webServer=http.createServer((req,res)=>{res.writeHead(200,{'content-type':'text/plain; charset=utf-8'});res.end(text);});
38
+ await new Promise(r=>webServer.listen(0,'127.0.0.1',r));
39
+ process.env.EXT_FUNCTION_HTTP_PORT=String(webServer.address().port);
40
+ }
41
+ await import('./guard.mjs');
42
+ const {installStdoutGuard}=await import(pathToFileURL(join(repo,'.profile-eval/src/stdout-guard.js')));
43
+ guard=installStdoutGuard({report:()=>{}});
44
+ const {resolvePiExtension}=await import(pathToFileURL(join(repo,'.profile-eval/src/pi-extensions.js')));
45
+ const {parseExtensionSpec}=await import(pathToFileURL(join(repo,'.profile-eval/src/extension-spec.js')));
46
+ if(mode==='web'){
47
+ activeCase='pi-extension-resolver-gate';
48
+ let code;
49
+ try{await resolvePiExtension(parseExtensionSpec('npm:pi-web-access@0.41.0'),{agentDir:installed});}catch(e){code=e.code;}
50
+ assert.equal(code,'extension_load_failed');record(activeCase,{expected_blocker:'directory_manifest_entry',pi_profile_status:'BLOCKED'});
51
+ const {Client}=await import('@modelcontextprotocol/client');const {StdioClientTransport}=await import('@modelcontextprotocol/client/stdio');
52
+ client=new Client({name:'extension-function-fixture',version:'1.0.0'});
53
+ transport=new StdioClientTransport({command:process.execPath,args:[process.env.EXT_FUNCTION_CHILD_ENTRY],stderr:'pipe'});
54
+ transport.stderr?.on('data',()=>{});
55
+ await client.connect(transport,{timeout:15000});
56
+ const tools=(await client.listTools()).tools.map(t=>t.name);assert.ok(tools.includes('fetch_content')&&tools.includes('get_search_content'));record('standalone-mcp-tool-discovery',{tools});
57
+ const call=(name,args)=>client.callTool({name,arguments:args},{timeout:15000});
58
+ const value=r=>(r.content??[]).filter(x=>x.type==='text').map(x=>x.text).join('\n');
59
+ activeCase='standalone-raw-fetch-owned-http';
60
+ const url='http://127.0.0.1:'+process.env.EXT_FUNCTION_HTTP_PORT+'/fixture.txt';
61
+ const fetched=await call('fetch_content',{url,mode:'raw'});assert.ok(!fetched.isError);assert.ok(value(fetched).includes('WEB_FETCH_CANARY_429'));
62
+ const match=value(fetched).match(/(?:responseId|Response ID|ResponseId)["\s:]+([a-zA-Z0-9_-]+)/i);assert.ok(match,'response_id_not_found');record(activeCase,{canary_preserved:true});
63
+ activeCase='standalone-stored-content-search';
64
+ const stored=await call('get_search_content',{responseId:match[1],urlIndex:0,findText:'WEB_FETCH_CANARY_429'});assert.ok(!stored.isError);assert.ok(value(stored).includes('WEB_FETCH_CANARY_429'));record(activeCase,{original_content_retrieved:true});
65
+ activeCase='standalone-invalid-fetch-rejected';const invalid=await call('fetch_content',{mode:'raw'});assert.equal(invalid.isError,true);record(activeCase);
66
+ activeCase='standalone-model-answer-mode-rejected';const answer=await call('fetch_content',{url,mode:'answer'});assert.equal(answer.isError,true);record(activeCase);
67
+ receipt.integration='Standalone MCP functional path; production Pi extension loading remains BLOCKED.';
68
+ }else if(mode==='openwiki'){
69
+ await cp(join(repo,'test/fixtures/pi-extension-fixture'),join(agent,'npm/node_modules/pi-extension-fixture'),{recursive:true,errorOnExist:true});
70
+ const {SdkPiSessionAdapter}=await import(pathToFileURL(join(repo,'.profile-eval/src/sdk-pi-adapter.js')));
71
+ const {ModelRuntime,createAgentSessionServices,createAgentSessionFromServices,createAgentSessionRuntime}=await import('@earendil-works/pi-coding-agent');
72
+ const adapter=new SdkPiSessionAdapter({modelRuntimeFactory:()=>ModelRuntime.create({refreshOnCreate:false,allowModelNetwork:false,modelsPath:null,authPath:join(scope,'absent-auth.json'),modelsStorePath:join(scope,'absent-models.json')}),resolveExtension:s=>resolvePiExtension(s,{agentDir:s.name==='pi-extension-fixture'?agent:installed}),extensionSdk:{createServices:createAgentSessionServices,createSessionFromServices:createAgentSessionFromServices,createRuntime:async(factory,options)=>{const runtime=await createAgentSessionRuntime(factory,options);session=runtime.session;return runtime;}},diagnosticSink:x=>diagnostics.push({code:x.code,stage:x.stage})});
73
+ activeCase='pi-sdk-openwiki-bind';
74
+ handle=await adapter.create({cwd:workspace,executionProfile:{alias:'function-openwiki',permissionProfile:'coding',provider:'fixture-ext',model:'fixture-ext-model',thinkingLevel:'off',extensions:[parseExtensionSpec('npm:pi-extension-fixture@1.0.0'),parseExtensionSpec('npm:openwiki@0.7.2')],skills:[]}});record(activeCase);
75
+ async function call(name,args){const tool=session.getToolDefinition(name);assert.ok(tool);const id='synthetic-'+name;const result=await tool.execute(id,args,AbortSignal.timeout(15000),undefined,session.extensionRunner.createToolContext(id,undefined));const text=result.content.filter(x=>x.type==='text').map(x=>x.text).join('\n');try{return JSON.parse(text);}catch{return result.details;}}
76
+ activeCase='relative-root-rejected';await assert.rejects(()=>call('openwiki_begin',{root:'relative',mode:'init',language:'en'}));record(activeCase);
77
+ activeCase='begin-owned-repository';const begin=await call('openwiki_begin',{root:workspace,mode:'init',language:'en'});assert.equal(begin.status,'active');assert.equal(begin.phase,'planning');assert.ok(begin.runId);record(activeCase);
78
+ const plan={runId:begin.runId,pages:[{path:'openwiki/quickstart.md',title:'Quickstart',purpose:'Explain the synthetic catalog behavior',seedPaths:['src/catalog.js']}]};
79
+ activeCase='accept-and-repeat-canonical-plan';const planned=await call('openwiki_submit_plan',plan);assert.equal(planned.status,'accepted');assert.equal(planned.totalPages,1);assert.equal((await call('openwiki_submit_plan',plan)).status,'accepted');record(activeCase);
80
+ activeCase='different-plan-rejected';await assert.rejects(()=>call('openwiki_submit_plan',{...plan,pages:[{...plan.pages[0],title:'Changed'}]}));record(activeCase);
81
+ activeCase='next-page-queued';const next=await call('openwiki_next_page',{runId:begin.runId});assert.equal(next.status,'pending');assert.equal(next.job.path,'/openwiki/quickstart.md');record(activeCase);
82
+ activeCase='inspect-pending-claims';const inspected=await call('openwiki_inspect_page_claims',{runId:begin.runId,jobId:next.job.id});assert.equal(inspected.page,'/openwiki/quickstart.md');assert.deepEqual(inspected.claims,[]);record(activeCase);
83
+ activeCase='premature-finish-rejected';await assert.rejects(()=>call('openwiki_finish',{runId:begin.runId}));record(activeCase);
84
+ activeCase='missing-page-submission-rejected';await assert.rejects(()=>call('openwiki_submit_page',{runId:begin.runId,jobId:next.job.id,claims:[]}));record(activeCase);
85
+ activeCase='submit-grounded-written-page';await mkdir(join(workspace,'openwiki'),{recursive:true});await writeFile(join(workspace,'openwiki/quickstart.md'),'# Quickstart\n\nThe catalog returns FIXTURE_CATALOG_CANARY_71.\n');
86
+ const submitted=await call('openwiki_submit_page',{runId:begin.runId,jobId:next.job.id,claims:[{statement:'The catalog returns FIXTURE_CATALOG_CANARY_71.',evidence:[{resource:'repo://src/catalog.js#L1'}]}]});assert.equal(submitted.status,'complete');record(activeCase);
87
+ activeCase='queue-completion';assert.equal((await call('openwiki_next_page',{runId:begin.runId})).status,'complete');record(activeCase);
88
+ activeCase='finish-written-wiki';const finished=await call('openwiki_finish',{runId:begin.runId});assert.equal(finished.status,'complete');assert.notEqual(finished.sourceChanged,true);assert.ok((await readFile(join(workspace,'openwiki/quickstart.md'),'utf8')).includes('FIXTURE_CATALOG_CANARY_71'));record(activeCase);
89
+ activeCase='finished-run-rejected';await assert.rejects(()=>call('openwiki_next_page',{runId:begin.runId}));record(activeCase);
90
+ assert.equal(await readFile(join(workspace,'src/catalog.js'),'utf8'),source);record('original-source-preserved');
91
+ receipt.integration='Actual registered Pi tool definitions -> real OpenWiki stdio MCP child -> synthetic repository writer lifecycle.';
92
+ }else throw Error('cursor_probe_not_configured');
93
+ receipt.status='PASS';
94
+ }catch(e){receipt.status='FAIL';receipt.failure={case:activeCase,code:typeof e.code==='string'?e.code:e.name??'probe_failed',message:String(e.message).replaceAll(scope,'<owned-scope>').replaceAll(repo,'<eval-repo>').replaceAll(installed,'<installed-agent>').replace(/\/home\/[^\s\"')]+/g,'<host-path>').slice(0,1200)};}
95
+ finally{
96
+ try{if(client)await client.close();if(transport)await transport.close();if(handle)await handle.dispose();if(webServer)await new Promise(r=>webServer.close(r));receipt.cleanup='PASS';}catch{receipt.cleanup='FAIL';receipt.status='FAIL';}
97
+ const counters=[];for(const f of await readdir(scope))if(/^guard-\d+\.json$/.test(f))counters.push(JSON.parse(await readFile(join(scope,f),'utf8')));
98
+ receipt.guards=counters.reduce((a,b)=>Object.fromEntries(Object.keys(b).map(k=>[k,(a[k]??0)+b[k]])),{});
99
+ receipt.diagnostics=diagnostics;receipt.limits=['No model prompt or paid provider request.','JavaScript network/child guards are instrumentation, not OS containment.','Only named synthetic function cases are qualified; model quality and production use remain unproven.'];
100
+ if(guard)guard.transportStdout.write(JSON.stringify(receipt)+'\n');else process.stdout.write(JSON.stringify(receipt)+'\n');
101
+ if(receipt.status==='FAIL')process.exitCode=1;
102
+ }
@@ -0,0 +1,21 @@
1
+ # Pi Cache Optimizer Functional Checks
2
+
3
+ Date: 2026-10-17. Package: `pi-cache-optimizer@2.9.3`, loaded from the isolated evaluation prefix under Node 24.22.0. The package had already been installed there with lifecycle scripts disabled and its registry integrity checked in the earlier installation record.
4
+
5
+ The published `index.ts` entrypoint was imported with the Pi SDK's bundled `jiti` loader. The candidate's real default extension function registered hooks and a command on a synthetic `ExtensionAPI` harness; the harness then invoked those registered callbacks with fresh fixture contexts. The SDK was imported from its public package root. The context uses the public `sessionManager.getSessionId()` contract. No private extension state or session handle was accessed.
6
+
7
+ | Check | Result | Evidence |
8
+ |---|---|---|
9
+ | OpenAI-compatible `before_provider_request`: adds an opaque, bounded session cache key, returns a copy, preserves other fields, and leaves input untouched | PASS | `payload-openai` |
10
+ | `openai-codex-responses` bypass: returns no mutation and leaves input untouched | PASS | `payload-codex-bypass` |
11
+ | Zero-priced and unknown-priced `cache_warming_decision`: with Pi cache warming set to `off` and the extension's zero-price override disabled, both return no warming action | PASS | `warming-disabled-zero`, `warming-disabled-unknown` |
12
+ | Headless `/cache-optimizer fix prompt-cache` and `/cache-optimizer rollback`: both explain that UI confirmation is required, make no files, and request no confirmation UI | PASS | `commands-headless` |
13
+ | Synthetic assistant usage through the registered request, response, and `message_end` hooks: persists local cache counters; prompt/response marker text is absent from persisted JSON | PASS | `stats-synthetic` |
14
+
15
+ All six final attempts completed cleanup. Each recorded zero network attempts and zero child-process attempts. Temporary homes and workspaces were removed after their child processes exited. The runner supervises each case in its own process group, sends TERM at 15 seconds, and escalates to KILL after two seconds. Failed harness attempts are preserved alongside the successful attempts; the final evidence manifest below is the corrected run after fixing fixture bootstrapping, an overly strict statistics assertion, and the model fixture needed to reach the documented headless-fix branch.
16
+
17
+ The final independently reviewed run is [`cache-function-evidence-2026-10-17T13-42-18-175Z-215330e7-06a6-4666-af9c-2ecb214d8d71.json`](cache-function-evidence-2026-10-17T13-42-18-175Z-215330e7-06a6-4666-af9c-2ecb214d8d71.json), SHA-256 `8029fe14ab04d2de80a75977e50c01ca05b8be2e1090ee407ef67debfb3d4122`. All six receipts observe child close, an empty process group and removal of their marked temporary home before publication. The earlier PASS manifests are superseded for final qualification: review corrected an internal SDK import to the public package root, enabled cache keys equally in both API cases, supplied the actual prompt marker to the statistics case, counted confirmation requests, removed unrelated debug-directory deletion and added supervisor cleanup checks. The corrected six-case run passes. Original attempt records remain unchanged.
18
+
19
+ Runnable source is archived here in `runner.mjs` and `probe.mjs`. Prerequisite: Node.js 24.22.0 and the earlier isolated exact package installation. From the repository root, run `node docs/evaluation/extension-functions-2026-10-17/cache/runner.mjs`; it creates a fresh UUID-owned ignored result directory and a new evidence manifest. `PI_FUNCTION_NPM_ROOT` can identify an equivalent existing package prefix. [Archived receipt copies](receipt-archive.json) preserve exact original bytes and hashes.
20
+
21
+ This qualifies selected extension behavior against registered hooks using a fixture host. It does not measure cache-hit savings or prompt quality, exercise a real provider/model request, or qualify Pi's internal cache scheduler as a whole. The payload has no model-generated prompt or response, and the usage counters are synthetic. No live API calls or credentials were used.
@@ -0,0 +1,129 @@
1
+ {
2
+ "schema": "pi-cache-optimizer-function-evidence.v1",
3
+ "package": "pi-cache-optimizer@2.9.3",
4
+ "source": "isolated package prefix; real published index.ts entrypoint, real Pi SDK root export",
5
+ "created_at": "2026-10-17T13:30:31.440Z",
6
+ "scope": "provider-free functional checks; no prompt/model/provider requests",
7
+ "attempts": [
8
+ {
9
+ "schema": "pi-cache-optimizer-function-attempt.v1",
10
+ "attempt_id": "ce05c94a-0df1-499b-a3a4-1e5ff2a4296a",
11
+ "package": "pi-cache-optimizer@2.9.3",
12
+ "case": "payload-openai",
13
+ "node": "24.22.0",
14
+ "outcome": "HARNESS_ERROR",
15
+ "exit_code": 1,
16
+ "cleanup": "UNKNOWN",
17
+ "checks": [],
18
+ "network_attempts": null,
19
+ "child_process_attempts": null,
20
+ "changed_files": [],
21
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
22
+ "stderr_sha256": "f3188881c8a981c1bf34f4235572e7c9995044dc79b13f6cb2ab9e4eced10286",
23
+ "stderr_class": "nonempty-redacted",
24
+ "stderr_bytes": 1009,
25
+ "receipt": "attempts/payload-openai-ce05c94a-0df1-499b-a3a4-1e5ff2a4296a.json",
26
+ "receipt_sha256": "d444551cecf96273e5e1e9434aa2cf69c9920ed56b25b9345d0abab92a137c5a"
27
+ },
28
+ {
29
+ "schema": "pi-cache-optimizer-function-attempt.v1",
30
+ "attempt_id": "e2952978-43c7-4c45-bf6f-732d0b8e5dec",
31
+ "package": "pi-cache-optimizer@2.9.3",
32
+ "case": "payload-codex-bypass",
33
+ "node": "24.22.0",
34
+ "outcome": "HARNESS_ERROR",
35
+ "exit_code": 1,
36
+ "cleanup": "UNKNOWN",
37
+ "checks": [],
38
+ "network_attempts": null,
39
+ "child_process_attempts": null,
40
+ "changed_files": [],
41
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
42
+ "stderr_sha256": "f3188881c8a981c1bf34f4235572e7c9995044dc79b13f6cb2ab9e4eced10286",
43
+ "stderr_class": "nonempty-redacted",
44
+ "stderr_bytes": 1009,
45
+ "receipt": "attempts/payload-codex-bypass-e2952978-43c7-4c45-bf6f-732d0b8e5dec.json",
46
+ "receipt_sha256": "1e25aa4a0e7bc4b7a57206f7bd214df32f4e3cce3937fb1180b1e11d2bffdbc5"
47
+ },
48
+ {
49
+ "schema": "pi-cache-optimizer-function-attempt.v1",
50
+ "attempt_id": "08f18f92-7674-4caf-a839-953b0d9495e3",
51
+ "package": "pi-cache-optimizer@2.9.3",
52
+ "case": "warming-disabled-zero",
53
+ "node": "24.22.0",
54
+ "outcome": "HARNESS_ERROR",
55
+ "exit_code": 1,
56
+ "cleanup": "UNKNOWN",
57
+ "checks": [],
58
+ "network_attempts": null,
59
+ "child_process_attempts": null,
60
+ "changed_files": [],
61
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
62
+ "stderr_sha256": "f3188881c8a981c1bf34f4235572e7c9995044dc79b13f6cb2ab9e4eced10286",
63
+ "stderr_class": "nonempty-redacted",
64
+ "stderr_bytes": 1009,
65
+ "receipt": "attempts/warming-disabled-zero-08f18f92-7674-4caf-a839-953b0d9495e3.json",
66
+ "receipt_sha256": "a4a1bf55ee471b6269a4cf1a872fba4839a47d8304a338e2a3fdca43349f81de"
67
+ },
68
+ {
69
+ "schema": "pi-cache-optimizer-function-attempt.v1",
70
+ "attempt_id": "692f3746-48bf-4d32-8f71-f1512f58d179",
71
+ "package": "pi-cache-optimizer@2.9.3",
72
+ "case": "warming-disabled-unknown",
73
+ "node": "24.22.0",
74
+ "outcome": "HARNESS_ERROR",
75
+ "exit_code": 1,
76
+ "cleanup": "UNKNOWN",
77
+ "checks": [],
78
+ "network_attempts": null,
79
+ "child_process_attempts": null,
80
+ "changed_files": [],
81
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
82
+ "stderr_sha256": "f3188881c8a981c1bf34f4235572e7c9995044dc79b13f6cb2ab9e4eced10286",
83
+ "stderr_class": "nonempty-redacted",
84
+ "stderr_bytes": 1009,
85
+ "receipt": "attempts/warming-disabled-unknown-692f3746-48bf-4d32-8f71-f1512f58d179.json",
86
+ "receipt_sha256": "b498887ce3b0a24c0917be85f1caeaf3cdf060eed0d81f2c16b64bdbfd489212"
87
+ },
88
+ {
89
+ "schema": "pi-cache-optimizer-function-attempt.v1",
90
+ "attempt_id": "71859f49-7418-4e5d-a2ee-0763e6d086ce",
91
+ "package": "pi-cache-optimizer@2.9.3",
92
+ "case": "commands-headless",
93
+ "node": "24.22.0",
94
+ "outcome": "HARNESS_ERROR",
95
+ "exit_code": 1,
96
+ "cleanup": "UNKNOWN",
97
+ "checks": [],
98
+ "network_attempts": null,
99
+ "child_process_attempts": null,
100
+ "changed_files": [],
101
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
102
+ "stderr_sha256": "f3188881c8a981c1bf34f4235572e7c9995044dc79b13f6cb2ab9e4eced10286",
103
+ "stderr_class": "nonempty-redacted",
104
+ "stderr_bytes": 1009,
105
+ "receipt": "attempts/commands-headless-71859f49-7418-4e5d-a2ee-0763e6d086ce.json",
106
+ "receipt_sha256": "e300745e79f6863b2240ab2870204cc583eca060f1a18e5613238d9db6c22fe9"
107
+ },
108
+ {
109
+ "schema": "pi-cache-optimizer-function-attempt.v1",
110
+ "attempt_id": "061b42a1-b569-4d77-a013-8b29aff7ceb5",
111
+ "package": "pi-cache-optimizer@2.9.3",
112
+ "case": "stats-synthetic",
113
+ "node": "24.22.0",
114
+ "outcome": "HARNESS_ERROR",
115
+ "exit_code": 1,
116
+ "cleanup": "UNKNOWN",
117
+ "checks": [],
118
+ "network_attempts": null,
119
+ "child_process_attempts": null,
120
+ "changed_files": [],
121
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
122
+ "stderr_sha256": "f3188881c8a981c1bf34f4235572e7c9995044dc79b13f6cb2ab9e4eced10286",
123
+ "stderr_class": "nonempty-redacted",
124
+ "stderr_bytes": 1009,
125
+ "receipt": "attempts/stats-synthetic-061b42a1-b569-4d77-a013-8b29aff7ceb5.json",
126
+ "receipt_sha256": "f7af60b1655d7fb78d768377b957f0c753df25825752069dda742a3951720b78"
127
+ }
128
+ ]
129
+ }
@@ -0,0 +1,129 @@
1
+ {
2
+ "schema": "pi-cache-optimizer-function-evidence.v1",
3
+ "package": "pi-cache-optimizer@2.9.3",
4
+ "source": "isolated package prefix; real published index.ts entrypoint, real Pi SDK root export",
5
+ "created_at": "2026-10-17T13:31:04.505Z",
6
+ "scope": "provider-free functional checks; no prompt/model/provider requests",
7
+ "attempts": [
8
+ {
9
+ "schema": "pi-cache-optimizer-function-attempt.v1",
10
+ "attempt_id": "9874a6ed-676f-47d8-903a-ac63b9d56ee2",
11
+ "package": "pi-cache-optimizer@2.9.3",
12
+ "case": "payload-openai",
13
+ "node": "24.22.0",
14
+ "outcome": "HARNESS_ERROR",
15
+ "exit_code": 1,
16
+ "cleanup": "UNKNOWN",
17
+ "checks": [],
18
+ "network_attempts": null,
19
+ "child_process_attempts": null,
20
+ "changed_files": [],
21
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
22
+ "stderr_sha256": "e74120570bcfc3413769ad93ac73a5c429ceab6ac6b27917c992a5185d20f892",
23
+ "stderr_class": "nonempty-redacted",
24
+ "stderr_bytes": 1076,
25
+ "receipt": "attempts/payload-openai-9874a6ed-676f-47d8-903a-ac63b9d56ee2.json",
26
+ "receipt_sha256": "ea0c285d3c086a70ea3526ec75bce5c87a14d15b5816b29dd253737efa84a33c"
27
+ },
28
+ {
29
+ "schema": "pi-cache-optimizer-function-attempt.v1",
30
+ "attempt_id": "18ab7574-ddb6-41b0-aecf-4d6082234a82",
31
+ "package": "pi-cache-optimizer@2.9.3",
32
+ "case": "payload-codex-bypass",
33
+ "node": "24.22.0",
34
+ "outcome": "HARNESS_ERROR",
35
+ "exit_code": 1,
36
+ "cleanup": "UNKNOWN",
37
+ "checks": [],
38
+ "network_attempts": null,
39
+ "child_process_attempts": null,
40
+ "changed_files": [],
41
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
42
+ "stderr_sha256": "53db3a91b2b3886797da065eb417f64dca64f2ce6cada4716a0b1616d423c38c",
43
+ "stderr_class": "nonempty-redacted",
44
+ "stderr_bytes": 1076,
45
+ "receipt": "attempts/payload-codex-bypass-18ab7574-ddb6-41b0-aecf-4d6082234a82.json",
46
+ "receipt_sha256": "aeafc824148ec286cbcc8422325fdc8fb671b70a92021a934bd1f3d0fe4f6adc"
47
+ },
48
+ {
49
+ "schema": "pi-cache-optimizer-function-attempt.v1",
50
+ "attempt_id": "6097d3fe-b758-48fc-9d05-d0d8219ff467",
51
+ "package": "pi-cache-optimizer@2.9.3",
52
+ "case": "warming-disabled-zero",
53
+ "node": "24.22.0",
54
+ "outcome": "HARNESS_ERROR",
55
+ "exit_code": 1,
56
+ "cleanup": "UNKNOWN",
57
+ "checks": [],
58
+ "network_attempts": null,
59
+ "child_process_attempts": null,
60
+ "changed_files": [],
61
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
62
+ "stderr_sha256": "b1ef5222f4a9e84dc4c755bfbd6e6b40ddd188707495f25d4bed1ed0169e59ca",
63
+ "stderr_class": "nonempty-redacted",
64
+ "stderr_bytes": 1076,
65
+ "receipt": "attempts/warming-disabled-zero-6097d3fe-b758-48fc-9d05-d0d8219ff467.json",
66
+ "receipt_sha256": "3523504d22bf81884dafe5357107c9d66f5b41e1ec0308ea5bce040989bd53b4"
67
+ },
68
+ {
69
+ "schema": "pi-cache-optimizer-function-attempt.v1",
70
+ "attempt_id": "9ebf5607-c9b0-43ac-b12b-f4f980e5def3",
71
+ "package": "pi-cache-optimizer@2.9.3",
72
+ "case": "warming-disabled-unknown",
73
+ "node": "24.22.0",
74
+ "outcome": "HARNESS_ERROR",
75
+ "exit_code": 1,
76
+ "cleanup": "UNKNOWN",
77
+ "checks": [],
78
+ "network_attempts": null,
79
+ "child_process_attempts": null,
80
+ "changed_files": [],
81
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
82
+ "stderr_sha256": "319ec9ce503b8a22a702f2eea48562e9202719e30929d72e8e70afd984eb7711",
83
+ "stderr_class": "nonempty-redacted",
84
+ "stderr_bytes": 1076,
85
+ "receipt": "attempts/warming-disabled-unknown-9ebf5607-c9b0-43ac-b12b-f4f980e5def3.json",
86
+ "receipt_sha256": "0a20bb237cdb6cc4b2a4d5c8a296ddd9d96c07e8fb93fafe27939f69a1db8869"
87
+ },
88
+ {
89
+ "schema": "pi-cache-optimizer-function-attempt.v1",
90
+ "attempt_id": "477dc276-e0fe-476c-a11c-86119850ebe3",
91
+ "package": "pi-cache-optimizer@2.9.3",
92
+ "case": "commands-headless",
93
+ "node": "24.22.0",
94
+ "outcome": "HARNESS_ERROR",
95
+ "exit_code": 1,
96
+ "cleanup": "UNKNOWN",
97
+ "checks": [],
98
+ "network_attempts": null,
99
+ "child_process_attempts": null,
100
+ "changed_files": [],
101
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
102
+ "stderr_sha256": "c904938236b636eb9ce3a48ef4ec6f04409ee7bb047d93cd706ff7dd0d151e1d",
103
+ "stderr_class": "nonempty-redacted",
104
+ "stderr_bytes": 1076,
105
+ "receipt": "attempts/commands-headless-477dc276-e0fe-476c-a11c-86119850ebe3.json",
106
+ "receipt_sha256": "29ddf86cdfb073ac0f3a48b122e663585a636e27fa3a572cef97aa2886502199"
107
+ },
108
+ {
109
+ "schema": "pi-cache-optimizer-function-attempt.v1",
110
+ "attempt_id": "214a5132-fede-4dc4-a330-a2b4c3de9207",
111
+ "package": "pi-cache-optimizer@2.9.3",
112
+ "case": "stats-synthetic",
113
+ "node": "24.22.0",
114
+ "outcome": "HARNESS_ERROR",
115
+ "exit_code": 1,
116
+ "cleanup": "UNKNOWN",
117
+ "checks": [],
118
+ "network_attempts": null,
119
+ "child_process_attempts": null,
120
+ "changed_files": [],
121
+ "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
122
+ "stderr_sha256": "b23fd5099cc9e955364188e9cf355ea9166963d2727fd4857beb3e56d4b6d3e3",
123
+ "stderr_class": "nonempty-redacted",
124
+ "stderr_bytes": 1076,
125
+ "receipt": "attempts/stats-synthetic-214a5132-fede-4dc4-a330-a2b4c3de9207.json",
126
+ "receipt_sha256": "8c65f4bc08a55a427601b9a902cd213adaf33fe22c321b2f03fa2e40778a0bff"
127
+ }
128
+ ]
129
+ }