harnery 0.38.0 → 0.40.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 (378) hide show
  1. package/dist/commands/agents.d.ts.map +1 -1
  2. package/dist/commands/agents.js +32 -8
  3. package/dist/commands/artifacts.d.ts.map +1 -1
  4. package/dist/commands/artifacts.js +97 -6
  5. package/dist/commands/backup.d.ts +16 -0
  6. package/dist/commands/backup.d.ts.map +1 -1
  7. package/dist/commands/backup.js +239 -33
  8. package/dist/commands/browse.d.ts +8 -0
  9. package/dist/commands/browse.d.ts.map +1 -1
  10. package/dist/commands/browse.js +466 -231
  11. package/dist/commands/diagnostics.d.ts.map +1 -1
  12. package/dist/commands/diagnostics.js +6 -3
  13. package/dist/commands/ledger-v3.d.ts.map +1 -1
  14. package/dist/commands/ledger-v3.js +20 -4
  15. package/dist/commands/qa-run.d.ts.map +1 -1
  16. package/dist/commands/qa-run.js +26 -3
  17. package/dist/commands/qa-status.d.ts.map +1 -1
  18. package/dist/commands/qa-status.js +7 -2
  19. package/dist/commands/resources.d.ts.map +1 -1
  20. package/dist/commands/resources.js +23 -3
  21. package/dist/commands/review-pack.d.ts.map +1 -1
  22. package/dist/commands/review-pack.js +98 -23
  23. package/dist/commands/tunnel.d.ts.map +1 -1
  24. package/dist/commands/tunnel.js +2 -2
  25. package/dist/core/adapters/profiles.d.ts +1 -1
  26. package/dist/core/agents/canonical-emit.d.ts +3 -2
  27. package/dist/core/agents/canonical-emit.d.ts.map +1 -1
  28. package/dist/core/agents/canonical-emit.js +2 -0
  29. package/dist/core/agents/cli.js +13 -6
  30. package/dist/core/agents/live-authority-v3.d.ts.map +1 -1
  31. package/dist/core/agents/live-authority-v3.js +5 -3
  32. package/dist/core/agents/live-lifecycle-v3.d.ts +2 -2
  33. package/dist/core/agents/live-lifecycle-v3.d.ts.map +1 -1
  34. package/dist/core/agents/render/prompt-context.d.ts +7 -5
  35. package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
  36. package/dist/core/agents/render/prompt-context.js +63 -8
  37. package/dist/core/agents/session-finalizer-v3.d.ts +2 -2
  38. package/dist/core/agents/session-finalizer-v3.d.ts.map +1 -1
  39. package/dist/core/agents/state/live-coordination-view.d.ts +3 -3
  40. package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -1
  41. package/dist/core/agents/state/live-coordination-view.js +2 -1
  42. package/dist/core/agents/state/names.d.ts +35 -2
  43. package/dist/core/agents/state/names.d.ts.map +1 -1
  44. package/dist/core/agents/state/names.js +80 -5
  45. package/dist/core/agents/state/stale-sweep.d.ts +2 -1
  46. package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
  47. package/dist/core/agents/state/stale-sweep.js +23 -6
  48. package/dist/core/agents/turn-elapsed.d.ts +51 -0
  49. package/dist/core/agents/turn-elapsed.d.ts.map +1 -0
  50. package/dist/core/agents/turn-elapsed.js +91 -0
  51. package/dist/core/artifacts/activity.d.ts +14 -0
  52. package/dist/core/artifacts/activity.d.ts.map +1 -0
  53. package/dist/core/artifacts/activity.js +52 -0
  54. package/dist/core/artifacts/delivery-card.d.ts +39 -0
  55. package/dist/core/artifacts/delivery-card.d.ts.map +1 -0
  56. package/dist/core/artifacts/delivery-card.js +282 -0
  57. package/dist/core/artifacts/index.d.ts +42 -7
  58. package/dist/core/artifacts/index.d.ts.map +1 -1
  59. package/dist/core/artifacts/index.js +288 -76
  60. package/dist/core/artifacts/mutation-lock.d.ts +2 -0
  61. package/dist/core/artifacts/mutation-lock.d.ts.map +1 -0
  62. package/dist/core/artifacts/mutation-lock.js +91 -0
  63. package/dist/core/backup/host-snapshot.d.ts +18 -0
  64. package/dist/core/backup/host-snapshot.d.ts.map +1 -0
  65. package/dist/core/backup/host-snapshot.js +64 -0
  66. package/dist/core/config.d.ts +20 -5
  67. package/dist/core/config.d.ts.map +1 -1
  68. package/dist/core/config.js +44 -10
  69. package/dist/core/diagnostics/advice.d.ts +38 -3
  70. package/dist/core/diagnostics/advice.d.ts.map +1 -1
  71. package/dist/core/diagnostics/advice.js +103 -99
  72. package/dist/core/diagnostics/bundle.d.ts.map +1 -1
  73. package/dist/core/diagnostics/bundle.js +111 -47
  74. package/dist/core/diagnostics/comparison.d.ts.map +1 -1
  75. package/dist/core/diagnostics/comparison.js +3 -2
  76. package/dist/core/diagnostics/contract.d.ts +15 -31
  77. package/dist/core/diagnostics/contract.d.ts.map +1 -1
  78. package/dist/core/diagnostics/contract.js +2 -5
  79. package/dist/core/diagnostics/index.d.ts +2 -0
  80. package/dist/core/diagnostics/index.d.ts.map +1 -1
  81. package/dist/core/diagnostics/index.js +2 -0
  82. package/dist/core/diagnostics/pressure-contract.d.ts +260 -0
  83. package/dist/core/diagnostics/pressure-contract.d.ts.map +1 -0
  84. package/dist/core/diagnostics/pressure-contract.js +70 -0
  85. package/dist/core/diagnostics/pressure.d.ts +25 -0
  86. package/dist/core/diagnostics/pressure.d.ts.map +1 -0
  87. package/dist/core/diagnostics/pressure.js +1138 -0
  88. package/dist/core/diagnostics/replay.d.ts.map +1 -1
  89. package/dist/core/diagnostics/replay.js +90 -10
  90. package/dist/core/events/v3/adapter-id.d.ts +6 -0
  91. package/dist/core/events/v3/adapter-id.d.ts.map +1 -0
  92. package/dist/core/events/v3/adapter-id.js +7 -0
  93. package/dist/core/events/v3/archive-retention.d.ts.map +1 -1
  94. package/dist/core/events/v3/archive-retention.js +3 -2
  95. package/dist/core/events/v3/bootstrap.d.ts +41 -4
  96. package/dist/core/events/v3/bootstrap.d.ts.map +1 -1
  97. package/dist/core/events/v3/bootstrap.js +120 -17
  98. package/dist/core/events/v3/capabilities.d.ts +16 -9
  99. package/dist/core/events/v3/capabilities.d.ts.map +1 -1
  100. package/dist/core/events/v3/capabilities.js +37 -2
  101. package/dist/core/events/v3/capability-drift.d.ts +2 -2
  102. package/dist/core/events/v3/capability-drift.d.ts.map +1 -1
  103. package/dist/core/events/v3/control-witness.d.ts +48 -5
  104. package/dist/core/events/v3/control-witness.d.ts.map +1 -1
  105. package/dist/core/events/v3/control-witness.js +91 -36
  106. package/dist/core/events/v3/control.d.ts.map +1 -1
  107. package/dist/core/events/v3/control.js +22 -2
  108. package/dist/core/events/v3/index.d.ts +2 -1
  109. package/dist/core/events/v3/index.d.ts.map +1 -1
  110. package/dist/core/events/v3/index.js +2 -1
  111. package/dist/core/events/v3/live-feed.d.ts +7 -1
  112. package/dist/core/events/v3/live-feed.d.ts.map +1 -1
  113. package/dist/core/events/v3/live-feed.js +21 -3
  114. package/dist/core/events/v3/live-routing.d.ts.map +1 -1
  115. package/dist/core/events/v3/live-routing.js +10 -2
  116. package/dist/core/events/v3/producers/command-recorder.d.ts +2 -2
  117. package/dist/core/events/v3/producers/command-recorder.d.ts.map +1 -1
  118. package/dist/core/events/v3/producers/command-recorder.js +2 -1
  119. package/dist/core/events/v3/producers/coordination-recorder.d.ts +2 -2
  120. package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -1
  121. package/dist/core/events/v3/producers/coordination-recorder.js +2 -1
  122. package/dist/core/events/v3/producers/hook-base.d.ts +2 -2
  123. package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -1
  124. package/dist/core/events/v3/producers/hook-base.js +15 -5
  125. package/dist/core/events/v3/producers/hook.d.ts.map +1 -1
  126. package/dist/core/events/v3/producers/hook.js +17 -4
  127. package/dist/core/events/v3/producers/intake.d.ts +4 -4
  128. package/dist/core/events/v3/producers/intake.d.ts.map +1 -1
  129. package/dist/core/events/v3/producers/intake.js +3 -2
  130. package/dist/core/events/v3/producers/producer-state-observer.d.ts.map +1 -1
  131. package/dist/core/events/v3/producers/producer-state-observer.js +2 -1
  132. package/dist/core/events/v3/producers/recorder.d.ts +16 -5
  133. package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
  134. package/dist/core/events/v3/producers/recorder.js +31 -9
  135. package/dist/core/events/v3/reader.d.ts.map +1 -1
  136. package/dist/core/events/v3/reader.js +10 -13
  137. package/dist/core/events/v3/runtime-build.d.ts.map +1 -1
  138. package/dist/core/events/v3/runtime-build.js +3 -2
  139. package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts +2 -2
  140. package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts.map +1 -1
  141. package/dist/core/events/v3/turn-telemetry.d.ts +2 -2
  142. package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -1
  143. package/dist/core/hooks/adapter/output.d.ts +16 -14
  144. package/dist/core/hooks/adapter/output.d.ts.map +1 -1
  145. package/dist/core/hooks/adapter/output.js +36 -38
  146. package/dist/core/hooks/backup-schedule.d.ts +34 -0
  147. package/dist/core/hooks/backup-schedule.d.ts.map +1 -0
  148. package/dist/core/hooks/backup-schedule.js +114 -0
  149. package/dist/core/hooks/cli.js +61 -18
  150. package/dist/core/hooks/codex-wsl-bridge.d.ts +2 -0
  151. package/dist/core/hooks/codex-wsl-bridge.d.ts.map +1 -1
  152. package/dist/core/hooks/codex-wsl-bridge.js +18 -4
  153. package/dist/core/hooks/index.d.ts +1 -0
  154. package/dist/core/hooks/index.d.ts.map +1 -1
  155. package/dist/core/hooks/index.js +1 -0
  156. package/dist/core/hooks/prompt-context/contract.d.ts +61 -0
  157. package/dist/core/hooks/prompt-context/contract.d.ts.map +1 -0
  158. package/dist/core/hooks/prompt-context/contract.js +102 -0
  159. package/dist/core/hooks/prompt-context/index.d.ts +5 -0
  160. package/dist/core/hooks/prompt-context/index.d.ts.map +1 -0
  161. package/dist/core/hooks/prompt-context/index.js +2 -0
  162. package/dist/core/hooks/prompt-context/runner.d.ts +24 -0
  163. package/dist/core/hooks/prompt-context/runner.d.ts.map +1 -0
  164. package/dist/core/hooks/prompt-context/runner.js +249 -0
  165. package/dist/core/qa-artifacts.d.ts +3 -0
  166. package/dist/core/qa-artifacts.d.ts.map +1 -1
  167. package/dist/core/qa-artifacts.js +25 -3
  168. package/dist/core/resources/contract.d.ts +69 -3
  169. package/dist/core/resources/contract.d.ts.map +1 -1
  170. package/dist/core/resources/contract.js +1 -1
  171. package/dist/core/resources/index.d.ts +1 -0
  172. package/dist/core/resources/index.d.ts.map +1 -1
  173. package/dist/core/resources/index.js +1 -0
  174. package/dist/core/resources/native.d.ts +36 -0
  175. package/dist/core/resources/native.d.ts.map +1 -0
  176. package/dist/core/resources/native.js +418 -0
  177. package/dist/core/resources/sampler.d.ts +2 -0
  178. package/dist/core/resources/sampler.d.ts.map +1 -1
  179. package/dist/core/resources/sampler.js +31 -1
  180. package/dist/core/resources/status.d.ts +61 -0
  181. package/dist/core/resources/status.d.ts.map +1 -0
  182. package/dist/core/resources/status.js +536 -0
  183. package/dist/core/resources/system.d.ts +27 -0
  184. package/dist/core/resources/system.d.ts.map +1 -0
  185. package/dist/core/resources/system.js +439 -0
  186. package/dist/core/semantic/contract.d.ts +13 -13
  187. package/dist/core/semantic/service.d.ts +2 -0
  188. package/dist/core/semantic/service.d.ts.map +1 -1
  189. package/dist/core/semantic/service.js +27 -4
  190. package/dist/core/storage/builtins.js +41 -0
  191. package/dist/core/supervisor/contract.d.ts +41 -3
  192. package/dist/core/supervisor/contract.d.ts.map +1 -1
  193. package/dist/core/supervisor/contract.js +3 -2
  194. package/dist/core/supervisor/findings.d.ts +3 -0
  195. package/dist/core/supervisor/findings.d.ts.map +1 -1
  196. package/dist/core/supervisor/findings.js +88 -0
  197. package/dist/core/supervisor/history.d.ts.map +1 -1
  198. package/dist/core/supervisor/history.js +14 -0
  199. package/dist/core/supervisor/ledger-state.d.ts +55 -0
  200. package/dist/core/supervisor/ledger-state.d.ts.map +1 -0
  201. package/dist/core/supervisor/ledger-state.js +0 -0
  202. package/dist/core/supervisor/service.d.ts.map +1 -1
  203. package/dist/core/supervisor/service.js +120 -7
  204. package/dist/core/supervisor/storage.d.ts +3 -1
  205. package/dist/core/supervisor/storage.d.ts.map +1 -1
  206. package/dist/core/supervisor/storage.js +4 -0
  207. package/dist/core/workflow/admission.d.ts +3 -0
  208. package/dist/core/workflow/admission.d.ts.map +1 -1
  209. package/dist/core/workflow/admission.js +28 -16
  210. package/dist/core/workflow/engine.js +2 -2
  211. package/dist/core/workflow/live-session-v3.d.ts.map +1 -1
  212. package/dist/core/workflow/live-session-v3.js +6 -1
  213. package/dist/core/workflow/proof.d.ts.map +1 -1
  214. package/dist/core/workflow/proof.js +4 -3
  215. package/dist/lib/browser/capture-fidelity.d.ts +7 -0
  216. package/dist/lib/browser/capture-fidelity.d.ts.map +1 -1
  217. package/dist/lib/browser/capture-fidelity.js +17 -0
  218. package/dist/lib/browser/client.d.ts +9 -0
  219. package/dist/lib/browser/client.d.ts.map +1 -1
  220. package/dist/lib/browser/client.js +85 -37
  221. package/dist/lib/browser/index.d.ts +3 -1
  222. package/dist/lib/browser/index.d.ts.map +1 -1
  223. package/dist/lib/browser/index.js +2 -1
  224. package/dist/lib/browser/page-review-budget.d.ts +13 -0
  225. package/dist/lib/browser/page-review-budget.d.ts.map +1 -0
  226. package/dist/lib/browser/page-review-budget.js +251 -0
  227. package/dist/lib/browser/page-review-contracts.d.ts +127 -0
  228. package/dist/lib/browser/page-review-contracts.d.ts.map +1 -0
  229. package/dist/lib/browser/page-review-contracts.js +5 -0
  230. package/dist/lib/browser/page-review-evidence.d.ts +48 -0
  231. package/dist/lib/browser/page-review-evidence.d.ts.map +1 -0
  232. package/dist/lib/browser/page-review-evidence.js +340 -0
  233. package/dist/lib/browser/page-review-judge.d.ts +1 -1
  234. package/dist/lib/browser/page-review-judge.d.ts.map +1 -1
  235. package/dist/lib/browser/page-review-judge.js +46 -38
  236. package/dist/lib/browser/page-review-pack.d.ts +44 -22
  237. package/dist/lib/browser/page-review-pack.d.ts.map +1 -1
  238. package/dist/lib/browser/page-review-pack.js +116 -36
  239. package/dist/lib/browser/page-review-source.d.ts +12 -0
  240. package/dist/lib/browser/page-review-source.d.ts.map +1 -0
  241. package/dist/lib/browser/page-review-source.js +22 -0
  242. package/dist/lib/browser/qa-run-contracts.d.ts +35 -9
  243. package/dist/lib/browser/qa-run-contracts.d.ts.map +1 -1
  244. package/dist/lib/browser/qa-run-contracts.js +48 -14
  245. package/dist/lib/browser/qa-run.d.ts.map +1 -1
  246. package/dist/lib/browser/qa-run.js +215 -68
  247. package/dist/lib/browser/qa-snapshot.d.ts +6 -0
  248. package/dist/lib/browser/qa-snapshot.d.ts.map +1 -1
  249. package/dist/lib/browser/qa-snapshot.js +259 -48
  250. package/dist/lib/browser/review-capture-transaction.d.ts +13 -0
  251. package/dist/lib/browser/review-capture-transaction.d.ts.map +1 -0
  252. package/dist/lib/browser/review-capture-transaction.js +79 -0
  253. package/dist/lib/browser/standalone-html.d.ts.map +1 -1
  254. package/dist/lib/browser/standalone-html.js +4 -2
  255. package/dist/lib/browser/thumbnail-association.d.ts +34 -0
  256. package/dist/lib/browser/thumbnail-association.d.ts.map +1 -0
  257. package/dist/lib/browser/thumbnail-association.js +158 -0
  258. package/dist/lib/browser/tiling.d.ts +30 -0
  259. package/dist/lib/browser/tiling.d.ts.map +1 -1
  260. package/dist/lib/browser/tiling.js +38 -0
  261. package/dist/lib/docs-metadata-managed.d.ts.map +1 -1
  262. package/dist/lib/docs-metadata-managed.js +4 -1
  263. package/dist/lib/identities/assume.d.ts.map +1 -1
  264. package/dist/lib/identities/assume.js +7 -1
  265. package/dist/lib/instructions/templates.d.ts.map +1 -1
  266. package/dist/lib/instructions/templates.js +1 -0
  267. package/dist/lib/local-file-url.d.ts +12 -0
  268. package/dist/lib/local-file-url.d.ts.map +1 -1
  269. package/dist/lib/local-file-url.js +16 -2
  270. package/dist/lib/tunnel/state.d.ts +19 -4
  271. package/dist/lib/tunnel/state.d.ts.map +1 -1
  272. package/dist/lib/tunnel/state.js +53 -13
  273. package/package.json +7 -4
  274. package/schemas/config.schema.json +69 -2
  275. package/src/commands/agents.ts +42 -9
  276. package/src/commands/artifacts.ts +130 -6
  277. package/src/commands/backup.ts +287 -34
  278. package/src/commands/browse.ts +564 -267
  279. package/src/commands/diagnostics.ts +6 -3
  280. package/src/commands/ledger-v3.ts +20 -3
  281. package/src/commands/qa-run.ts +37 -3
  282. package/src/commands/qa-status.ts +11 -2
  283. package/src/commands/resources.ts +23 -3
  284. package/src/commands/review-pack.ts +165 -62
  285. package/src/commands/tunnel.ts +2 -1
  286. package/src/core/agents/canonical-emit.ts +4 -2
  287. package/src/core/agents/cli.ts +14 -6
  288. package/src/core/agents/live-authority-v3.ts +7 -3
  289. package/src/core/agents/live-lifecycle-v3.ts +2 -2
  290. package/src/core/agents/render/prompt-context.ts +68 -14
  291. package/src/core/agents/session-finalizer-v3.ts +2 -2
  292. package/src/core/agents/state/live-coordination-view.ts +4 -4
  293. package/src/core/agents/state/names.ts +92 -7
  294. package/src/core/agents/state/stale-sweep.ts +22 -8
  295. package/src/core/agents/turn-elapsed.ts +135 -0
  296. package/src/core/artifacts/activity.ts +71 -0
  297. package/src/core/artifacts/delivery-card.ts +375 -0
  298. package/src/core/artifacts/index.ts +385 -91
  299. package/src/core/artifacts/mutation-lock.ts +106 -0
  300. package/src/core/backup/host-snapshot.ts +76 -0
  301. package/src/core/config.ts +66 -13
  302. package/src/core/diagnostics/advice.ts +148 -120
  303. package/src/core/diagnostics/bundle.ts +138 -52
  304. package/src/core/diagnostics/comparison.ts +6 -2
  305. package/src/core/diagnostics/contract.ts +39 -42
  306. package/src/core/diagnostics/index.ts +2 -0
  307. package/src/core/diagnostics/pressure-contract.ts +294 -0
  308. package/src/core/diagnostics/pressure.ts +1361 -0
  309. package/src/core/diagnostics/replay.ts +116 -11
  310. package/src/core/events/v3/adapter-id.ts +12 -0
  311. package/src/core/events/v3/archive-retention.ts +3 -6
  312. package/src/core/events/v3/bootstrap.ts +163 -16
  313. package/src/core/events/v3/capabilities.ts +75 -25
  314. package/src/core/events/v3/capability-drift.ts +2 -2
  315. package/src/core/events/v3/control-witness.ts +172 -41
  316. package/src/core/events/v3/control.ts +34 -2
  317. package/src/core/events/v3/index.ts +3 -0
  318. package/src/core/events/v3/live-feed.ts +23 -5
  319. package/src/core/events/v3/live-routing.ts +14 -2
  320. package/src/core/events/v3/producers/command-recorder.ts +4 -4
  321. package/src/core/events/v3/producers/coordination-recorder.ts +4 -4
  322. package/src/core/events/v3/producers/hook-base.ts +21 -16
  323. package/src/core/events/v3/producers/hook.ts +21 -4
  324. package/src/core/events/v3/producers/intake.ts +6 -6
  325. package/src/core/events/v3/producers/producer-state-observer.ts +2 -1
  326. package/src/core/events/v3/producers/recorder.ts +50 -21
  327. package/src/core/events/v3/reader.ts +14 -13
  328. package/src/core/events/v3/runtime-build.ts +3 -2
  329. package/src/core/events/v3/runtime-telemetry-capabilities.ts +3 -3
  330. package/src/core/events/v3/turn-telemetry.ts +4 -4
  331. package/src/core/hooks/adapter/output.ts +50 -36
  332. package/src/core/hooks/backup-schedule.ts +147 -0
  333. package/src/core/hooks/cli.ts +65 -14
  334. package/src/core/hooks/codex-wsl-bridge.ts +21 -5
  335. package/src/core/hooks/index.ts +1 -0
  336. package/src/core/hooks/prompt-context/contract.ts +177 -0
  337. package/src/core/hooks/prompt-context/index.ts +22 -0
  338. package/src/core/hooks/prompt-context/runner.ts +303 -0
  339. package/src/core/qa-artifacts.ts +29 -3
  340. package/src/core/resources/contract.ts +76 -3
  341. package/src/core/resources/index.ts +1 -0
  342. package/src/core/resources/native.ts +481 -0
  343. package/src/core/resources/sampler.ts +46 -1
  344. package/src/core/resources/status.ts +717 -0
  345. package/src/core/resources/system.ts +530 -0
  346. package/src/core/semantic/service.ts +37 -3
  347. package/src/core/storage/builtins.ts +41 -0
  348. package/src/core/supervisor/contract.ts +45 -3
  349. package/src/core/supervisor/findings.ts +159 -0
  350. package/src/core/supervisor/history.ts +15 -0
  351. package/src/core/supervisor/ledger-state.ts +0 -0
  352. package/src/core/supervisor/service.ts +133 -5
  353. package/src/core/supervisor/storage.ts +7 -0
  354. package/src/core/workflow/admission.ts +33 -17
  355. package/src/core/workflow/engine.ts +2 -2
  356. package/src/core/workflow/live-session-v3.ts +6 -8
  357. package/src/core/workflow/proof.ts +4 -3
  358. package/src/lib/browser/capture-fidelity.ts +23 -0
  359. package/src/lib/browser/client.ts +96 -44
  360. package/src/lib/browser/index.ts +15 -1
  361. package/src/lib/browser/page-review-budget.ts +309 -0
  362. package/src/lib/browser/page-review-contracts.ts +129 -0
  363. package/src/lib/browser/page-review-evidence.ts +465 -0
  364. package/src/lib/browser/page-review-judge.ts +56 -40
  365. package/src/lib/browser/page-review-pack.ts +181 -43
  366. package/src/lib/browser/page-review-source.ts +30 -0
  367. package/src/lib/browser/qa-run-contracts.ts +62 -18
  368. package/src/lib/browser/qa-run.ts +259 -71
  369. package/src/lib/browser/qa-snapshot.ts +289 -48
  370. package/src/lib/browser/review-capture-transaction.ts +106 -0
  371. package/src/lib/browser/standalone-html.ts +4 -2
  372. package/src/lib/browser/thumbnail-association.ts +190 -0
  373. package/src/lib/browser/tiling.ts +63 -0
  374. package/src/lib/docs-metadata-managed.ts +4 -1
  375. package/src/lib/identities/assume.ts +12 -4
  376. package/src/lib/instructions/templates.ts +1 -0
  377. package/src/lib/local-file-url.ts +17 -2
  378. package/src/lib/tunnel/state.ts +70 -13
@@ -1,6 +1,8 @@
1
1
  import type { CritiqueCoverage, CritiqueFinding, CritiqueTile } from "./critique.js";
2
+ import type { PageReviewBudgetCoverage, PageReviewCapturePlan, PageReviewEvidenceContext, PageReviewNativeTile, PageReviewRect } from "./page-review-contracts.js";
2
3
  import type { QaContext, QaSignature } from "./qa-plan.js";
3
- export declare const PAGE_REVIEW_PACK_SCHEMA = "harnery-page-review/v1";
4
+ export type { PageReviewRect } from "./page-review-contracts.js";
5
+ export declare const PAGE_REVIEW_PACK_SCHEMA = "harnery-page-review/v2";
4
6
  export declare const PAGE_REVIEW_FINDINGS_SCHEMA = "harnery-page-review-findings/v3";
5
7
  /** Directory name a qa-run gives its pack inside the run directory. */
6
8
  export declare const PAGE_REVIEW_PACK_DIRNAME = "pack";
@@ -63,6 +65,7 @@ export interface PageReviewFindingsDocument {
63
65
  target: string;
64
66
  reviewer: string | null;
65
67
  reviewed_at: string | null;
68
+ machine_evidence_digest?: string | null;
66
69
  delegated_reviews: PageReviewDelegatedReviewRecord[];
67
70
  findings: PageReviewReviewerFinding[];
68
71
  dispositions?: PageReviewDispositionRecord[];
@@ -185,6 +188,17 @@ export interface PageReviewContextRecord {
185
188
  width: number;
186
189
  height: number;
187
190
  };
191
+ viewport_size: {
192
+ width: number;
193
+ height: number;
194
+ };
195
+ dpr: number;
196
+ recipe_version: string;
197
+ full_page_scale: 0.5;
198
+ capture_plan?: PageReviewCapturePlan;
199
+ allocation_coverage?: PageReviewBudgetCoverage;
200
+ evidence_context?: PageReviewEvidenceContext;
201
+ capture_incomplete?: boolean;
188
202
  /** Full-page band coverage (what the tiler kept of the page). */
189
203
  coverage: CritiqueCoverage;
190
204
  scopes: Array<{
@@ -223,6 +237,15 @@ export interface PageReviewContextCapture {
223
237
  fullPage: Buffer;
224
238
  pageWidth: number;
225
239
  pageHeight: number;
240
+ viewportSize: {
241
+ width: number;
242
+ height: number;
243
+ };
244
+ dpr: number;
245
+ recipeVersion: string;
246
+ capturePlan?: PageReviewCapturePlan;
247
+ allocationCoverage?: PageReviewBudgetCoverage;
248
+ captureIncomplete?: boolean;
226
249
  tiles: CritiqueTile[];
227
250
  coverage: CritiqueCoverage;
228
251
  scopeTiles?: Array<{
@@ -252,12 +275,11 @@ export interface PageReviewCritiqueRecord {
252
275
  }>;
253
276
  coverage: CritiqueCoverage;
254
277
  error?: string;
255
- }
256
- export interface PageReviewRect {
257
- x: number;
258
- y: number;
259
- width: number;
260
- height: number;
278
+ evidence?: {
279
+ schema: string;
280
+ context: PageReviewEvidenceContext;
281
+ tiles: Array<Omit<PageReviewNativeTile, "png">>;
282
+ };
261
283
  }
262
284
  /** One gate finding that carries a document-space rectangle (CSS px at the
263
285
  * capture's device scale factor 1, the same space as tile `x`/`scrollY`). */
@@ -447,7 +469,8 @@ export declare function readPackTiles(packDir: string, record: PageReviewContext
447
469
  id: string;
448
470
  scope?: string;
449
471
  }>;
450
- export declare function readPackFullPage(packDir: string, record: PageReviewContextRecord): Buffer;
472
+ /** Half-scale navigation image; never native evidence. */
473
+ export declare function readPackOverview(packDir: string, record: PageReviewContextRecord): Buffer;
451
474
  export declare function readPackSignature(packDir: string, record: PageReviewContextRecord): QaSignature;
452
475
  /** Read a context's serialized DOM, inflating a gzip-compressed `dom.html.gz`
453
476
  * and reading an older plain `dom.html` as-is. */
@@ -483,7 +506,7 @@ export declare function machineFindingTargets(critique: PageReviewCritiqueRecord
483
506
  * review-subagent finding at `critical` or `high`. Nothing here rewrites the
484
507
  * critique: `evidence/critique.json` stays the machine record.
485
508
  */
486
- export declare function resolvePackVerdict(manifest: Pick<PageReviewPackManifest, "critique">, inspectionPlan: PageReviewInspectionPlan, findings: PageReviewFindingsDocument): PageReviewVerdict;
509
+ export declare function resolvePackVerdict(manifest: Pick<PageReviewPackManifest, "critique"> & Partial<Pick<PageReviewPackManifest, "gates" | "contexts">>, inspectionPlan: PageReviewInspectionPlan, findings: PageReviewFindingsDocument): PageReviewVerdict;
487
510
  /** The verdict a previous `review-pack verdict` wrote, or undefined when none exists. */
488
511
  export declare function readPackVerdict(packDir: string): PageReviewVerdictDocument | undefined;
489
512
  export interface FinalizePageReviewPackInput {
@@ -525,15 +548,15 @@ export declare const GATE_HITS_PER_ENVELOPE = 50;
525
548
  * target-size (`hit`). Anything without a rect is skipped; the gate's
526
549
  * `failures` lines still describe it. Capped at `GATE_HITS_PER_ENVELOPE`.
527
550
  */
528
- export declare function gateHitsFromEnvelope(envelope: Record<string, unknown> | undefined): PageReviewGateHit[];
551
+ export declare function gateHitsFromEnvelope(envelope: Record<string, unknown> | undefined, maxHits?: number): PageReviewGateHit[];
529
552
  /** Tile ids whose rect intersects `rect` (both in document-space px). */
530
553
  export declare function tilesCoveringRect(tiles: PageReviewTileRecord[], rect: PageReviewRect): string[];
531
554
  export declare function buildInspectionPlan(contexts: PageReviewContextRecord[], critique: PageReviewCritiqueRecord[] | null | undefined, gates?: PageReviewGateRecord[]): PageReviewInspectionPlan;
532
555
  /**
533
556
  * Write the pack's navigation layer: manifest, evidence files, the findings
534
- * skeleton and schema (never overwriting a findings file a reviewer already
535
- * filled), and `review.md`. Safe to call twice: once after capture, again
536
- * after the judge so machine findings land in the plan and the review.
557
+ * skeleton and schema, and `review.md`. An unchanged judge result preserves
558
+ * the review; changed machine evidence archives it before starting a fresh
559
+ * review, so a previous finding position cannot acquire a new meaning.
537
560
  */
538
561
  export declare function finalizePageReviewPack(input: FinalizePageReviewPackInput): {
539
562
  manifest: string;
@@ -554,6 +577,14 @@ export interface PageReviewExpiredStub {
554
577
  contexts: number;
555
578
  /** Aggregate of the manifest's critique outcomes; null when no judge ran. */
556
579
  machine_outcome: PageReviewCritiqueRecord["outcome"] | null;
580
+ result: PageReviewVerdictDocument | null;
581
+ findings_summary: {
582
+ machine_high: number;
583
+ machine_medium: number;
584
+ machine_low: number;
585
+ reviewer_findings: number;
586
+ dispositions: number;
587
+ } | null;
557
588
  }
558
589
  /** One pack as seen by the expiry sweep. `expires_at`, `size_bytes`, and
559
590
  * `managed` are null when the manifest does not carry them; such a pack is
@@ -600,14 +631,5 @@ export declare function isPackDeletable(row: PageReviewPackRow, includeUnmanaged
600
631
  /** One verdict for the whole pack from its per-context critique rows: any
601
632
  * fail is a fail, otherwise the weakest non-pass outcome, otherwise pass. */
602
633
  export declare function aggregateMachineOutcome(critique: PageReviewCritiqueRecord[] | null | undefined): PageReviewCritiqueRecord["outcome"] | null;
603
- /**
604
- * Delete every expired pack under the roots and leave `pack-expired.json` in
605
- * its place. Deletion removes every entry inside the pack directory except
606
- * the artifact store's own `.harnery-artifact.json` (a standalone review-pack
607
- * workspace is the pack, and the store still owns the workspace). Nothing
608
- * outside the pack directory is touched. Only a pack whose manifest carries
609
- * `retention.expires_at` in the past is eligible, and an unmanaged pack
610
- * (explicit `--out`) only when `includeUnmanaged` is set.
611
- */
612
634
  export declare function deleteExpiredPacks(input: DeleteExpiredPacksInput): DeleteExpiredPacksResult;
613
635
  //# sourceMappingURL=page-review-pack.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-review-pack.d.ts","sourceRoot":"","sources":["../../../src/lib/browser/page-review-pack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-review-pack.d.ts","sourceRoot":"","sources":["../../../src/lib/browser/page-review-pack.ts"],"names":[],"mappings":"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"}
@@ -12,11 +12,12 @@
12
12
  //
13
13
  // Toolkit tier: this module must not import src/core (layering check).
14
14
  import { createHash } from "node:crypto";
15
- import { existsSync, lstatSync, mkdirSync, readdirSync, readFileSync, renameSync, rmdirSync, rmSync, writeFileSync, } from "node:fs";
15
+ import { copyFileSync, existsSync, lstatSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, renameSync, rmdirSync, rmSync, writeFileSync, } from "node:fs";
16
16
  import { basename, dirname, join, relative, resolve } from "node:path";
17
17
  import { gunzipSync, gzipSync } from "node:zlib";
18
18
  import { PNG } from "pngjs";
19
- export const PAGE_REVIEW_PACK_SCHEMA = "harnery-page-review/v1";
19
+ import { machineEvidenceDigest, PAGE_REVIEW_CRITIQUE_SCHEMA } from "./page-review-evidence.js";
20
+ export const PAGE_REVIEW_PACK_SCHEMA = "harnery-page-review/v2";
20
21
  export const PAGE_REVIEW_FINDINGS_SCHEMA = "harnery-page-review-findings/v3";
21
22
  /** Directory name a qa-run gives its pack inside the run directory. */
22
23
  export const PAGE_REVIEW_PACK_DIRNAME = "pack";
@@ -160,6 +161,7 @@ export function writePackExpandedTile(packDir, contextId, input) {
160
161
  const paths = packPaths(packDir);
161
162
  const dir = paths.contextDir(contextId);
162
163
  const file = join(dir, "tiles", expandedTileFilename(tile.id, input.dpr));
164
+ const scale = input.dpr / record.dpr;
163
165
  const { png, width, height } = input.region
164
166
  ? {
165
167
  png: input.region,
@@ -167,10 +169,10 @@ export function writePackExpandedTile(packDir, contextId, input) {
167
169
  height: input.region.readUInt32BE(20),
168
170
  }
169
171
  : cropPngRegion(input.fullPage, {
170
- x: tile.x * input.dpr,
171
- y: tile.scrollY * input.dpr,
172
- width: tile.width * input.dpr,
173
- height: tile.height * input.dpr,
172
+ x: tile.x * scale,
173
+ y: tile.scrollY * scale,
174
+ width: tile.width * scale,
175
+ height: tile.height * scale,
174
176
  });
175
177
  mkdirSync(join(dir, "tiles"), { recursive: true });
176
178
  writeFileSync(file, png);
@@ -196,6 +198,11 @@ export function writePackExpandedTile(packDir, contextId, input) {
196
198
  * tile ids are stable for a given capture. Returns the record written.
197
199
  */
198
200
  export function writePackContext(packDir, capture) {
201
+ if (!capture.viewportSize ||
202
+ ![capture.viewportSize.width, capture.viewportSize.height, capture.dpr].every((n) => Number.isFinite(n) && n > 0) ||
203
+ !capture.recipeVersion?.trim()) {
204
+ throw new Error("Native pack capture requires viewportSize, positive DPR, and a capture recipe version");
205
+ }
199
206
  const contextId = capture.context.id ??
200
207
  `${capture.context.viewport}-${capture.context.theme}-${capture.context.state}`;
201
208
  const paths = packPaths(packDir);
@@ -208,7 +215,10 @@ export function writePackContext(packDir, capture) {
208
215
  const signaturePath = join(dir, "signature.json");
209
216
  const tilesPath = join(dir, "tiles.json");
210
217
  const contextPath = join(dir, "context.json");
211
- writeFileSync(fullPagePath, capture.fullPage);
218
+ // Full-page pixels are transient. The saved image is orientation only.
219
+ const native = PNG.sync.read(capture.fullPage);
220
+ const overview = boxDownscale(native, Math.max(1, Math.round(native.width / 2)), Math.max(1, Math.round(native.height / 2)));
221
+ writeFileSync(fullPagePath, PNG.sync.write(overview));
212
222
  // The serialized DOM compresses roughly 10:1; `dom_sha256` stays the digest
213
223
  // of the uncompressed bytes so a reader can verify what `readPackDom` returns.
214
224
  writeFileSync(domPath, gzipSync(Buffer.from(capture.domHtml, "utf8")));
@@ -248,7 +258,17 @@ export function writePackContext(packDir, capture) {
248
258
  url: capture.url,
249
259
  ...(capture.title !== undefined ? { title: capture.title } : {}),
250
260
  captured_at: capture.capturedAt ?? new Date().toISOString(),
251
- page: { width: capture.pageWidth, height: capture.pageHeight },
261
+ page: {
262
+ width: Math.round(capture.pageWidth * capture.dpr),
263
+ height: Math.round(capture.pageHeight * capture.dpr),
264
+ },
265
+ viewport_size: capture.viewportSize,
266
+ dpr: capture.dpr,
267
+ recipe_version: capture.recipeVersion,
268
+ full_page_scale: 0.5,
269
+ ...(capture.capturePlan ? { capture_plan: capture.capturePlan } : {}),
270
+ ...(capture.allocationCoverage ? { allocation_coverage: capture.allocationCoverage } : {}),
271
+ ...(capture.captureIncomplete ? { capture_incomplete: true } : {}),
252
272
  coverage: capture.coverage,
253
273
  scopes: (capture.scopeTiles ?? []).map((entry) => ({
254
274
  selector: entry.selector,
@@ -456,7 +476,7 @@ export function readPackContext(packDir, contextId) {
456
476
  const path = join(packPaths(packDir).contextDir(contextId), "context.json");
457
477
  const { schema, ...record } = readJson(path);
458
478
  if (schema !== PAGE_REVIEW_PACK_SCHEMA) {
459
- throw new Error(`${path}: expected schema ${PAGE_REVIEW_PACK_SCHEMA}, found ${schema}`);
479
+ throw new Error(`${path}: expected schema ${PAGE_REVIEW_PACK_SCHEMA}, found ${schema}; recapture the target to create a v2 pack`);
460
480
  }
461
481
  return record;
462
482
  }
@@ -486,7 +506,8 @@ export function readPackTiles(packDir, record) {
486
506
  };
487
507
  });
488
508
  }
489
- export function readPackFullPage(packDir, record) {
509
+ /** Half-scale navigation image; never native evidence. */
510
+ export function readPackOverview(packDir, record) {
490
511
  return readFileSync(join(packDir, record.files.full_page));
491
512
  }
492
513
  export function readPackSignature(packDir, record) {
@@ -502,7 +523,7 @@ export function readPackDom(packDir, record) {
502
523
  export function readPackManifest(packDir) {
503
524
  const manifest = readJson(packPaths(packDir).manifest);
504
525
  if (manifest.schema !== PAGE_REVIEW_PACK_SCHEMA) {
505
- throw new Error(`${packPaths(packDir).manifest}: expected schema ${PAGE_REVIEW_PACK_SCHEMA}, found ${manifest.schema}`);
526
+ throw new Error(`${packPaths(packDir).manifest}: expected schema ${PAGE_REVIEW_PACK_SCHEMA}, found ${manifest.schema}; recapture the target to create a v2 pack`);
506
527
  }
507
528
  return manifest;
508
529
  }
@@ -550,6 +571,7 @@ export function validateFindingsDocument(doc) {
550
571
  "target",
551
572
  "reviewer",
552
573
  "reviewed_at",
574
+ "machine_evidence_digest",
553
575
  "delegated_reviews",
554
576
  "findings",
555
577
  "dispositions",
@@ -835,7 +857,7 @@ export function resolvePackVerdict(manifest, inspectionPlan, findings) {
835
857
  const disposition = byTarget.get(target)?.disposition;
836
858
  if (disposition === undefined)
837
859
  high_open += 1;
838
- else if (disposition === "confirmed")
860
+ else if (disposition === "confirmed" || finding.category === "provider-error")
839
861
  high_confirmed += 1;
840
862
  else
841
863
  high_dismissed += 1;
@@ -848,8 +870,15 @@ export function resolvePackVerdict(manifest, inspectionPlan, findings) {
848
870
  const uncovered_primary_tiles = [...requiredTiles]
849
871
  .filter((tile) => !completedTiles.has(tile))
850
872
  .sort();
851
- const blocking = high_confirmed + high_open + reviewer_high;
852
- const anyIncomplete = critique?.some((row) => row.outcome === "incomplete") ?? false;
873
+ const blocking = high_confirmed +
874
+ high_open +
875
+ reviewer_high +
876
+ (manifest.gates?.filter((g) => g.outcome === "failed").length ?? 0);
877
+ const anyIncomplete = (critique?.some((row) => row.outcome === "incomplete" ||
878
+ (row.outcome === "skipped" && machine_outcome !== "skipped")) ??
879
+ false) ||
880
+ manifest.contexts?.some((c) => c.capture_incomplete || c.coverage.capped) ||
881
+ false;
853
882
  const reviewed_outcome = blocking > 0
854
883
  ? "fail"
855
884
  : anyIncomplete || uncovered_primary_tiles.length > 0
@@ -889,6 +918,7 @@ export function findingsSchemaDocument() {
889
918
  additionalProperties: false,
890
919
  required: ["schema", "target", "reviewer", "reviewed_at", "delegated_reviews", "findings"],
891
920
  properties: {
921
+ machine_evidence_digest: { type: ["string", "null"], pattern: "^[a-f0-9]{64}$" },
892
922
  schema: { const: PAGE_REVIEW_FINDINGS_SCHEMA },
893
923
  schema_path: { type: "string" },
894
924
  target: { type: "string" },
@@ -1016,12 +1046,12 @@ function str(value, fallback = "?") {
1016
1046
  * target-size (`hit`). Anything without a rect is skipped; the gate's
1017
1047
  * `failures` lines still describe it. Capped at `GATE_HITS_PER_ENVELOPE`.
1018
1048
  */
1019
- export function gateHitsFromEnvelope(envelope) {
1049
+ export function gateHitsFromEnvelope(envelope, maxHits = GATE_HITS_PER_ENVELOPE) {
1020
1050
  if (!envelope)
1021
1051
  return [];
1022
1052
  const hits = [];
1023
1053
  const push = (rule, label, rect) => {
1024
- if (rect && hits.length < GATE_HITS_PER_ENVELOPE)
1054
+ if (rect && hits.length < maxHits)
1025
1055
  hits.push({ rule, label, rect });
1026
1056
  };
1027
1057
  const runts = envelope.runts;
@@ -1142,7 +1172,7 @@ export function buildInspectionPlan(contexts, critique, gates) {
1142
1172
  if (tile.scope !== undefined)
1143
1173
  add(tile.id, `scoped tile for ${tile.scope}`);
1144
1174
  if (tile.kind === "hit-band")
1145
- add(tile.id, "hit band: captured past the tile cap for a gate hit");
1175
+ add(tile.id, "hit band: selected for a gate hit");
1146
1176
  }
1147
1177
  const row = critique?.find((entry) => entry.context_id === ctx.id);
1148
1178
  for (const finding of row?.findings ?? []) {
@@ -1189,9 +1219,9 @@ function walkFiles(root, dir, out) {
1189
1219
  }
1190
1220
  /**
1191
1221
  * Write the pack's navigation layer: manifest, evidence files, the findings
1192
- * skeleton and schema (never overwriting a findings file a reviewer already
1193
- * filled), and `review.md`. Safe to call twice: once after capture, again
1194
- * after the judge so machine findings land in the plan and the review.
1222
+ * skeleton and schema, and `review.md`. An unchanged judge result preserves
1223
+ * the review; changed machine evidence archives it before starting a fresh
1224
+ * review, so a previous finding position cannot acquire a new meaning.
1195
1225
  */
1196
1226
  export function finalizePageReviewPack(input) {
1197
1227
  const paths = packPaths(input.packDir);
@@ -1202,6 +1232,48 @@ export function finalizePageReviewPack(input) {
1202
1232
  const gates = input.gates ?? [];
1203
1233
  const notChecked = [...(input.not_checked ?? [])];
1204
1234
  const warnings = [...(input.warnings ?? [])];
1235
+ const reviewDigest = critique === null ? null : machineEvidenceDigest(input.target, critique);
1236
+ const freshFindings = () => ({
1237
+ schema: PAGE_REVIEW_FINDINGS_SCHEMA,
1238
+ schema_path: PAGE_REVIEW_FINDINGS_SCHEMA_FILENAME,
1239
+ target: input.target,
1240
+ machine_evidence_digest: reviewDigest,
1241
+ reviewer: null,
1242
+ reviewed_at: null,
1243
+ delegated_reviews: [],
1244
+ findings: [],
1245
+ dispositions: [],
1246
+ });
1247
+ // Preserve the old machine evidence before any navigation files are replaced.
1248
+ // Archive failure aborts finalization without clearing the current review.
1249
+ if (critique !== null && existsSync(paths.findings)) {
1250
+ const previous = readPackFindings(input.packDir);
1251
+ if (previous.machine_evidence_digest !== reviewDigest) {
1252
+ if (previous.machine_evidence_digest ||
1253
+ previous.reviewer ||
1254
+ previous.reviewed_at ||
1255
+ previous.delegated_reviews.length ||
1256
+ previous.findings.length ||
1257
+ previous.dispositions?.length) {
1258
+ const historyRoot = join(input.packDir, "review-history");
1259
+ mkdirSync(historyRoot, { recursive: true });
1260
+ const historyDir = mkdtempSync(join(historyRoot, "review-"));
1261
+ for (const source of [
1262
+ paths.findings,
1263
+ paths.critique,
1264
+ paths.inspectionPlan,
1265
+ paths.verdict,
1266
+ paths.manifest,
1267
+ ]) {
1268
+ if (existsSync(source))
1269
+ copyFileSync(source, join(historyDir, basename(source)));
1270
+ }
1271
+ warnings.push(`Changed machine evidence requires a new review. Previous review archived at ${rel(historyDir)}.`);
1272
+ }
1273
+ rmSync(paths.verdict, { force: true });
1274
+ writePackFindings(input.packDir, freshFindings());
1275
+ }
1276
+ }
1205
1277
  if (critique === null) {
1206
1278
  notChecked.push({
1207
1279
  check: "machine vision critique",
@@ -1222,7 +1294,7 @@ export function finalizePageReviewPack(input) {
1222
1294
  `(${ctx.coverage.reviewed_height_px} of ${ctx.coverage.page_height_px} px) are in the pack; the rest of the page is unreviewed.`);
1223
1295
  }
1224
1296
  if (ctx.hit_bands !== undefined && ctx.hit_bands > 0) {
1225
- warnings.push(`${ctx.id}: ${ctx.hit_bands} band(s) below the tile cap were captured because gate hits land in them.`);
1297
+ warnings.push(`${ctx.id}: ${ctx.hit_bands} band(s) were selected because gate hits land in them.`);
1226
1298
  }
1227
1299
  }
1228
1300
  notChecked.push({
@@ -1268,23 +1340,14 @@ export function finalizePageReviewPack(input) {
1268
1340
  });
1269
1341
  if (critique !== null) {
1270
1342
  writeJson(paths.critique, {
1271
- schema: PAGE_REVIEW_PACK_SCHEMA,
1343
+ schema: PAGE_REVIEW_CRITIQUE_SCHEMA,
1272
1344
  ...(input.pool ? { pool: input.pool } : {}),
1273
1345
  contexts: critique,
1274
1346
  });
1275
1347
  }
1276
1348
  writeJson(paths.findingsSchema, findingsSchemaDocument());
1277
1349
  if (!existsSync(paths.findings)) {
1278
- writeJson(paths.findings, {
1279
- schema: PAGE_REVIEW_FINDINGS_SCHEMA,
1280
- schema_path: PAGE_REVIEW_FINDINGS_SCHEMA_FILENAME,
1281
- target: input.target,
1282
- reviewer: null,
1283
- reviewed_at: null,
1284
- delegated_reviews: [],
1285
- findings: [],
1286
- dispositions: [],
1287
- });
1350
+ writeJson(paths.findings, freshFindings());
1288
1351
  }
1289
1352
  // Retention: what the caller says, else what the manifest already carries.
1290
1353
  let retention = input.retention;
@@ -1342,9 +1405,8 @@ export function finalizePageReviewPack(input) {
1342
1405
  contact_sheets: Object.fromEntries(contexts.flatMap((ctx) => (ctx.contact_sheet ? [[ctx.id, ctx.contact_sheet.file]] : []))),
1343
1406
  },
1344
1407
  });
1345
- // A verdict written by `review-pack verdict` survives every refinalize so
1346
- // review.md keeps its "Reviewed outcome" section; the section itself notes
1347
- // when the verdict predates the current critique.
1408
+ // A verdict survives an unchanged refinalize. Changed machine evidence
1409
+ // archives and removes it above, before starting the next review.
1348
1410
  let verdict;
1349
1411
  try {
1350
1412
  verdict = readPackVerdict(input.packDir);
@@ -1384,7 +1446,7 @@ export function renderReviewMarkdown(manifest, plan, judgeCommand, verdict) {
1384
1446
  lines.push("");
1385
1447
  lines.push("## Delegated review protocol");
1386
1448
  lines.push("");
1387
- lines.push("1. The coordinating agent reads the context table and coverage below. A capped context has unreviewed page below its last tile.");
1449
+ lines.push("1. The coordinating agent reads the context table and coverage below. A budgeted context can have unreviewed gaps between selected tiles; use its recorded coverage intervals.");
1388
1450
  lines.push("2. Read `evidence/inspection-plan.json`, then dispatch review subagents with disjoint assignments covering every `primary_tiles` entry. Choose the first model available in this exact order: GPT-5.6 Luna (`gpt-5.6-luna` where an id is required), Composer 2.5, Haiku 4.5. Use that model for every tile-review subagent; do not substitute another model. If none exists, the review is incomplete. Each tile must be opened at native pixels by at least one completed subagent. The coordinating agent must not open tile images itself.");
1389
1451
  lines.push("3. Review subagents may use the contact sheet (`contacts.png`, every tile downscaled into one grid, ids stamped, row-major order) and the full-page screenshot for orientation only; both hide small defects a tile shows at native pixels.");
1390
1452
  lines.push("4. Review subagents read the machine findings for their assigned tiles. A finding is a claim to confirm against the tile, never a fact. Slice-edge cropping is a tiling artifact, not a defect.");
@@ -1657,6 +1719,22 @@ export function aggregateMachineOutcome(critique) {
1657
1719
  * `retention.expires_at` in the past is eligible, and an unmanaged pack
1658
1720
  * (explicit `--out`) only when `includeUnmanaged` is set.
1659
1721
  */
1722
+ function expiredFindingsSummary(dir, manifest) {
1723
+ try {
1724
+ const findings = readPackFindings(dir);
1725
+ const machine = manifest.critique?.flatMap((row) => row.findings) ?? [];
1726
+ return {
1727
+ machine_high: machine.filter((f) => f.severity === "high").length,
1728
+ machine_medium: machine.filter((f) => f.severity === "medium").length,
1729
+ machine_low: machine.filter((f) => f.severity === "low").length,
1730
+ reviewer_findings: findings.findings.length,
1731
+ dispositions: findings.dispositions?.length ?? 0,
1732
+ };
1733
+ }
1734
+ catch {
1735
+ return null;
1736
+ }
1737
+ }
1660
1738
  export function deleteExpiredPacks(input) {
1661
1739
  const now = input.now ?? new Date();
1662
1740
  const nowMs = now.getTime();
@@ -1696,6 +1774,8 @@ export function deleteExpiredPacks(input) {
1696
1774
  deleted_at: now.toISOString(),
1697
1775
  contexts: Array.isArray(manifest.contexts) ? manifest.contexts.length : 0,
1698
1776
  machine_outcome: aggregateMachineOutcome(manifest.critique),
1777
+ result: readPackVerdict(dir) ?? null,
1778
+ findings_summary: expiredFindingsSummary(dir, manifest),
1699
1779
  };
1700
1780
  for (const entry of readdirSync(dir, { withFileTypes: true })) {
1701
1781
  if (entry.name === ARTIFACT_WORKSPACE_MANIFEST_FILENAME)
@@ -0,0 +1,12 @@
1
+ import type { PageReviewSourceEvidence } from "./page-review-contracts.js";
2
+ /** The caller supplies the already-canonicalized DOM. Keep every identity input
3
+ * and its order: this receipt diagnoses differences without accepting them. */
4
+ export declare function retainPageReviewSourceIdentity(input: {
5
+ nodes: unknown[];
6
+ stylesheets: unknown[];
7
+ dom: string;
8
+ }, artifactPrefix?: string): {
9
+ digest: string;
10
+ evidence?: PageReviewSourceEvidence;
11
+ };
12
+ //# sourceMappingURL=page-review-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-review-source.d.ts","sourceRoot":"","sources":["../../../src/lib/browser/page-review-source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E;+EAC+E;AAC/E,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE;IAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,WAAW,EAAE,OAAO,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAChE,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAA;CAAE,CAmBzD"}
@@ -0,0 +1,22 @@
1
+ import { createHash } from "node:crypto";
2
+ import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs";
3
+ import { dirname, join, resolve } from "node:path";
4
+ /** The caller supplies the already-canonicalized DOM. Keep every identity input
5
+ * and its order: this receipt diagnoses differences without accepting them. */
6
+ export function retainPageReviewSourceIdentity(input, artifactPrefix) {
7
+ const bytes = Buffer.from(JSON.stringify({ nodes: input.nodes, stylesheets: input.stylesheets, dom: input.dom }), "utf8");
8
+ const digest = createHash("sha256").update(bytes).digest("hex");
9
+ if (!artifactPrefix)
10
+ return { digest };
11
+ // Raw source can contain session metadata. Keep it out of stdout and create
12
+ // a private directory per attempt, preserving both sides of a failed retry.
13
+ const prefix = resolve(artifactPrefix);
14
+ mkdirSync(dirname(prefix), { recursive: true, mode: 0o700 });
15
+ const dir = mkdtempSync(`${prefix}.source-identity-`);
16
+ const path = join(dir, `${digest}.json`);
17
+ writeFileSync(path, bytes, { mode: 0o600, flag: "wx" });
18
+ return {
19
+ digest,
20
+ evidence: { path, sha256: digest, bytes: bytes.length, encoding: "utf8" },
21
+ };
22
+ }
@@ -57,11 +57,13 @@ export interface QaRunPolicy {
57
57
  * recorded, and the result finalizes as incomplete — releasing the
58
58
  * admission slot instead of holding it open-endedly. */
59
59
  run_deadline_ms?: number;
60
- /** Full-page critique bands per context (browse `--check-critique-max-tiles`,
61
- * default 24). Raise it when a tall page must be reviewed end to end and the
62
- * per-tile cost is accepted; each critique row's `coverage` records what the
63
- * run actually saw, which is why this knob can stay out of the job digest. */
60
+ /** Explicit per-context ceiling. When absent, a pack context may use the
61
+ * whole shared budget; independent browse commands keep their own default. */
64
62
  critique_max_tiles?: number;
63
+ /** Maximum native tiles across the complete pack (8-400, default 96). */
64
+ critique_tile_budget?: number;
65
+ /** Apply exact-match, fully reviewed prior dispositions. Default false. */
66
+ accept_dispositions?: boolean;
65
67
  /** Vision calls in flight during the judge stage, across every context of
66
68
  * the run (1 to 16). Default: the host provider's own concurrency. The
67
69
  * capture stage closes every browser before judging starts, so this knob
@@ -131,6 +133,22 @@ export interface QaRunCritiqueCoverage {
131
133
  bands_total: number;
132
134
  bands_reviewed: number;
133
135
  capped: boolean;
136
+ selected_rectangles?: Array<{
137
+ x: number;
138
+ y: number;
139
+ width: number;
140
+ height: number;
141
+ }>;
142
+ reviewed_intervals?: Array<{
143
+ start: number;
144
+ end: number;
145
+ }>;
146
+ uncovered_intervals?: Array<{
147
+ start: number;
148
+ end: number;
149
+ }>;
150
+ omitted_gate_hits?: string[];
151
+ omitted_scopes?: string[];
134
152
  }
135
153
  export interface QaRunCritiqueOutcome {
136
154
  context_id: string;
@@ -145,6 +163,12 @@ export interface QaRunCritiqueOutcome {
145
163
  selector?: string;
146
164
  tile?: string;
147
165
  }>;
166
+ /** Applied reviewer decisions; the machine findings above remain unchanged. */
167
+ dismissed?: Array<{
168
+ finding_key: string;
169
+ target: string;
170
+ disposition: string;
171
+ }>;
148
172
  /** Tile coverage of the page. Absent when the capture died or reported none. */
149
173
  coverage?: QaRunCritiqueCoverage;
150
174
  }
@@ -323,15 +347,17 @@ export declare function contextIdFor(context: QaContext): string;
323
347
  /**
324
348
  * Merge planner-manifest coverage with the job's extra contexts. The manifest
325
349
  * is the floor: its contexts always run, in manifest order, and a job can only
326
- * append. The union construction makes narrowing impossible by design; the
350
+ * append coverage or supply setup arguments for an exactly matching context.
351
+ * IDs and rendering identities must agree; aliases are rejected rather than
352
+ * silently losing a setup or leaving a check pointed at an absent context.
353
+ * The union construction makes narrowing impossible by design; the
327
354
  * returned list is what the runner executes and what the result reports.
328
355
  */
329
356
  export declare function mergeCoverage(manifest: QaManifest, job: QaRunJob): QaRunContext[];
330
357
  /** SHA-256 hex digest over the effective validated job (after the CLI merges
331
- * its authoritative `target` and `mode`). `policy` is excluded: concurrency,
332
- * timeout, and metered-critique knobs change how the run executes, not what
333
- * it proves, and CLI flags mutate them after the job file is read — including
334
- * them would make the same job file verify differently across invocations. */
358
+ * its authoritative `target` and `mode`). Runtime policy knobs are excluded.
359
+ * Disposition acceptance changes what can establish a pass, so enabling it
360
+ * is identity-bearing; an ordinary run cannot verify as an accepting run. */
335
361
  export declare function computeJobDigest(job: QaRunJob): string;
336
362
  export interface QaEvidenceExpectations {
337
363
  /** Exact run ID the caller expects (from the invocation it just made). */