toolroll 0.5.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 (626) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1113 -0
  3. package/THIRD_PARTY_NOTICES.md +449 -0
  4. package/dist/accent-colors.d.ts +48 -0
  5. package/dist/accent-colors.js +122 -0
  6. package/dist/action-ledger.d.ts +26 -0
  7. package/dist/action-ledger.js +75 -0
  8. package/dist/agent-fence.d.ts +42 -0
  9. package/dist/agent-fence.js +183 -0
  10. package/dist/agentconfig.d.ts +216 -0
  11. package/dist/agentconfig.js +454 -0
  12. package/dist/api-tokens.d.ts +16 -0
  13. package/dist/api-tokens.js +27 -0
  14. package/dist/approval-policy.d.ts +69 -0
  15. package/dist/approval-policy.js +137 -0
  16. package/dist/approval-rules-ui.d.ts +25 -0
  17. package/dist/approval-rules-ui.js +39 -0
  18. package/dist/assignment-adapters.d.ts +180 -0
  19. package/dist/assignment-adapters.js +239 -0
  20. package/dist/assignment-brief.d.ts +71 -0
  21. package/dist/assignment-brief.js +129 -0
  22. package/dist/assignment-delivery.d.ts +56 -0
  23. package/dist/assignment-delivery.js +160 -0
  24. package/dist/assignment-presentation.d.ts +26 -0
  25. package/dist/assignment-presentation.js +80 -0
  26. package/dist/assignment-status.d.ts +62 -0
  27. package/dist/assignment-status.js +152 -0
  28. package/dist/assignment-ui.d.ts +71 -0
  29. package/dist/assignment-ui.js +103 -0
  30. package/dist/assignment.d.ts +222 -0
  31. package/dist/assignment.js +399 -0
  32. package/dist/attest.d.ts +56 -0
  33. package/dist/attest.js +153 -0
  34. package/dist/backend.d.ts +97 -0
  35. package/dist/backend.js +166 -0
  36. package/dist/backup-ui.d.ts +22 -0
  37. package/dist/backup-ui.js +59 -0
  38. package/dist/backup.d.ts +84 -0
  39. package/dist/backup.js +421 -0
  40. package/dist/beads.d.ts +34 -0
  41. package/dist/beads.js +135 -0
  42. package/dist/bin.d.ts +2 -0
  43. package/dist/bin.js +22 -0
  44. package/dist/board.d.ts +150 -0
  45. package/dist/board.js +210 -0
  46. package/dist/boot-identity.d.ts +63 -0
  47. package/dist/boot-identity.js +99 -0
  48. package/dist/browser/THIRD_PARTY_NOTICES.txt +2295 -0
  49. package/dist/browser/workspace.css +4 -0
  50. package/dist/browser/workspace.js +225 -0
  51. package/dist/browser-crew.d.ts +11 -0
  52. package/dist/browser-crew.js +50 -0
  53. package/dist/browser-shell.d.ts +8 -0
  54. package/dist/browser-shell.js +60 -0
  55. package/dist/browser-workspace.d.ts +780 -0
  56. package/dist/browser-workspace.js +47 -0
  57. package/dist/budget-alerts.d.ts +19 -0
  58. package/dist/budget-alerts.js +46 -0
  59. package/dist/builder.d.ts +370 -0
  60. package/dist/builder.js +3262 -0
  61. package/dist/capscan.d.ts +35 -0
  62. package/dist/capscan.js +113 -0
  63. package/dist/chat-acceptance.d.ts +71 -0
  64. package/dist/chat-acceptance.js +120 -0
  65. package/dist/chat-actions.d.ts +265 -0
  66. package/dist/chat-actions.js +1273 -0
  67. package/dist/chat-channel.d.ts +109 -0
  68. package/dist/chat-channel.js +652 -0
  69. package/dist/chat-continuity.d.ts +32 -0
  70. package/dist/chat-continuity.js +317 -0
  71. package/dist/chat-controls.d.ts +113 -0
  72. package/dist/chat-controls.js +53 -0
  73. package/dist/chat-delivery-state.d.ts +159 -0
  74. package/dist/chat-delivery-state.js +309 -0
  75. package/dist/chat-delivery.d.ts +38 -0
  76. package/dist/chat-delivery.js +693 -0
  77. package/dist/chat-display.d.ts +1 -0
  78. package/dist/chat-display.js +18 -0
  79. package/dist/chat-evidence.d.ts +123 -0
  80. package/dist/chat-evidence.js +207 -0
  81. package/dist/chat-flow.d.ts +44 -0
  82. package/dist/chat-flow.js +215 -0
  83. package/dist/chat-inbox.d.ts +57 -0
  84. package/dist/chat-inbox.js +123 -0
  85. package/dist/chat-polish.d.ts +16 -0
  86. package/dist/chat-polish.js +135 -0
  87. package/dist/chat-review.d.ts +46 -0
  88. package/dist/chat-review.js +98 -0
  89. package/dist/chat-rooms.d.ts +123 -0
  90. package/dist/chat-rooms.js +216 -0
  91. package/dist/chat-task-actions.d.ts +44 -0
  92. package/dist/chat-task-actions.js +79 -0
  93. package/dist/check-progress.d.ts +51 -0
  94. package/dist/check-progress.js +290 -0
  95. package/dist/child-database.d.ts +12 -0
  96. package/dist/child-database.js +30 -0
  97. package/dist/claim.d.ts +688 -0
  98. package/dist/claim.js +1740 -0
  99. package/dist/cli.d.ts +137 -0
  100. package/dist/cli.js +1461 -0
  101. package/dist/codex-limits.d.ts +15 -0
  102. package/dist/codex-limits.js +145 -0
  103. package/dist/coding-context.d.ts +55 -0
  104. package/dist/coding-context.js +92 -0
  105. package/dist/coding-handoff.d.ts +57 -0
  106. package/dist/coding-handoff.js +277 -0
  107. package/dist/coding-provider.d.ts +72 -0
  108. package/dist/coding-provider.js +424 -0
  109. package/dist/coding-shipping-ui.d.ts +4 -0
  110. package/dist/coding-shipping-ui.js +12 -0
  111. package/dist/coding-types.d.ts +62 -0
  112. package/dist/coding-types.js +1 -0
  113. package/dist/coding-ui.d.ts +17 -0
  114. package/dist/coding-ui.js +364 -0
  115. package/dist/coding-update.d.ts +15 -0
  116. package/dist/coding-update.js +149 -0
  117. package/dist/coding-workspace.d.ts +124 -0
  118. package/dist/coding-workspace.js +768 -0
  119. package/dist/container-state.d.ts +5 -0
  120. package/dist/container-state.js +62 -0
  121. package/dist/containment.d.ts +197 -0
  122. package/dist/containment.js +559 -0
  123. package/dist/contest.d.ts +318 -0
  124. package/dist/contest.js +753 -0
  125. package/dist/control-setup.d.ts +35 -0
  126. package/dist/control-setup.js +40 -0
  127. package/dist/control-ui.d.ts +29 -0
  128. package/dist/control-ui.js +53 -0
  129. package/dist/controller-service.d.ts +1 -0
  130. package/dist/controller-service.js +19 -0
  131. package/dist/controller-supervisor.d.ts +30 -0
  132. package/dist/controller-supervisor.js +104 -0
  133. package/dist/converse.d.ts +304 -0
  134. package/dist/converse.js +849 -0
  135. package/dist/coordinator-proposals.d.ts +29 -0
  136. package/dist/coordinator-proposals.js +137 -0
  137. package/dist/coordinator.d.ts +186 -0
  138. package/dist/coordinator.js +447 -0
  139. package/dist/credentials-ui.d.ts +25 -0
  140. package/dist/credentials-ui.js +48 -0
  141. package/dist/daemon.d.ts +209 -0
  142. package/dist/daemon.js +604 -0
  143. package/dist/decision.d.ts +120 -0
  144. package/dist/decision.js +388 -0
  145. package/dist/demo.d.ts +55 -0
  146. package/dist/demo.js +992 -0
  147. package/dist/desktop-access.d.ts +28 -0
  148. package/dist/desktop-access.js +88 -0
  149. package/dist/desktop-bundle.d.ts +16 -0
  150. package/dist/desktop-bundle.js +74 -0
  151. package/dist/desktop-host.d.ts +54 -0
  152. package/dist/desktop-host.js +508 -0
  153. package/dist/desktop-update-gate.d.ts +12 -0
  154. package/dist/desktop-update-gate.js +91 -0
  155. package/dist/desktop-update-recovery.d.ts +14 -0
  156. package/dist/desktop-update-recovery.js +243 -0
  157. package/dist/desktop-update.d.ts +110 -0
  158. package/dist/desktop-update.js +740 -0
  159. package/dist/discord-api.d.ts +20 -0
  160. package/dist/discord-api.js +138 -0
  161. package/dist/discord-chat.d.ts +16 -0
  162. package/dist/discord-chat.js +381 -0
  163. package/dist/discord-settings.d.ts +7 -0
  164. package/dist/discord-settings.js +75 -0
  165. package/dist/discord.d.ts +10 -0
  166. package/dist/discord.js +169 -0
  167. package/dist/discover.d.ts +75 -0
  168. package/dist/discover.js +150 -0
  169. package/dist/dispatch.d.ts +100 -0
  170. package/dist/dispatch.js +311 -0
  171. package/dist/dispose.d.ts +161 -0
  172. package/dist/dispose.js +803 -0
  173. package/dist/email-settings.d.ts +34 -0
  174. package/dist/email-settings.js +50 -0
  175. package/dist/envelope.d.ts +47 -0
  176. package/dist/envelope.js +105 -0
  177. package/dist/evidence-pack.d.ts +185 -0
  178. package/dist/evidence-pack.js +258 -0
  179. package/dist/evidence.d.ts +345 -0
  180. package/dist/evidence.js +782 -0
  181. package/dist/exec.d.ts +285 -0
  182. package/dist/exec.js +1841 -0
  183. package/dist/exhaustion.d.ts +85 -0
  184. package/dist/exhaustion.js +141 -0
  185. package/dist/export-ui.d.ts +4 -0
  186. package/dist/export-ui.js +17 -0
  187. package/dist/export.d.ts +48 -0
  188. package/dist/export.js +305 -0
  189. package/dist/flow-actions.d.ts +77 -0
  190. package/dist/flow-actions.js +203 -0
  191. package/dist/flow-code.d.ts +50 -0
  192. package/dist/flow-code.js +159 -0
  193. package/dist/flow-draft.d.ts +38 -0
  194. package/dist/flow-draft.js +80 -0
  195. package/dist/flow-engine.d.ts +66 -0
  196. package/dist/flow-engine.js +416 -0
  197. package/dist/flow-insights.d.ts +95 -0
  198. package/dist/flow-insights.js +149 -0
  199. package/dist/flow-live.d.ts +24 -0
  200. package/dist/flow-live.js +150 -0
  201. package/dist/flow-people.d.ts +24 -0
  202. package/dist/flow-people.js +91 -0
  203. package/dist/flow-replies.d.ts +48 -0
  204. package/dist/flow-replies.js +113 -0
  205. package/dist/flow-scripts.d.ts +38 -0
  206. package/dist/flow-scripts.js +73 -0
  207. package/dist/flow-secrets.d.ts +13 -0
  208. package/dist/flow-secrets.js +45 -0
  209. package/dist/flow-sort.d.ts +82 -0
  210. package/dist/flow-sort.js +153 -0
  211. package/dist/flow-steps.d.ts +40 -0
  212. package/dist/flow-steps.js +408 -0
  213. package/dist/flow-triggers.d.ts +244 -0
  214. package/dist/flow-triggers.js +959 -0
  215. package/dist/flows-ui.d.ts +20 -0
  216. package/dist/flows-ui.js +175 -0
  217. package/dist/flows.d.ts +229 -0
  218. package/dist/flows.js +968 -0
  219. package/dist/fonts.d.ts +19 -0
  220. package/dist/fonts.js +19 -0
  221. package/dist/gaps.d.ts +35 -0
  222. package/dist/gaps.js +101 -0
  223. package/dist/gate-failure.d.ts +40 -0
  224. package/dist/gate-failure.js +66 -0
  225. package/dist/git.d.ts +54 -0
  226. package/dist/git.js +94 -0
  227. package/dist/google-mail.d.ts +58 -0
  228. package/dist/google-mail.js +151 -0
  229. package/dist/grant.d.ts +136 -0
  230. package/dist/grant.js +238 -0
  231. package/dist/graph.d.ts +164 -0
  232. package/dist/graph.js +383 -0
  233. package/dist/guides.d.ts +22 -0
  234. package/dist/guides.js +363 -0
  235. package/dist/held.d.ts +150 -0
  236. package/dist/held.js +799 -0
  237. package/dist/invoke.d.ts +112 -0
  238. package/dist/invoke.js +780 -0
  239. package/dist/issues.d.ts +41 -0
  240. package/dist/issues.js +131 -0
  241. package/dist/job-object-helper.ps1 +252 -0
  242. package/dist/jsonl-discriminants.d.ts +11 -0
  243. package/dist/jsonl-discriminants.js +93 -0
  244. package/dist/keys.d.ts +104 -0
  245. package/dist/keys.js +229 -0
  246. package/dist/kits-ui.d.ts +17 -0
  247. package/dist/kits-ui.js +46 -0
  248. package/dist/kits.d.ts +86 -0
  249. package/dist/kits.js +215 -0
  250. package/dist/knowledge-cli.d.ts +101 -0
  251. package/dist/knowledge-cli.js +92 -0
  252. package/dist/knowledge-ui.d.ts +24 -0
  253. package/dist/knowledge-ui.js +40 -0
  254. package/dist/lead-context.d.ts +8 -0
  255. package/dist/lead-context.js +56 -0
  256. package/dist/lead-follow.d.ts +22 -0
  257. package/dist/lead-follow.js +167 -0
  258. package/dist/lead-status.d.ts +75 -0
  259. package/dist/lead-status.js +285 -0
  260. package/dist/ledger-chain.d.ts +46 -0
  261. package/dist/ledger-chain.js +187 -0
  262. package/dist/ledger-csv.d.ts +4 -0
  263. package/dist/ledger-csv.js +11 -0
  264. package/dist/ledger-view.d.ts +24 -0
  265. package/dist/ledger-view.js +58 -0
  266. package/dist/limits-ui.d.ts +26 -0
  267. package/dist/limits-ui.js +67 -0
  268. package/dist/link.d.ts +72 -0
  269. package/dist/link.js +217 -0
  270. package/dist/live.d.ts +96 -0
  271. package/dist/live.js +366 -0
  272. package/dist/liveness.d.ts +30 -0
  273. package/dist/liveness.js +42 -0
  274. package/dist/log.d.ts +7 -0
  275. package/dist/log.js +25 -0
  276. package/dist/mailbox.d.ts +57 -0
  277. package/dist/mailbox.js +150 -0
  278. package/dist/maintenance.d.ts +11 -0
  279. package/dist/maintenance.js +35 -0
  280. package/dist/mate-cli.d.ts +52 -0
  281. package/dist/mate-cli.js +345 -0
  282. package/dist/mate-contract.d.ts +10 -0
  283. package/dist/mate-contract.js +30 -0
  284. package/dist/mate-doors.d.ts +69 -0
  285. package/dist/mate-doors.js +548 -0
  286. package/dist/mate-progress.d.ts +29 -0
  287. package/dist/mate-progress.js +121 -0
  288. package/dist/mate-tools.d.ts +94 -0
  289. package/dist/mate-tools.js +1878 -0
  290. package/dist/mate.d.ts +92 -0
  291. package/dist/mate.js +435 -0
  292. package/dist/mcp-connect.d.ts +103 -0
  293. package/dist/mcp-connect.js +252 -0
  294. package/dist/mcp.d.ts +27 -0
  295. package/dist/mcp.js +651 -0
  296. package/dist/memory-cli.d.ts +466 -0
  297. package/dist/memory-cli.js +111 -0
  298. package/dist/memory-pass.d.ts +160 -0
  299. package/dist/memory-pass.js +409 -0
  300. package/dist/metrics.d.ts +3 -0
  301. package/dist/metrics.js +56 -0
  302. package/dist/mobile-viewport.d.ts +3 -0
  303. package/dist/mobile-viewport.js +37 -0
  304. package/dist/model-catalog.d.ts +118 -0
  305. package/dist/model-catalog.js +376 -0
  306. package/dist/models-cli.d.ts +102 -0
  307. package/dist/models-cli.js +66 -0
  308. package/dist/models-ui.d.ts +34 -0
  309. package/dist/models-ui.js +68 -0
  310. package/dist/modes.d.ts +80 -0
  311. package/dist/modes.js +182 -0
  312. package/dist/monitoring-settings.d.ts +44 -0
  313. package/dist/monitoring-settings.js +173 -0
  314. package/dist/monitoring-ui.d.ts +20 -0
  315. package/dist/monitoring-ui.js +51 -0
  316. package/dist/monitoring.d.ts +34 -0
  317. package/dist/monitoring.js +221 -0
  318. package/dist/names.d.ts +67 -0
  319. package/dist/names.js +102 -0
  320. package/dist/observations.d.ts +40 -0
  321. package/dist/observations.js +211 -0
  322. package/dist/oidc.d.ts +71 -0
  323. package/dist/oidc.js +182 -0
  324. package/dist/onboard.d.ts +108 -0
  325. package/dist/onboard.js +325 -0
  326. package/dist/openrouter-models.d.ts +30 -0
  327. package/dist/openrouter-models.js +120 -0
  328. package/dist/operate.d.ts +118 -0
  329. package/dist/operate.js +11321 -0
  330. package/dist/peek-cli.d.ts +97 -0
  331. package/dist/peek-cli.js +215 -0
  332. package/dist/peek.d.ts +134 -0
  333. package/dist/peek.js +578 -0
  334. package/dist/phase-routing.d.ts +307 -0
  335. package/dist/phase-routing.js +658 -0
  336. package/dist/plan-auto.d.ts +14 -0
  337. package/dist/plan-auto.js +92 -0
  338. package/dist/plan.d.ts +186 -0
  339. package/dist/plan.js +401 -0
  340. package/dist/planner-source.d.ts +251 -0
  341. package/dist/planner-source.js +460 -0
  342. package/dist/planner.d.ts +75 -0
  343. package/dist/planner.js +992 -0
  344. package/dist/policy-ui.d.ts +20 -0
  345. package/dist/policy-ui.js +41 -0
  346. package/dist/policy.d.ts +111 -0
  347. package/dist/policy.js +231 -0
  348. package/dist/prepared-evidence.d.ts +16 -0
  349. package/dist/prepared-evidence.js +96 -0
  350. package/dist/pricing.d.ts +45 -0
  351. package/dist/pricing.js +77 -0
  352. package/dist/principal.d.ts +42 -0
  353. package/dist/principal.js +82 -0
  354. package/dist/probe.d.ts +46 -0
  355. package/dist/probe.js +79 -0
  356. package/dist/process-custody.d.ts +17 -0
  357. package/dist/process-custody.js +91 -0
  358. package/dist/process-liveness.d.ts +10 -0
  359. package/dist/process-liveness.js +81 -0
  360. package/dist/process-recovery-anchor.d.ts +75 -0
  361. package/dist/process-recovery-anchor.js +188 -0
  362. package/dist/process-recovery-coalition.d.ts +25 -0
  363. package/dist/process-recovery-coalition.js +105 -0
  364. package/dist/process-recovery-eligibility.d.ts +178 -0
  365. package/dist/process-recovery-eligibility.js +170 -0
  366. package/dist/process-recovery-native.d.ts +172 -0
  367. package/dist/process-recovery-native.js +592 -0
  368. package/dist/process-recovery-provenance.d.ts +163 -0
  369. package/dist/process-recovery-provenance.js +292 -0
  370. package/dist/process-recovery-services.d.ts +56 -0
  371. package/dist/process-recovery-services.js +191 -0
  372. package/dist/process-recovery-settlement.d.ts +32 -0
  373. package/dist/process-recovery-settlement.js +132 -0
  374. package/dist/process-recovery.d.ts +41 -0
  375. package/dist/process-recovery.js +91 -0
  376. package/dist/process-tree.d.ts +41 -0
  377. package/dist/process-tree.js +264 -0
  378. package/dist/project-access.d.ts +14 -0
  379. package/dist/project-access.js +34 -0
  380. package/dist/project-cli.d.ts +18 -0
  381. package/dist/project-cli.js +104 -0
  382. package/dist/project-delete-ui.d.ts +22 -0
  383. package/dist/project-delete-ui.js +48 -0
  384. package/dist/project-delete.d.ts +55 -0
  385. package/dist/project-delete.js +413 -0
  386. package/dist/project-knowledge.d.ts +111 -0
  387. package/dist/project-knowledge.js +241 -0
  388. package/dist/project-learning.d.ts +100 -0
  389. package/dist/project-learning.js +438 -0
  390. package/dist/project-memory.d.ts +81 -0
  391. package/dist/project-memory.js +264 -0
  392. package/dist/project-skills.d.ts +152 -0
  393. package/dist/project-skills.js +660 -0
  394. package/dist/project-tools.d.ts +219 -0
  395. package/dist/project-tools.js +796 -0
  396. package/dist/project.d.ts +61 -0
  397. package/dist/project.js +125 -0
  398. package/dist/prompt.d.ts +22 -0
  399. package/dist/prompt.js +72 -0
  400. package/dist/proof.d.ts +513 -0
  401. package/dist/proof.js +1140 -0
  402. package/dist/proposal.d.ts +82 -0
  403. package/dist/proposal.js +210 -0
  404. package/dist/provider-connection.d.ts +22 -0
  405. package/dist/provider-connection.js +98 -0
  406. package/dist/provider-limits.d.ts +35 -0
  407. package/dist/provider-limits.js +95 -0
  408. package/dist/provider.d.ts +279 -0
  409. package/dist/provider.js +935 -0
  410. package/dist/publish.d.ts +107 -0
  411. package/dist/publish.js +650 -0
  412. package/dist/pulls.d.ts +118 -0
  413. package/dist/pulls.js +240 -0
  414. package/dist/push.d.ts +95 -0
  415. package/dist/push.js +353 -0
  416. package/dist/quality.d.ts +8 -0
  417. package/dist/quality.js +6 -0
  418. package/dist/recipe-ui.d.ts +18 -0
  419. package/dist/recipe-ui.js +152 -0
  420. package/dist/recipes.d.ts +81 -0
  421. package/dist/recipes.js +332 -0
  422. package/dist/remote.d.ts +67 -0
  423. package/dist/remote.js +122 -0
  424. package/dist/render.d.ts +64 -0
  425. package/dist/render.js +587 -0
  426. package/dist/report-summary.d.ts +13 -0
  427. package/dist/report-summary.js +15 -0
  428. package/dist/repos.d.ts +65 -0
  429. package/dist/repos.js +277 -0
  430. package/dist/repository-context-ui.d.ts +2 -0
  431. package/dist/repository-context-ui.js +10 -0
  432. package/dist/repository-context.d.ts +67 -0
  433. package/dist/repository-context.js +376 -0
  434. package/dist/restart-certification.d.ts +134 -0
  435. package/dist/restart-certification.js +226 -0
  436. package/dist/result-actions.d.ts +28 -0
  437. package/dist/result-actions.js +270 -0
  438. package/dist/result-completion.d.ts +18 -0
  439. package/dist/result-completion.js +66 -0
  440. package/dist/result-review.d.ts +213 -0
  441. package/dist/result-review.js +430 -0
  442. package/dist/retention-ui.d.ts +12 -0
  443. package/dist/retention-ui.js +39 -0
  444. package/dist/retention.d.ts +72 -0
  445. package/dist/retention.js +288 -0
  446. package/dist/review-context.d.ts +243 -0
  447. package/dist/review-context.js +1043 -0
  448. package/dist/review-evidence.d.ts +33 -0
  449. package/dist/review-evidence.js +56 -0
  450. package/dist/reviewer.d.ts +97 -0
  451. package/dist/reviewer.js +202 -0
  452. package/dist/routine.d.ts +228 -0
  453. package/dist/routine.js +764 -0
  454. package/dist/runner.d.ts +266 -0
  455. package/dist/runner.js +399 -0
  456. package/dist/scan.d.ts +32 -0
  457. package/dist/scan.js +92 -0
  458. package/dist/scope.d.ts +695 -0
  459. package/dist/scope.js +1176 -0
  460. package/dist/scout-report.d.ts +42 -0
  461. package/dist/scout-report.js +108 -0
  462. package/dist/scout.d.ts +69 -0
  463. package/dist/scout.js +351 -0
  464. package/dist/serve.d.ts +313 -0
  465. package/dist/serve.js +21776 -0
  466. package/dist/session-brief.d.ts +8 -0
  467. package/dist/session-brief.js +24 -0
  468. package/dist/session-cli.d.ts +13 -0
  469. package/dist/session-cli.js +284 -0
  470. package/dist/session-contract.d.ts +183 -0
  471. package/dist/session-contract.js +122 -0
  472. package/dist/session-http.d.ts +19 -0
  473. package/dist/session-http.js +154 -0
  474. package/dist/session-server.d.ts +12 -0
  475. package/dist/session-server.js +37 -0
  476. package/dist/session-service.d.ts +22 -0
  477. package/dist/session-service.js +157 -0
  478. package/dist/setup-guide.d.ts +39 -0
  479. package/dist/setup-guide.js +93 -0
  480. package/dist/sign-in-guard.d.ts +45 -0
  481. package/dist/sign-in-guard.js +74 -0
  482. package/dist/skills-ui.d.ts +11 -0
  483. package/dist/skills-ui.js +58 -0
  484. package/dist/skills.d.ts +97 -0
  485. package/dist/skills.js +276 -0
  486. package/dist/slack-api.d.ts +55 -0
  487. package/dist/slack-api.js +229 -0
  488. package/dist/slack-chat.d.ts +28 -0
  489. package/dist/slack-chat.js +413 -0
  490. package/dist/slack-settings.d.ts +7 -0
  491. package/dist/slack-settings.js +75 -0
  492. package/dist/slack-state.d.ts +13 -0
  493. package/dist/slack-state.js +9 -0
  494. package/dist/slack.d.ts +13 -0
  495. package/dist/slack.js +167 -0
  496. package/dist/spend-ui.d.ts +28 -0
  497. package/dist/spend-ui.js +95 -0
  498. package/dist/spend.d.ts +142 -0
  499. package/dist/spend.js +313 -0
  500. package/dist/sqlite-runtime.d.ts +3 -0
  501. package/dist/sqlite-runtime.js +6 -0
  502. package/dist/sso-settings.d.ts +33 -0
  503. package/dist/sso-settings.js +103 -0
  504. package/dist/sso-ui.d.ts +22 -0
  505. package/dist/sso-ui.js +39 -0
  506. package/dist/storage.d.ts +15 -0
  507. package/dist/storage.js +84 -0
  508. package/dist/store.d.ts +7754 -0
  509. package/dist/store.js +23279 -0
  510. package/dist/structured-output.d.ts +58 -0
  511. package/dist/structured-output.js +103 -0
  512. package/dist/style-asset.d.ts +7 -0
  513. package/dist/style-asset.js +41 -0
  514. package/dist/subscription-chat.d.ts +46 -0
  515. package/dist/subscription-chat.js +275 -0
  516. package/dist/summary.d.ts +33 -0
  517. package/dist/summary.js +71 -0
  518. package/dist/supervisor.mjs +297 -0
  519. package/dist/surface.d.ts +63 -0
  520. package/dist/surface.js +352 -0
  521. package/dist/sync.d.ts +94 -0
  522. package/dist/sync.js +279 -0
  523. package/dist/task-composer.d.ts +13 -0
  524. package/dist/task-composer.js +52 -0
  525. package/dist/task-control.d.ts +165 -0
  526. package/dist/task-control.js +214 -0
  527. package/dist/task-outcome-cli.d.ts +10 -0
  528. package/dist/task-outcome-cli.js +92 -0
  529. package/dist/task-text.d.ts +30 -0
  530. package/dist/task-text.js +41 -0
  531. package/dist/team-cli.d.ts +15 -0
  532. package/dist/team-cli.js +618 -0
  533. package/dist/team-contract.d.ts +92 -0
  534. package/dist/team-contract.js +1 -0
  535. package/dist/team-http.d.ts +17 -0
  536. package/dist/team-http.js +144 -0
  537. package/dist/team-leads.d.ts +81 -0
  538. package/dist/team-leads.js +565 -0
  539. package/dist/team-runtime.d.ts +27 -0
  540. package/dist/team-runtime.js +264 -0
  541. package/dist/team-ui.d.ts +3 -0
  542. package/dist/team-ui.js +9 -0
  543. package/dist/team-updates.d.ts +8 -0
  544. package/dist/team-updates.js +57 -0
  545. package/dist/teammate-admin.d.ts +53 -0
  546. package/dist/teammate-admin.js +111 -0
  547. package/dist/teammate-desk.d.ts +60 -0
  548. package/dist/teammate-desk.js +154 -0
  549. package/dist/teammate-memory.d.ts +64 -0
  550. package/dist/teammate-memory.js +196 -0
  551. package/dist/teammate-question.d.ts +59 -0
  552. package/dist/teammate-question.js +175 -0
  553. package/dist/teammate-tools.d.ts +108 -0
  554. package/dist/teammate-tools.js +271 -0
  555. package/dist/teammate-week.d.ts +68 -0
  556. package/dist/teammate-week.js +132 -0
  557. package/dist/teammate-work.d.ts +76 -0
  558. package/dist/teammate-work.js +280 -0
  559. package/dist/teammates-ui.d.ts +20 -0
  560. package/dist/teammates-ui.js +166 -0
  561. package/dist/teammates.d.ts +180 -0
  562. package/dist/teammates.js +253 -0
  563. package/dist/teams-api.d.ts +33 -0
  564. package/dist/teams-api.js +204 -0
  565. package/dist/teams-chat.d.ts +26 -0
  566. package/dist/teams-chat.js +215 -0
  567. package/dist/teams-settings.d.ts +12 -0
  568. package/dist/teams-settings.js +57 -0
  569. package/dist/teams.d.ts +21 -0
  570. package/dist/teams.js +124 -0
  571. package/dist/telegram-flow.d.ts +49 -0
  572. package/dist/telegram-flow.js +110 -0
  573. package/dist/telegram-mate.d.ts +137 -0
  574. package/dist/telegram-mate.js +707 -0
  575. package/dist/telegram-progress.d.ts +14 -0
  576. package/dist/telegram-progress.js +129 -0
  577. package/dist/telegram-settings.d.ts +9 -0
  578. package/dist/telegram-settings.js +36 -0
  579. package/dist/telegram-status.d.ts +75 -0
  580. package/dist/telegram-status.js +265 -0
  581. package/dist/telegram-team.d.ts +85 -0
  582. package/dist/telegram-team.js +359 -0
  583. package/dist/telegram.d.ts +230 -0
  584. package/dist/telegram.js +1931 -0
  585. package/dist/templates.d.ts +65 -0
  586. package/dist/templates.js +118 -0
  587. package/dist/tool-launcher.d.ts +1 -0
  588. package/dist/tool-launcher.js +101 -0
  589. package/dist/tools-ui.d.ts +30 -0
  590. package/dist/tools-ui.js +40 -0
  591. package/dist/transitions-recipes.d.ts +1 -0
  592. package/dist/transitions-recipes.js +203 -0
  593. package/dist/tree-proof.d.ts +34 -0
  594. package/dist/tree-proof.js +58 -0
  595. package/dist/verification-evidence.d.ts +44 -0
  596. package/dist/verification-evidence.js +238 -0
  597. package/dist/version.d.ts +2 -0
  598. package/dist/version.js +10 -0
  599. package/dist/webhooks.d.ts +91 -0
  600. package/dist/webhooks.js +283 -0
  601. package/dist/work-index.d.ts +68 -0
  602. package/dist/work-index.js +384 -0
  603. package/dist/work-summary.d.ts +57 -0
  604. package/dist/work-summary.js +116 -0
  605. package/dist/workspace-motion.d.ts +4 -0
  606. package/dist/workspace-motion.js +133 -0
  607. package/dist/workspace-revision.d.ts +19 -0
  608. package/dist/workspace-revision.js +92 -0
  609. package/dist/workspace-ui.d.ts +204 -0
  610. package/dist/workspace-ui.js +411 -0
  611. package/dist/worktree-notices.d.ts +13 -0
  612. package/dist/worktree-notices.js +17 -0
  613. package/dist/worktree.d.ts +249 -0
  614. package/dist/worktree.js +720 -0
  615. package/package.json +122 -0
  616. package/scripts/canary-assertions.mjs +42 -0
  617. package/scripts/crash-canary.mjs +253 -0
  618. package/scripts/fixtures/crash-process.mjs +74 -0
  619. package/scripts/fixtures/pilot-scenarios.mjs +85 -0
  620. package/scripts/fixtures/restart-service.mjs +27 -0
  621. package/scripts/launchd-certification.mjs +143 -0
  622. package/scripts/pilot.mjs +121 -0
  623. package/scripts/proof-preflight.mjs +140 -0
  624. package/scripts/provider-canary.mjs +379 -0
  625. package/scripts/recovery-canary.mjs +135 -0
  626. package/scripts/restart-certification.mjs +98 -0
@@ -0,0 +1,513 @@
1
+ /**
2
+ * The build's own claim, adjudicated against evidence the plane captured
3
+ * itself (`docs/PRIORITIES.md` Priority 2). Modelled line-for-line on the
4
+ * scout's report (`scout-report.ts`): fail closed, every problem reported at
5
+ * once, stable reasons, byte caps, control-character rejection on every
6
+ * string.
7
+ *
8
+ * The proof is a distinct deliverable from the terminal handoff every
9
+ * attempt writes (including `failed` ones, whose lists are deliberately
10
+ * compacted prose) — only a `completed` attempt owes one, and the plane
11
+ * judges it. A missing or malformed proof never fails the attempt or
12
+ * touches the commit; it only keeps the verdict off "verified".
13
+ *
14
+ * `adjudicate` is pure and does no I/O: every fact it reasons over — whether
15
+ * the proof artifact exists, whether the handoff and terminal diff exist,
16
+ * what the sealed diff-stat says, whether a screenshot's bytes actually are
17
+ * a PNG or JPEG, whether an approved verification command ran and what it
18
+ * returned — is gathered by the caller (`builder.ts`) and handed in as data,
19
+ * so the review itself stays testable without a filesystem or a database.
20
+ */
21
+ import { type EvidenceKind } from "./scope.js";
22
+ export type ProofVerdict = "verified" | "attested" | "short" | "refuted";
23
+ /** One typed reference the proof cites to answer a criterion's required
24
+ * evidence: `ref` names an existing check's command, an existing
25
+ * screenshot's path, a path inside `changed`, or (kind `manual-review`)
26
+ * free-text pointing at nothing machine-checkable. Additive (v39): a
27
+ * criterion with no `evidence` array parses the same as one that always
28
+ * had none — legacy proofs, and every proof against a rubric-less scope,
29
+ * are untouched. */
30
+ export type CriterionEvidenceRef = {
31
+ kind: EvidenceKind;
32
+ ref: string;
33
+ };
34
+ export type ParsedCriterion = {
35
+ id: string;
36
+ statement: string;
37
+ /** pending-verification asserts all agent-owned work is met; only the
38
+ * machine-owned final check remains. It never upgrades a legacy failure. */
39
+ verdict: "met" | "not-met" | "not-checked" | "pending-verification";
40
+ how: string;
41
+ /** v39: typed references answering a SIGNED criterion by exact id.
42
+ * `[]` for a criterion the agent added beyond the rubric, or for any
43
+ * proof written before this migration. */
44
+ evidence: CriterionEvidenceRef[];
45
+ };
46
+ /** v39: the rubric side of a criterion, as `adjudicate` reads it — the
47
+ * SIGNED id, statement, and required evidence kinds. Never `how` (never
48
+ * signed). Empty = nothing signed: `adjudicate` runs the v1 rules,
49
+ * byte for byte. */
50
+ export type ApprovedCriterion = {
51
+ id: string;
52
+ statement: string;
53
+ evidence: readonly EvidenceKind[];
54
+ };
55
+ /** Only submission defects. A truthful not-met answer is not malformed. */
56
+ export declare function proofSubmissionProblems(proof: ParsedProof, rubric: readonly ApprovedCriterion[]): string[];
57
+ export type ParsedCheck = {
58
+ command: string;
59
+ exitCode: number;
60
+ summary: string;
61
+ };
62
+ /** A screenshot the agent claims proves UI-facing work. `path` is the
63
+ * repository-relative path the file lived at in the worktree when the
64
+ * agent wrote the proof — validated as a path shape here; validated as an
65
+ * actual bounded PNG/JPEG, and read, by the caller. */
66
+ export type ParsedScreenshot = {
67
+ path: string;
68
+ caption: string;
69
+ };
70
+ export type ParsedProof = {
71
+ version: 1;
72
+ criteria: ParsedCriterion[];
73
+ checks: ParsedCheck[];
74
+ changed: string[];
75
+ caveats: string[];
76
+ screenshots: ParsedScreenshot[];
77
+ };
78
+ export type ProofProblem = {
79
+ reason: string;
80
+ message: string;
81
+ };
82
+ export type ProofParseResult = {
83
+ ok: true;
84
+ proof: ParsedProof;
85
+ } | {
86
+ ok: false;
87
+ problems: ProofProblem[];
88
+ };
89
+ /** Caps are BYTES of UTF-8, matching the scout report's rule: a payload is
90
+ * the same size whatever script it is written in. */
91
+ export declare const PROOF_LIMITS: {
92
+ readonly payload: number;
93
+ readonly criteria: 12;
94
+ readonly criterionId: 40;
95
+ readonly criterionStatement: 300;
96
+ readonly criterionHow: 500;
97
+ readonly evidencePerCriterion: 4;
98
+ readonly evidenceRef: 300;
99
+ readonly checks: 12;
100
+ readonly checkCommand: 300;
101
+ readonly checkSummary: 300;
102
+ readonly changed: 64;
103
+ readonly changedPath: 300;
104
+ readonly caveats: 8;
105
+ readonly caveat: 300;
106
+ readonly screenshots: 8;
107
+ readonly screenshotPath: 300;
108
+ readonly screenshotCaption: 300;
109
+ };
110
+ export declare function parseProof(raw: string): ProofParseResult;
111
+ /** Re-serialize the validated shape, never the agent's raw bytes (the
112
+ * scout report's rule, `scout.ts`): what is stored and later hash-verified
113
+ * is exactly what this parser admitted, key order and all. */
114
+ export declare function serializeProof(proof: ParsedProof): string;
115
+ /** One caveat that admits an exception to a criterion the same proof marks
116
+ * `met` — the proof's own verdict disagreeing with its own words (atomic
117
+ * authority closure). A caveat NAMES a criterion when the criterion's exact
118
+ * id appears in it as a standalone token (`c1: …`, `(c1)`, `c1,c4`); a
119
+ * named criterion must then be `not-met` or `not-checked`. Nothing here is
120
+ * semantic — the machine cannot read a free-text caveat's meaning, so the
121
+ * contract is the token, stated in the brief and refused by the preflight
122
+ * before the attempt ends. */
123
+ export type BlockingCaveat = {
124
+ caveat: string;
125
+ index: number;
126
+ criterionId: string;
127
+ };
128
+ /** Every (caveat, criterion) pair where the caveat names a criterion the
129
+ * proof marks `met` — the proof contradicts itself and cannot verify. In
130
+ * caveat order, then criterion order; `[]` for a proof at peace with its
131
+ * own caveats. */
132
+ export declare function blockingCaveats(proof: Pick<ParsedProof, "criteria" | "caveats">): BlockingCaveat[];
133
+ /** One check a criterion marked `met` cites that exited nonzero — the
134
+ * criterion's id, the exact cited command, and the exit code the proof
135
+ * itself reported. */
136
+ export type FailedCheckCitation = {
137
+ criterionId: string;
138
+ ref: string;
139
+ exitCode: number;
140
+ };
141
+ /**
142
+ * Every check a criterion marked `met` cites that the proof's own `checks`
143
+ * list says exited nonzero (proof preflight closure): a met criterion
144
+ * resting on a failing command is not evidence, it is a contradiction the
145
+ * adjudicator fails the row for. A not-met or not-checked criterion may
146
+ * cite a failed check honestly — it is reporting, not claiming — so only
147
+ * `met` and `pending-verification` count here: pending asserts the agent's
148
+ * own checks already passed. A ref that resolves to no check is a different
149
+ * problem (an unresolved ref), not this one. In criterion order, then
150
+ * evidence order.
151
+ */
152
+ export declare function failedMetChecks(proof: Pick<ParsedProof, "criteria" | "checks">): FailedCheckCitation[];
153
+ /** The one actionable fact a failed check citation is reported as — the
154
+ * adjudicator's matrix detail and the agent's exit preflight say exactly
155
+ * this, so what the preflight refuses is what the plane would have said. */
156
+ export declare function failedCheckWords(one: FailedCheckCitation): string;
157
+ /**
158
+ * One caveat the machine cannot attribute (final authority closure): every
159
+ * caveat is an exception to a signed criterion, and it names that
160
+ * criterion's exact id as a standalone token — so a caveat that names NO
161
+ * known criterion (`unassigned`), or whose leading tag names an id nobody
162
+ * signed (`unknown`), is a claim the verdict cannot be reconciled with.
163
+ * An idea that is not an exception to any criterion belongs in the
164
+ * handoff's follow-ups, not here.
165
+ *
166
+ * THE KNOWN IDS ARE THE SIGNED ONES (final admission closure): when a
167
+ * rubric was signed, only its ids count — an extra criterion the proof
168
+ * authored for itself is the proof's own word, never signed authority, so
169
+ * a caveat tagged with it alone is unknown in preflight and adjudication
170
+ * alike. Only a proof with NO signed rubric may attribute its caveats to
171
+ * the criteria it answered.
172
+ */
173
+ export type CaveatAttributionProblem = {
174
+ caveat: string;
175
+ index: number;
176
+ kind: "unassigned" | "unknown";
177
+ tags: string[];
178
+ /** The unknown tags the proof answered for itself (present only when a
179
+ * rubric was signed and at least one such tag exists): the words say
180
+ * the criterion is the proof's own, not that nobody answered it. */
181
+ answered?: string[];
182
+ };
183
+ export declare function caveatAttributionProblems(proof: Pick<ParsedProof, "criteria" | "caveats">, signedIds?: readonly string[]): CaveatAttributionProblem[];
184
+ /** The words one attribution problem refuses in — shared by the plane's
185
+ * adjudication and the agent's exit preflight so both say the same thing. */
186
+ export declare function caveatAttributionWords(problem: CaveatAttributionProblem): string;
187
+ /** One claimed screenshot's fate once the caller has read its bytes off the
188
+ * worktree and checked them against the PNG/JPEG signature and size cap. */
189
+ export type ScreenshotOutcome = {
190
+ path: string;
191
+ ok: boolean;
192
+ /** Set when ok is false — why the claimed file did not become evidence. */
193
+ problem?: string;
194
+ /** v39: set when ok is true — the bytes actually read, for the
195
+ * "meaningful byte size" half of the screenshot-evidence rule. */
196
+ bytes?: number;
197
+ /** v39: set when ok is true and dimensions could be read from the
198
+ * image header; null when the format parsed but dimensions could not
199
+ * be determined. Absent entirely for a pre-v39 caller. */
200
+ dims?: {
201
+ width: number;
202
+ height: number;
203
+ } | null;
204
+ };
205
+ /** v39: the floor a criterion's screenshot evidence must clear — "real,
206
+ * not placeholder-sized" in exact numbers (scope: "meaningful byte size
207
+ * and at least 320 by 200 dimensions"). */
208
+ export declare const SCREENSHOT_EVIDENCE_MIN_BYTES = 1024;
209
+ export declare const SCREENSHOT_EVIDENCE_MIN_WIDTH = 320;
210
+ export declare const SCREENSHOT_EVIDENCE_MIN_HEIGHT = 200;
211
+ /** What `captureTerminalDiff` gives back, restated for adjudication:
212
+ * whether the sealed stat parsed at all, whether the file list was cut to
213
+ * fit the cap, and the set of paths it names. A truncated stat cannot prove
214
+ * a claimed path is ABSENT, so rule 4 does not fire against one. */
215
+ export type DiffStatFacts = {
216
+ captured: boolean;
217
+ truncated: boolean;
218
+ paths: ReadonlySet<string>;
219
+ /** Old name → destination for every entry git paired as a rename or
220
+ * move. The old name is provenance the stat keeps; it is never one of
221
+ * `paths`. Absent on a stat that recorded no renames. */
222
+ renames?: ReadonlyMap<string, string>;
223
+ };
224
+ /** How a proof's `changed` list compares with the sealed diff-stat, read
225
+ * before the first review so the same session can correct a receipt the
226
+ * sealed facts themselves explain (the Goose FinalOutputTool pattern: a
227
+ * precise error plus the exact expected value, never a silent rewrite).
228
+ *
229
+ * `problems` names every discrepancy, one line per path. `recoverable` is
230
+ * true only when the stat is complete and EVERY discrepancy is one the
231
+ * sealed input establishes on its own: the old name of a rename git
232
+ * paired (the diff holds its destination once), or a sealed path the
233
+ * list left out. Then `sealed` is the one admissible correction — the
234
+ * complete sealed inventory, sorted — and nothing else is. A claimed path
235
+ * the diff never had is an unexplained contradiction: reported, never
236
+ * recoverable, so adjudication refutes it by name. An unavailable or
237
+ * truncated stat proves nothing either way: no problems, not recoverable. */
238
+ export type ChangedListReview = {
239
+ problems: string[];
240
+ recoverable: boolean;
241
+ sealed: string[] | null;
242
+ };
243
+ export declare function changedListProblems(changed: readonly string[], stat: DiffStatFacts | null): ChangedListReview;
244
+ /** What a receipt-only correction may never touch: the exact criterion
245
+ * id/verdict pairs the agent submitted (comment 397, run 1648). A
246
+ * correction restates a signed statement or repairs an evidence reference
247
+ * against the exact rubric; it cannot move an answer (not-met or
248
+ * not-checked becoming pending-verification, or any other change of
249
+ * word), drop a criterion — an extra negative answer is a finding, not a
250
+ * formatting defect — or add one. One line per frozen pair broken. */
251
+ export declare function frozenCriterionProblems(submitted: ParsedProof, corrected: ParsedProof): string[];
252
+ /** Whether two readings of the sealed diff-stat state the same facts:
253
+ * the same capture standing, the same paths and the same rename
254
+ * provenance. Settlement reads the stat once before the receipt
255
+ * correction and re-reads it after that correction and after the final
256
+ * gate; a reading that differs is never adjudicated from the cached one. */
257
+ export declare function sameDiffStatFacts(a: DiffStatFacts | null, b: DiffStatFacts | null): boolean;
258
+ /** The plane's own re-run of the repository's approved verification
259
+ * command, when one is configured. `ran: false` covers both "none
260
+ * configured" and "configured but the run could not attempt it" — the
261
+ * latter is distinguished by `attemptFailed`, which downgrades to `short`
262
+ * rather than `refuted`: "we could not check" is not "the claim is false". */
263
+ export type VerifyCommandFacts = {
264
+ configured: false;
265
+ } | {
266
+ configured: true;
267
+ ran: false;
268
+ attemptFailed: true;
269
+ failure?: "spawn-failed" | "timed-out" | "dependency-missing" | "setup-stale" | "setup-failed" | "tracked-files-changed" | "setup-changed-files" | "checkout-moved" | "cleanliness-unavailable" | "dependency-still-missing" | "retry-spawn-failed" | "retry-timed-out" | "custody-lost";
270
+ } | {
271
+ configured: true;
272
+ ran: true;
273
+ exitCode: number;
274
+ setupReplayed?: true;
275
+ };
276
+ export type AdjudicateInput = {
277
+ /** New captures may assess the signed goal directly when the builder wrote
278
+ * no optional proof. Historical calls retain their original contract. */
279
+ directAssessment?: boolean;
280
+ /** Controller-owned command label, never a builder-reported check. */
281
+ verificationCommand?: string;
282
+ /** Whether a `proof` artifact was stored at all for this run. */
283
+ proofArtifactPresent: boolean;
284
+ /** null when no proof artifact exists; otherwise the parse of its bytes. */
285
+ proofParse: ProofParseResult | null;
286
+ handoffPresent: boolean;
287
+ terminalDiffPresent: boolean;
288
+ terminalDiffCaptureStatus: "ok" | "failed" | null;
289
+ diffStat: DiffStatFacts | null;
290
+ verifyCommand: VerifyCommandFacts;
291
+ /** One entry per screenshot the proof claimed, in the order claimed.
292
+ * Empty when the proof named none. */
293
+ screenshots: readonly ScreenshotOutcome[];
294
+ /** v39: the SIGNED rubric this run's scope carried at dispatch, in id
295
+ * order. `[]` (the default) is the grandfathering promise made good:
296
+ * every rule below that reads this is skipped whole, and adjudication
297
+ * runs exactly the v1 rules that follow it. */
298
+ approvedCriteria?: readonly ApprovedCriterion[];
299
+ /** v51: the sealed review-context inventory's per-criterion coverage,
300
+ * when this run captured one. Attached to the matrix rows verbatim; it
301
+ * never moves the verdict — context is for the reviewer, the verdict is
302
+ * the machine's. Absent = no coverage key on any row. */
303
+ reviewContext?: readonly ({
304
+ id: string;
305
+ } & CriterionCoverage)[];
306
+ };
307
+ export type AdjudicateResult = {
308
+ verdict: ProofVerdict;
309
+ reasons: string[];
310
+ matrix: CriterionMatrixRow[];
311
+ machineVerdict?: ProofVerdict;
312
+ };
313
+ export declare const GOAL_ASSESSMENT_PENDING = "The saved evidence is awaiting independent goal assessment.";
314
+ /** Legacy folds could only lower a verdict. Direct assessment also records an
315
+ * ordinary wait between green machine checks and the goal judgement. */
316
+ export declare function reviewConflict(matrix: readonly CriterionMatrixRow[], machine: ProofVerdict | null, verdict: ProofVerdict | null): boolean;
317
+ /** One row of the criterion-to-evidence matrix every result-facing surface
318
+ * renders identically (task, run, done, builds, board, inbox, chat —
319
+ * Priority 2's "one surface, six places" rule, extended). `pass`: every
320
+ * required evidence kind resolved. `missing`: the criterion went
321
+ * unanswered, or a required kind has no reference at all. `failed`: a
322
+ * reference exists but did not resolve (wrong check exit code, invalid
323
+ * screenshot, a changed-path claim the sealed diff does not back).
324
+ * `manual-review`: every required kind resolved EXCEPT at least one
325
+ * `manual-review` kind, which is never machine-verifiable by design — the
326
+ * row still needs a human's eyes even though nothing failed. */
327
+ export type CriterionMatrixState = "pass" | "missing" | "failed" | "manual-review";
328
+ /** Human sign-off is owed, with no other recorded evidence failure. This is
329
+ * presentation only; it never changes a verdict or grants acceptance. */
330
+ export declare function manualReviewOnly(proof: {
331
+ verdict: string;
332
+ reasons: readonly string[];
333
+ matrix?: readonly CriterionMatrixRow[];
334
+ } | null): boolean;
335
+ export type CriterionMatrixRow = {
336
+ /** Controller-captured evidence for direct goal assessment. Kept separately
337
+ * from the final row state: available evidence is not a satisfied goal. */
338
+ assessment?: {
339
+ evidenceState: CriterionMatrixState;
340
+ detail: string[];
341
+ };
342
+ id: string;
343
+ statement: string;
344
+ requiredEvidence: readonly EvidenceKind[];
345
+ state: CriterionMatrixState;
346
+ /** Why this row is not a plain pass — empty for `pass`. */
347
+ detail: string[];
348
+ /** The proof's OWN typed evidence references for this criterion, exactly
349
+ * as it answered them — never only the required kinds, so a render can
350
+ * show what was actually cited (and link the artifact behind it, where
351
+ * one exists). `[]` when the criterion went unanswered. */
352
+ answered: readonly CriterionEvidenceRef[];
353
+ /** v40: the independent reviewer's judgement on this criterion, folded in
354
+ * by `foldReview` after `adjudicate` has already run — `null` until a
355
+ * review has settled, and for every criterion no review addressed. */
356
+ review: {
357
+ judgement: CriterionJudgementWord;
358
+ note: string;
359
+ author: string;
360
+ } | null;
361
+ /** v51 (inherited review context): where an independent reviewer's
362
+ * evidence for this criterion comes from — this run's own patch, a
363
+ * sealed context inventory, or nowhere (a named gap). Present only on
364
+ * runs that captured an inventory (revisions); absent on every other
365
+ * run, which reads exactly as before: judged from the patch. */
366
+ coverage?: CriterionCoverage;
367
+ };
368
+ /** The per-criterion context projection stored on the matrix row (v51),
369
+ * copied from the sealed inventory's coverage at adjudication. */
370
+ export type CriterionCoverage = {
371
+ state: "patch" | "context" | "gap";
372
+ /** Same id AND statement as the source run's signed rubric. */
373
+ inherited: boolean;
374
+ /** Provenance tokens (`ctx-<n>`) for complete files or explicitly partial
375
+ * ancestor patches. A partial patch keeps state `gap`, even with eligible
376
+ * prior support; neither property supplies a current judgement. */
377
+ items: string[];
378
+ /** Why context is missing or partial — empty for `patch` and `context`. */
379
+ gaps: string[];
380
+ /** Whether an earlier review of the source run may be weighed as
381
+ * context: eligible only with the same text, verified ancestry, and
382
+ * byte-identical relevant code. Never a judgement on this run. */
383
+ priorSupport: "eligible" | "invalid" | "none";
384
+ };
385
+ /** v40: the three words an evidence reviewer can say about one signed
386
+ * criterion, and nothing else — `cannot-tell` is a CORRECT answer whenever
387
+ * the sealed patch alone cannot settle a criterion, not a hedge. */
388
+ export type CriterionJudgementWord = "upholds" | "contradicts" | "cannot-tell";
389
+ /** One reviewer's typed judgement on one signed criterion (v40), ready to
390
+ * fold into an already-adjudicated result. */
391
+ export type CriterionJudgement = {
392
+ id: string;
393
+ judgement: CriterionJudgementWord;
394
+ note: string;
395
+ author: string;
396
+ };
397
+ /**
398
+ * Ordered rules; the first that fires wins. Every reason is a sentence the
399
+ * surfaces print verbatim — this function is the only place that decides
400
+ * wording, so the task page, run page, board, CLI, and chat cards cannot
401
+ * drift from each other (Priority 2, the "one surface, six places" rule).
402
+ *
403
+ * v39: `input.approvedCriteria` empty runs the rules below byte for byte —
404
+ * the grandfathering promise. Non-empty inserts the rubric rules AFTER the
405
+ * diff-stat and verify-command rules and BEFORE the legacy unmet check,
406
+ * exactly as approved in the v2 plan: a proof that alters a signed
407
+ * criterion's statement is REFUTED (the same severity as any other
408
+ * altered term); an unanswered criterion, an evidence reference that does
409
+ * not resolve, or a criterion capped at manual-review is SHORT (a gap, or
410
+ * a review a machine cannot finish, never a lie). The legacy self-declared
411
+ * `verdict` field still runs afterward and can only downgrade further,
412
+ * never upgrade past what the evidence proved.
413
+ *
414
+ * The changed[] vs. sealed-diff exactness check (review finding, post-v39)
415
+ * runs GLOBALLY, ahead of the rubric rules and independent of whether any
416
+ * criterion cites changed-path evidence at all — a rubric with none of
417
+ * those must not let an untruthful or incomplete changed[] through
418
+ * unchecked. An unavailable or truncated diff-stat cannot prove either
419
+ * direction, so it can only ever produce SHORT, never REFUTED.
420
+ */
421
+ /** An optional screenshot inventory carries no builder-authored completion
422
+ * claims. The existing bounded parser still validates every supplied field. */
423
+ export declare function artifactManifestOnly(proof: ParsedProof): boolean;
424
+ export declare function adjudicate(input: AdjudicateInput): AdjudicateResult;
425
+ /**
426
+ * Folds an independent reviewer's per-criterion judgements into an ALREADY
427
+ * ADJUDICATED result (v40, evidence-review-v1) — pure, and never re-derives
428
+ * verdict facts that were not persisted (verify-command outcome, screenshot
429
+ * bytes): it folds over the STORED result, it does not re-run `adjudicate`.
430
+ *
431
+ * Three rules, and they are the whole contract:
432
+ * - `contradicts` -> refuted. A second reader saying a signed term is not
433
+ * met is the same severity as a proof that altered the term: the
434
+ * matching row becomes `failed`, with the reviewer's note as an
435
+ * attributed `detail` line.
436
+ * - `cannot-tell` changes nothing. Recorded and rendered, never moves the
437
+ * verdict — "we could not check" is not "the claim is false" (the same
438
+ * maxim `adjudicate` already lives by for an unavailable diff or a
439
+ * failed verify-command attempt).
440
+ * - `upholds` never upgrades. A `short` (or `attested`) run stays exactly
441
+ * what it was — this is the law that stops a second model laundering a
442
+ * bad proof, and the reason `foldReview` can only LOWER a verdict, never
443
+ * raise one.
444
+ *
445
+ * A judgement naming a criterion absent from `base.matrix` is ignored —
446
+ * `parseReview` already refuses a payload naming an unsigned id, so this is
447
+ * belt and suspenders, never a live path.
448
+ */
449
+ export declare function foldReview(base: AdjudicateResult, judgements: readonly CriterionJudgement[]): AdjudicateResult;
450
+ /**
451
+ * SEMANTIC coverage (v51): what an INDEPENDENT reviewer actually settled,
452
+ * shown distinctly from the machine proof the matrix `state` records. One
453
+ * projection for the task page, run page, receipt, chat card, and CLI —
454
+ * never a second status engine: it reads the stored matrix and the run's
455
+ * signed quality mode and moves nothing.
456
+ *
457
+ * The policy is explicit and unchanged from v41: under `default` an
458
+ * independent review is optional, so absent or uncertain judgements are
459
+ * reported and nothing is "unsatisfied"; under `strict` (Strict / release)
460
+ * independent coverage is REQUIRED, and only `upholds` satisfies it — a
461
+ * `cannot-tell` is an honest answer that leaves the criterion uncovered,
462
+ * a `contradicts` is a failure, and an unreviewed criterion is uncovered.
463
+ * `cannot-tell` never satisfies required coverage under either policy.
464
+ * Context gaps (`coverage.state === "gap"`) are listed so a reader sees
465
+ * WHY a reviewer could not tell, in the same words the inventory used.
466
+ */
467
+ export type SemanticCoverage = {
468
+ policy: "default" | "strict";
469
+ /** Independent coverage is required by the signed policy. */
470
+ required: boolean;
471
+ total: number;
472
+ upheld: string[];
473
+ contradicted: string[];
474
+ uncertain: string[];
475
+ unreviewed: string[];
476
+ /** Criterion ids with a named context gap, with the reasons — every
477
+ * row that carries one, whether or not the patch still judges it. */
478
+ contextGaps: {
479
+ id: string;
480
+ gaps: string[];
481
+ }[];
482
+ /** null when no review has folded at all (nothing to satisfy or fail);
483
+ * otherwise whether every criterion is upheld — the only reading under
484
+ * which required coverage counts as satisfied. */
485
+ satisfied: boolean | null;
486
+ };
487
+ export declare function semanticCoverage(matrix: readonly CriterionMatrixRow[], policy: "default" | "strict"): SemanticCoverage;
488
+ /** The coverage in plain words — one line every surface prints the same
489
+ * way. `[]` for a run with no rubric: nothing to cover. */
490
+ export declare function coverageWords(coverage: SemanticCoverage): string[];
491
+ /** The pass fraction of a criterion matrix — the one number every list
492
+ * surface (board, chat) needs, shared so "N/M criteria" is computed in
493
+ * exactly one place (v40 closes the two hand-rolled copies). */
494
+ export declare function passFraction(matrix: readonly CriterionMatrixRow[]): {
495
+ passed: number;
496
+ total: number;
497
+ };
498
+ /** The matrix in plain lines, for a text surface (the CLI, `brief`) — the
499
+ * same shared vocabulary `criterionMatrixHtml` renders in the console, so
500
+ * the words never drift between the two (Priority 2's rule, extended). */
501
+ export declare function matrixWords(matrix: readonly CriterionMatrixRow[]): string[];
502
+ /** One criterion's context standing in words — shared by the CLI matrix
503
+ * and the console badge title so the two never drift. */
504
+ export declare function coverageStateWords(coverage: CriterionCoverage): string;
505
+ /** Plain words for a verdict, shared by every surface (the `summary.ts`
506
+ * pattern) so the task page, run page, board, CLI, and chat cannot say
507
+ * three different things about the same run. */
508
+ export declare function verdictWords(verdict: ProofVerdict, reasons: readonly string[]): {
509
+ word: string;
510
+ detail: string;
511
+ };
512
+ /** The `data-dispatch-status` token a page's CSS and tests key off. */
513
+ export declare function dispatchStatusToken(verdict: ProofVerdict): "complete-verified" | "complete-with-evidence" | "needs-verification" | "proof-refuted";