toolroll 0.9.103 → 0.9.105

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 (1518) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +27 -27
  3. package/dist/accent-colors.js +0 -29
  4. package/dist/acp-agents.js +0 -3
  5. package/dist/acp-attest.js +0 -30
  6. package/dist/acp-check.js +3 -70
  7. package/dist/acp-client.js +3 -94
  8. package/dist/acp-inspect.js +1 -20
  9. package/dist/action-ledger.js +0 -8
  10. package/dist/activity-line.js +0 -14
  11. package/dist/actor.js +0 -15
  12. package/dist/advanced-schema.js +12 -0
  13. package/dist/advanced-view.js +26 -0
  14. package/dist/advanced.js +61 -0
  15. package/dist/agent-board.js +0 -117
  16. package/dist/agent-fence.js +11 -367
  17. package/dist/agent-onboard.js +12 -50
  18. package/dist/agent-pulse.js +5 -38
  19. package/dist/agent-state-words.js +0 -8
  20. package/dist/agent-state.js +1 -45
  21. package/dist/agent-turns.js +3 -17
  22. package/dist/agentconfig.js +1 -99
  23. package/dist/agents-board.js +0 -60
  24. package/dist/agents-live.js +1 -8
  25. package/dist/api-tokens.js +0 -27
  26. package/dist/approval-authority.js +0 -59
  27. package/dist/approval-password.js +0 -10
  28. package/dist/approval-policy.js +0 -29
  29. package/dist/approval-rules-ui.js +0 -9
  30. package/dist/assignment-adapters.js +0 -14
  31. package/dist/assignment-brief.js +1 -17
  32. package/dist/assignment-delivery.js +0 -22
  33. package/dist/assignment-presentation.js +0 -14
  34. package/dist/assignment-status.js +1 -30
  35. package/dist/assignment-ui.js +0 -12
  36. package/dist/assignment.js +117 -103
  37. package/dist/attest.js +0 -38
  38. package/dist/audit-cli.js +0 -9
  39. package/dist/backend.js +0 -59
  40. package/dist/backup-ui.js +0 -12
  41. package/dist/backup.js +8 -61
  42. package/dist/batch-checks.js +0 -20
  43. package/dist/batch-policy.js +0 -4
  44. package/dist/beads.js +0 -48
  45. package/dist/bin.js +0 -8
  46. package/dist/board.js +1 -36
  47. package/dist/boot-identity.js +0 -42
  48. package/dist/bounded-spawn.js +4 -28
  49. package/dist/brand-mark.js +0 -21
  50. package/dist/brief-fence.js +0 -16
  51. package/dist/browser/terminal.css +1 -1
  52. package/dist/browser/terminal.js +16 -16
  53. package/dist/browser/workspace.css +2 -2
  54. package/dist/browser/workspace.js +26 -26
  55. package/dist/browser-crew.js +0 -8
  56. package/dist/browser-shell.js +2 -15
  57. package/dist/browser-workspace.js +6 -30
  58. package/dist/budget-alerts.js +1 -4
  59. package/dist/build-review.js +2 -50
  60. package/dist/builder-restart.js +0 -13
  61. package/dist/builder.js +21 -1035
  62. package/dist/canonical-json.js +0 -12
  63. package/dist/capscan.js +1 -32
  64. package/dist/card-catalog.js +0 -12
  65. package/dist/card-cli.js +0 -1
  66. package/dist/card-render.js +0 -25
  67. package/dist/card-sources.js +0 -10
  68. package/dist/chat-acceptance.js +0 -7
  69. package/dist/chat-actions.js +5 -190
  70. package/dist/chat-admission.js +0 -7
  71. package/dist/chat-approval.js +0 -25
  72. package/dist/chat-ask.js +0 -17
  73. package/dist/chat-card-part.js +0 -3
  74. package/dist/chat-card.js +0 -6
  75. package/dist/chat-channel.js +2 -83
  76. package/dist/chat-continuity.js +0 -31
  77. package/dist/chat-controls.js +0 -7
  78. package/dist/chat-core.js +0 -55
  79. package/dist/chat-decide.js +2 -153
  80. package/dist/chat-delivery-state.js +0 -49
  81. package/dist/chat-delivery.js +2 -143
  82. package/dist/chat-display.js +0 -2
  83. package/dist/chat-evidence.js +0 -65
  84. package/dist/chat-flow.js +0 -72
  85. package/dist/chat-follow.js +0 -13
  86. package/dist/chat-inbox.js +0 -34
  87. package/dist/chat-live-schema.js +0 -14
  88. package/dist/chat-live.js +2 -87
  89. package/dist/chat-message-states.js +13 -40
  90. package/dist/chat-messages.js +0 -153
  91. package/dist/chat-migration.js +0 -57
  92. package/dist/chat-polish.js +0 -7
  93. package/dist/chat-quiet.js +0 -37
  94. package/dist/chat-review.js +0 -4
  95. package/dist/chat-rooms.js +0 -22
  96. package/dist/chat-settings-page.js +0 -4
  97. package/dist/chat-task-actions.js +0 -7
  98. package/dist/chat-terms.js +0 -21
  99. package/dist/chat-voice.js +0 -38
  100. package/dist/chat-warmth.js +1 -3
  101. package/dist/check-access.js +0 -30
  102. package/dist/check-facts.js +2 -62
  103. package/dist/check-failure.js +0 -98
  104. package/dist/check-levels-ui.js +4 -10
  105. package/dist/check-levels.js +3 -35
  106. package/dist/check-load.js +1 -49
  107. package/dist/check-only-standing.js +0 -6
  108. package/dist/check-only.js +0 -22
  109. package/dist/check-progress.js +0 -32
  110. package/dist/check-repair.js +2 -35
  111. package/dist/check-report.js +1 -108
  112. package/dist/check-stamp.js +0 -20
  113. package/dist/checkout-cleanup.js +0 -84
  114. package/dist/checkout-proof.js +1 -13
  115. package/dist/child-database.js +0 -3
  116. package/dist/claim.js +4 -508
  117. package/dist/claude-print.js +0 -10
  118. package/dist/cli-fast.js +0 -8
  119. package/dist/cli-help.js +90 -78
  120. package/dist/cli-http.js +0 -10
  121. package/dist/cli.js +26 -241
  122. package/dist/code-extract.js +0 -6
  123. package/dist/code-map-acts.js +0 -7
  124. package/dist/code-map-admission.js +2 -26
  125. package/dist/code-map-build.js +3 -24
  126. package/dist/code-map-cli.js +0 -4
  127. package/dist/code-map-main.js +0 -6
  128. package/dist/code-map-read.js +0 -12
  129. package/dist/code-map-report.js +0 -9
  130. package/dist/code-map-shape.js +0 -19
  131. package/dist/code-map-store.js +0 -26
  132. package/dist/codex-limits.js +1 -17
  133. package/dist/coding-context.js +0 -10
  134. package/dist/coding-handoff.js +0 -14
  135. package/dist/coding-provider.js +0 -39
  136. package/dist/coding-shipping-ui.js +0 -1
  137. package/dist/coding-ui.js +0 -1
  138. package/dist/coding-update.js +1 -18
  139. package/dist/coding-workspace.js +0 -27
  140. package/dist/commit-extract.js +0 -83
  141. package/dist/connect-cli.js +0 -19
  142. package/dist/console-chrome.js +1 -34
  143. package/dist/console-instance.js +2 -91
  144. package/dist/container-state.js +0 -4
  145. package/dist/containment.js +2 -105
  146. package/dist/contract-changes.js +0 -6
  147. package/dist/contracts/acceptance-terms.js +0 -7
  148. package/dist/contracts/chat-actions.js +0 -46
  149. package/dist/contracts/chat-callback-rows.js +0 -8
  150. package/dist/contracts/chat-card.js +0 -14
  151. package/dist/contracts/chat-content.js +0 -55
  152. package/dist/contracts/chat-tables.js +0 -7
  153. package/dist/contracts/cli.js +0 -59
  154. package/dist/contracts/coding-activity.js +0 -15
  155. package/dist/contracts/coding-context.js +0 -15
  156. package/dist/contracts/coding-handoff.js +0 -11
  157. package/dist/contracts/coding-workspace.js +0 -14
  158. package/dist/contracts/console-api.js +3 -54
  159. package/dist/contracts/contract-test.js +0 -14
  160. package/dist/contracts/contract.js +0 -48
  161. package/dist/contracts/decision.js +0 -20
  162. package/dist/contracts/diff-stat.js +0 -16
  163. package/dist/contracts/discord-callback.js +0 -9
  164. package/dist/contracts/flow-card.js +0 -18
  165. package/dist/contracts/flow-propose.js +0 -8
  166. package/dist/contracts/flow-send.js +0 -31
  167. package/dist/contracts/flow.js +0 -112
  168. package/dist/contracts/gateway-tools.js +0 -22
  169. package/dist/contracts/handoff.js +0 -22
  170. package/dist/contracts/integration-metadata.js +0 -39
  171. package/dist/contracts/lead-context.js +0 -14
  172. package/dist/contracts/lead-tools.js +0 -49
  173. package/dist/contracts/mcp-oauth.js +0 -12
  174. package/dist/contracts/memory-pass.js +0 -21
  175. package/dist/contracts/model-catalog.js +0 -9
  176. package/dist/contracts/observation-request.js +0 -11
  177. package/dist/contracts/plan.js +0 -16
  178. package/dist/contracts/project-knowledge.js +0 -26
  179. package/dist/contracts/project-memory.js +0 -16
  180. package/dist/contracts/project-skills.js +0 -31
  181. package/dist/contracts/proof.js +0 -23
  182. package/dist/contracts/provider.js +0 -9
  183. package/dist/contracts/recipes.js +0 -16
  184. package/dist/contracts/release-check.js +0 -61
  185. package/dist/contracts/release-terms.js +0 -27
  186. package/dist/contracts/retention.js +0 -12
  187. package/dist/contracts/review-findings.js +0 -13
  188. package/dist/contracts/route-results.js +0 -15
  189. package/dist/contracts/route.js +0 -33
  190. package/dist/contracts/scope.js +0 -29
  191. package/dist/contracts/scout-report.js +0 -34
  192. package/dist/contracts/slack-callback.js +0 -11
  193. package/dist/contracts/sort-answer.js +0 -24
  194. package/dist/contracts/stage-output.js +0 -46
  195. package/dist/contracts/storage.js +0 -8
  196. package/dist/contracts/store-json.js +0 -41
  197. package/dist/contracts/subagent-turn.js +0 -23
  198. package/dist/contracts/task-sizing.js +0 -10
  199. package/dist/contracts/teams-callback.js +0 -7
  200. package/dist/contracts/telegram-callback.js +0 -27
  201. package/dist/contracts/trigger-payloads.js +0 -41
  202. package/dist/contracts/update-journal.js +0 -47
  203. package/dist/contracts/verification-receipt.js +0 -36
  204. package/dist/contracts/verification-view.js +0 -15
  205. package/dist/contracts/youiyoux-request.js +0 -26
  206. package/dist/control-setup.js +0 -7
  207. package/dist/control-ui.js +0 -3
  208. package/dist/controller-service.js +0 -4
  209. package/dist/controller-supervisor.js +0 -15
  210. package/dist/converse.js +3 -129
  211. package/dist/coordinator-proposals.js +1 -6
  212. package/dist/coordinator.js +0 -65
  213. package/dist/credentials-ui.js +0 -6
  214. package/dist/daemon.js +0 -137
  215. package/dist/database-reclaim.js +0 -3
  216. package/dist/decision.js +0 -78
  217. package/dist/demo-chat.js +4 -15
  218. package/dist/demo-sign-in.js +77 -0
  219. package/dist/demo.js +5 -194
  220. package/dist/deploy-gate.js +0 -20
  221. package/dist/deploy-lock.js +0 -4
  222. package/dist/deploy-phase.js +0 -22
  223. package/dist/deploy-rescue.js +0 -21
  224. package/dist/deprecations.js +0 -12
  225. package/dist/design/kit.css +9 -6
  226. package/dist/design/kit.js +2 -33
  227. package/dist/desktop-access.js +0 -9
  228. package/dist/desktop-bundle.js +1 -3
  229. package/dist/desktop-host.js +0 -34
  230. package/dist/desktop-update-gate.js +0 -8
  231. package/dist/desktop-update-recovery.js +1 -18
  232. package/dist/desktop-update.js +2 -48
  233. package/dist/digest-times.js +0 -2
  234. package/dist/disclosure.js +0 -5
  235. package/dist/discord-api.js +0 -6
  236. package/dist/discord-chat.js +0 -31
  237. package/dist/discord.js +0 -7
  238. package/dist/discover.js +0 -50
  239. package/dist/dispatch.js +61 -60
  240. package/dist/dispose.js +0 -208
  241. package/dist/doctor.js +0 -48
  242. package/dist/easy-start-args.js +7 -7
  243. package/dist/easy-start.js +32 -45
  244. package/dist/egress.js +1 -63
  245. package/dist/email-settings.js +0 -8
  246. package/dist/envelope.js +50 -86
  247. package/dist/eval-gate.js +1 -37
  248. package/dist/eval-hooks.js +0 -120
  249. package/dist/eval-oracle-main.js +0 -7
  250. package/dist/eval-oracle.js +3 -42
  251. package/dist/eval-world.js +1 -23
  252. package/dist/evals.js +6 -134
  253. package/dist/evidence-pack.js +0 -29
  254. package/dist/evidence-pair.js +0 -17
  255. package/dist/evidence.js +4 -280
  256. package/dist/exec.js +19 -404
  257. package/dist/exhaustion.js +0 -30
  258. package/dist/export-ui.js +0 -7
  259. package/dist/export.js +1 -38
  260. package/dist/failing-first.js +0 -6
  261. package/dist/fallback-schema.js +0 -5
  262. package/dist/fallback.js +0 -81
  263. package/dist/fast-start.js +0 -97
  264. package/dist/fast-terms.js +0 -3
  265. package/dist/fenced-check-coverage.js +0 -11
  266. package/dist/findings.js +1 -63
  267. package/dist/first-run.js +4 -57
  268. package/dist/first-tasks-child.js +0 -5
  269. package/dist/flaky-ci.js +1 -24
  270. package/dist/flaky-cli.js +0 -4
  271. package/dist/flaky.js +0 -43
  272. package/dist/fleet-schema.js +0 -11
  273. package/dist/flow-actions.js +0 -31
  274. package/dist/flow-browser.js +0 -42
  275. package/dist/flow-cadence.js +1 -24
  276. package/dist/flow-card-task.js +0 -11
  277. package/dist/flow-changed.js +0 -16
  278. package/dist/flow-code.js +1 -45
  279. package/dist/flow-draft.js +0 -17
  280. package/dist/flow-engine.js +2 -76
  281. package/dist/flow-gallery-ui.js +0 -28
  282. package/dist/flow-gallery.js +0 -54
  283. package/dist/flow-insights.js +0 -12
  284. package/dist/flow-items.js +0 -27
  285. package/dist/flow-live.js +0 -31
  286. package/dist/flow-people.js +0 -14
  287. package/dist/flow-pull-request.js +0 -32
  288. package/dist/flow-replies.js +0 -9
  289. package/dist/flow-result-card.js +0 -8
  290. package/dist/flow-schedule.js +0 -74
  291. package/dist/flow-scripts.js +0 -13
  292. package/dist/flow-secrets.js +0 -10
  293. package/dist/flow-send.js +0 -45
  294. package/dist/flow-share.js +0 -60
  295. package/dist/flow-sort.js +1 -24
  296. package/dist/flow-starters-ui.js +0 -2
  297. package/dist/flow-starters.js +0 -13
  298. package/dist/flow-steps.js +0 -80
  299. package/dist/flow-triggers.js +2 -256
  300. package/dist/flow-unattended-words.js +0 -13
  301. package/dist/flow-unattended.js +2 -115
  302. package/dist/flows-cli.js +2 -36
  303. package/dist/flows-ui.js +0 -51
  304. package/dist/flows.js +0 -158
  305. package/dist/folder-gate.js +0 -21
  306. package/dist/folder-look.js +0 -42
  307. package/dist/follow-through-brief.js +0 -6
  308. package/dist/follow-through-cli.js +0 -5
  309. package/dist/fonts.js +0 -13
  310. package/dist/gaps.js +0 -20
  311. package/dist/gate-failure.js +0 -7
  312. package/dist/git-floor.js +0 -12
  313. package/dist/git-incident.js +2 -38
  314. package/dist/git-views.js +0 -24
  315. package/dist/git.js +0 -31
  316. package/dist/github-import.js +0 -22
  317. package/dist/github-jobs.js +0 -12
  318. package/dist/google-mail.js +2 -27
  319. package/dist/grant.js +0 -110
  320. package/dist/graph.js +0 -108
  321. package/dist/guides.js +4 -15
  322. package/dist/handover-note.js +0 -12
  323. package/dist/health-cli.js +0 -2
  324. package/dist/home-groups.js +0 -15
  325. package/dist/html.js +0 -54
  326. package/dist/install-method.js +0 -12
  327. package/dist/integrations-ui.js +0 -15
  328. package/dist/integrations.js +7 -50
  329. package/dist/invoke.js +1 -381
  330. package/dist/is-record.js +0 -1
  331. package/dist/issues.js +0 -48
  332. package/dist/jsonl-discriminants.js +0 -6
  333. package/dist/keymap.js +2 -16
  334. package/dist/keys.js +0 -56
  335. package/dist/kits-ui.js +0 -3
  336. package/dist/kits.js +1 -24
  337. package/dist/knowledge-cli.js +0 -4
  338. package/dist/knowledge-ui.js +0 -8
  339. package/dist/landed-cleanup.js +0 -119
  340. package/dist/laptop-background.js +0 -85
  341. package/dist/laptop-service.js +0 -67
  342. package/dist/latency-timeline.js +2 -23
  343. package/dist/lead-about.js +0 -7
  344. package/dist/lead-answer-eval.js +0 -39
  345. package/dist/lead-capabilities.js +0 -19
  346. package/dist/lead-cli-live.js +0 -22
  347. package/dist/lead-cli.js +0 -27
  348. package/dist/lead-commitments.js +1 -27
  349. package/dist/lead-context.js +2 -42
  350. package/dist/lead-contract.js +0 -8
  351. package/dist/lead-doors.js +0 -105
  352. package/dist/lead-follow.js +0 -41
  353. package/dist/lead-identity.js +1 -4
  354. package/dist/lead-latency-schema.js +0 -13
  355. package/dist/lead-people.js +3 -18
  356. package/dist/lead-progress.js +0 -12
  357. package/dist/lead-queue-runtime.js +0 -26
  358. package/dist/lead-queue.js +0 -35
  359. package/dist/lead-route.js +0 -33
  360. package/dist/lead-status.js +0 -37
  361. package/dist/lead-sweep.js +0 -18
  362. package/dist/lead-tools.js +0 -160
  363. package/dist/lead-voice.js +0 -54
  364. package/dist/lead.js +2 -105
  365. package/dist/learning-child.js +0 -6
  366. package/dist/learning-look.js +0 -14
  367. package/dist/ledger-chain.js +0 -34
  368. package/dist/ledger-csv.js +0 -2
  369. package/dist/ledger-view.js +0 -3
  370. package/dist/lesson-notes.js +0 -56
  371. package/dist/limits-ui.js +0 -14
  372. package/dist/link.js +0 -79
  373. package/dist/live-backup.js +3 -33
  374. package/dist/live-bus.js +7 -81
  375. package/dist/live-children-read.js +4 -47
  376. package/dist/live-children.js +4 -44
  377. package/dist/live-detail.js +0 -17
  378. package/dist/live-input.js +5 -68
  379. package/dist/live-main-read.js +1 -14
  380. package/dist/live-notes.js +0 -12
  381. package/dist/live-open.js +1 -23
  382. package/dist/live-records.js +4 -151
  383. package/dist/live-reply.js +1 -51
  384. package/dist/live-terminal.js +12 -111
  385. package/dist/live.js +4 -130
  386. package/dist/local-owner-acts.js +168 -0
  387. package/dist/local-owner.js +15 -80
  388. package/dist/log.js +0 -8
  389. package/dist/login-secrets.js +2 -38
  390. package/dist/machine-check.js +0 -2
  391. package/dist/machine-identity.js +1 -46
  392. package/dist/mailbox.js +0 -30
  393. package/dist/maintenance.js +1 -3
  394. package/dist/mcp-connect.js +0 -88
  395. package/dist/mcp-core.js +0 -45
  396. package/dist/mcp-http.js +0 -13
  397. package/dist/mcp-oauth.js +0 -37
  398. package/dist/mcp-person.js +0 -11
  399. package/dist/mcp.js +3 -73
  400. package/dist/memory-cli.js +0 -3
  401. package/dist/memory-pass.js +0 -53
  402. package/dist/memory-tidy.js +0 -55
  403. package/dist/memory-use.js +2 -24
  404. package/dist/merge-checklist.js +21 -29
  405. package/dist/metrics.js +0 -10
  406. package/dist/mobile-viewport.js +0 -6
  407. package/dist/model-catalog.js +1 -33
  408. package/dist/model-choices.js +9 -84
  409. package/dist/model-names.js +0 -9
  410. package/dist/models-cli.js +0 -13
  411. package/dist/models-ui.js +0 -17
  412. package/dist/modes.js +0 -35
  413. package/dist/monitoring-settings.js +2 -27
  414. package/dist/monitoring-ui.js +2 -14
  415. package/dist/monitoring.js +2 -38
  416. package/dist/names.js +0 -39
  417. package/dist/needs-you.js +7 -70
  418. package/dist/never-index.js +0 -9
  419. package/dist/nightly-check.js +0 -74
  420. package/dist/nightly-github.js +0 -168
  421. package/dist/notification-delivery.js +0 -3
  422. package/dist/notification-rows.js +0 -17
  423. package/dist/oauth-run-token.js +1 -37
  424. package/dist/observations.js +0 -16
  425. package/dist/oidc.js +1 -20
  426. package/dist/onboard.js +4 -57
  427. package/dist/one-step-chat-schema.js +0 -15
  428. package/dist/openrouter-models.js +0 -6
  429. package/dist/operate-remote-arguments.js +2 -17
  430. package/dist/operate-remote.js +0 -33
  431. package/dist/operate.js +280 -2304
  432. package/dist/orphan-sweep.js +3 -37
  433. package/dist/page-work-contract.js +0 -3
  434. package/dist/password-bearer.js +1 -11
  435. package/dist/passwordless.js +0 -3
  436. package/dist/peek-cli.js +0 -46
  437. package/dist/peek.js +2 -61
  438. package/dist/people-audit-ui.js +0 -6
  439. package/dist/person-proof.js +0 -6
  440. package/dist/phase-routing.js +8 -183
  441. package/dist/plain-schema.js +0 -14
  442. package/dist/plain-words.js +18 -12
  443. package/dist/plan-auto.js +3 -18
  444. package/dist/plan-login.js +0 -16
  445. package/dist/plan.js +0 -68
  446. package/dist/plane-review.js +0 -56
  447. package/dist/planner-source.js +0 -96
  448. package/dist/planner.js +0 -117
  449. package/dist/policy-ui.js +0 -8
  450. package/dist/policy.js +0 -47
  451. package/dist/prepared-evidence.js +0 -5
  452. package/dist/principal.js +0 -29
  453. package/dist/probe.js +0 -30
  454. package/dist/process-custody.js +0 -15
  455. package/dist/process-liveness.js +0 -32
  456. package/dist/process-tree.js +3 -29
  457. package/dist/project-access.js +0 -10
  458. package/dist/project-admission.js +1 -41
  459. package/dist/project-cli.js +0 -6
  460. package/dist/project-concurrency.js +0 -35
  461. package/dist/project-delete-ui.js +4 -29
  462. package/dist/project-delete.js +1 -73
  463. package/dist/project-demo.js +0 -13
  464. package/dist/project-file.js +0 -2
  465. package/dist/project-identity.js +0 -41
  466. package/dist/project-knowledge.js +0 -39
  467. package/dist/project-learning.js +3 -55
  468. package/dist/project-memory.js +2 -45
  469. package/dist/project-outcomes.js +0 -6
  470. package/dist/project-sandbox.js +0 -23
  471. package/dist/project-skills.js +0 -12
  472. package/dist/project-tools.js +6 -184
  473. package/dist/project.js +0 -48
  474. package/dist/prompt.js +0 -31
  475. package/dist/proof.js +0 -220
  476. package/dist/proposal.js +0 -50
  477. package/dist/protected-storage-look.js +0 -6
  478. package/dist/protected-storage.js +1 -84
  479. package/dist/provider-auth.js +3 -69
  480. package/dist/provider-capture.js +1 -15
  481. package/dist/provider-connection.js +0 -8
  482. package/dist/provider-home.js +0 -25
  483. package/dist/provider-limits.js +0 -14
  484. package/dist/provider.js +0 -324
  485. package/dist/public-access.js +11 -30
  486. package/dist/public-check.js +0 -16
  487. package/dist/publish.js +1 -150
  488. package/dist/pull-request-flow.js +6 -74
  489. package/dist/pull-request-schema.js +0 -4
  490. package/dist/pull-request-ui.js +0 -5
  491. package/dist/pulls.js +0 -80
  492. package/dist/push.js +5 -89
  493. package/dist/quick-start.js +1 -23
  494. package/dist/read-executor-worker.js +0 -1
  495. package/dist/read-executor.js +0 -10
  496. package/dist/read-only-request.js +0 -7
  497. package/dist/recipe-ui.js +0 -6
  498. package/dist/recipes.js +0 -13
  499. package/dist/release-adapters.js +6 -214
  500. package/dist/release-approval.js +0 -74
  501. package/dist/release-authority.js +0 -42
  502. package/dist/release-auto.js +0 -142
  503. package/dist/release-card.js +26 -103
  504. package/dist/release-carry.js +0 -132
  505. package/dist/release-ci-hold.js +0 -20
  506. package/dist/release-cli.js +0 -46
  507. package/dist/release-coverage.js +0 -16
  508. package/dist/release-gate.js +0 -30
  509. package/dist/release-git.js +0 -24
  510. package/dist/release-links.js +0 -17
  511. package/dist/release-net.js +0 -42
  512. package/dist/release-next.js +0 -25
  513. package/dist/release-recheck.js +0 -89
  514. package/dist/release-refusal.js +0 -18
  515. package/dist/release-view.js +0 -5
  516. package/dist/release.js +7 -341
  517. package/dist/releases.js +0 -49
  518. package/dist/remote-audit.js +0 -25
  519. package/dist/remote-command.js +0 -16
  520. package/dist/remote-destination.js +5 -26
  521. package/dist/remote-exec.js +1 -27
  522. package/dist/remote-main.js +1 -53
  523. package/dist/remote-run.js +0 -5
  524. package/dist/remote.js +0 -49
  525. package/dist/render.js +0 -133
  526. package/dist/reply-shape.js +0 -85
  527. package/dist/reply-voice.js +0 -7
  528. package/dist/report-summary.js +0 -5
  529. package/dist/reported-usage.js +0 -30
  530. package/dist/repos.js +9 -62
  531. package/dist/repository-context.js +1 -24
  532. package/dist/request-budget-ui.js +0 -4
  533. package/dist/request-budget.js +0 -23
  534. package/dist/restart-certification.js +0 -37
  535. package/dist/result-actions.js +0 -62
  536. package/dist/result-acts.js +0 -34
  537. package/dist/result-completion.js +9 -28
  538. package/dist/result-evidence-readers.js +0 -3
  539. package/dist/result-follow-ups.js +1 -39
  540. package/dist/result-review.js +0 -86
  541. package/dist/result-shots.js +0 -39
  542. package/dist/retention-ui.js +0 -7
  543. package/dist/retention.js +2 -46
  544. package/dist/review-context.js +0 -129
  545. package/dist/review-evidence.js +0 -4
  546. package/dist/review-switch.js +1 -7
  547. package/dist/reviewer.js +0 -35
  548. package/dist/route-change-check.js +0 -2
  549. package/dist/route-change.js +0 -16
  550. package/dist/route-hooks.js +0 -27
  551. package/dist/route-results.js +2 -58
  552. package/dist/route-rules.js +1 -106
  553. package/dist/route-savings.js +0 -36
  554. package/dist/route-store.js +1 -133
  555. package/dist/run-closeout.js +2 -50
  556. package/dist/run-efficiency.js +2 -44
  557. package/dist/run-ending.js +0 -13
  558. package/dist/runner-process.js +0 -33
  559. package/dist/runner.js +17 -189
  560. package/dist/sample-project.js +2 -27
  561. package/dist/sandbox-launch.js +4 -25
  562. package/dist/sandbox-runtime.js +1 -88
  563. package/dist/scan.js +0 -27
  564. package/dist/scope.js +88 -566
  565. package/dist/scout-browser-lock.js +0 -6
  566. package/dist/scout-browser.js +2 -68
  567. package/dist/scout-net.js +1 -32
  568. package/dist/scout-report.js +0 -22
  569. package/dist/scout.js +1 -116
  570. package/dist/secret-mint.js +0 -6
  571. package/dist/serve.js +29 -564
  572. package/dist/server/agents-computers.js +0 -10
  573. package/dist/server/agents-live-filed.js +0 -13
  574. package/dist/server/agents-live-lead.js +0 -19
  575. package/dist/server/agents-live-room.js +0 -19
  576. package/dist/server/chat.js +2 -194
  577. package/dist/server/chrome.js +17 -263
  578. package/dist/server/console.css +4 -4
  579. package/dist/server/edge-refusal.js +0 -3
  580. package/dist/server/flows.js +5 -74
  581. package/dist/server/guards.js +9 -86
  582. package/dist/server/handler-registry.js +0 -2
  583. package/dist/server/home-asks.js +1 -22
  584. package/dist/server/home.js +1 -30
  585. package/dist/server/http.js +0 -82
  586. package/dist/server/in-place.js +0 -15
  587. package/dist/server/kit-standalone.js +0 -20
  588. package/dist/server/kit.js +2 -114
  589. package/dist/server/last-checks.js +0 -2
  590. package/dist/server/live.js +1 -36
  591. package/dist/server/merge-ready-view.js +0 -6
  592. package/dist/server/mutation-key.js +3 -40
  593. package/dist/server/pages-assets.js +0 -16
  594. package/dist/server/pages.js +7 -195
  595. package/dist/server/people-tokens.js +3 -101
  596. package/dist/server/remote-hooks.js +0 -13
  597. package/dist/server/remote.js +0 -28
  598. package/dist/server/render-chat.js +8 -144
  599. package/dist/server/render-code-map.js +0 -5
  600. package/dist/server/render-flaky.js +0 -8
  601. package/dist/server/render-follow-through.js +2 -5
  602. package/dist/server/render-history.js +2 -34
  603. package/dist/server/render-new-task.js +2 -29
  604. package/dist/server/render-pages.js +1 -111
  605. package/dist/server/render-people.js +2 -46
  606. package/dist/server/render-projects.js +15 -32
  607. package/dist/server/render-release.js +1 -14
  608. package/dist/server/render-results.js +4 -355
  609. package/dist/server/render-settings.js +0 -15
  610. package/dist/server/render-tasks.js +17 -497
  611. package/dist/server/request-context.js +2 -9
  612. package/dist/server/retired-routes.js +0 -11
  613. package/dist/server/route-policy.js +0 -3
  614. package/dist/server/route-table.js +8 -133
  615. package/dist/server/runtime.js +0 -1
  616. package/dist/server/session.js +0 -28
  617. package/dist/server/settings.js +40 -246
  618. package/dist/server/signup-gate.js +0 -11
  619. package/dist/server/sweeps.js +0 -6
  620. package/dist/server/task-views.js +12 -227
  621. package/dist/server/tasks.js +37 -531
  622. package/dist/server/terminals.js +2 -46
  623. package/dist/server/welcome.js +2 -22
  624. package/dist/server-telemetry.js +0 -9
  625. package/dist/settings-groups-ui.js +50 -63
  626. package/dist/settings-kit-script.js +0 -19
  627. package/dist/settings-kit.js +0 -63
  628. package/dist/settings-proofs.js +0 -23
  629. package/dist/setup-guide.js +1 -9
  630. package/dist/shared-deps.js +9 -84
  631. package/dist/sign-in-guard.js +0 -27
  632. package/dist/skills-ui.js +0 -2
  633. package/dist/skills.js +2 -54
  634. package/dist/slack-api.js +0 -3
  635. package/dist/slack-chat.js +0 -25
  636. package/dist/slack-settings.js +0 -1
  637. package/dist/slack-socket.js +0 -5
  638. package/dist/slack.js +0 -4
  639. package/dist/sleep.js +0 -1
  640. package/dist/source-key.js +0 -10
  641. package/dist/spend-report.js +0 -29
  642. package/dist/spend-ui.js +0 -26
  643. package/dist/spend.js +0 -40
  644. package/dist/sqlite-runtime.js +0 -2
  645. package/dist/sqlite-telemetry.js +0 -9
  646. package/dist/sso-settings.js +0 -13
  647. package/dist/sso-ui.js +0 -2
  648. package/dist/staged-runtimes.js +5 -39
  649. package/dist/steer-capabilities.js +1 -7
  650. package/dist/steer-controls.js +0 -10
  651. package/dist/steer-live.js +0 -31
  652. package/dist/steer-mailbox.js +4 -65
  653. package/dist/steer-status.js +0 -7
  654. package/dist/stop-proof.js +5 -62
  655. package/dist/storage-sweep-child.js +1 -5
  656. package/dist/storage-sweep-process.js +2 -20
  657. package/dist/storage-sweep-schedule.js +0 -32
  658. package/dist/storage-sweep.js +2 -51
  659. package/dist/storage-ui.js +0 -18
  660. package/dist/storage.js +0 -31
  661. package/dist/store-baseline.js +0 -14
  662. package/dist/store.js +109 -4763
  663. package/dist/stream-scope.js +0 -16
  664. package/dist/structured-output.js +0 -39
  665. package/dist/style-asset.js +0 -2
  666. package/dist/subagent-admin.js +0 -9
  667. package/dist/subagent-desk.js +0 -29
  668. package/dist/subagent-memory.js +0 -38
  669. package/dist/subagent-question.js +0 -29
  670. package/dist/subagent-tools.js +1 -60
  671. package/dist/subagent-week.js +0 -28
  672. package/dist/subagent-work.js +1 -39
  673. package/dist/subagents-ui.js +1 -13
  674. package/dist/subagents.js +0 -40
  675. package/dist/subscription-chat.js +1 -42
  676. package/dist/summary.js +0 -19
  677. package/dist/surface.js +8 -73
  678. package/dist/sweep-gate.js +0 -2
  679. package/dist/sweep-quarantine.js +2 -13
  680. package/dist/sync.js +0 -47
  681. package/dist/tailnet.js +0 -9
  682. package/dist/tamper-scan.js +0 -15
  683. package/dist/task-activity.js +1 -16
  684. package/dist/task-aliases.js +0 -3
  685. package/dist/task-archive.js +0 -7
  686. package/dist/task-base.js +0 -18
  687. package/dist/task-composer.js +0 -2
  688. package/dist/task-control.js +0 -74
  689. package/dist/task-live.js +0 -23
  690. package/dist/task-moves.js +0 -28
  691. package/dist/task-outcome-cli.js +66 -19
  692. package/dist/task-review-brief.js +0 -7
  693. package/dist/task-sizing.js +0 -47
  694. package/dist/task-source.js +0 -23
  695. package/dist/task-status.js +0 -106
  696. package/dist/task-text.js +0 -12
  697. package/dist/team-chat-authorization.js +0 -3
  698. package/dist/team-contract.js +0 -2
  699. package/dist/team-http.js +0 -4
  700. package/dist/team-leads.js +1 -16
  701. package/dist/team-runtime.js +0 -13
  702. package/dist/team-ui.js +0 -1
  703. package/dist/team-updates.js +0 -4
  704. package/dist/teams-api.js +0 -12
  705. package/dist/teams-chat.js +0 -28
  706. package/dist/teams.js +0 -12
  707. package/dist/teardown-git.js +6 -294
  708. package/dist/telegram-flow.js +0 -51
  709. package/dist/telegram-lead.js +2 -203
  710. package/dist/telegram-live.js +1 -42
  711. package/dist/telegram-progress.js +0 -18
  712. package/dist/telegram-settings.js +0 -7
  713. package/dist/telegram-status.js +0 -46
  714. package/dist/telegram-team.js +1 -33
  715. package/dist/telegram.js +6 -454
  716. package/dist/templates.js +0 -24
  717. package/dist/terminal-catalog.js +2 -20
  718. package/dist/terminal-text.js +0 -12
  719. package/dist/test-infra.js +0 -50
  720. package/dist/test-temp.js +3 -26
  721. package/dist/text-limits.js +0 -92
  722. package/dist/tidy.js +0 -76
  723. package/dist/tier-report.js +0 -2
  724. package/dist/token-notices.js +1 -9
  725. package/dist/tokens-cli.js +0 -13
  726. package/dist/tool-broker.js +2 -53
  727. package/dist/tool-launcher.js +0 -14
  728. package/dist/tool-secret-store.js +3 -125
  729. package/dist/toolroll-update-cli.js +0 -9
  730. package/dist/toolroll-update-ui.js +0 -14
  731. package/dist/toolroll-update.js +13 -252
  732. package/dist/tools-ui.js +0 -17
  733. package/dist/transitions-recipes.js +0 -2
  734. package/dist/tree-proof.js +0 -23
  735. package/dist/tui-contract.js +0 -8
  736. package/dist/tui-source.js +91 -40
  737. package/dist/tui.js +54 -54
  738. package/dist/typed-start.js +0 -27
  739. package/dist/unfenced-test-support.js +0 -5
  740. package/dist/up-processes.js +1 -40
  741. package/dist/up-role-child.js +1 -13
  742. package/dist/update-notice.js +0 -1
  743. package/dist/vanished-retry.js +0 -40
  744. package/dist/verification-evidence.js +0 -39
  745. package/dist/version.js +0 -1
  746. package/dist/wake-hub.js +0 -28
  747. package/dist/webhook-limits.js +0 -7
  748. package/dist/webhook-readers.js +0 -30
  749. package/dist/webhook-signing.js +0 -14
  750. package/dist/webhooks.js +0 -54
  751. package/dist/welcome-facts.js +2 -14
  752. package/dist/when-html.js +0 -27
  753. package/dist/work-index.js +26 -98
  754. package/dist/work-summary.js +2 -17
  755. package/dist/workspace-motion.js +0 -2
  756. package/dist/workspace-revision.js +1 -21
  757. package/dist/workspace-ui.js +15 -135
  758. package/dist/worktree-notices.js +0 -3
  759. package/dist/worktree.js +0 -308
  760. package/dist/writes-mode.js +0 -1
  761. package/dist/youiyoux-intake.js +4 -159
  762. package/package.json +5 -4
  763. package/dist/accent-colors.d.ts +0 -51
  764. package/dist/acp-agents.d.ts +0 -43
  765. package/dist/acp-attest.d.ts +0 -44
  766. package/dist/acp-check.d.ts +0 -37
  767. package/dist/acp-client.d.ts +0 -163
  768. package/dist/acp-inspect.d.ts +0 -23
  769. package/dist/action-ledger.d.ts +0 -27
  770. package/dist/activity-line.d.ts +0 -29
  771. package/dist/actor.d.ts +0 -11
  772. package/dist/agent-board.d.ts +0 -229
  773. package/dist/agent-fence.d.ts +0 -479
  774. package/dist/agent-onboard.d.ts +0 -158
  775. package/dist/agent-pulse.d.ts +0 -43
  776. package/dist/agent-state-words.d.ts +0 -19
  777. package/dist/agent-state.d.ts +0 -65
  778. package/dist/agent-turns.d.ts +0 -52
  779. package/dist/agentconfig.d.ts +0 -191
  780. package/dist/agents-board.d.ts +0 -145
  781. package/dist/agents-live.d.ts +0 -31
  782. package/dist/api-tokens.d.ts +0 -80
  783. package/dist/approval-authority.d.ts +0 -51
  784. package/dist/approval-password.d.ts +0 -31
  785. package/dist/approval-policy.d.ts +0 -69
  786. package/dist/approval-rules-ui.d.ts +0 -40
  787. package/dist/assignment-adapters.d.ts +0 -152
  788. package/dist/assignment-brief.d.ts +0 -83
  789. package/dist/assignment-delivery.d.ts +0 -86
  790. package/dist/assignment-presentation.d.ts +0 -37
  791. package/dist/assignment-status.d.ts +0 -71
  792. package/dist/assignment-ui.d.ts +0 -68
  793. package/dist/assignment.d.ts +0 -318
  794. package/dist/attest.d.ts +0 -59
  795. package/dist/audit-cli.d.ts +0 -17
  796. package/dist/backend.d.ts +0 -97
  797. package/dist/backup-ui.d.ts +0 -32
  798. package/dist/backup.d.ts +0 -92
  799. package/dist/batch-checks.d.ts +0 -15
  800. package/dist/batch-policy.d.ts +0 -23
  801. package/dist/beads.d.ts +0 -34
  802. package/dist/bin.d.ts +0 -2
  803. package/dist/board.d.ts +0 -134
  804. package/dist/boot-identity.d.ts +0 -64
  805. package/dist/bounded-spawn.d.ts +0 -57
  806. package/dist/brand-icons.d.ts +0 -168
  807. package/dist/brand-mark.d.ts +0 -28
  808. package/dist/brief-fence.d.ts +0 -9
  809. package/dist/browser-crew.d.ts +0 -12
  810. package/dist/browser-shell.d.ts +0 -9
  811. package/dist/browser-workspace.d.ts +0 -1972
  812. package/dist/budget-alerts.d.ts +0 -19
  813. package/dist/build-review.d.ts +0 -38
  814. package/dist/builder-restart.d.ts +0 -21
  815. package/dist/builder.d.ts +0 -409
  816. package/dist/canonical-json.d.ts +0 -14
  817. package/dist/capscan.d.ts +0 -35
  818. package/dist/card-catalog.d.ts +0 -209
  819. package/dist/card-cli.d.ts +0 -43
  820. package/dist/card-render.d.ts +0 -43
  821. package/dist/card-sources.d.ts +0 -68
  822. package/dist/chat-acceptance.d.ts +0 -74
  823. package/dist/chat-actions.d.ts +0 -460
  824. package/dist/chat-admission.d.ts +0 -19
  825. package/dist/chat-approval.d.ts +0 -58
  826. package/dist/chat-ask.d.ts +0 -32
  827. package/dist/chat-card-part.d.ts +0 -11
  828. package/dist/chat-card.d.ts +0 -46
  829. package/dist/chat-channel.d.ts +0 -126
  830. package/dist/chat-continuity.d.ts +0 -32
  831. package/dist/chat-controls.d.ts +0 -117
  832. package/dist/chat-core.d.ts +0 -177
  833. package/dist/chat-decide.d.ts +0 -269
  834. package/dist/chat-delivery-state.d.ts +0 -132
  835. package/dist/chat-delivery.d.ts +0 -71
  836. package/dist/chat-display.d.ts +0 -1
  837. package/dist/chat-evidence.d.ts +0 -123
  838. package/dist/chat-flow.d.ts +0 -70
  839. package/dist/chat-follow.d.ts +0 -20
  840. package/dist/chat-inbox.d.ts +0 -57
  841. package/dist/chat-live-schema.d.ts +0 -17
  842. package/dist/chat-live.d.ts +0 -161
  843. package/dist/chat-message-states.d.ts +0 -75
  844. package/dist/chat-messages.d.ts +0 -338
  845. package/dist/chat-migration.d.ts +0 -30
  846. package/dist/chat-polish.d.ts +0 -17
  847. package/dist/chat-quiet.d.ts +0 -40
  848. package/dist/chat-review.d.ts +0 -51
  849. package/dist/chat-rooms.d.ts +0 -123
  850. package/dist/chat-settings-page.d.ts +0 -43
  851. package/dist/chat-task-actions.d.ts +0 -59
  852. package/dist/chat-terms.d.ts +0 -29
  853. package/dist/chat-voice.d.ts +0 -69
  854. package/dist/chat-warmth.d.ts +0 -21
  855. package/dist/check-access.d.ts +0 -54
  856. package/dist/check-facts.d.ts +0 -126
  857. package/dist/check-failure.d.ts +0 -113
  858. package/dist/check-levels-ui.d.ts +0 -36
  859. package/dist/check-levels.d.ts +0 -70
  860. package/dist/check-load.d.ts +0 -85
  861. package/dist/check-only-standing.d.ts +0 -36
  862. package/dist/check-only.d.ts +0 -15
  863. package/dist/check-progress.d.ts +0 -78
  864. package/dist/check-repair.d.ts +0 -47
  865. package/dist/check-report.d.ts +0 -177
  866. package/dist/check-stamp.d.ts +0 -46
  867. package/dist/checkout-cleanup.d.ts +0 -157
  868. package/dist/checkout-proof.d.ts +0 -28
  869. package/dist/child-database.d.ts +0 -12
  870. package/dist/claim.d.ts +0 -627
  871. package/dist/claude-print.d.ts +0 -12
  872. package/dist/cli-fast.d.ts +0 -8
  873. package/dist/cli-help.d.ts +0 -8
  874. package/dist/cli-http.d.ts +0 -58
  875. package/dist/cli.d.ts +0 -149
  876. package/dist/code-extract.d.ts +0 -44
  877. package/dist/code-map-acts.d.ts +0 -24
  878. package/dist/code-map-admission.d.ts +0 -52
  879. package/dist/code-map-build.d.ts +0 -63
  880. package/dist/code-map-cli.d.ts +0 -153
  881. package/dist/code-map-main.d.ts +0 -1
  882. package/dist/code-map-read.d.ts +0 -106
  883. package/dist/code-map-report.d.ts +0 -37
  884. package/dist/code-map-shape.d.ts +0 -172
  885. package/dist/code-map-store.d.ts +0 -136
  886. package/dist/codex-limits.d.ts +0 -15
  887. package/dist/coding-context.d.ts +0 -18
  888. package/dist/coding-handoff.d.ts +0 -39
  889. package/dist/coding-provider.d.ts +0 -88
  890. package/dist/coding-shipping-ui.d.ts +0 -5
  891. package/dist/coding-types.d.ts +0 -16
  892. package/dist/coding-ui.d.ts +0 -19
  893. package/dist/coding-update.d.ts +0 -28
  894. package/dist/coding-workspace.d.ts +0 -141
  895. package/dist/commit-extract.d.ts +0 -135
  896. package/dist/connect-cli.d.ts +0 -34
  897. package/dist/console-chrome.d.ts +0 -41
  898. package/dist/console-instance.d.ts +0 -157
  899. package/dist/container-state.d.ts +0 -5
  900. package/dist/containment.d.ts +0 -205
  901. package/dist/contract-changes.d.ts +0 -52
  902. package/dist/contracts/acceptance-terms.d.ts +0 -14
  903. package/dist/contracts/chat-actions.d.ts +0 -465
  904. package/dist/contracts/chat-callback-rows.d.ts +0 -59
  905. package/dist/contracts/chat-card.d.ts +0 -91
  906. package/dist/contracts/chat-content.d.ts +0 -551
  907. package/dist/contracts/chat-tables.d.ts +0 -12
  908. package/dist/contracts/cli.d.ts +0 -987
  909. package/dist/contracts/coding-activity.d.ts +0 -64
  910. package/dist/contracts/coding-context.d.ts +0 -97
  911. package/dist/contracts/coding-handoff.d.ts +0 -44
  912. package/dist/contracts/coding-workspace.d.ts +0 -165
  913. package/dist/contracts/console-api.d.ts +0 -539
  914. package/dist/contracts/contract-test.d.ts +0 -45
  915. package/dist/contracts/contract.d.ts +0 -92
  916. package/dist/contracts/decision.d.ts +0 -45
  917. package/dist/contracts/diff-stat.d.ts +0 -58
  918. package/dist/contracts/discord-callback.d.ts +0 -45
  919. package/dist/contracts/flow-card.d.ts +0 -53
  920. package/dist/contracts/flow-propose.d.ts +0 -334
  921. package/dist/contracts/flow-send.d.ts +0 -245
  922. package/dist/contracts/flow.d.ts +0 -19565
  923. package/dist/contracts/gateway-tools.d.ts +0 -472
  924. package/dist/contracts/handoff.d.ts +0 -91
  925. package/dist/contracts/health.d.ts +0 -82
  926. package/dist/contracts/integration-metadata.d.ts +0 -100
  927. package/dist/contracts/lead-context.d.ts +0 -165
  928. package/dist/contracts/lead-tools.d.ts +0 -2312
  929. package/dist/contracts/mcp-oauth.d.ts +0 -53
  930. package/dist/contracts/memory-pass.d.ts +0 -157
  931. package/dist/contracts/model-catalog.d.ts +0 -21
  932. package/dist/contracts/observation-request.d.ts +0 -37
  933. package/dist/contracts/plan.d.ts +0 -58
  934. package/dist/contracts/project-knowledge.d.ts +0 -159
  935. package/dist/contracts/project-memory.d.ts +0 -119
  936. package/dist/contracts/project-skills.d.ts +0 -120
  937. package/dist/contracts/proof.d.ts +0 -136
  938. package/dist/contracts/provider.d.ts +0 -40
  939. package/dist/contracts/recipes.d.ts +0 -166
  940. package/dist/contracts/release-check.d.ts +0 -371
  941. package/dist/contracts/release-terms.d.ts +0 -107
  942. package/dist/contracts/retention.d.ts +0 -42
  943. package/dist/contracts/review-findings.d.ts +0 -46
  944. package/dist/contracts/route-results.d.ts +0 -121
  945. package/dist/contracts/route.d.ts +0 -897
  946. package/dist/contracts/scope.d.ts +0 -105
  947. package/dist/contracts/scout-report.d.ts +0 -234
  948. package/dist/contracts/slack-callback.d.ts +0 -43
  949. package/dist/contracts/sort-answer.d.ts +0 -83
  950. package/dist/contracts/stage-output.d.ts +0 -127
  951. package/dist/contracts/storage.d.ts +0 -37
  952. package/dist/contracts/store-json.d.ts +0 -313
  953. package/dist/contracts/subagent-turn.d.ts +0 -43
  954. package/dist/contracts/task-sizing.d.ts +0 -24
  955. package/dist/contracts/teams-callback.d.ts +0 -13
  956. package/dist/contracts/telegram-callback.d.ts +0 -120
  957. package/dist/contracts/trigger-payloads.d.ts +0 -389
  958. package/dist/contracts/update-journal.d.ts +0 -254
  959. package/dist/contracts/verification-receipt.d.ts +0 -200
  960. package/dist/contracts/verification-view.d.ts +0 -102
  961. package/dist/contracts/youiyoux-request.d.ts +0 -248
  962. package/dist/control-setup.d.ts +0 -44
  963. package/dist/control-ui.d.ts +0 -37
  964. package/dist/controller-service.d.ts +0 -1
  965. package/dist/controller-supervisor.d.ts +0 -38
  966. package/dist/converse.d.ts +0 -316
  967. package/dist/coordinator-proposals.d.ts +0 -29
  968. package/dist/coordinator.d.ts +0 -186
  969. package/dist/credentials-ui.d.ts +0 -33
  970. package/dist/daemon.d.ts +0 -226
  971. package/dist/database-reclaim.d.ts +0 -4
  972. package/dist/decision.d.ts +0 -119
  973. package/dist/demo-chat.d.ts +0 -32
  974. package/dist/demo.d.ts +0 -153
  975. package/dist/deploy-gate.d.ts +0 -20
  976. package/dist/deploy-lock.d.ts +0 -8
  977. package/dist/deploy-phase.d.ts +0 -37
  978. package/dist/deploy-rescue.d.ts +0 -42
  979. package/dist/deprecations.d.ts +0 -20
  980. package/dist/design/kit.d.ts +0 -216
  981. package/dist/desktop-access.d.ts +0 -28
  982. package/dist/desktop-bundle.d.ts +0 -16
  983. package/dist/desktop-host.d.ts +0 -54
  984. package/dist/desktop-update-gate.d.ts +0 -12
  985. package/dist/desktop-update-recovery.d.ts +0 -14
  986. package/dist/desktop-update.d.ts +0 -147
  987. package/dist/digest-times.d.ts +0 -3
  988. package/dist/disclosure.d.ts +0 -6
  989. package/dist/discord-api.d.ts +0 -24
  990. package/dist/discord-chat.d.ts +0 -27
  991. package/dist/discord-settings.d.ts +0 -4
  992. package/dist/discord.d.ts +0 -10
  993. package/dist/discover.d.ts +0 -75
  994. package/dist/dispatch.d.ts +0 -123
  995. package/dist/dispose.d.ts +0 -194
  996. package/dist/doctor.d.ts +0 -67
  997. package/dist/easy-start-args.d.ts +0 -13
  998. package/dist/easy-start.d.ts +0 -77
  999. package/dist/egress.d.ts +0 -121
  1000. package/dist/email-settings.d.ts +0 -34
  1001. package/dist/envelope.d.ts +0 -47
  1002. package/dist/eval-gate.d.ts +0 -51
  1003. package/dist/eval-hooks.d.ts +0 -94
  1004. package/dist/eval-oracle-main.d.ts +0 -1
  1005. package/dist/eval-oracle.d.ts +0 -60
  1006. package/dist/eval-world.d.ts +0 -17
  1007. package/dist/evals.d.ts +0 -299
  1008. package/dist/evidence-pack.d.ts +0 -186
  1009. package/dist/evidence-pair.d.ts +0 -53
  1010. package/dist/evidence.d.ts +0 -371
  1011. package/dist/exec.d.ts +0 -355
  1012. package/dist/exhaustion.d.ts +0 -58
  1013. package/dist/export-ui.d.ts +0 -11
  1014. package/dist/export.d.ts +0 -48
  1015. package/dist/failing-first.d.ts +0 -31
  1016. package/dist/fallback-schema.d.ts +0 -8
  1017. package/dist/fallback.d.ts +0 -138
  1018. package/dist/fast-start.d.ts +0 -213
  1019. package/dist/fast-terms.d.ts +0 -9
  1020. package/dist/fenced-check-coverage.d.ts +0 -62
  1021. package/dist/findings.d.ts +0 -224
  1022. package/dist/first-run.d.ts +0 -197
  1023. package/dist/first-tasks-child.d.ts +0 -1
  1024. package/dist/flaky-ci.d.ts +0 -31
  1025. package/dist/flaky-cli.d.ts +0 -60
  1026. package/dist/flaky.d.ts +0 -83
  1027. package/dist/fleet-schema.d.ts +0 -17
  1028. package/dist/flow-actions.d.ts +0 -79
  1029. package/dist/flow-browser.d.ts +0 -103
  1030. package/dist/flow-cadence.d.ts +0 -48
  1031. package/dist/flow-card-task.d.ts +0 -11
  1032. package/dist/flow-changed.d.ts +0 -14
  1033. package/dist/flow-code.d.ts +0 -84
  1034. package/dist/flow-draft.d.ts +0 -42
  1035. package/dist/flow-engine.d.ts +0 -82
  1036. package/dist/flow-gallery-ui.d.ts +0 -73
  1037. package/dist/flow-gallery.d.ts +0 -147
  1038. package/dist/flow-insights.d.ts +0 -104
  1039. package/dist/flow-items.d.ts +0 -37
  1040. package/dist/flow-live.d.ts +0 -16
  1041. package/dist/flow-people.d.ts +0 -23
  1042. package/dist/flow-pull-request.d.ts +0 -14
  1043. package/dist/flow-replies.d.ts +0 -48
  1044. package/dist/flow-result-card.d.ts +0 -22
  1045. package/dist/flow-schedule.d.ts +0 -154
  1046. package/dist/flow-scripts.d.ts +0 -31
  1047. package/dist/flow-secrets.d.ts +0 -13
  1048. package/dist/flow-send.d.ts +0 -54
  1049. package/dist/flow-share.d.ts +0 -78
  1050. package/dist/flow-sort.d.ts +0 -63
  1051. package/dist/flow-starters-ui.d.ts +0 -15
  1052. package/dist/flow-starters.d.ts +0 -63
  1053. package/dist/flow-steps.d.ts +0 -52
  1054. package/dist/flow-triggers.d.ts +0 -303
  1055. package/dist/flow-unattended-words.d.ts +0 -48
  1056. package/dist/flow-unattended.d.ts +0 -259
  1057. package/dist/flows-cli.d.ts +0 -358
  1058. package/dist/flows-ui.d.ts +0 -70
  1059. package/dist/flows.d.ts +0 -136
  1060. package/dist/folder-gate.d.ts +0 -32
  1061. package/dist/folder-look.d.ts +0 -110
  1062. package/dist/follow-through-brief.d.ts +0 -12
  1063. package/dist/follow-through-cli.d.ts +0 -23
  1064. package/dist/fonts.d.ts +0 -19
  1065. package/dist/gaps.d.ts +0 -35
  1066. package/dist/gate-failure.d.ts +0 -40
  1067. package/dist/git-floor.d.ts +0 -16
  1068. package/dist/git-incident.d.ts +0 -65
  1069. package/dist/git-views.d.ts +0 -20
  1070. package/dist/git.d.ts +0 -54
  1071. package/dist/github-import.d.ts +0 -62
  1072. package/dist/github-jobs.d.ts +0 -25
  1073. package/dist/google-mail.d.ts +0 -59
  1074. package/dist/grant.d.ts +0 -136
  1075. package/dist/graph.d.ts +0 -164
  1076. package/dist/guides.d.ts +0 -22
  1077. package/dist/handover-note.d.ts +0 -33
  1078. package/dist/health-cli.d.ts +0 -3
  1079. package/dist/home-groups.d.ts +0 -39
  1080. package/dist/html.d.ts +0 -85
  1081. package/dist/install-method.d.ts +0 -17
  1082. package/dist/integrations-ui.d.ts +0 -17
  1083. package/dist/integrations.d.ts +0 -138
  1084. package/dist/invoke.d.ts +0 -228
  1085. package/dist/is-record.d.ts +0 -2
  1086. package/dist/issues.d.ts +0 -41
  1087. package/dist/jsonl-discriminants.d.ts +0 -11
  1088. package/dist/keymap.d.ts +0 -41
  1089. package/dist/keys.d.ts +0 -108
  1090. package/dist/kits-ui.d.ts +0 -16
  1091. package/dist/kits.d.ts +0 -88
  1092. package/dist/knowledge-cli.d.ts +0 -132
  1093. package/dist/knowledge-ui.d.ts +0 -45
  1094. package/dist/landed-cleanup.d.ts +0 -175
  1095. package/dist/laptop-background.d.ts +0 -187
  1096. package/dist/laptop-service.d.ts +0 -111
  1097. package/dist/latency-timeline.d.ts +0 -46
  1098. package/dist/lead-about.d.ts +0 -35
  1099. package/dist/lead-answer-eval.d.ts +0 -93
  1100. package/dist/lead-capabilities.d.ts +0 -57
  1101. package/dist/lead-cli-live.d.ts +0 -56
  1102. package/dist/lead-cli.d.ts +0 -58
  1103. package/dist/lead-commitments.d.ts +0 -84
  1104. package/dist/lead-context.d.ts +0 -45
  1105. package/dist/lead-contract.d.ts +0 -10
  1106. package/dist/lead-doors.d.ts +0 -122
  1107. package/dist/lead-follow.d.ts +0 -26
  1108. package/dist/lead-identity.d.ts +0 -23
  1109. package/dist/lead-latency-schema.d.ts +0 -24
  1110. package/dist/lead-people.d.ts +0 -55
  1111. package/dist/lead-progress.d.ts +0 -67
  1112. package/dist/lead-queue-runtime.d.ts +0 -46
  1113. package/dist/lead-queue.d.ts +0 -104
  1114. package/dist/lead-route.d.ts +0 -56
  1115. package/dist/lead-status.d.ts +0 -116
  1116. package/dist/lead-sweep.d.ts +0 -67
  1117. package/dist/lead-tools.d.ts +0 -167
  1118. package/dist/lead-voice.d.ts +0 -85
  1119. package/dist/lead.d.ts +0 -142
  1120. package/dist/learning-child.d.ts +0 -1
  1121. package/dist/learning-look.d.ts +0 -25
  1122. package/dist/ledger-chain.d.ts +0 -46
  1123. package/dist/ledger-csv.d.ts +0 -4
  1124. package/dist/ledger-view.d.ts +0 -27
  1125. package/dist/lesson-notes.d.ts +0 -81
  1126. package/dist/limits-ui.d.ts +0 -34
  1127. package/dist/link.d.ts +0 -72
  1128. package/dist/live-backup.d.ts +0 -39
  1129. package/dist/live-bus.d.ts +0 -141
  1130. package/dist/live-children-read.d.ts +0 -52
  1131. package/dist/live-children.d.ts +0 -73
  1132. package/dist/live-detail.d.ts +0 -27
  1133. package/dist/live-input.d.ts +0 -68
  1134. package/dist/live-main-read.d.ts +0 -19
  1135. package/dist/live-notes.d.ts +0 -20
  1136. package/dist/live-open.d.ts +0 -28
  1137. package/dist/live-records.d.ts +0 -149
  1138. package/dist/live-reply.d.ts +0 -83
  1139. package/dist/live-terminal.d.ts +0 -273
  1140. package/dist/live.d.ts +0 -152
  1141. package/dist/local-owner.d.ts +0 -124
  1142. package/dist/log.d.ts +0 -7
  1143. package/dist/login-secrets.d.ts +0 -60
  1144. package/dist/machine-check.d.ts +0 -16
  1145. package/dist/machine-identity.d.ts +0 -75
  1146. package/dist/mailbox.d.ts +0 -57
  1147. package/dist/maintenance.d.ts +0 -13
  1148. package/dist/mcp-connect.d.ts +0 -181
  1149. package/dist/mcp-core.d.ts +0 -110
  1150. package/dist/mcp-http.d.ts +0 -32
  1151. package/dist/mcp-oauth.d.ts +0 -92
  1152. package/dist/mcp-person.d.ts +0 -22
  1153. package/dist/mcp.d.ts +0 -20
  1154. package/dist/memory-cli.d.ts +0 -768
  1155. package/dist/memory-pass.d.ts +0 -151
  1156. package/dist/memory-tidy.d.ts +0 -181
  1157. package/dist/memory-use.d.ts +0 -35
  1158. package/dist/merge-checklist.d.ts +0 -55
  1159. package/dist/metrics.d.ts +0 -6
  1160. package/dist/mobile-viewport.d.ts +0 -7
  1161. package/dist/model-catalog.d.ts +0 -123
  1162. package/dist/model-choices.d.ts +0 -235
  1163. package/dist/model-names.d.ts +0 -6
  1164. package/dist/models-cli.d.ts +0 -307
  1165. package/dist/models-ui.d.ts +0 -161
  1166. package/dist/modes.d.ts +0 -99
  1167. package/dist/monitoring-settings.d.ts +0 -44
  1168. package/dist/monitoring-ui.d.ts +0 -23
  1169. package/dist/monitoring.d.ts +0 -34
  1170. package/dist/names.d.ts +0 -67
  1171. package/dist/needs-you.d.ts +0 -164
  1172. package/dist/never-index.d.ts +0 -3
  1173. package/dist/nightly-check.d.ts +0 -107
  1174. package/dist/nightly-github.d.ts +0 -318
  1175. package/dist/notification-delivery.d.ts +0 -19
  1176. package/dist/notification-rows.d.ts +0 -30
  1177. package/dist/oauth-run-token.d.ts +0 -51
  1178. package/dist/observations.d.ts +0 -36
  1179. package/dist/oidc.d.ts +0 -71
  1180. package/dist/onboard.d.ts +0 -108
  1181. package/dist/one-step-chat-schema.d.ts +0 -22
  1182. package/dist/openrouter-models.d.ts +0 -34
  1183. package/dist/operate-remote-arguments.d.ts +0 -36
  1184. package/dist/operate-remote.d.ts +0 -98
  1185. package/dist/operate.d.ts +0 -401
  1186. package/dist/orphan-sweep.d.ts +0 -65
  1187. package/dist/page-work-contract.d.ts +0 -21
  1188. package/dist/password-bearer.d.ts +0 -25
  1189. package/dist/passwordless.d.ts +0 -23
  1190. package/dist/peek-cli.d.ts +0 -112
  1191. package/dist/peek.d.ts +0 -110
  1192. package/dist/people-audit-ui.d.ts +0 -16
  1193. package/dist/person-proof.d.ts +0 -2
  1194. package/dist/phase-routing.d.ts +0 -401
  1195. package/dist/plain-schema.d.ts +0 -23
  1196. package/dist/plain-words.d.ts +0 -20
  1197. package/dist/plan-auto.d.ts +0 -25
  1198. package/dist/plan-login.d.ts +0 -14
  1199. package/dist/plan.d.ts +0 -188
  1200. package/dist/plane-review.d.ts +0 -54
  1201. package/dist/planner-source.d.ts +0 -225
  1202. package/dist/planner.d.ts +0 -76
  1203. package/dist/policy-ui.d.ts +0 -22
  1204. package/dist/policy.d.ts +0 -92
  1205. package/dist/prepared-evidence.d.ts +0 -17
  1206. package/dist/principal.d.ts +0 -42
  1207. package/dist/probe.d.ts +0 -46
  1208. package/dist/process-custody.d.ts +0 -17
  1209. package/dist/process-liveness.d.ts +0 -13
  1210. package/dist/process-tree.d.ts +0 -39
  1211. package/dist/project-access.d.ts +0 -17
  1212. package/dist/project-activity.d.ts +0 -20
  1213. package/dist/project-admission.d.ts +0 -105
  1214. package/dist/project-cli.d.ts +0 -19
  1215. package/dist/project-concurrency.d.ts +0 -62
  1216. package/dist/project-delete-ui.d.ts +0 -96
  1217. package/dist/project-delete.d.ts +0 -59
  1218. package/dist/project-demo.d.ts +0 -12
  1219. package/dist/project-file.d.ts +0 -3
  1220. package/dist/project-identity.d.ts +0 -52
  1221. package/dist/project-knowledge.d.ts +0 -124
  1222. package/dist/project-learning.d.ts +0 -120
  1223. package/dist/project-memory.d.ts +0 -70
  1224. package/dist/project-outcomes.d.ts +0 -119
  1225. package/dist/project-sandbox.d.ts +0 -59
  1226. package/dist/project-skills.d.ts +0 -139
  1227. package/dist/project-tools.d.ts +0 -318
  1228. package/dist/project.d.ts +0 -65
  1229. package/dist/prompt.d.ts +0 -33
  1230. package/dist/proof.d.ts +0 -457
  1231. package/dist/proposal.d.ts +0 -70
  1232. package/dist/protected-storage-look.d.ts +0 -1
  1233. package/dist/protected-storage.d.ts +0 -98
  1234. package/dist/provider-auth.d.ts +0 -143
  1235. package/dist/provider-capture.d.ts +0 -34
  1236. package/dist/provider-connection.d.ts +0 -23
  1237. package/dist/provider-home.d.ts +0 -22
  1238. package/dist/provider-limits.d.ts +0 -37
  1239. package/dist/provider.d.ts +0 -369
  1240. package/dist/public-access.d.ts +0 -52
  1241. package/dist/public-check.d.ts +0 -37
  1242. package/dist/publish.d.ts +0 -146
  1243. package/dist/pull-request-flow.d.ts +0 -189
  1244. package/dist/pull-request-schema.d.ts +0 -5
  1245. package/dist/pull-request-ui.d.ts +0 -25
  1246. package/dist/pulls.d.ts +0 -121
  1247. package/dist/push.d.ts +0 -120
  1248. package/dist/quality.d.ts +0 -8
  1249. package/dist/quick-start.d.ts +0 -26
  1250. package/dist/read-executor-worker.d.ts +0 -1
  1251. package/dist/read-executor.d.ts +0 -66
  1252. package/dist/read-only-request.d.ts +0 -4
  1253. package/dist/recipe-ui.d.ts +0 -21
  1254. package/dist/recipes.d.ts +0 -56
  1255. package/dist/release-adapters.d.ts +0 -205
  1256. package/dist/release-approval.d.ts +0 -180
  1257. package/dist/release-authority.d.ts +0 -173
  1258. package/dist/release-auto.d.ts +0 -184
  1259. package/dist/release-card.d.ts +0 -156
  1260. package/dist/release-carry.d.ts +0 -261
  1261. package/dist/release-ci-hold.d.ts +0 -41
  1262. package/dist/release-cli.d.ts +0 -34
  1263. package/dist/release-coverage.d.ts +0 -16
  1264. package/dist/release-gate.d.ts +0 -84
  1265. package/dist/release-git.d.ts +0 -43
  1266. package/dist/release-links.d.ts +0 -29
  1267. package/dist/release-net.d.ts +0 -90
  1268. package/dist/release-next.d.ts +0 -48
  1269. package/dist/release-recheck.d.ts +0 -146
  1270. package/dist/release-refusal.d.ts +0 -32
  1271. package/dist/release-view.d.ts +0 -37
  1272. package/dist/release.d.ts +0 -806
  1273. package/dist/releases.d.ts +0 -94
  1274. package/dist/remote-audit.d.ts +0 -79
  1275. package/dist/remote-command.d.ts +0 -45
  1276. package/dist/remote-destination.d.ts +0 -36
  1277. package/dist/remote-exec.d.ts +0 -38
  1278. package/dist/remote-main.d.ts +0 -111
  1279. package/dist/remote-run.d.ts +0 -20
  1280. package/dist/remote.d.ts +0 -67
  1281. package/dist/render.d.ts +0 -64
  1282. package/dist/reply-shape.d.ts +0 -106
  1283. package/dist/reply-voice.d.ts +0 -23
  1284. package/dist/report-summary.d.ts +0 -22
  1285. package/dist/reported-usage.d.ts +0 -69
  1286. package/dist/repos.d.ts +0 -67
  1287. package/dist/repository-context-ui.d.ts +0 -3
  1288. package/dist/repository-context.d.ts +0 -66
  1289. package/dist/request-budget-ui.d.ts +0 -14
  1290. package/dist/request-budget.d.ts +0 -127
  1291. package/dist/restart-certification.d.ts +0 -133
  1292. package/dist/result-actions.d.ts +0 -36
  1293. package/dist/result-acts.d.ts +0 -112
  1294. package/dist/result-completion.d.ts +0 -35
  1295. package/dist/result-evidence-readers.d.ts +0 -42
  1296. package/dist/result-follow-ups.d.ts +0 -118
  1297. package/dist/result-review.d.ts +0 -220
  1298. package/dist/result-shots.d.ts +0 -59
  1299. package/dist/retention-ui.d.ts +0 -21
  1300. package/dist/retention.d.ts +0 -77
  1301. package/dist/review-context.d.ts +0 -245
  1302. package/dist/review-evidence.d.ts +0 -33
  1303. package/dist/review-switch.d.ts +0 -36
  1304. package/dist/reviewer.d.ts +0 -99
  1305. package/dist/route-change-check.d.ts +0 -4
  1306. package/dist/route-change.d.ts +0 -22
  1307. package/dist/route-hooks.d.ts +0 -54
  1308. package/dist/route-results.d.ts +0 -75
  1309. package/dist/route-rules.d.ts +0 -324
  1310. package/dist/route-savings.d.ts +0 -136
  1311. package/dist/route-store.d.ts +0 -300
  1312. package/dist/run-closeout.d.ts +0 -89
  1313. package/dist/run-efficiency.d.ts +0 -74
  1314. package/dist/run-ending.d.ts +0 -21
  1315. package/dist/runner-process.d.ts +0 -76
  1316. package/dist/runner.d.ts +0 -324
  1317. package/dist/sample-project.d.ts +0 -31
  1318. package/dist/sandbox-launch.d.ts +0 -1
  1319. package/dist/sandbox-runtime.d.ts +0 -128
  1320. package/dist/scan.d.ts +0 -32
  1321. package/dist/scope.d.ts +0 -1067
  1322. package/dist/scout-browser-lock.d.ts +0 -69
  1323. package/dist/scout-browser.d.ts +0 -107
  1324. package/dist/scout-net.d.ts +0 -25
  1325. package/dist/scout-report.d.ts +0 -23
  1326. package/dist/scout.d.ts +0 -142
  1327. package/dist/secret-mint.d.ts +0 -1
  1328. package/dist/serve.d.ts +0 -11
  1329. package/dist/server/agents-computers.d.ts +0 -9
  1330. package/dist/server/agents-live-filed.d.ts +0 -17
  1331. package/dist/server/agents-live-lead.d.ts +0 -47
  1332. package/dist/server/agents-live-room.d.ts +0 -23
  1333. package/dist/server/chat.d.ts +0 -39
  1334. package/dist/server/chrome.d.ts +0 -328
  1335. package/dist/server/edge-refusal.d.ts +0 -7
  1336. package/dist/server/flows.d.ts +0 -8
  1337. package/dist/server/guards.d.ts +0 -80
  1338. package/dist/server/handler-context.d.ts +0 -22
  1339. package/dist/server/handler-registry.d.ts +0 -23
  1340. package/dist/server/home-asks.d.ts +0 -45
  1341. package/dist/server/home.d.ts +0 -65
  1342. package/dist/server/http.d.ts +0 -337
  1343. package/dist/server/in-place.d.ts +0 -15
  1344. package/dist/server/kit-standalone.d.ts +0 -22
  1345. package/dist/server/kit.d.ts +0 -452
  1346. package/dist/server/last-checks.d.ts +0 -17
  1347. package/dist/server/live.d.ts +0 -74
  1348. package/dist/server/merge-ready-view.d.ts +0 -10
  1349. package/dist/server/mutation-key.d.ts +0 -70
  1350. package/dist/server/pages-assets.d.ts +0 -11
  1351. package/dist/server/pages.d.ts +0 -8
  1352. package/dist/server/people-tokens.d.ts +0 -18
  1353. package/dist/server/remote-hooks.d.ts +0 -29
  1354. package/dist/server/remote.d.ts +0 -59
  1355. package/dist/server/render-chat.d.ts +0 -439
  1356. package/dist/server/render-code-map.d.ts +0 -30
  1357. package/dist/server/render-flaky.d.ts +0 -20
  1358. package/dist/server/render-follow-through.d.ts +0 -11
  1359. package/dist/server/render-history.d.ts +0 -51
  1360. package/dist/server/render-new-task.d.ts +0 -54
  1361. package/dist/server/render-pages.d.ts +0 -236
  1362. package/dist/server/render-people.d.ts +0 -102
  1363. package/dist/server/render-projects.d.ts +0 -104
  1364. package/dist/server/render-release.d.ts +0 -19
  1365. package/dist/server/render-results.d.ts +0 -754
  1366. package/dist/server/render-settings.d.ts +0 -93
  1367. package/dist/server/render-tasks.d.ts +0 -774
  1368. package/dist/server/request-context.d.ts +0 -78
  1369. package/dist/server/retired-routes.d.ts +0 -17
  1370. package/dist/server/route-policy.d.ts +0 -18
  1371. package/dist/server/route-table.d.ts +0 -114
  1372. package/dist/server/runtime.d.ts +0 -342
  1373. package/dist/server/session.d.ts +0 -192
  1374. package/dist/server/settings.d.ts +0 -76
  1375. package/dist/server/signup-gate.d.ts +0 -9
  1376. package/dist/server/sweeps.d.ts +0 -4
  1377. package/dist/server/task-views.d.ts +0 -98
  1378. package/dist/server/tasks.d.ts +0 -83
  1379. package/dist/server/terminals.d.ts +0 -31
  1380. package/dist/server/welcome.d.ts +0 -28
  1381. package/dist/server-telemetry.d.ts +0 -87
  1382. package/dist/settings-groups-ui.d.ts +0 -286
  1383. package/dist/settings-kit-script.d.ts +0 -21
  1384. package/dist/settings-kit.d.ts +0 -173
  1385. package/dist/settings-proofs.d.ts +0 -64
  1386. package/dist/setup-guide.d.ts +0 -39
  1387. package/dist/shared-deps.d.ts +0 -115
  1388. package/dist/sign-in-guard.d.ts +0 -70
  1389. package/dist/skills-ui.d.ts +0 -12
  1390. package/dist/skills.d.ts +0 -99
  1391. package/dist/slack-api.d.ts +0 -59
  1392. package/dist/slack-chat.d.ts +0 -37
  1393. package/dist/slack-settings.d.ts +0 -4
  1394. package/dist/slack-socket.d.ts +0 -12
  1395. package/dist/slack.d.ts +0 -6
  1396. package/dist/sleep.d.ts +0 -2
  1397. package/dist/source-key.d.ts +0 -2
  1398. package/dist/spend-report.d.ts +0 -87
  1399. package/dist/spend-ui.d.ts +0 -80
  1400. package/dist/spend.d.ts +0 -142
  1401. package/dist/sqlite-runtime.d.ts +0 -3
  1402. package/dist/sqlite-telemetry.d.ts +0 -9
  1403. package/dist/sso-settings.d.ts +0 -33
  1404. package/dist/sso-ui.d.ts +0 -26
  1405. package/dist/staged-runtimes.d.ts +0 -54
  1406. package/dist/steer-capabilities.d.ts +0 -32
  1407. package/dist/steer-controls.d.ts +0 -14
  1408. package/dist/steer-live.d.ts +0 -19
  1409. package/dist/steer-mailbox.d.ts +0 -46
  1410. package/dist/steer-status.d.ts +0 -25
  1411. package/dist/stop-proof.d.ts +0 -67
  1412. package/dist/storage-sweep-child.d.ts +0 -1
  1413. package/dist/storage-sweep-process.d.ts +0 -55
  1414. package/dist/storage-sweep-schedule.d.ts +0 -30
  1415. package/dist/storage-sweep.d.ts +0 -77
  1416. package/dist/storage-ui.d.ts +0 -23
  1417. package/dist/storage.d.ts +0 -68
  1418. package/dist/store-baseline.d.ts +0 -19
  1419. package/dist/store.d.ts +0 -8613
  1420. package/dist/stream-scope.d.ts +0 -18
  1421. package/dist/structured-output.d.ts +0 -57
  1422. package/dist/style-asset.d.ts +0 -7
  1423. package/dist/subagent-admin.d.ts +0 -53
  1424. package/dist/subagent-desk.d.ts +0 -59
  1425. package/dist/subagent-memory.d.ts +0 -65
  1426. package/dist/subagent-question.d.ts +0 -59
  1427. package/dist/subagent-tools.d.ts +0 -125
  1428. package/dist/subagent-week.d.ts +0 -68
  1429. package/dist/subagent-work.d.ts +0 -76
  1430. package/dist/subagents-ui.d.ts +0 -22
  1431. package/dist/subagents.d.ts +0 -146
  1432. package/dist/subscription-chat.d.ts +0 -54
  1433. package/dist/summary.d.ts +0 -33
  1434. package/dist/surface.d.ts +0 -49
  1435. package/dist/sweep-gate.d.ts +0 -10
  1436. package/dist/sweep-quarantine.d.ts +0 -29
  1437. package/dist/sync.d.ts +0 -94
  1438. package/dist/tailnet.d.ts +0 -11
  1439. package/dist/tamper-scan.d.ts +0 -4
  1440. package/dist/task-activity.d.ts +0 -27
  1441. package/dist/task-aliases.d.ts +0 -5
  1442. package/dist/task-archive.d.ts +0 -13
  1443. package/dist/task-base.d.ts +0 -39
  1444. package/dist/task-composer.d.ts +0 -14
  1445. package/dist/task-control.d.ts +0 -159
  1446. package/dist/task-live.d.ts +0 -8
  1447. package/dist/task-moves.d.ts +0 -90
  1448. package/dist/task-outcome-cli.d.ts +0 -30
  1449. package/dist/task-review-brief.d.ts +0 -69
  1450. package/dist/task-sizing.d.ts +0 -58
  1451. package/dist/task-source.d.ts +0 -77
  1452. package/dist/task-status.d.ts +0 -324
  1453. package/dist/task-text.d.ts +0 -31
  1454. package/dist/team-chat-authorization.d.ts +0 -11
  1455. package/dist/team-contract.d.ts +0 -103
  1456. package/dist/team-http.d.ts +0 -25
  1457. package/dist/team-leads.d.ts +0 -85
  1458. package/dist/team-runtime.d.ts +0 -25
  1459. package/dist/team-ui.d.ts +0 -4
  1460. package/dist/team-updates.d.ts +0 -8
  1461. package/dist/teams-api.d.ts +0 -33
  1462. package/dist/teams-chat.d.ts +0 -36
  1463. package/dist/teams-settings.d.ts +0 -14
  1464. package/dist/teams.d.ts +0 -24
  1465. package/dist/teardown-git.d.ts +0 -164
  1466. package/dist/telegram-flow.d.ts +0 -112
  1467. package/dist/telegram-lead.d.ts +0 -151
  1468. package/dist/telegram-live.d.ts +0 -116
  1469. package/dist/telegram-progress.d.ts +0 -20
  1470. package/dist/telegram-settings.d.ts +0 -9
  1471. package/dist/telegram-status.d.ts +0 -83
  1472. package/dist/telegram-team.d.ts +0 -68
  1473. package/dist/telegram.d.ts +0 -271
  1474. package/dist/templates.d.ts +0 -69
  1475. package/dist/terminal-catalog.d.ts +0 -11
  1476. package/dist/terminal-text.d.ts +0 -11
  1477. package/dist/test-infra.d.ts +0 -34
  1478. package/dist/test-temp.d.ts +0 -40
  1479. package/dist/text-limits.d.ts +0 -297
  1480. package/dist/tidy.d.ts +0 -130
  1481. package/dist/tier-report.d.ts +0 -44
  1482. package/dist/token-notices.d.ts +0 -11
  1483. package/dist/tokens-cli.d.ts +0 -21
  1484. package/dist/tool-broker.d.ts +0 -52
  1485. package/dist/tool-launcher.d.ts +0 -1
  1486. package/dist/tool-secret-store.d.ts +0 -167
  1487. package/dist/toolroll-update-cli.d.ts +0 -15
  1488. package/dist/toolroll-update-ui.d.ts +0 -47
  1489. package/dist/toolroll-update.d.ts +0 -265
  1490. package/dist/tools-ui.d.ts +0 -51
  1491. package/dist/transitions-recipes.d.ts +0 -1
  1492. package/dist/tree-proof.d.ts +0 -34
  1493. package/dist/tui-contract.d.ts +0 -144
  1494. package/dist/tui-source.d.ts +0 -14
  1495. package/dist/typed-start.d.ts +0 -51
  1496. package/dist/unfenced-test-support.d.ts +0 -2
  1497. package/dist/up-processes.d.ts +0 -162
  1498. package/dist/up-role-child.d.ts +0 -1
  1499. package/dist/update-notice.d.ts +0 -5
  1500. package/dist/vanished-retry.d.ts +0 -30
  1501. package/dist/verification-evidence.d.ts +0 -68
  1502. package/dist/version.d.ts +0 -2
  1503. package/dist/wake-hub.d.ts +0 -72
  1504. package/dist/webhook-limits.d.ts +0 -23
  1505. package/dist/webhook-readers.d.ts +0 -56
  1506. package/dist/webhook-signing.d.ts +0 -27
  1507. package/dist/webhooks.d.ts +0 -84
  1508. package/dist/welcome-facts.d.ts +0 -18
  1509. package/dist/when-html.d.ts +0 -40
  1510. package/dist/work-index.d.ts +0 -175
  1511. package/dist/work-summary.d.ts +0 -61
  1512. package/dist/workspace-motion.d.ts +0 -4
  1513. package/dist/workspace-revision.d.ts +0 -48
  1514. package/dist/workspace-ui.d.ts +0 -385
  1515. package/dist/worktree-notices.d.ts +0 -13
  1516. package/dist/worktree.d.ts +0 -365
  1517. package/dist/writes-mode.d.ts +0 -9
  1518. package/dist/youiyoux-intake.d.ts +0 -234
@@ -1,9 +1,3 @@
1
- /**
2
- * The world `toolroll release` acts on (release.ts): the gate checkout through git, GitHub through the signed-in `gh`,
3
- * the npm registry over HTTPS, the installed Toolroll through its own CLI (`--json`) and launchd definitions, and the
4
- * Homebrew tap through `gh`. Each call is bounded; none asks for or stores a credential — `gh`, npm and Toolroll use
5
- * the sign-ins this machine already has.
6
- */
7
1
  import { execFile, spawnSync } from "node:child_process";
8
2
  import { createHash } from "node:crypto";
9
3
  import { existsSync, lstatSync, mkdtempSync, readdirSync, readFileSync, realpathSync, rmSync } from "node:fs";
@@ -14,7 +8,6 @@ import { fileURLToPath } from "node:url";
14
8
  import { parse as parseYaml } from "yaml";
15
9
  import { sleep } from "./sleep.js";
16
10
  import { callLabel, readOnlyCall, retryCall, retryingExec, writeWithRecheck } from "./release-net.js";
17
- // Loaded on first use, like the store: a static import prints Node's SQLite warning before the CLI can quiet it.
18
11
  const sqlite = () => createRequire(import.meta.url)("node:sqlite");
19
12
  import { PROTECTION_MINIMUM_CHECKS, PROTECTION_REPORT_ONLY_CHECKS } from "./release.js";
20
13
  import { activeUpdateWork } from "./desktop-update-gate.js";
@@ -43,22 +36,18 @@ import { extractCommit } from "./commit-extract.js";
43
36
  import { teardownGit, refusal as gitRefusal } from "./teardown-git.js";
44
37
  import { RELEASE_REMOTE, releaseConfigProblem, releaseGitArgs, releaseGitEnv, releaseRemote, releaseTools } from "./release-git.js";
45
38
  export { RELEASE_PATH, RELEASE_REMOTE, releaseConfigProblem, releaseGitArgs, releaseGitEnv, releaseRemote, releaseTools } from "./release-git.js";
46
- /** A child process, its output kept whole; a missing program or a time limit is exit 127 or 124, never a throw. */
47
39
  export const exec = (command, args, options = {}) => new Promise(done => {
48
40
  const child = execFile(command, [...args], { cwd: options.cwd, env: options.env ?? process.env, timeout: options.timeoutMs ?? 120_000, maxBuffer: 64 * 1024 * 1024, encoding: "utf8" }, (error, stdout, stderr) => {
49
41
  const failure = error;
50
42
  const code = failure === null ? 0 : failure.code === "ENOENT" ? 127 : failure.killed === true ? 124 : typeof failure.code === "number" ? failure.code : 1;
51
43
  done({ code, stdout: String(stdout ?? ""), stderr: String(stderr ?? "") });
52
44
  });
53
- // `input`: written on the child's stdin, then closed (a secret that must never ride in argv).
54
45
  child.stdin?.on("error", () => { });
55
46
  if (options.input !== undefined)
56
47
  child.stdin?.end(options.input);
57
48
  else
58
49
  child.stdin?.end();
59
50
  });
60
- /** Without NODE_OPTIONS, which a test runner or debugger may have left for this process. */
61
- /** This runtime's own CLI (dist/bin.js beside this module) when it has one; from source, `toolroll` as installed. */
62
51
  const ownCli = () => {
63
52
  const bin = join(dirname(fileURLToPath(import.meta.url)), "bin.js");
64
53
  return existsSync(bin) ? [process.execPath, bin] : ["toolroll"];
@@ -68,7 +57,6 @@ const cleanEnv = (extra = {}) => {
68
57
  delete env["NODE_OPTIONS"];
69
58
  return env;
70
59
  };
71
- /** A failed call, in the words every release stop uses: what, its exit code and the last lines it printed. */
72
60
  const failed = (result, what) => new Error(`${what} failed (exit ${result.code}): ${(result.stderr || result.stdout).trim().split("\n").slice(-3).join(" ")}`);
73
61
  const must = async (run, what) => {
74
62
  const result = await run;
@@ -76,12 +64,10 @@ const must = async (run, what) => {
76
64
  throw failed(result, what);
77
65
  return result.stdout;
78
66
  };
79
- /** owner/name from an https or ssh GitHub remote. */
80
67
  export function githubSlug(url) {
81
68
  const match = /github\.com[:/]([^/\s]+)\/([^/\s]+?)(?:\.git)?\/?$/.exec(url.trim());
82
69
  return match === null ? null : `${match[1]}/${match[2]}`;
83
70
  }
84
- /** The runtime (a `dist` folder, resolved) each launchd service of Toolroll runs: its definition names `<dist>/cli.js`. */
85
71
  export function serviceRuntimes(agents = join(homedir(), "Library", "LaunchAgents")) {
86
72
  let names = [];
87
73
  try {
@@ -98,7 +84,6 @@ export function serviceRuntimes(agents = join(homedir(), "Library", "LaunchAgent
98
84
  }
99
85
  return [...new Set(found)];
100
86
  }
101
- /** The runtime each CLI name resolves to on PATH: the `dist` folder its `bin.js` sits in, or null when not linked there. */
102
87
  export function cliRuntimes(path = process.env["PATH"] ?? "", names = ["toolroll", "standing-orders"]) {
103
88
  return names.map(name => {
104
89
  for (const dir of path.split(delimiter).filter(Boolean)) {
@@ -119,7 +104,6 @@ catch {
119
104
  } };
120
105
  const object = (value) => (value !== null && typeof value === "object" && !Array.isArray(value) ? value : {});
121
106
  const textOr = (value) => (typeof value === "string" && value !== "" ? value : null);
122
- /** `task show --json`, read as the release needs it. */
123
107
  export function gateStateOf(answer, accounts = []) {
124
108
  if (answer["ok"] !== true)
125
109
  return { exists: false, candidate: null, scopeDigest: null, approval: null, result: null, failed: null, completion: null };
@@ -134,11 +118,9 @@ export function gateStateOf(answer, accounts = []) {
134
118
  const completion = object(assignment["completion"]);
135
119
  const approvedAt = textOr(scope["approvedAt"]), approvedBy = textOr(scope["approvedBy"]), approvedDigest = textOr(scope["approvedDigest"]);
136
120
  const account = accounts.map(object).find(one => one["name"] === approvedBy);
137
- // A newer finished build than the result, with no result of its own, failed before its check could seal one.
138
121
  const failed = newest !== undefined && newest["finishedAt"] != null && newest["outcome"] !== "built" && newest["outcome"] !== "no-change" && Number(newest["id"]) !== resultRun
139
122
  ? `run ${String(newest["id"])} ended ${String(newest["outcome"] ?? "without an outcome")}` : null;
140
123
  const worktree = runs.find(run => run["id"] === resultRun)?.["worktree"];
141
- // Queued again or still building past the result shown (a regate): that result is the one before the rerun.
142
124
  const state = object(answer["task"])["state"];
143
125
  const pending = resultRun !== null && (state === "queued" || state === "running" || (newest !== undefined && newest["finishedAt"] == null && Number(newest["id"]) > resultRun));
144
126
  return {
@@ -161,14 +143,12 @@ export function gateStateOf(answer, accounts = []) {
161
143
  completion: textOr(completion["digest"]) === null ? null : { actor: String(completion["actor"]), at: String(completion["at"]), digest: String(completion["digest"]) },
162
144
  };
163
145
  }
164
- /** Every process on this machine (`ps`): pid and full command line. */
165
146
  export function processes() {
166
147
  const listed = spawnSync("/bin/ps", ["-axww", "-o", "pid=,command="], { encoding: "utf8", maxBuffer: 64 * 1024 * 1024 });
167
148
  if (listed.status !== 0)
168
149
  throw new Error(`ps failed: ${listed.stderr.trim()}`);
169
150
  return listed.stdout.split("\n").map(line => /^\s*(\d+)\s+(.*)$/.exec(line)).filter(match => match !== null).map(match => ({ pid: Number(match[1]), command: match[2] }));
170
151
  }
171
- /** The final line of deploy-browser's output that is a JSON object: its `runtime` (a dist folder), when it has one. */
172
152
  export function deployedRuntime(stdout) {
173
153
  const last = stdout.trim().split("\n").reverse().find(line => line.startsWith("{"));
174
154
  try {
@@ -179,8 +159,6 @@ export function deployedRuntime(stdout) {
179
159
  return null;
180
160
  }
181
161
  }
182
- /** What a deployment's stage says about the update pause: its id and phase when the journal is before the swap and the
183
- * live database's pause is that deployment's. `owner` reads the live pause's owner. */
184
162
  export function stageGate(stage, owner) {
185
163
  let journal;
186
164
  try {
@@ -192,7 +170,6 @@ export function stageGate(stage, owner) {
192
170
  const id = textOr(journal["id"]), phase = textOr(journal["phase"]);
193
171
  return id !== null && phase !== null && BEFORE_SWAP.includes(phase) && owner() === id ? { id, phase } : null;
194
172
  }
195
- /** The recorded repository for a gate checkout, from the plane's database; throws in plain words when there is none. */
196
173
  export function recordedReleaseRepo(database, checkout) {
197
174
  const real = (path) => { try {
198
175
  return realpathSync(path);
@@ -234,7 +211,6 @@ export function recordedReleaseRepo(database, checkout) {
234
211
  }
235
212
  return { checkout: at, gitDir, remote, ...parsed };
236
213
  }
237
- /** How many times, and how far apart, a merged branch's deletion is looked for after the push lost a race. */
238
214
  export const BRANCH_GONE_LOOKS = 5;
239
215
  export const BRANCH_GONE_PAUSE_MS = 2_000;
240
216
  export function releaseAdapters(options) {
@@ -247,18 +223,11 @@ export function releaseAdapters(options) {
247
223
  const tools = options.tools ?? releaseTools();
248
224
  const gitEnv = releaseGitEnv();
249
225
  const say = options.say ?? ((line) => { process.stdout.write(`${line}\n`); });
250
- /** A short network failure on the way to GitHub (release-net.ts): reads are asked again for up to ~3 minutes; a
251
- * write never is, unless GitHub says it didn't happen (writeWithRecheck). */
252
226
  const net = { say, sleep: options.sleep ?? sleep, ...(options.now === undefined ? {} : { now: options.now }) };
253
227
  const reads = retryingExec(run, net);
254
- // Never a PATH lookup or the checkout's Git config: gh by its absolute path, from a neutral folder, naming the repo.
255
- // Reads ride out a short network failure; anything that isn't provably a read passes straight through (readOnlyCall).
256
228
  const gh = (...args) => reads(tools.gh, args, { cwd: "/", env: gitEnv });
257
- /** A write by gh, never retried by itself. */
258
229
  const ghWrite = (remainingMs, ...args) => run(tools.gh, args, { cwd: "/", env: gitEnv, timeoutMs: Math.min(120_000, remainingMs) });
259
230
  const ghJson = async (what, ...args) => JSON.parse(await must(gh(...args), what));
260
- // The build running this release, never a PATH lookup: until the link step, `toolroll` on PATH is still the previous
261
- // build, which refuses a database the deployment migrated, so a release resumed after its deploy couldn't read its task.
262
231
  const cli = options.cli ?? ownCli();
263
232
  const toolroll = async (...args) => {
264
233
  const result = await run(cli[0], [...cli.slice(1), ...args, "--json"], { env: cleanEnv(), timeoutMs: 120_000 });
@@ -270,8 +239,6 @@ export function releaseAdapters(options) {
270
239
  }
271
240
  };
272
241
  const refused = (answer) => `${String(answer["message"] ?? answer["reason"] ?? "refused")}`;
273
- /** gh for every CI and merge-base read (auto-approve-green.md): found only in the system's own folders, never the
274
- * caller's PATH (a test hands its own). */
275
242
  const ciGh = options.tools?.gh ?? releaseTools("").gh;
276
243
  const observeCi = async (sha) => {
277
244
  const observedAt = (options.now ?? (() => new Date()))().toISOString();
@@ -281,18 +248,11 @@ export function releaseAdapters(options) {
281
248
  };
282
249
  const database = options.database ?? databasePath(process.env, homedir());
283
250
  let recorded = options.releaseRepo ?? null;
284
- /** The recorded repository, read once (chat-management.md §0a.2). */
285
251
  const releaseRepo = () => recorded ??= recordedReleaseRepo(database, checkout);
286
- /**
287
- * The coordinator's one way to run Git (§0a.2): on the recorded Git directory, hardened, with an allowlisted
288
- * environment and the absolute Git. Every attempt uses the shared runner's private view: the audited config is
289
- * the exact copy Git reads, so a build cannot redirect a command after its config was checked.
290
- */
291
252
  const git = async (...args) => {
292
253
  const repo = releaseRepo();
293
254
  const full = [...releaseGitArgs(repo, tools), ...args];
294
255
  const stop = (why) => new Error(`Toolroll won't run Git in ${repo.checkout} for a release: ${why}. Remove it from the project's Git config, then rerun.`);
295
- // The checkout's config is read again right before EVERY attempt, a retried one included (checked at the moment of use).
296
256
  const once = async (remainingMs = 120_000) => {
297
257
  const now = () => (options.now ?? (() => new Date()))().getTime();
298
258
  const started = now();
@@ -305,8 +265,6 @@ export function releaseAdapters(options) {
305
265
  throw stop(`its Git config sets ${setting}, which a release doesn't run with (it could run a command, or change where Git connects or what it sends)`);
306
266
  };
307
267
  if (options.releaseRepo === undefined) {
308
- // The shared runner pins both Git directories and freezes config/info in the plane's fenced view folder.
309
- // Its private paths replace releaseGitArgs' first two directory flags; the recorded remote stays fixed.
310
268
  const viewed = teardownGit(async (_command, argv, runOptions) => {
311
269
  const timeoutMs = left();
312
270
  if (timeoutMs <= 0)
@@ -323,7 +281,6 @@ export function releaseAdapters(options) {
323
281
  throw stop(why);
324
282
  return result;
325
283
  }
326
- // Injected repository/exec fixtures have no on-disk checkout, but exercise the same config policy per attempt.
327
284
  if (left() <= 0)
328
285
  return { code: 124, stdout: "", stderr: "the network retry budget ran out" };
329
286
  const listing = await run(tools.git, [`--git-dir=${repo.gitDir}`, "--no-optional-locks", "config", "--list", "--no-includes", "--show-scope", "-z"], { cwd: "/", env: gitEnv, timeoutMs: left() });
@@ -332,10 +289,8 @@ export function releaseAdapters(options) {
332
289
  return { code: 124, stdout: "", stderr: "the network retry budget ran out" };
333
290
  return run(tools.git, full, { cwd: repo.checkout, env: gitEnv, timeoutMs: left() });
334
291
  };
335
- // ls-remote and fetch ride out a short network failure; a push or a local command is never retried (readOnlyCall).
336
292
  return readOnlyCall(tools.git, full) === null ? once() : retryCall(once, callLabel(tools.git, full), net);
337
293
  };
338
- /** The remote every fetch, look and push names: the recorded URL, defined only on the command line. */
339
294
  const remoteUrl = () => RELEASE_REMOTE;
340
295
  const liveOwner = () => {
341
296
  if (!existsSync(database))
@@ -349,13 +304,10 @@ export function releaseAdapters(options) {
349
304
  }
350
305
  };
351
306
  const tail = (result) => (result.stderr || result.stdout).trim().split("\n").slice(-4).join(" ") || `exit ${result.code}`;
352
- /** A deployment that stopped: in words, with the pause it left when that pause is before the swap. */
353
307
  const stopped = (stage, message) => {
354
308
  const gate = stageGate(stage, liveOwner);
355
309
  return gate === null ? { ok: false, message } : { ok: false, message, gate };
356
310
  };
357
- /** The deployment gate in this runtime (deploy-gate.ts): a person's approval, the passing check, the exact completed
358
- * result. Its answer names the approved commit and the project it belongs to, from the plane's own records. */
359
311
  const proveCandidate = (runId) => {
360
312
  if (!existsSync(database))
361
313
  return { ok: false, message: "The plane's database isn't here, so the candidate can't be proven." };
@@ -370,7 +322,6 @@ export function releaseAdapters(options) {
370
322
  db.close();
371
323
  }
372
324
  };
373
- /** The run's recorded commit and project, for recovery (which needs no approval). */
374
325
  const recordedCommit = (runId) => {
375
326
  if (!existsSync(database))
376
327
  return null;
@@ -386,13 +337,6 @@ export function releaseAdapters(options) {
386
337
  db.close();
387
338
  }
388
339
  };
389
- /**
390
- * The approved commit, written by this runtime into a fresh folder it owns (commit-extract.ts): every regular file of
391
- * that full SHA, read byte for byte from the PROJECT's own Git directory as Toolroll records it (realpath, a real
392
- * directory — never the candidate worktree's `.git` pointer or anything in that worktree), with no filter, attribute,
393
- * replacement object, lazy fetch, hook or outside config, and no symlink or submodule. The deployment script runs
394
- * from here, so nothing changed, flagged, swapped or untracked in the worktree, nor its Git pointer, changes what runs.
395
- */
396
340
  const extractApproved = async (repo, head) => {
397
341
  let gitDir;
398
342
  try {
@@ -412,13 +356,11 @@ export function releaseAdapters(options) {
412
356
  }
413
357
  return { ok: true, dir, gitDir };
414
358
  };
415
- /** The approved commit's own deployment script, from the pristine extraction; the worktree is only its --source. */
416
359
  const deployScript = async (worktree, stage, runId, commit, extra, input) => {
417
360
  const extracted = await extractApproved(commit.repo, commit.head);
418
361
  if (!extracted.ok)
419
362
  return { code: 1, stdout: "", stderr: extracted.message };
420
363
  try {
421
- // The script node runs is the extraction's own regular file, by its real path inside the folder.
422
364
  let script;
423
365
  try {
424
366
  script = realpathSync(join(extracted.dir, "scripts", "deploy-browser.mjs"));
@@ -440,22 +382,16 @@ export function releaseAdapters(options) {
440
382
  const release = storeReleaseAdapter(() => openStore(database), store => store.close(), options.now ?? (() => new Date()), undefined, { observe: sha => observeCi(sha), mergeBase: (base, sha) => readMergeBase(reads, ciGh, releaseRepo().slug, base, sha),
441
383
  upToDateRequired: () => readUpToDateRequired(reads, ciGh, releaseRepo().slug), evidenceRoot: join(dirname(database), "evidence"),
442
384
  macosCases: sha => macosCasesOf(run, ciGh, releaseRepo().slug, sha),
443
- // A successful Actions job authenticates the job, not the candidate-writable JSON it uploads. Until the
444
- // executor protects that reporting channel, production releases must take the person's approval road.
445
- reportsProtected: false },
446
- // A boundary's one bounded read of GitHub's nightly: plain exec, never the release's long retries (20 s in all).
447
- githubReads(run, ciGh));
385
+ reportsProtected: false }, githubReads(run, ciGh));
448
386
  return {
449
387
  ...(existsSync(database) ? { release, progress: releaseProgressRecorder(() => openStore(database), store => store.close()) } : {}),
450
388
  now: options.now ?? (() => new Date()),
451
389
  sleep: options.sleep ?? sleep,
452
390
  say,
453
391
  repo: {
454
- // The recorded owner/name, never the checkout's origin.
455
392
  async github() { return releaseRepo().slug; },
456
393
  async sync(branch) {
457
394
  await must(git("fetch", "--quiet", "--no-tags", remoteUrl(), "+refs/heads/main:refs/remotes/origin/main"), "git fetch main");
458
- // A merged branch may be gone from GitHub; its commit is already here.
459
395
  await git("fetch", "--quiet", "--no-tags", remoteUrl(), `+refs/heads/${branch}:refs/remotes/origin/${branch}`);
460
396
  const current = (await git("symbolic-ref", "--quiet", "--short", "HEAD")).stdout.trim();
461
397
  if (current === "main") {
@@ -483,8 +419,6 @@ export function releaseAdapters(options) {
483
419
  const pushed = await git("push", "--no-verify", `--force-with-lease=${ref}:${head}`, remoteUrl(), `:${ref}`);
484
420
  if (pushed.code === 0)
485
421
  return;
486
- // GitHub may delete a merged branch itself between the look and the push; gone is what was wanted. Its refs can
487
- // lag the deletion by a few seconds, so look a few times before calling it a failure.
488
422
  for (let look = 0; look < BRANCH_GONE_LOOKS; look++) {
489
423
  if (look > 0)
490
424
  await pause(BRANCH_GONE_PAUSE_MS);
@@ -503,7 +437,6 @@ export function releaseAdapters(options) {
503
437
  toolroll: {
504
438
  async installed() { return { services: serviceRuntimes(), clis: cliRuntimes() }; },
505
439
  async runtimeCommit(runtime) {
506
- // deploy-browser writes this beside node_modules, not in the package's own manifest (whose version can repeat).
507
440
  try {
508
441
  const candidate = object(JSON.parse(readFileSync(join(runtime, "..", "..", "..", "package.json"), "utf8")))["candidate"];
509
442
  return typeof candidate === "string" && /^[0-9a-f]{40}$/.test(candidate) ? candidate : null;
@@ -540,7 +473,6 @@ export function releaseAdapters(options) {
540
473
  async busy() {
541
474
  const db = new (sqlite().DatabaseSync)(database, { readOnly: true });
542
475
  try {
543
- // Match the deploy guard, including unfinished runs whose claim is gone. Keep one read snapshot.
544
476
  db.exec("BEGIN");
545
477
  const work = activeUpdateWork(db);
546
478
  const tasks = db.prepare(`SELECT DISTINCT external_id FROM task_ref WHERE id IN (
@@ -556,15 +488,9 @@ export function releaseAdapters(options) {
556
488
  }
557
489
  },
558
490
  async deploy({ run: runId, worktree, stage, operation }) {
559
- // Approval policy §1.7: this runtime proves the candidate FIRST — a person approved it, its exact result passed
560
- // the approved check and is complete, and the checkout is exactly that commit — before anything from the
561
- // candidate's checkout runs. The candidate's own script never decides its own deployment.
562
491
  const proven = proveCandidate(runId);
563
492
  if (!proven.ok)
564
493
  return stopped(stage, proven.message);
565
- // The approved commit's own deployment, extracted by this runtime: drain, backup, rehearsal, swap, health. Its
566
- // last JSON line names the runtime it installed; the CLI names are moved to it by the release's link step.
567
- // The operation the coordinator reserved, adopted by the deploy run with its secret on stdin (never in argv).
568
494
  const result = await deployScript(worktree, stage, runId, proven, ["--yes", ...(operation === undefined ? [] : ["--operation", operation.id])], operation?.secret);
569
495
  const runtime = deployedRuntime(result.stdout);
570
496
  if (result.code !== 0 || runtime === null)
@@ -572,16 +498,11 @@ export function releaseAdapters(options) {
572
498
  return { ok: true, runtime };
573
499
  },
574
500
  async recoverDeploy({ run: runId, worktree, stage }) {
575
- // Before prepare saves deployment.json, staging has not touched the service or admission gate.
576
501
  if (!existsSync(join(stage, "deployment.json")))
577
502
  return { ok: true };
578
- // A deployment that outlived a killed release is still at work: recovering under it would race it.
579
503
  const running = (options.processes ?? processes)().filter(one => one.command.includes("deploy-browser.mjs") && one.command.includes(stage));
580
504
  if (running.length > 0)
581
505
  return { ok: false, message: `the deployment is still running (process ${running.map(one => one.pid).join(", ")}); let it finish, then rerun` };
582
- // The new service was started (the phase table's "forward" rows, deploy-phase.ts): the release resumes it
583
- // forward with the deployment's own finish (health, both consoles, leases, then the pause lifted).
584
- // Finishing deploys, so the candidate is proven first, as for a deploy.
585
506
  const journalPhase = () => { try {
586
507
  return object(JSON.parse(readFileSync(join(stage, "deployment.json"), "utf8")))["phase"];
587
508
  }
@@ -600,10 +521,6 @@ export function releaseAdapters(options) {
600
521
  }
601
522
  else
602
523
  why = proven.message;
603
- // Once the new service was recorded as started, a journal alone never rolls it back: the release stops here.
604
- // Still at "starting" (killed while waiting for the new service; finish only looks, and it did not find it
605
- // running): the deployment's own recovery puts the previous service back, and only when it proves the new
606
- // one gone. That needs no approval of the candidate, exactly as below.
607
524
  if (journalPhase() !== "starting")
608
525
  return stopped(stage, why);
609
526
  const recorded = recordedCommit(runId);
@@ -614,14 +531,12 @@ export function releaseAdapters(options) {
614
531
  return { ok: true };
615
532
  return stopped(stage, `${why} The previous service was not put back either: ${tail(back)}`);
616
533
  }
617
- // Recovery needs no approval, but it runs only the recorded commit's own script, extracted by this runtime.
618
534
  const recorded = recordedCommit(runId);
619
535
  if (recorded === null)
620
536
  return stopped(stage, `Run ${runId} names no commit to recover with.`);
621
537
  const result = await deployScript(worktree, stage, runId, recorded, ["--phase", "recover"]);
622
538
  if (result.code === 0)
623
539
  return { ok: true };
624
- // Killed while preparing, before it paused anything: nothing to undo (its journal is kept).
625
540
  const journal = (() => { try {
626
541
  return object(JSON.parse(readFileSync(join(stage, "deployment.json"), "utf8")));
627
542
  }
@@ -633,7 +548,6 @@ export function releaseAdapters(options) {
633
548
  return stopped(stage, `${tail(result)} (the deployment journal is at ${String(journal["phase"] ?? "an unreadable phase")}; ${join(stage, "deployment.json")})`);
634
549
  },
635
550
  async deploymentIdle(stage) {
636
- // Whatever the stage: no deployment is running, and no update pause is held.
637
551
  if ((options.processes ?? processes)().some(one => one.command.includes("deploy-browser.mjs")))
638
552
  return false;
639
553
  if (liveOwner() !== null)
@@ -641,10 +555,8 @@ export function releaseAdapters(options) {
641
555
  if (stage === null)
642
556
  return false;
643
557
  const journalFile = join(stage, "deployment.json");
644
- // Never prepared: staging touched neither the service nor the update pause.
645
558
  if (!existsSync(journalFile))
646
559
  return true;
647
- // Its journal lock is free (nothing holds the journal), and it stopped where nothing changed, or finished.
648
560
  try {
649
561
  acquireDeploymentLock(journalFile, 0).release();
650
562
  }
@@ -676,7 +588,6 @@ export function releaseAdapters(options) {
676
588
  }));
677
589
  return prs.find(one => one.state === "open") ?? prs.filter(one => one.state === "merged").sort((a, b) => b.number - a.number)[0] ?? null;
678
590
  },
679
- // Every attempt (filter=all), with its app, check suite and commit: the release judges each job by its latest attempt.
680
591
  async checks(repo, sha, options) { return readCheckRuns(reads, ciGh, repo, sha, options); },
681
592
  async complete(repo, sha) { return readSuitesComplete(reads, ciGh, repo, sha); },
682
593
  async mainHead(repo) { return readMainHead(reads, ciGh, repo); },
@@ -684,9 +595,6 @@ export function releaseAdapters(options) {
684
595
  async updateBranch(repo, pr, expectedHead) { return updatePullRequestBranch(reads, ciGh, repo, pr, expectedHead); },
685
596
  async upToDateRequired(repo) { return readMainProtection(reads, ciGh, repo); },
686
597
  async merge(repo, pr, head, message) {
687
- // The squash commit's message lists every commit that landed after the approval (release-once.md). Never asked
688
- // again under stale approval/lease/CI checks: reconcile a lost answer, but another write needs a fresh
689
- // coordinator pass through those guards. A PR still being open proves none of them.
690
598
  return writeWithRecheck(`merging #${pr}`, { ...net, maxAttempts: 1 }, {
691
599
  write: remaining => ghWrite(remaining, "api", "-X", "PUT", `repos/${repo}/pulls/${pr}/merge`, "-f", "merge_method=squash", "-f", `sha=${head}`, ...(message === undefined ? [] : ["-f", `commit_message=${message}`])),
692
600
  accept: result => {
@@ -726,9 +634,6 @@ export function releaseAdapters(options) {
726
634
  homebrew: {
727
635
  repo: tap,
728
636
  async checked(head) {
729
- // Only a workflow that runs on pull requests (or pushes) puts checks on the tap's change; apps that open a
730
- // check suite and never run it don't count. Workflows are read as the change has them and as the tap's default
731
- // branch has them (pull_request_target runs from there); a file this can't read counts as checking.
732
637
  for (const ref of [head, await defaultBranch()]) {
733
638
  const listed = await gh("api", `repos/${tap}/contents/.github/workflows?ref=${encodeURIComponent(ref)}`, "--jq", ".[] | select(.type == \"file\") | .path");
734
639
  if (listed.code !== 0) {
@@ -749,7 +654,6 @@ export function releaseAdapters(options) {
749
654
  return false;
750
655
  },
751
656
  async statuses(head) {
752
- // The older commit-status API, which some CI reports through instead of checks; newest first, so reversed.
753
657
  const out = await must(gh("api", "--paginate", `repos/${tap}/commits/${head}/statuses?per_page=100`, "--jq", ".[] | {context, state}"), "gh api statuses");
754
658
  return out.split("\n").filter(Boolean).map(line => object(JSON.parse(line))).reverse().map((one) => {
755
659
  const state = String(one["state"]);
@@ -761,11 +665,9 @@ export function releaseAdapters(options) {
761
665
  const current = await formulaAt(branch);
762
666
  if (current.text.includes(`-${version}.tgz`))
763
667
  return { kind: "current" };
764
- // Ordering (pipeline-speed.md, P1): a tap already on a later version is never moved back by an older release.
765
668
  const named = formulaVersion(current.text);
766
669
  if (named !== null && versionAfter(named, version))
767
670
  return { kind: "newer", version: named };
768
- // Only a change from the tap's own branch counts: a fork's pull request of the same branch name never does.
769
671
  const open = (await ghJson("gh pr list", "pr", "list", "--repo", tap, "--head", brewBranch(version), "--state", "open", "--json", "number,headRefOid,headRepository,headRepositoryOwner,isCrossRepository"));
770
672
  const own = open.filter(one => tapOwnHead(one, tap));
771
673
  if (own.length > 1)
@@ -787,11 +689,9 @@ export function releaseAdapters(options) {
787
689
  throw new Error("The tap current version is unreadable or newer; no downgrade was proposed.");
788
690
  const next = bumpFormula(current.text, tarball, sha256);
789
691
  const branch = brewBranch(version);
790
- // A branch left by an earlier attempt is reused.
791
692
  const made = await gh("api", "-X", "POST", `repos/${tap}/git/refs`, "-f", `ref=refs/heads/${branch}`, "-f", `sha=${baseSha}`);
792
693
  if (made.code !== 0 && !/Reference already exists/.test(made.stderr + made.stdout))
793
694
  throw new Error(`creating ${tap} ${branch}: ${made.stderr.trim()}`);
794
- // A branch left by an earlier attempt starts again from the base (security scan): none of its history is kept.
795
695
  if (made.code !== 0)
796
696
  await must(gh("api", "-X", "PATCH", `repos/${tap}/git/refs/heads/${branch}`, "-f", `sha=${baseSha}`, "-F", "force=true"), `resetting ${tap} ${branch}`);
797
697
  const onBranch = await formulaAt(branch);
@@ -803,12 +703,9 @@ export function releaseAdapters(options) {
803
703
  return { pr: Number(opened["number"]), head: String(opened["headRefOid"]) };
804
704
  },
805
705
  async verified(pr, head, version) {
806
- // The change at exactly `head` is the tap's own, and its formula is exactly today's formula with npm's published
807
- // tarball and that tarball's own sha256: nothing else is ever merged.
808
706
  const view = object(await ghJson("gh pr view", "pr", "view", String(pr), "--repo", tap, "--json", "number,headRefOid,headRefName,baseRefName,headRepository,headRepositoryOwner,isCrossRepository,state"));
809
707
  const base = await defaultBranch();
810
708
  const baseHead = String(object(object(await ghJson("gh api git/ref", "api", `repos/${tap}/git/ref/heads/${base}`))["object"])["sha"]);
811
- // The whole change against the tap's default branch head: its merge base, its commits and every file it touches.
812
709
  const compare = object(await ghJson("gh api compare", "api", `repos/${tap}/compare/${encodeURIComponent(baseHead)}...${encodeURIComponent(head)}`));
813
710
  const tarball = `https://registry.npmjs.org/toolroll/-/toolroll-${version}.tgz`;
814
711
  const response = await get(tarball, { signal: AbortSignal.timeout(60_000) });
@@ -835,7 +732,6 @@ export function releaseAdapters(options) {
835
732
  },
836
733
  },
837
734
  };
838
- /** A tag's commit as GitHub answers now (an annotated tag: the commit it names), or null when there is no such tag. */
839
735
  async function readTag(repo, tag, bounded = net) {
840
736
  const read = (path) => retryingExec(run, bounded)(tools.gh, ["api", path], { cwd: "/", env: gitEnv });
841
737
  const result = await read(`repos/${repo}/git/ref/tags/${tag}`);
@@ -849,8 +745,6 @@ export function releaseAdapters(options) {
849
745
  return String(target["sha"]);
850
746
  return String(object(object(JSON.parse(await must(read(`repos/${repo}/git/tags/${String(target["sha"])}`), "gh api git/tags")))["object"])["sha"]);
851
747
  }
852
- /** Whether a pull request is merged from exactly `head` (its merge commit), still open at `head` (not merged), or
853
- * anything else — read after a merge's answer was lost. */
854
748
  async function pullMergedAt(repo, pr, head, base, bounded, message) {
855
749
  const read = async (path) => object(JSON.parse(await must(retryingExec(run, bounded)(tools.gh, ["api", path], { cwd: "/", env: gitEnv }), "gh api merge recovery")));
856
750
  const pull = await read(`repos/${repo}/pulls/${pr}`);
@@ -858,7 +752,6 @@ export function releaseAdapters(options) {
858
752
  if (at !== head || object(pull["base"])["ref"] !== base)
859
753
  return { state: "other", why: `#${pr} is no longer open at ${head.slice(0, 7)} into ${base}` };
860
754
  if (pull["merged"] === true && pull["state"] === "closed" && typeof commit === "string" && /^[0-9a-f]{40}$/.test(commit)) {
861
- // Another caller may have merged it. Only the same squash result counts, never merely "merged=true".
862
755
  const source = await read(`repos/${repo}/git/commits/${head}`);
863
756
  const merged = await read(`repos/${repo}/git/commits/${commit}`);
864
757
  const tree = object(source["tree"])["sha"], parents = merged["parents"];
@@ -881,15 +774,8 @@ export function releaseAdapters(options) {
881
774
  }
882
775
  }
883
776
  const brewBranch = (version) => `toolroll-${version}`;
884
- /**
885
- * Why a tap change isn't exactly the formula bump this release proposed (security scan), or null when it is: the tap's
886
- * own open pull request number `pr` at exactly `head`, from its version branch into the default branch; compared with
887
- * the default branch's head it is one commit on top of exactly that head, changing exactly one file, the formula; and
888
- * the formula there is exactly today's with npm's published tarball and that tarball's own sha256.
889
- */
890
777
  export function tapChangeProblem(input) {
891
778
  const { tap, pr, head, version, view, compare } = input;
892
- // State may have changed since the coordinator checked it. Judge the immutable base used for this comparison.
893
779
  if (input.baseVersion === null)
894
780
  return `${tap} current version cannot be read`;
895
781
  if (versionAfter(input.baseVersion, version))
@@ -911,7 +797,6 @@ export function tapChangeProblem(input) {
911
797
  return `${tap} #${pr}'s formula isn't npm's ${version} tarball with its sha256 ${input.sha256.slice(0, 12)}`;
912
798
  return null;
913
799
  }
914
- /** Whether a pull request's head is a branch of the tap itself (never a fork's). */
915
800
  export function tapOwnHead(pr, tap) {
916
801
  const [owner, name] = tap.split("/");
917
802
  const repo = pr["headRepository"], who = pr["headRepositoryOwner"];
@@ -920,12 +805,10 @@ export function tapOwnHead(pr, tap) {
920
805
  return pr["isCrossRepository"] === false && typeof repoName === "string" && typeof ownerLogin === "string"
921
806
  && repoName.toLowerCase() === (name ?? "").toLowerCase() && ownerLogin.toLowerCase() === (owner ?? "").toLowerCase();
922
807
  }
923
- /** The version a formula's tarball url names (`…/toolroll-<x.y.z>.tgz`), or null. */
924
808
  export function formulaVersion(text) {
925
809
  const found = /^\s*url "[^"]*-(\d+\.\d+\.\d+)\.tgz"/m.exec(text);
926
810
  return found === null ? null : found[1];
927
811
  }
928
- /** Whether version `a` comes after `b` (both x.y.z). */
929
812
  export function versionAfter(a, b) {
930
813
  const pa = a.split(".").map(Number), pb = b.split(".").map(Number);
931
814
  for (let i = 0; i < 3; i++)
@@ -933,13 +816,7 @@ export function versionAfter(a, b) {
933
816
  return (pa[i] ?? 0) > (pb[i] ?? 0);
934
817
  return false;
935
818
  }
936
- /** The events that put checks on a change. */
937
819
  const CHANGE_EVENTS = new Set(["pull_request", "pull_request_target", "push", "merge_group"]);
938
- /**
939
- * Whether a workflow's triggers (its top-level `on:` as a name, a list or a map) include a change to the repository.
940
- * A file that doesn't parse, or whose triggers aren't one of those shapes, counts as running, so the release waits
941
- * rather than skipping checks it owes.
942
- */
943
820
  export function workflowRunsOnChange(text) {
944
821
  let parsed;
945
822
  try {
@@ -951,7 +828,6 @@ export function workflowRunsOnChange(text) {
951
828
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed))
952
829
  return true;
953
830
  const workflow = parsed;
954
- // YAML 1.1 readers take a bare `on` for true; either key names the triggers.
955
831
  const on = "on" in workflow ? workflow["on"] : workflow["true"];
956
832
  const events = typeof on === "string" ? [on]
957
833
  : Array.isArray(on) ? on
@@ -961,13 +837,11 @@ export function workflowRunsOnChange(text) {
961
837
  return true;
962
838
  return events.some(one => CHANGE_EVENTS.has(one));
963
839
  }
964
- /** The formula with its first `url` and `sha256` replaced; anything else is left exactly as it was. */
965
840
  export function bumpFormula(text, url, sha256) {
966
841
  if (!/^\s*url "[^"]*"/m.test(text) || !/^\s*sha256 "[0-9a-f]{64}"/m.test(text))
967
842
  throw new Error("the formula has no url and sha256 lines to update");
968
843
  return text.replace(/^(\s*url ")[^"]*(")/m, `$1${url}$2`).replace(/^(\s*sha256 ")[0-9a-f]{64}(")/m, `$1${sha256}$2`);
969
844
  }
970
- /** The plane's person-approval answer from `task show --json`, read strictly: anything malformed is no person. */
971
845
  function personAnswerOf(value) {
972
846
  if (value === undefined)
973
847
  return {};
@@ -976,17 +850,7 @@ function personAnswerOf(value) {
976
850
  return { person: { ok: true, method: read["method"] } };
977
851
  return { person: { ok: false, why: typeof read["why"] === "string" ? read["why"] : "the plane's answer about who approved it can't be read" } };
978
852
  }
979
- /**
980
- * The release's authority record through a store (release-once.md): what `toolroll release` reads and writes for its
981
- * lease, its carries and its operations. `open` hands a store for each call and `done` lets it go.
982
- */
983
- export function storeReleaseAdapter(open, done, now, runner,
984
- /** Releases that approve themselves (auto-approve-green.md): the plane's own look at CI on a commit, and where the
985
- * check receipts are kept. Absent: no automatic approval, every release asks a person. */
986
- auto,
987
- /** GitHub's nightly (nightly-github.ts): the plane's own gh reads for a boundary's one bounded read. Absent: nothing
988
- * is read at the boundary, and the stored debt still holds inside every reservation. */
989
- nightlyReads) {
853
+ export function storeReleaseAdapter(open, done, now, runner, auto, nightlyReads) {
990
854
  const withStore = (body) => { const store = open(); try {
991
855
  return body(store);
992
856
  }
@@ -995,15 +859,12 @@ nightlyReads) {
995
859
  } };
996
860
  return {
997
861
  ...(auto === undefined ? {} : { auto: autoReleaseAdapter(withStore, now, auto) }),
998
- // One-tap release approval (trusted-release-reports.md, slice A): ids and the coordinator's own readings only; the
999
- // plane decides from its own records whether anything is written.
1000
862
  ready: {
1001
863
  async asked(taskId) { withStore(store => { noteReleaseReady(store, { taskId, now: now() }); }); },
1002
864
  async ci(input) { withStore(store => { recordReleaseCi(store, { ...input, now: now() }); }); },
1003
865
  async stopped(input) { withStore(store => { noteReleaseStopped(store, { ...input, now: now() }); }); },
1004
866
  async verified(input) { withStore(store => { recordVerifiedRelease(store, { ...input, now: now() }); }); },
1005
867
  },
1006
- // After a failed release check, and before a pass is taken: the plane's own classification (check-failure.ts).
1007
868
  ...(auto === undefined ? {} : {
1008
869
  async recheck(taskId) {
1009
870
  return withStore(store => {
@@ -1012,8 +873,6 @@ nightlyReads) {
1012
873
  });
1013
874
  },
1014
875
  async fencedCoverage(_taskId, run, candidate) {
1015
- // Today's road, read first and answered at once: a check that ran unsandboxed skips nothing for this reason. A run
1016
- // from before stamps (a release resumed across an update) is judged by the level its dispatch recorded.
1017
876
  const asked = withStore(store => {
1018
877
  if (store.runCheckAccess(run) === "unsandboxed")
1019
878
  return null;
@@ -1100,8 +959,6 @@ nightlyReads) {
1100
959
  },
1101
960
  };
1102
961
  }
1103
- /** The plane's automatic release approval through a store (release-auto.ts): what `toolroll release` asks. It hands the
1104
- * plane ids only; the plane reads CI itself (`observe`) right before it seals. */
1105
962
  function autoReleaseAdapter(withStore, now, auto) {
1106
963
  const reportProblem = () => auto.reportsProtected === true ? null
1107
964
  : "CI test reports aren't protected from candidate writes, so a person must approve this release";
@@ -1119,8 +976,6 @@ function autoReleaseAdapter(withStore, now, auto) {
1119
976
  const problem = reportProblem();
1120
977
  if (problem !== null)
1121
978
  return { ok: false, why: problem };
1122
- // The comparison base for what the release changes: GitHub's own merge base of the candidate with the release's
1123
- // base branch (its signed terms), read by the plane — never a task branch or a build's recorded base.
1124
979
  const branch = withStore(store => store.getScope(input.taskId)?.releaseTerms?.base ?? null);
1125
980
  if (branch === null)
1126
981
  return { ok: false, why: "only a release task is approved automatically" };
@@ -1146,7 +1001,6 @@ function autoReleaseAdapter(withStore, now, auto) {
1146
1001
  return { ok: false, why: unprotected };
1147
1002
  }
1148
1003
  let ci = null, problem = "";
1149
- // A short network failure is asked again a few times; GitHub not answering is never a pass.
1150
1004
  for (let attempt = 0; attempt < 3 && ci === null; attempt++) {
1151
1005
  try {
1152
1006
  ci = await auto.observe(input.candidate);
@@ -1173,10 +1027,8 @@ function autoReleaseAdapter(withStore, now, auto) {
1173
1027
  async giveUp(taskId, why) { withStore(store => giveUpAutoApproval(store, { taskId, why, now: now() })); },
1174
1028
  async ciRunning(taskId, candidate) { withStore(store => noteCiRunning(store, { taskId, candidate, now: now() })); },
1175
1029
  async ciPassed(taskId, candidate, ask) {
1176
- // Reconcile the plane's record, not journal flags; without a pending row there is nothing to lift.
1177
1030
  if (!withStore(store => releaseCiHoldOf(store, taskId) !== null || releaseCiRunningOf(store, taskId) !== null))
1178
1031
  return { ok: true };
1179
- // The plane reads CI itself; a short network failure is asked again a few times, and unreadable is never a pass.
1180
1032
  let ci = null, problem = "";
1181
1033
  for (let attempt = 0; attempt < 3 && ci === null; attempt++) {
1182
1034
  try {
@@ -1197,31 +1049,19 @@ function autoReleaseAdapter(withStore, now, auto) {
1197
1049
  async publishHeld(taskId) { return withStore(store => autoPublishHeld(store, taskId)); },
1198
1050
  };
1199
1051
  }
1200
- /** The environment every CI read runs gh with: no caller PATH, host, config folder or proxy override. */
1201
1052
  function ciEnv() {
1202
1053
  const kept = Object.fromEntries(["HOME", "LANG", "LC_ALL", "TMPDIR", "USER", "LOGNAME", "GH_TOKEN", "GITHUB_TOKEN"].flatMap(name => process.env[name] === undefined ? [] : [[name, process.env[name]]]));
1203
1054
  return { ...kept, PATH: "/usr/bin:/bin", GH_HOST: "github.com", GH_PROMPT_DISABLED: "1", GH_NO_UPDATE_NOTIFIER: "1" };
1204
1055
  }
1205
- /**
1206
- * Every check run GitHub holds for one commit — every attempt, not only the latest (`filter=all`; GitHub's default
1207
- * lists only the latest of each), every page — with its id, app, check suite and the commit it is filed under, oldest
1208
- * first. A row that doesn't parse stops the read: a partial answer is never taken for the whole.
1209
- */
1210
- export async function readCheckRuns(run, gh, repo, sha,
1211
- /** A release tag (pipeline-speed.md, item 3): a push of exactly this tag binds its workflow file too. */
1212
- options = {}) {
1056
+ export async function readCheckRuns(run, gh, repo, sha, options = {}) {
1213
1057
  if (options.tag !== undefined && !/^v\d+\.\d+\.\d+$/.test(options.tag))
1214
1058
  throw new Error("not a release tag");
1215
1059
  if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repo) || !/^[0-9a-f]{40}$/.test(sha))
1216
1060
  throw new Error("not a repository and commit GitHub can be asked about");
1217
1061
  const out = await must(run(gh, ["api", "--hostname", "github.com", "--paginate", `repos/${repo}/commits/${sha}/check-runs?filter=all&per_page=100`,
1218
1062
  "--jq", ".check_runs[] | {id, name, status, conclusion, app: .app.slug, suite: .check_suite.id, head: .head_sha}"], { cwd: "/", env: ciEnv() }), "gh api check-runs");
1219
- // Which workflow each check suite is a run of (GitHub's workflow-run API): a newer run of a workflow supersedes its
1220
- // older runs on this commit (release.ts prChecksVerdict).
1221
1063
  const flows = await must(run(gh, ["api", "--hostname", "github.com", "--paginate", `repos/${repo}/actions/runs?head_sha=${sha}&per_page=100`,
1222
1064
  "--jq", ".workflow_runs[] | {suite: .check_suite_id, workflow: .workflow_id, path: .path, head: .head_sha, event: .event, branch: .head_branch, bases: [(.pull_requests // [])[] | .base.ref], prs: [(.pull_requests // [])[] | {number, repo: .base.repo.url}]}"], { cwd: "/", env: ciEnv() }), "gh api actions/runs");
1223
- // A pull request's base can be edited after its runs: a run counts only if no pull request it belongs to ever had its
1224
- // base changed (GitHub's timeline), so a run made against another base can't later read as a run into main.
1225
1065
  const retargeted = new Map();
1226
1066
  const everRetargeted = async (pr) => {
1227
1067
  const known = retargeted.get(pr);
@@ -1239,7 +1079,6 @@ options = {}) {
1239
1079
  return changed;
1240
1080
  };
1241
1081
  const workflowOf = new Map();
1242
- // Each suite's workflow file: a required check counts only from the workflow that defines it (release.ts).
1243
1082
  const pathOf = new Map();
1244
1083
  for (const line of flows.split("\n").filter(Boolean)) {
1245
1084
  const one = object(JSON.parse(line));
@@ -1249,11 +1088,6 @@ options = {}) {
1249
1088
  if (known !== undefined && (known !== Number(one["workflow"]) || pathOf.get(Number(one["suite"])) !== one["path"]))
1250
1089
  throw new Error("GitHub named two workflows for one check suite");
1251
1090
  workflowOf.set(Number(one["suite"]), Number(one["workflow"]));
1252
- // Only a run on a pull request into main, or a push to main, binds its workflow file: a pull request into another
1253
- // branch reads that branch's workflow and join verifier, which the candidate may control (security scan of the
1254
- // join). Any other run keeps no path, so no required check counts from it.
1255
- // Each pull request the run belongs to must be this repository's own (a number from another repository names a
1256
- // different pull request here): any other refuses the run.
1257
1091
  const prs = (Array.isArray(one["prs"]) ? one["prs"] : []).map(pr => (pr !== null && typeof pr === "object" ? pr : {}));
1258
1092
  const ours = prs.length > 0 && prs.every(pr => Number.isSafeInteger(pr["number"]) && pr["repo"] === `https://api.github.com/repos/${repo}`);
1259
1093
  const untouched = one["event"] !== "pull_request" || (ours && !(await Promise.all(prs.map(pr => everRetargeted(Number(pr["number"]))))).some(Boolean));
@@ -1270,8 +1104,6 @@ options = {}) {
1270
1104
  });
1271
1105
  if (new Set(runs.map(one => one.id)).size !== runs.length)
1272
1106
  throw new Error("GitHub answered the same check run twice");
1273
- // Each unsuccessful GitHub Actions attempt: whether GitHub's own job record (a check run's id is its job's) shows it
1274
- // ending before any of the workflow's own steps ran. Only that ever counts as the runner's failure; unreadable is no.
1275
1107
  for (const one of runs) {
1276
1108
  if (one.app !== "github-actions" || one.status !== "completed" || one.conclusion === "success" || one.conclusion === "skipped" || one.conclusion === "neutral")
1277
1109
  continue;
@@ -1279,7 +1111,6 @@ options = {}) {
1279
1111
  }
1280
1112
  return runs.sort((a, b) => a.id - b.id);
1281
1113
  }
1282
- /** GitHub's job record for one check run (its job), read strictly: null when it can't be read whole. */
1283
1114
  export async function readJobBeforeTests(run, gh, repo, id) {
1284
1115
  if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repo) || !Number.isSafeInteger(id) || id <= 0)
1285
1116
  return null;
@@ -1307,12 +1138,6 @@ export async function readJobBeforeTests(run, gh, repo, id) {
1307
1138
  return failedBeforeTests({ id, status: String(job["status"]), conclusion: textOr(job["conclusion"]),
1308
1139
  steps: steps.map(one => ({ number: Number(one["number"]), name: String(one["name"]), status: String(one["status"]), conclusion: textOr(one["conclusion"]) })) });
1309
1140
  }
1310
- /**
1311
- * GitHub's REST API as GitHub's nightly reads it (nightly-github.ts): GET only, github.com only, a repository path, the
1312
- * plane's own gh with the allowlisted environment, each call bounded by its caller's deadline. A background read rides
1313
- * out a short network failure (release-net.ts, within that call's own share of the deadline); a boundary's read is
1314
- * plain exec. Never an answer that isn't GitHub's whole JSON.
1315
- */
1316
1141
  export function githubReads(run, gh, options = {}) {
1317
1142
  return async (path, timeoutMs) => {
1318
1143
  if (!/^repos\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_./?&=%-]+$/.test(path) || timeoutMs <= 0)
@@ -1335,7 +1160,6 @@ export function githubReads(run, gh, options = {}) {
1335
1160
  }
1336
1161
  };
1337
1162
  }
1338
- /** GitHub lists check runs from at most the latest 1000 check suites of a commit: the history is whole only below that. */
1339
1163
  export const CHECK_SUITE_CEILING = 1000;
1340
1164
  export async function readSuitesComplete(run, gh, repo, sha) {
1341
1165
  if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repo) || !/^[0-9a-f]{40}$/.test(sha))
@@ -1344,7 +1168,6 @@ export async function readSuitesComplete(run, gh, repo, sha) {
1344
1168
  const total = Number(out.stdout.trim());
1345
1169
  return out.code === 0 && out.stdout.trim() !== "" && Number.isSafeInteger(total) && total >= 0 && total < CHECK_SUITE_CEILING;
1346
1170
  }
1347
- /** GitHub's merge base of `sha` with branch `base` (the compare API), read by the plane. */
1348
1171
  export async function readMergeBase(run, gh, repo, base, sha) {
1349
1172
  if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repo) || !/^[0-9a-f]{40}$/.test(sha) || !/^[A-Za-z0-9._/-]+$/.test(base) || base.includes(".."))
1350
1173
  throw new Error("not a repository, branch and commit GitHub can be asked about");
@@ -1353,10 +1176,6 @@ export async function readMergeBase(run, gh, repo, base, sha) {
1353
1176
  throw new Error("GitHub named no merge base");
1354
1177
  return out;
1355
1178
  }
1356
- /**
1357
- * Main's head as GitHub has it now (eval-harness review 1, finding 4): read by the plane's own gh from GitHub's API,
1358
- * never from a ref in a checkout a build can write.
1359
- */
1360
1179
  export async function readMainHead(run, gh, repo, branch = "main") {
1361
1180
  if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repo) || !/^[A-Za-z0-9._/-]+$/.test(branch) || branch.includes(".."))
1362
1181
  throw new Error("not a repository and branch GitHub can be asked about");
@@ -1366,14 +1185,12 @@ export async function readMainHead(run, gh, repo, branch = "main") {
1366
1185
  throw new Error(`GitHub named no commit for ${branch}`);
1367
1186
  return match[1];
1368
1187
  }
1369
- /** GitHub's own "Update branch", with its expected head: a push that got there first refuses. */
1370
1188
  export async function updatePullRequestBranch(run, gh, repo, pr, expectedHead) {
1371
1189
  if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repo) || !Number.isSafeInteger(pr) || pr < 1 || !/^[0-9a-f]{40}$/.test(expectedHead))
1372
1190
  return { ok: false, why: "not a pull request GitHub can be asked to update" };
1373
1191
  const ran = await run(gh, ["api", "--hostname", "github.com", "--method", "PUT", `repos/${repo}/pulls/${pr}/update-branch`, "-f", `expected_head_sha=${expectedHead}`], { cwd: "/", env: ciEnv() });
1374
1192
  return ran.code === 0 ? { ok: true } : { ok: false, why: (ran.stderr.trim().split("\n")[0] ?? "").slice(0, 200) || `gh exited ${ran.code}` };
1375
1193
  }
1376
- /** Whether `sha` already holds `ancestor` (GitHub's compare: `sha` is not behind it), as GitHub answers now. */
1377
1194
  export async function readContains(run, gh, repo, sha, ancestor) {
1378
1195
  if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repo) || !/^[0-9a-f]{40}$/.test(sha) || !/^[0-9a-f]{40}$/.test(ancestor))
1379
1196
  throw new Error("not a repository and commits GitHub can be asked about");
@@ -1389,24 +1206,11 @@ export async function readContains(run, gh, repo, sha, ancestor) {
1389
1206
  throw new Error("GitHub's comparison couldn't be read");
1390
1207
  return answer[1] === 0 && (answer[0] === "ahead" || answer[0] === "identical");
1391
1208
  }
1392
- /**
1393
- * Main's protection, judged for the principal that merges (eval-harness review 2, finding 1; review 1, finding 4): the
1394
- * plane's own gh, which merges as the same account. A layer holds only when it requires branches to be up to date, names
1395
- * a non-empty set of required checks covering PROTECTION_MINIMUM_CHECKS, bound to GitHub Actions (app 15368), and
1396
- * can't be bypassed by that account:
1397
- * classic protection with "Do not allow bypassing the above settings" (`enforce_admins`); an active ruleset whose
1398
- * bypass list reads whole, names no role, team or organization admin, and says this account never bypasses it. Read
1399
- * only — Toolroll never changes a repository's settings. A layer that can't be read never holds. When no layer holds
1400
- * and one couldn't be read (gh failed for a reason other than "not protected", or its answer didn't parse), the read
1401
- * throws ProtectionUnreadable: "couldn't read GitHub" is never reported as "protection doesn't hold", and never as
1402
- * holding. Null only for a repository or branch name GitHub can't be asked about.
1403
- */
1404
1209
  export async function readMainProtection(run, gh, repo, branch = "main") {
1405
1210
  if (!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(repo) || !/^[A-Za-z0-9._/-]+$/.test(branch) || branch.includes(".."))
1406
1211
  return null;
1407
1212
  const missing = [];
1408
1213
  const held = [];
1409
- /** What couldn't be read at all, and the words gh gave. */
1410
1214
  const unread = [];
1411
1215
  const words = (out) => (out.stderr || out.stdout).trim().split("\n").slice(-1)[0]?.slice(0, 160) || `exit ${out.code}`;
1412
1216
  const judge = (where, strict, checks, bound, bypass) => {
@@ -1444,14 +1248,13 @@ export async function readMainProtection(run, gh, repo, branch = "main") {
1444
1248
  };
1445
1249
  const actionsChecks = (list, appKey) => Array.isArray(list)
1446
1250
  ? list.flatMap(one => { const check = object(one); return check[appKey] === 15368 && typeof check["context"] === "string" ? [check["context"]] : []; }) : [];
1447
- // Classic branch protection, read whole. Context names alone allow an arbitrary writer to supply their status.
1448
1251
  const classic = await run(gh, ["api", "--hostname", "github.com", `repos/${repo}/branches/${branch}/protection`], { cwd: "/", env: ciEnv() });
1449
1252
  if (classic.code === 0) {
1450
1253
  let answer = null;
1451
1254
  try {
1452
1255
  answer = JSON.parse(classic.stdout);
1453
1256
  }
1454
- catch { /* unreadable below */ }
1257
+ catch { }
1455
1258
  const p = object(answer), checks = p["required_status_checks"];
1456
1259
  if (answer === null || typeof answer !== "object" || Array.isArray(answer))
1457
1260
  unread.push("classic protection (its answer didn't parse)");
@@ -1460,7 +1263,6 @@ export async function readMainProtection(run, gh, repo, branch = "main") {
1460
1263
  else {
1461
1264
  const rsc = object(checks), contexts = names(rsc["contexts"] ?? [], ""), apps = names(rsc["checks"] ?? [], "context");
1462
1265
  const admins = p["enforce_admins"];
1463
- // GitHub answered, but without the settings this judges: read, and not holding.
1464
1266
  if (contexts === null || apps === null || typeof rsc["strict"] !== "boolean" || admins === undefined || admins === null || typeof object(admins)["enabled"] !== "boolean")
1465
1267
  missing.push("classic protection: GitHub's answer doesn't say which checks it requires or whether administrators can bypass it");
1466
1268
  else {
@@ -1470,7 +1272,6 @@ export async function readMainProtection(run, gh, repo, branch = "main") {
1470
1272
  }
1471
1273
  else if (!notProtected(classic))
1472
1274
  unread.push(`classic protection (${words(classic)})`);
1473
- // Rulesets: every active rule requiring status checks on the branch, then its ruleset's enforcement and bypass list.
1474
1275
  const rules = await run(gh, ["api", "--hostname", "github.com", "--paginate", `repos/${repo}/rules/branches/${branch}`,
1475
1276
  "--jq", ".[] | select(.type == \"required_status_checks\") | @json"], { cwd: "/", env: ciEnv() });
1476
1277
  if (rules.code !== 0)
@@ -1516,7 +1317,6 @@ export async function readMainProtection(run, gh, repo, branch = "main") {
1516
1317
  const actors = set["bypass_actors"];
1517
1318
  if (!Array.isArray(actors))
1518
1319
  bypass.push("its bypass list couldn't be read");
1519
- // Only a deploy key never merges as this account; a role, team, app or organization admin might.
1520
1320
  else if (actors.some(one => object(one)["actor_type"] !== "DeployKey"))
1521
1321
  bypass.push("its bypass list names a role, team, app or organization admin");
1522
1322
  judge(where, params["strict_required_status_checks_policy"] === true, checks, actionsChecks(params["required_status_checks"], "integration_id"), bypass);
@@ -1532,7 +1332,6 @@ export async function readMainProtection(run, gh, repo, branch = "main") {
1532
1332
  missing.push("main has no branch protection or ruleset requiring status checks");
1533
1333
  return { effective: false, missing, notYetRequired: [] };
1534
1334
  }
1535
- /** Main's protection couldn't be read from GitHub (after the network retries): not "doesn't hold", and never "holds". */
1536
1335
  export class ProtectionUnreadable extends Error {
1537
1336
  unread;
1538
1337
  constructor(unread) {
@@ -1540,7 +1339,6 @@ export class ProtectionUnreadable extends Error {
1540
1339
  this.unread = unread;
1541
1340
  }
1542
1341
  }
1543
- /** Whether main's protection holds, as a yes/no (release-auto.ts sealAutoGreen): null when it can't be read. */
1544
1342
  export async function readUpToDateRequired(run, gh, repo, branch = "main") {
1545
1343
  let protection;
1546
1344
  try {
@@ -1553,11 +1351,9 @@ export async function readUpToDateRequired(run, gh, repo, branch = "main") {
1553
1351
  }
1554
1352
  return protection === null ? null : protection.effective;
1555
1353
  }
1556
- /** Whether a workflow run is the push of exactly this release tag (its workflow file is the tagged commit's own, on main). */
1557
1354
  function tagTriggered(run, tag) {
1558
1355
  return tag !== undefined && run["event"] === "push" && run["branch"] === tag;
1559
1356
  }
1560
- /** Whether a workflow run was triggered on main: a push to main, or a pull request whose every base is main. */
1561
1357
  function mainTriggered(run) {
1562
1358
  const bases = Array.isArray(run["bases"]) ? run["bases"] : [];
1563
1359
  if (run["event"] === "push")
@@ -1566,8 +1362,6 @@ function mainTriggered(run) {
1566
1362
  return bases.length > 0 && bases.every(base => base === "main");
1567
1363
  return false;
1568
1364
  }
1569
- /** The release's step record (store.ts release_step, v146) through a store opened for each entry: a failure to open or
1570
- * write is swallowed, so recording never stops or changes the release. */
1571
1365
  export function releaseProgressRecorder(open, done) {
1572
1366
  return entry => {
1573
1367
  let store = null;
@@ -1575,19 +1369,17 @@ export function releaseProgressRecorder(open, done) {
1575
1369
  store = open();
1576
1370
  recordReleaseStep(store, entry);
1577
1371
  }
1578
- catch { /* best effort: the release goes on */ }
1372
+ catch { }
1579
1373
  finally {
1580
1374
  if (store !== null) {
1581
1375
  try {
1582
1376
  done(store);
1583
1377
  }
1584
- catch { /* best effort */ }
1378
+ catch { }
1585
1379
  }
1586
1380
  }
1587
1381
  };
1588
1382
  }
1589
- /** The macOS CI's cases on exactly `sha`: the newest pull-request run of ci.yml there, each shard's newest attempt. Null
1590
- * when they can't all be read. The folder is this function's own, removed before it returns. */
1591
1383
  async function macosCasesOf(run, gh, slug, sha) {
1592
1384
  const folder = mkdtempSync(join(tmpdir(), "so-macos-ci-"));
1593
1385
  try {