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
@@ -3,7 +3,6 @@ import { approvalPasswordField } from "../approval-password.js";
3
3
  import { CHAT_ACTION_LOCAL_ACTS, localOwnerRefusal } from "../local-owner.js";
4
4
  import { handlersOf } from './handler-registry.js';
5
5
  import { DEPRECATED_PAGE } from "../deprecations.js";
6
- /** chat handlers, moved without changing their route bodies. */
7
6
  import { randomBytes } from "node:crypto";
8
7
  import { chmodSync, rmSync as rmFileSync, writeFileSync as writeFsFileSync } from "node:fs";
9
8
  import { dirname, join } from "node:path";
@@ -48,19 +47,11 @@ import { completionForm, hardBlockerOf, homePhaseWords, owedAcceptanceOf, result
48
47
  import { browserCaller, oneLineUa } from "./session.js";
49
48
  export function createChatHandlers(runtime) {
50
49
  const { firstRunStepsNow, managedRepos, leadWords, store, options, phoneSetup, visible, liveTurns, leadSaid, evidenceRoot, clock, sessions, CHAT_CANDIDATE_TTL_MS, chatFetcher, CHAT_CANDIDATES_PER_APPROVER, chatCeilingDigest, workAccess, familyOf, firstTasks, leadPrincipal, taskChatFocus, chatScopeOf, leadConversationRows, demoLeadHere, sendScreen, chromeFor, teamBrowserReply, team, teamChatProvider, runVisible, runIsLive, resultDetailOf, pullRequestTargetOf, chatEnablement, sharedIndexPage, startLeadConversation, projectFamilyPeek, needsYouBadge, liveRefreshSeconds, chatKeyFor, chatCatalog, chatCatalogKnown, providerHome, mintApprovalNonce, checkLocalAgents, agentSignInCommand, bustBadge, authenticateApprover, revisionDestination, armTaskResume, consumeApprovalNonce } = runtime;
51
- // The read-only refresh (package 2): the same JSON status as before —
52
- // session binding, the send receipt, the live turn — plus a version
53
- // of the DISPLAYED facts and, only when the caller's version differs,
54
- // the server-rendered thread / task fragments the page swaps into
55
- // its safe regions. No-store, cookie-and-approver only, the same
56
- // admission and ceiling checks as the page; nothing here writes.
57
50
  async function mateStatus(ctx) {
58
51
  const { url, response, now } = ctx;
59
52
  const who = browserCaller(ctx.who);
60
53
  const found = store.activeLeadSession(who.name);
61
54
  const principal = leadPrincipal(who);
62
- // Quiet page visits: a membership conversation not started yet is still a page to keep current (its task's
63
- // progress and approval); it reads as session 0, and nothing here starts it.
64
55
  const enabled = chatEnablement();
65
56
  const notStarted = principal !== null && enabled.ok && enabled.billing === "subscription" && (found === null || found.ceilingDigest !== principal.ceilingDigest);
66
57
  const session = notStarted ? null : found;
@@ -69,13 +60,10 @@ export function createChatHandlers(runtime) {
69
60
  }
70
61
  const sessionId = session?.id ?? NOT_STARTED_SESSION;
71
62
  const request = url.searchParams.get("request") ?? "";
72
- // Received: the engine took it, or the lead queue holds it (a queued acknowledgement lost on the way still frees the draft).
73
63
  const received = session !== null && /^[a-f0-9]{32}$/.test(request) && store.leadRequestReceived(session.id, request);
74
64
  const requestedTask = url.searchParams.get("task");
75
65
  const focusTask = requestedTask === null || requestedTask === "" ? null : taskChatFocus(requestedTask, now, who, { mintNonce: false });
76
66
  if (requestedTask !== null && requestedTask !== "" && focusTask === null) {
77
- // The lens's task is gone or no longer admitted: the page keeps its
78
- // draft and says so; it never falls back to the unified thread.
79
67
  return respond(response, 200, "application/json", JSON.stringify({ session: sessionId, task: requestedTask, unavailable: true, received }));
80
68
  }
81
69
  const chatProject = focusTask !== null ? null : chatProjectOf(url.searchParams.getAll("project").filter(one => one !== ""));
@@ -102,7 +90,6 @@ export function createChatHandlers(runtime) {
102
90
  ...(fragments === null ? {} : { fragments }),
103
91
  }));
104
92
  }
105
- // `toolroll demo`: Chat is the scripted lead, never a model.
106
93
  async function demoLive(ctx) {
107
94
  const { who, response } = ctx;
108
95
  const lead = demoLeadHere();
@@ -125,8 +112,6 @@ export function createChatHandlers(runtime) {
125
112
  functional: { script: DEMO_CHAT_SCRIPT, fetches: true },
126
113
  }));
127
114
  }
128
- // Cookie sessions only (Codex v3 review, change 7): drafts live in
129
- // THIS session's memory; a bearer caller has nowhere to keep them.
130
115
  if (who.via !== "cookie")
131
116
  return refuse(response, who, 403, "chat is a browser surface — it keeps your drafts in the session");
132
117
  const teamAsked = url.searchParams.get('team') === '1' || url.searchParams.has('conversation') || url.searchParams.has('lead') || url.searchParams.has('proposal');
@@ -153,12 +138,9 @@ export function createChatHandlers(runtime) {
153
138
  chrome: chromeFor(null, 'chat', undefined, 'all'), workspace: { team: reply.snapshot, notices: [DEPRECATED_PAGE.team, ...(said ? [said] : [])] },
154
139
  }));
155
140
  }
156
- // Settling a turn past its deadline (its spend) and expiring old proposals are the background passes' work, never a
157
- // page visit's (docs/plans/get-side-effects.md); the lead's follow pass sweeps every few seconds.
158
141
  sweepChatDrafts(Date.now());
159
142
  const requestedTask = url.searchParams.get("task");
160
143
  const focusTask = taskChatFocus(requestedTask, now, who, { mintNonce: !requestContext.getStore()?.workspaceRead });
161
- // A project's own thread (v77): /chat?project=<path>. A task lens wins.
162
144
  const chatProject = focusTask !== null ? null : chatProjectOf(url.searchParams.getAll("project"));
163
145
  if (chatProject === undefined)
164
146
  return refuse(response, who, 404, "That project is not available in this workspace.", "/chat");
@@ -166,8 +148,6 @@ export function createChatHandlers(runtime) {
166
148
  url.searchParams.set("task", focusTask.id);
167
149
  return redirect(response, `/chat?${url.searchParams.toString()}`);
168
150
  }
169
- // A seal receipt names the exact child it returned. Reopening an old
170
- // receipt must not present a newer revision's approval as its answer.
171
151
  const requestedRevision = url.searchParams.get("revision");
172
152
  if (requestedRevision !== null) {
173
153
  if (focusTask === null || !focusTask.family.versions.some(one => one.id === requestedRevision) || url.searchParams.has("result")) {
@@ -176,10 +156,6 @@ export function createChatHandlers(runtime) {
176
156
  if (requestedRevision !== focusTask.executionId)
177
157
  return redirect(response, `${taskHref(focusTask.id)}?version=${encodeURIComponent(requestedRevision)}`);
178
158
  }
179
- // The result detail (package 3): `?result=<run>` names one finished
180
- // build OF THIS TASK; anything else — another task's run, a live or
181
- // failed attempt, a number that is no run — says so and shows the
182
- // conversation alone. The task lens is never inferred from the run.
183
159
  const requestedResult = url.searchParams.get("result");
184
160
  const resultRun = (() => {
185
161
  if (focusTask === null || requestedResult === null || !/^[0-9]{1,15}$/.test(requestedResult))
@@ -193,8 +169,6 @@ export function createChatHandlers(runtime) {
193
169
  })();
194
170
  const roomId = url.searchParams.get('conversation');
195
171
  const resultLink = (href) => roomId ? href + '&conversation=' + encodeURIComponent(roomId) : href;
196
- // Accept and finish is here: the one act that accepts the person's own checks and finishes the task.
197
- // Never offered where Complete is refused whatever is accepted (a failed check, a HIGH finding).
198
172
  const finishes = resultRun !== null && who.role === 'approver' && focusTask?.assignment?.state === 'ready-to-check' && focusTask.assignment.receipt?.runId === resultRun.id &&
199
173
  hardBlockerOf(focusTask.assignment) === null;
200
174
  const resultPanel = resultRun === null
@@ -232,7 +206,6 @@ export function createChatHandlers(runtime) {
232
206
  },
233
207
  }));
234
208
  }
235
- // Pending cards, and the recently answered ones so the door's words are read (last 30).
236
209
  const repos = managedRepos();
237
210
  const allCoordinatorRows = who.role === "approver" ? store.listCoordinatorProposals({ repos, states: ["pending", "confirmed", "refused"], limit: 30 }) : [];
238
211
  const coordinatorRows = focusTask === null
@@ -241,24 +214,11 @@ export function createChatHandlers(runtime) {
241
214
  const enabled = chatEnablement();
242
215
  const pending = store.liveChatTurnFor(who.name);
243
216
  const latched = enabled.ok ? store.latchedChatTurns(enabled.credentialKey) : [];
244
- // The mate (mate arc §5): while a mate session is live, /chat IS the
245
- // thread — the same rows the CLI reads. Without one, fleet chat as
246
- // before, plus the card that mints a session.
247
217
  const leadSession = enabled.ok && who.role === "approver" ? store.activeLeadSession(who.name) : null;
248
218
  const principal = enabled.ok && who.role === "approver" ? leadPrincipal(who) : null;
249
- // Chat opens ready to talk (2026-09-23): an approver in good standing
250
- // needs no second password to start their own conversation. Quiet page
251
- // visits (2026-10-27): a visit only shows it. With no membership
252
- // conversation yet (or only one under another ceiling), the page shows
253
- // the composer and the first message starts one (chatSend); nothing
254
- // here writes. Direct-API chat keeps a one-tap Start with its visible
255
- // spending limit (no password).
256
219
  const settingsView = url.searchParams.get("settings") === "1";
257
220
  const notStarted = !settingsView && enabled.ok && enabled.billing === "subscription" && principal !== null &&
258
221
  (leadSession === null || leadSession.ceilingDigest !== principal.ceilingDigest);
259
- // A session under another ceiling is not continuable from here; a GET
260
- // writes nothing (slice-2 review, finding 7) — the mint card below
261
- // starts a new conversation, and minting ends the old session.
262
222
  const ceilingStale = !notStarted && enabled.ok && leadSession !== null && principal !== null && leadSession.ceilingDigest !== principal.ceilingDigest;
263
223
  const catchUp = leadBriefHtml(assignmentCatchUp(store, now, { principal: "operator", repos }, { limit: 6 }, evidenceRoot));
264
224
  const chatProjects = repos.map((repo, index) => {
@@ -267,8 +227,6 @@ export function createChatHandlers(runtime) {
267
227
  peek = projectFamilyPeek(repo, now);
268
228
  }
269
229
  catch {
270
- // The project rail is orientation, like chrome's project peek: a
271
- // failed count must not make the conversation itself disappear.
272
230
  }
273
231
  return { id: `r${index + 1}`, label: projectName(repo), path: repo, peek };
274
232
  });
@@ -281,14 +239,10 @@ export function createChatHandlers(runtime) {
281
239
  fleetSnapshot.attentionCount = needsYouBadge(null);
282
240
  }
283
241
  catch {
284
- // The project rail already degrades each pulse independently.
285
- // A failed briefing query must not make the conversation vanish.
286
242
  }
287
243
  }
288
- // The first run belongs to the lead conversation, for someone who can act on it.
289
244
  const firstRun = focusTask === null && who.role === "approver" ? chatFirstRun(now, chatProject) : undefined;
290
245
  const phone = focusTask === null && who.via === "cookie" ? phoneCard(who, now) : undefined;
291
- // Console v2: the landing's live view (who is working, four counts, Catch up in tabs).
292
246
  const home = focusTask === null && chatProject === null && !roomId ? chatHomeOf(who, repos, now) : null;
293
247
  const withFirstRun = (shown) => firstRun === undefined && phone === undefined && home === null ? shown
294
248
  : { ...shown, ...(home === null ? {} : { refreshSeconds: liveRefreshSeconds() }),
@@ -362,8 +316,6 @@ export function createChatHandlers(runtime) {
362
316
  if (turn === null || !turn.unknownSpend || turn.acknowledgedAt !== null) {
363
317
  return refuse(response, who, 404, "no acknowledgement is waiting there", "/chat");
364
318
  }
365
- // The one nonce in chat — this screen restates exact financial terms
366
- // and re-enables spend, which is precisely what nonces are for.
367
319
  const nonce = mintApprovalNonce(who.name, `chat-ack-${turn.id}`, String(turn.reservedMicrousd));
368
320
  return sendScreen(response, 200, chatAckPage(chromeFor(project, "chat"), turn, nonce, store.leadTurnOfStep(turn.id)));
369
321
  }
@@ -392,7 +344,6 @@ export function createChatHandlers(runtime) {
392
344
  const id = proposalId, saved = store.getLeadProposal(id), savedAction = saved?.kind === 'action' ? sharedActionPayload(saved.payload) : null;
393
345
  if (saved && savedAction && saved.state !== 'pending' && (sharedConversation !== null || store.getLeadThread(saved.thread)?.approver === principal.name) && principal.repos.includes(savedAction.repo) && store.accountCanAccess(principal.name, savedAction.repo)) {
394
346
  const task = typeof saved.outcome?.['taskId'] === 'string' ? saved.outcome['taskId'] : typeof savedAction.request['task'] === 'string' ? savedAction.request['task'] : null;
395
- // A flow action leads back to its flow (a page path of our own making, never the proposal's words).
396
347
  const flowId = savedAction.operation.startsWith('flow_') && Number.isSafeInteger(savedAction.request['flow']) ? Number(savedAction.request['flow']) : null;
397
348
  const destination = task ? taskHref(task) : flowId !== null ? `/flows/${flowId}` : `/settings/${savedAction.operation.startsWith('skill_') ? 'skills' : 'knowledge'}?repo=${encodeURIComponent(savedAction.repo)}`;
398
349
  const said = typeof saved.outcome?.['said'] === 'string' ? saved.outcome['said'] : saved.state === 'dismissed' ? 'Action dismissed.' : saved.state === 'expired' ? 'This proposal expired. Ask for a fresh proposal.' : 'This action has no completed outcome yet.';
@@ -401,9 +352,6 @@ export function createChatHandlers(runtime) {
401
352
  const review = mintSharedActionReview(store, principal, id, evidenceRoot, clock()), action = review.payload;
402
353
  const terms = action.terms.map(term => html `<p style="white-space:pre-wrap;overflow-wrap:anywhere">${term}</p>`);
403
354
  const evidenceLink = action.operation === 'result_accept' ? html `<a href="/r/${Number(action.request['run'])}">Inspect this result</a>` : '';
404
- // Cockpit B2: approving standard work may stand on a password remembered on this session, exactly as on the task
405
- // page (the same rule approve() applies when the form comes back); the field then may be left empty.
406
- // The one password rule every approve form reads (approval-password.ts).
407
355
  const freshSince = (() => {
408
356
  const task = typeof action.request['task'] === 'string' ? action.request['task'] : null;
409
357
  if (action.operation !== 'scope_approve' || task === null)
@@ -414,8 +362,6 @@ export function createChatHandlers(runtime) {
414
362
  const field = approvalPasswordField(store, { name: who.name, taskId: task, scope, passwordless: false, localOwner: false, freshAt: fresh?.at ?? null, returnTo: '/chat' });
415
363
  return field.field === 'remembered' ? new Date(field.since) : null;
416
364
  })();
417
- // Easy-start C5: a laptop's local owner confirms its own acts without a password (an approval only when it is
418
- // eligible: localApprovalEligible, the rule the seal applies again); anything else says how to get a password.
419
365
  const reviewTask = typeof action.request['task'] === 'string' ? action.request['task'] : null;
420
366
  const localScope = reviewTask === null ? null : store.getScope(reviewTask);
421
367
  const localOk = who.authority === 'local-owner' && CHAT_ACTION_LOCAL_ACTS[action.operation] !== null && (action.operation !== 'scope_approve' || (reviewTask !== null && localScope !== null && approvalPasswordField(store, { name: who.name, taskId: reviewTask, scope: localScope, passwordless: false, localOwner: true, freshAt: null, returnTo: '/chat' }).field === 'none'));
@@ -430,20 +376,16 @@ export function createChatHandlers(runtime) {
430
376
  return refuse(response, who, 409, error instanceof Error ? error.message : 'This action could not be reviewed.', '/chat');
431
377
  }
432
378
  }
433
- // Session-gated: the key is not secret, but strangers get nothing.
434
379
  async function pushKey(ctx) {
435
380
  const { who, response } = ctx;
436
381
  if (who.via !== "cookie")
437
382
  return respond(response, 403, "application/json", JSON.stringify({ error: "session" }));
438
- // The pair is made as the console starts (docs/plans/get-side-effects.md); this only reads it.
439
383
  const keys = options.telegramTokenFile === undefined ? null : loadVapidKeys(dirname(options.telegramTokenFile));
440
384
  response.setHeader("cache-control", "no-store");
441
385
  if (keys === null)
442
386
  return respond(response, 503, "application/json", JSON.stringify({ error: "push is not set up on this console" }));
443
387
  return respond(response, 200, "application/json", JSON.stringify({ key: keys.publicKey }));
444
388
  }
445
- // What this computer's agent CLIs said last, and whether the lead is on. A read: the answer comes from the background
446
- // checks or a Check now (POST /lead/check), never from this request (docs/plans/get-side-effects.md).
447
389
  const leadState = () => JSON.stringify({ lead: store.getChatConfig() === null ? "off" : "on", agent: runtime.localSignIn?.signedIn ?? null,
448
390
  checkedAt: runtime.localSignIn === null ? null : new Date(runtime.localSignIn.at).toISOString(), command: agentSignInCommand() });
449
391
  async function leadStatus(ctx) {
@@ -453,9 +395,6 @@ export function createChatHandlers(runtime) {
453
395
  response.setHeader("cache-control", "no-store");
454
396
  return respond(response, 200, "application/json", leadState());
455
397
  }
456
- // While no agent is signed in, Chat asks this computer again on its own (onboarding), and Settings → Lead has Check
457
- // now: a fresh, non-spending sign-in check at most every few seconds, and the lead turns on as soon as one is found
458
- // (the lead-by-default rule). A POST with the person's form token, so no prefetch or link preview can set it off.
459
398
  async function leadCheck(ctx) {
460
399
  const { response, posted } = ctx;
461
400
  const body = readForm(posted, CONSOLE_FORMS.leadCheck);
@@ -479,7 +418,6 @@ export function createChatHandlers(runtime) {
479
418
  response.setHeader("cache-control", "no-store");
480
419
  return respond(response, 200, "text/html; charset=utf-8", taskChatLiveRegion(focus, who.session.csrf, true));
481
420
  }
482
- // The scripted demo lead's acts: ask, approve, change a plan, complete or send back a result.
483
421
  async function demoAsk(ctx) {
484
422
  const { who, response, posted } = ctx;
485
423
  const body = readForm(posted, CONSOLE_FORMS.demo);
@@ -528,9 +466,6 @@ export function createChatHandlers(runtime) {
528
466
  async function pushSubscribe(ctx) {
529
467
  const { who, request, response, posted } = ctx;
530
468
  const body = readForm(posted, CONSOLE_FORMS.pushSubscribe);
531
- // Enrolling a durable notification sink is a CEREMONY (arc 3 finding
532
- // 6): browser session + CSRF + the password typed again; bearer
533
- // identities are machines and are refused outright.
534
469
  if (who.via !== "cookie")
535
470
  return refuse(response, who, 403, "push enrollment is a browser session's act");
536
471
  if (store.isDemo())
@@ -587,11 +522,6 @@ export function createChatHandlers(runtime) {
587
522
  async function chatConfig(ctx) {
588
523
  const { who, response, now, posted } = ctx;
589
524
  const body = readForm(posted, CONSOLE_FORMS.chatConfig);
590
- // The console's own door into `config set chat` (operator request:
591
- // chat lives mainly in the web UI). Same ceremony weight as the CLI
592
- // verb: the password typed again authenticates the approver, the
593
- // write is audited under their name, and the KEY still never
594
- // touches a form or this database — environment only.
595
525
  if (who.via !== "cookie")
596
526
  return refuse(response, who, 403, "chat setup is a browser surface");
597
527
  const back = body.get("return") === "/settings/lead" ? "/settings/lead" : safeChatReturn(body.get("return"));
@@ -621,9 +551,6 @@ export function createChatHandlers(runtime) {
621
551
  if (!validModelId(model)) {
622
552
  return redirect(response, chatRefusal(back, "the model id must be 1–128 letters, digits, dots, slashes, colons, underscores, or dashes"));
623
553
  }
624
- // The key, when pasted, is stored FIRST (0600 file, Telegram-token
625
- // precedent) so the catalog fetch below can already use it. It never
626
- // touches the database and is never echoed back.
627
554
  const pastedKey = (body.get("key") ?? "").trim();
628
555
  if (pastedKey !== "") {
629
556
  if (subscription)
@@ -632,11 +559,6 @@ export function createChatHandlers(runtime) {
632
559
  if (!stored.ok)
633
560
  return redirect(response, chatRefusal(back, stored.message));
634
561
  }
635
- // The pin: anthropic models come from the compiled table; openrouter
636
- // models come from OpenRouter's OWN catalog, priced by the authority
637
- // that will bill them. No price found anywhere = refused, not guessed.
638
- // Live list prices (Settings → Models) come first; the compiled table
639
- // is the fallback when the catalog has never been fetched.
640
562
  let pin = subscription ? { inMicrousd: 0, outMicrousd: 0 } : livePin(store, provider, model) ?? priceOf(model);
641
563
  if (provider === "openrouter-api") {
642
564
  const catalog = await chatCatalog();
@@ -663,7 +585,6 @@ export function createChatHandlers(runtime) {
663
585
  }, who.name, now);
664
586
  return redirect(response, back);
665
587
  }
666
- // ---- the mate (mate arc §5) ------------------------------------------
667
588
  async function leadMint(ctx) {
668
589
  const { who, response, now, posted } = ctx;
669
590
  const body = readForm(posted, CONSOLE_FORMS.leadMint);
@@ -673,16 +594,11 @@ export function createChatHandlers(runtime) {
673
594
  const enabled = chatEnablement();
674
595
  if (!enabled.ok)
675
596
  return redirect(response, chatReturnWithSaid(back, enabled.why));
676
- // The one password ceremony of a conversation (§1): it restates the
677
- // terms — this spend ceiling, over these projects — and mints the
678
- // session every later turn debits without asking again.
679
597
  const ceilingText = (body.get("ceiling-usd") ?? "").trim();
680
598
  const ceilingUsd = enabled.billing === "subscription" ? 0 : Number(ceilingText);
681
599
  if (enabled.billing === "metered" && (!Number.isFinite(ceilingUsd) || ceilingUsd <= 0 || ceilingUsd > 1_000)) {
682
600
  return redirect(response, chatReturnWithSaid(back, "the session ceiling is a dollar amount between 0 and 1000"));
683
601
  }
684
- // The signed-in session is the authority (an approver in good
685
- // standing); a typed password, when sent, is still checked.
686
602
  const token = body.get("token") ?? "";
687
603
  const verified = token === "" ? verifyApproverStanding(store, who.name, who.session.generation, managedRepos()) : verifyApproverByPassword(store, who.name, token, managedRepos());
688
604
  if (!verified.ok)
@@ -696,7 +612,6 @@ export function createChatHandlers(runtime) {
696
612
  if (who.via !== "cookie")
697
613
  return refuse(response, who, 403, "Open the conversation to change automatic updates.");
698
614
  const principal = leadPrincipal(who), session = store.activeLeadSession(who.name);
699
- // A conversation its first message started from a task or project page has no main thread yet: this act opens it.
700
615
  const thread = principal && session && session.ceilingDigest === principal.ceilingDigest ? store.openLeadThread(who.name, principal.ceilingDigest, now).thread : null;
701
616
  if (!principal || !session || !thread || !configureLeadFollow(store, principal, session, thread, body.get("enabled") === "yes", now))
702
617
  return refuse(response, who, 409, "Conversation access changed. Start chat again.", "/chat");
@@ -708,15 +623,12 @@ export function createChatHandlers(runtime) {
708
623
  if (who.via !== "cookie")
709
624
  return refuse(response, who, 403, "the lead is a browser surface");
710
625
  const back = safeChatReturn(body.get("return"));
711
- // Ending spend and forgetting the thread takes no password: any
712
- // approver may revoke (§1), and the thread is theirs to drop (ruling 11).
713
626
  store.failLiveLeadTurnsFor(who.name, "ended", now);
714
627
  store.endLeadSessionsFor(who.name, who.name, now);
715
628
  store.closeLeadThreadsFor(who.name, now);
716
629
  leadSaid.delete(who.session.csrf);
717
630
  return redirect(response, back);
718
631
  }
719
- /** Remove a message still waiting in the person's lead queue: theirs only, only while it waits; its words are forgotten. */
720
632
  async function leadQueuedRemove(ctx) {
721
633
  const { url, who, request, response, now, posted } = ctx;
722
634
  const body = readForm(posted, CONSOLE_FORMS.leadQueuedRemove);
@@ -744,9 +656,6 @@ export function createChatHandlers(runtime) {
744
656
  noteLead(who.session.csrf, null, "that turn has already finished");
745
657
  return redirect(response, chatReturnWithLatest(back));
746
658
  }
747
- // A stopped direct-API turn is conservatively charged its reserved
748
- // worst case: dispatch may already have happened. Membership turns
749
- // reserve zero. The conversation itself stays live.
750
659
  store.failLiveLeadTurnsFor(who.name, "stopped", now);
751
660
  noteLead(who.session.csrf, live.id, "stopped — the conversation is still open");
752
661
  return redirect(response, chatReturnWithLatest(back));
@@ -774,9 +683,6 @@ export function createChatHandlers(runtime) {
774
683
  }
775
684
  else
776
685
  principal = leadPrincipal(who);
777
- // Confirm in place (chat cards): the same door and checks, answered in
778
- // JSON so the conversation stays where it is; the card's refreshed
779
- // state carries the result. The secure review screen stays a form.
780
686
  const cardJson = String(request.headers["accept"] ?? "").includes("application/json") && !body.has("nonce");
781
687
  const cardAnswer = (status, ok, said, taskId = null) => respond(response, status, "application/json", JSON.stringify({ ok, said, taskId }));
782
688
  if (principal === null)
@@ -789,8 +695,6 @@ export function createChatHandlers(runtime) {
789
695
  noteLead(who.session.csrf, null, "that proposal was already acted on");
790
696
  return redirect(response, chatReturnWithLatest(back));
791
697
  }
792
- // A scope approval's re-check is spent only if the whole confirmation commits (one transaction: the proposal's
793
- // settlement included). Any other action spends it whatever comes of it (its effects aren't all in the database).
794
698
  const confirmIt = () => confirmLeadProposal(store, principal, id, now, { authority: who.authority, chatProvider: teamChatProvider, confirm: body.get("confirm") === "yes", via: "web", person: who.via === "cookie", evidenceRoot, ...(body.has("nonce") ? { actionReview: { nonce: body.get("nonce") ?? "", password: body.get("token") ?? "" } } : {}) });
795
699
  const proposed = store.getLeadProposal(id);
796
700
  const approving = proposed?.kind === "action" && sharedActionPayload(proposed.payload)?.operation === "scope_approve";
@@ -812,21 +716,11 @@ export function createChatHandlers(runtime) {
812
716
  return redirect(response, chatReturnWithSaid(back, outcome.said));
813
717
  if (!outcome.ok && outcome.reason === "needs-confirm")
814
718
  noteLead(who.session.csrf, null, outcome.said);
815
- // A confirmed task proposal leads to the task it actually created
816
- // (package 2): the lens over this same conversation, whose journey
817
- // and plan are the next step. The id is the door's recorded
818
- // outcome, never a title or the assistant's prose; a refused,
819
- // replayed, or unavailable confirmation returns as before, with
820
- // the card carrying the door's words.
821
719
  if (outcome.ok && outcome.kind === "task" && outcome.taskId !== null && taskChatFocus(outcome.taskId, now, who, { mintNonce: false }) !== null) {
822
720
  return redirect(response, `${proposalTaskHref(outcome.taskId)}#task-chat-live`);
823
721
  }
824
722
  if (outcome.ok && outcome.kind === "review" && outcome.taskId !== null) {
825
723
  const proposal = store.getLeadProposal(id);
826
- // A revision confirmed here returns to its receipt: the newest
827
- // reply, whose confirmed card names the revision and links to the
828
- // plan. Landing at the top left that message under the phone's
829
- // fixed composer (build #1604 feedback).
830
724
  return redirect(response, proposal.payload["operation"] === "revise"
831
725
  ? chatReturnWithLatest(revisionDestination(outcome.taskId, proposalTaskHref(outcome.taskId)))
832
726
  : `${proposalTaskHref(outcome.taskId)}&result=${Number(proposal.payload["run"])}#request-changes`);
@@ -840,8 +734,6 @@ export function createChatHandlers(runtime) {
840
734
  }
841
735
  return redirect(response, chatReturnWithLatest(back));
842
736
  };
843
- // Coordinator proposals (mate arc v3): confirmed by any approver whose
844
- // ceiling admits the repo; the card lives on /chat and on the task.
845
737
  const coordinatorProposalAct = (op) => async (ctx) => {
846
738
  const { url, who, response, now, posted } = ctx;
847
739
  const body = readForm(posted, CONSOLE_FORMS.coordinatorProposal);
@@ -871,11 +763,6 @@ export function createChatHandlers(runtime) {
871
763
  const requestedTask = body.get("task");
872
764
  const focusTask = taskChatFocus(requestedTask, now, who);
873
765
  const chatProject = focusTask !== null ? null : chatProjectOf(body.getAll("project"));
874
- // The enhanced send (package 2): the SAME endpoint, fields, request
875
- // receipt key, and session binding as the native form — only the
876
- // answer differs. A fetch that asks for JSON gets the refusal's
877
- // words or an acceptance instead of a redirect; nothing is retried,
878
- // cleared, or authorized here that the native POST would not.
879
766
  const wantsJson = String(request.headers["accept"] ?? "").includes("application/json");
880
767
  if (requestedTask !== null && focusTask === null) {
881
768
  return wantsJson
@@ -895,9 +782,6 @@ export function createChatHandlers(runtime) {
895
782
  return said(409, "That result is no longer available for this task. Review the task before sending.");
896
783
  }
897
784
  const resultContext = viewedRun === null ? "" : ` The operator is viewing result #${viewedRun.id} from execution ${store.externalIdFor(viewedRun.taskRef)}. Use get_result for that exact execution and run when responding to feedback; do not substitute another result.`;
898
- // The task composer's mode (console v2): fixed words for this turn only.
899
- // It steers what the lead proposes and grants nothing: every action
900
- // still arrives as a card the person confirms under its own rules.
901
785
  const modeValue = body.get("mode");
902
786
  if (modeValue !== null && (focusTask === null || body.getAll("mode").length !== 1 || !Object.hasOwn(TASK_COMPOSER_MODES, modeValue))) {
903
787
  return said(400, "Choose Build, Plan only or Just answer, then send again. Your draft is saved.");
@@ -906,13 +790,7 @@ export function createChatHandlers(runtime) {
906
790
  const enabled = chatEnablement();
907
791
  if (!enabled.ok)
908
792
  return said(409, enabled.why);
909
- // A live mate session: the message is a mate turn — no password, the
910
- // session's ceremony already covered it (§1); the engine refuses on
911
- // its own terms and the thread shows why.
912
793
  let leadSession = who.role === "approver" ? store.activeLeadSession(who.name) : null;
913
- // Quiet page visits: a membership conversation starts with its first message, never with a page view. A page
914
- // shown before one existed binds its sends to session 0; that send starts it (the same approver standing a visit
915
- // used to need), and a retry or double submit of the same request lands in the conversation it started.
916
794
  let startedHere = false;
917
795
  const binding = body.getAll("request-session");
918
796
  const unbound = binding.length === 0 || (binding.length === 1 && binding[0] === String(NOT_STARTED_SESSION));
@@ -924,7 +802,6 @@ export function createChatHandlers(runtime) {
924
802
  if (sentRequest !== null && (body.getAll("request").length !== 1 || !/^[a-f0-9]{32}$/.test(sentRequest)))
925
803
  return said(409, "This conversation changed. Reload it before sending your message.");
926
804
  const usable = leadSession !== null && leadSession.ceilingDigest === principal.ceilingDigest && leadSession.approverGeneration === principal.generation;
927
- // The conversation this very request started, if it started one: a retry or double submit lands only there.
928
805
  const startedBy = sentRequest === null ? null : store.leadStartReceipt(who.name, sentRequest);
929
806
  if (startedBy !== null) {
930
807
  if (!usable || leadSession === null || leadSession.id !== startedBy.session)
@@ -932,19 +809,16 @@ export function createChatHandlers(runtime) {
932
809
  startedHere = true;
933
810
  }
934
811
  else if (usable && leadSession !== null) {
935
- // A page that showed no conversation never sends into one it did not start.
936
812
  if (binding.length === 1)
937
813
  return said(409, "This conversation changed. Reload it before sending your message.", leadSession.id);
938
814
  }
939
815
  else {
940
- // Nothing starts for a message that would be refused anyway.
941
816
  const message = (body.get("message") ?? "").trim();
942
817
  if (message === "" || message.length > LEAD_MESSAGE_MAX_CHARS)
943
818
  return said(400, `a message is 1 to ${LEAD_MESSAGE_MAX_CHARS} characters`);
944
819
  if (scanForSecrets(message).length > 0)
945
820
  return said(400, "that looks like a credential — chat never forwards or stores those");
946
821
  const scope = chatScopeOf(focusTask, chatProject);
947
- // The start and its record are one write: a retry finds it, and never starts a second conversation.
948
822
  const started = startLeadConversation(who, principal, enabled, 0, false, now, scope, sentRequest ?? undefined);
949
823
  leadSession = store.activeLeadSession(who.name);
950
824
  if (leadSession === null || leadSession.id !== started)
@@ -957,7 +831,6 @@ export function createChatHandlers(runtime) {
957
831
  if (sentRequest !== null && !startedHere && (body.getAll("request").length !== 1 || body.getAll("request-session").length !== 1 || body.get("request-session") !== String(leadSession.id))) {
958
832
  return said(409, "This conversation changed. Reload it before sending your message.");
959
833
  }
960
- // Every send has one identity (a form without one gets it here): a message that waits is known by it.
961
834
  const requestId = sentRequest ?? randomBytes(16).toString("hex");
962
835
  const principal = leadPrincipal(who);
963
836
  if (principal === null)
@@ -967,15 +840,11 @@ export function createChatHandlers(runtime) {
967
840
  return said(400, `a message is 1 to ${LEAD_MESSAGE_MAX_CHARS} characters`, leadSession.id);
968
841
  }
969
842
  const opened = store.openLeadThread(who.name, principal.ceilingDigest, now, chatScopeOf(focusTask, chatProject));
970
- // The personal queue (docs/plans/lead-message-queue.md): while this person's lead is busy, or something of theirs
971
- // waits, the message waits its turn instead of being refused. A request the engine already took replays as before.
972
843
  const queueContext = focusTask !== null
973
844
  ? { task: focusTask.id, ...(viewedRun === null ? {} : { result: viewedRun.id }), ...(modeValue === null ? {} : { mode: modeValue }) }
974
845
  : chatProject !== null ? { project: chatProject } : null;
975
846
  const queueIt = () => runtime.personalQueue.queue.sendOrQueue({ approver: who.name, approverGeneration: principal.generation, session: leadSession.id,
976
847
  ceilingDigest: principal.ceilingDigest, thread: opened.thread.id, text: message, requestId, context: queueContext }, clock());
977
- // A message the engine would refuse for a secret never waits (nothing stored): it goes straight to the engine,
978
- // which refuses it before any row exists, exactly as when the lead is free.
979
848
  if (scanForSecrets(message).length === 0 && store.leadRequestReceipt(leadSession.id, requestId) === null) {
980
849
  const decided = queueIt();
981
850
  if (decided.kind === "conflict")
@@ -989,35 +858,23 @@ export function createChatHandlers(runtime) {
989
858
  : redirect(response, chatReturnWithLatest(back));
990
859
  }
991
860
  }
992
- // The live display starts once this message holds a turn: a refusal (a secret, a turn still running) never blanks
993
- // the display of a reply that is still running in the same conversation.
994
861
  let onProgress;
995
- // Partials are shaped as the final reply is: for this message, with this console's own addresses.
996
862
  const liveShape = { asked: message, appOrigin: requestContext.getStore()?.appOrigins ?? null };
997
863
  const ended = (ok) => { if (onProgress !== undefined)
998
864
  endLiveTurn(opened.thread.id, ok, onProgress); };
999
- // Detached work never carries this request's browser session (Passwordless reads it): it runs with no session facts.
1000
865
  void freshFacts.run(null, () => runLeadTurn({ store, who: principal, session: leadSession, thread: opened.thread, config: enabled.config, key: enabled.key, message,
1001
866
  onAdmitted: () => { onProgress = beginLiveTurn(opened.thread.id, liveShape); }, onProgress: event => onProgress?.(event), channel: "console", requestId, ...(focusTask === null && chatProject !== null ? { context: `Current project: ${projectName(chatProject)} (${chatProject}). Keep this conversation about that project unless the operator explicitly asks to broaden it; use it as the repo for project tools.` } : {}), ...(focusTask === null ? {} : { context: `Current task: ${focusTask.id}. Read it with get_task before answering or proposing changes. Read its currentExecution next and bind new actions to that exact execution. Never replace the target of a prior proposal with a newer revision. Keep this turn about that task unless the operator explicitly asks to broaden it.${resultContext}${modeContext}` }), fetcher: chatFetcher, ...(options.subscriptionChatRunner === undefined ? {} : { subscriptionRunner: options.subscriptionChatRunner }), clock, evidenceRoot }))
1002
867
  .then(outcome => {
1003
- // Lost a race to another turn of this person's between deciding and admission: it waits instead of being refused.
1004
868
  if (!outcome.ok && "refused" in outcome && (outcome.refused === "concurrent" || outcome.refused === "backlog") && queueIt().kind === "queued") {
1005
869
  ended(false);
1006
870
  return;
1007
871
  }
1008
- // A turn that saved its outcome in the thread (one stopped at its deadline) is said there, once. Any other turn
1009
- // that ended failed is said from its saved row (leadConversationRows `failure`), which a restart keeps; only a
1010
- // refusal before any turn existed is said from memory.
1011
872
  if (!outcome.ok && !("saved" in outcome && outcome.saved === true) && !("turn" in outcome))
1012
873
  noteLead(who.session.csrf, null, outcome.message);
1013
874
  ended(outcome.ok);
1014
875
  })
1015
876
  .catch(() => { noteLead(who.session.csrf, null, "the turn failed unexpectedly"); ended(false); })
1016
- // A personal turn ended: the next waiting message (this person's or anyone's) may start now.
1017
877
  .finally(() => runtime.personalQueue.kick());
1018
- // Accepted for the engine, not received: the receipt is written by
1019
- // the turn's own admission, and the status poll is where the page
1020
- // learns of it — the same road as after a native send.
1021
878
  if (wantsJson)
1022
879
  return respond(response, 202, "application/json", JSON.stringify({ ok: true, session: leadSession.id, task: focusTask?.id ?? "", ...(chatProject === null ? {} : { project: chatProject }), request: requestId }));
1023
880
  return redirect(response, chatReturnWithLatest(back));
@@ -1030,15 +887,10 @@ export function createChatHandlers(runtime) {
1030
887
  if (enabled.billing === "subscription") {
1031
888
  return redirect(response, `/chat?said=${encodeURIComponent("start the conversation first — the one password ceremony opens the subscription-backed session")}`);
1032
889
  }
1033
- // The password, typed again, on EVERY message (v2 ruling 2): chat is
1034
- // spend, and a seven-day cookie is not a spend credential.
1035
890
  const message = (body.get("message") ?? "").trim();
1036
891
  if (message === "" || message.length > 2_000) {
1037
892
  return redirect(response, `/chat?said=${encodeURIComponent("a message is 1 to 2000 characters")}`);
1038
893
  }
1039
- // Secrets refuse BEFORE any row or request exists — nothing stored,
1040
- // nothing sent (v3 brief; scanForSecrets is the same high-confidence
1041
- // set the evidence path trusts).
1042
894
  if (scanForSecrets(message).length > 0) {
1043
895
  return redirect(response, `/chat?said=${encodeURIComponent("that looks like a credential — chat never forwards or stores those")}`);
1044
896
  }
@@ -1046,8 +898,6 @@ export function createChatHandlers(runtime) {
1046
898
  const turnRepos = managedRepos();
1047
899
  const snapshot = withDispatchDiagnoses(store, store.chatSnapshot(turnRepos, now), now);
1048
900
  const { document } = buildDataDocument(snapshot);
1049
- // The WHOLE outbound body is scanned — a token in a task title
1050
- // refuses the turn exactly like one typed in the box (v2 ruling 4).
1051
901
  const composed = composeRequest({
1052
902
  provider: enabled.config.provider,
1053
903
  model: enabled.config.model,
@@ -1058,17 +908,12 @@ export function createChatHandlers(runtime) {
1058
908
  if (scanForSecrets(composed.body).length > 0) {
1059
909
  return redirect(response, `/chat?said=${encodeURIComponent("fleet context contains something credential-shaped — chat refuses to send it; find and remove it first")}`);
1060
910
  }
1061
- // Sprint 8: the organisation policy allows this chat's provider and model, or the turn doesn't start.
1062
911
  const disallowed = store.agentPolicyRefusal(enabled.config.provider, enabled.config.model);
1063
912
  if (disallowed !== null)
1064
913
  return redirect(response, `/chat?said=${encodeURIComponent(disallowed)}`);
1065
914
  const reserved = worstCaseForPrice(enabled.price, Buffer.byteLength(composed.body, "utf8"));
1066
- // The password comes last, right where the turn opens: every refusal above leaves an explicit re-check unspent,
1067
- // and a turn that doesn't open (a cap, a budget) puts it back.
1068
915
  const password = body.get("token") ?? "";
1069
916
  const opened = spendingOnlyOnSuccess(() => {
1070
- // Typed now, or (cockpit B2) a password or explicit provider re-check given on this session, on a direct local
1071
- // request, within its window. An ordinary provider sign-in never starts that window.
1072
917
  if (!withFreshness("chat-send", () => authenticateApprover(who, password)).ok)
1073
918
  return null;
1074
919
  return store.openChatTurn({
@@ -1108,7 +953,6 @@ export function createChatHandlers(runtime) {
1108
953
  const key = url.pathname.split("/")[3];
1109
954
  const chat = who.session.chat;
1110
955
  const candidate = chat?.candidates.get(key);
1111
- // The filing act creates durable rows from model text: password again.
1112
956
  const password = body.get("token") ?? "";
1113
957
  if (password === "" || !authenticateApprover(who, password).ok) {
1114
958
  return redirect(response, `/chat?said=${encodeURIComponent("filing a draft takes your password, typed again")}`);
@@ -1116,7 +960,6 @@ export function createChatHandlers(runtime) {
1116
960
  if (chat === undefined || candidate === undefined) {
1117
961
  return refuse(response, who, 404, "that draft is gone — drafts live in the session and do not survive restarts", "/chat");
1118
962
  }
1119
- // Single-use CAS with no await between check and claim (v2 new 3).
1120
963
  if (candidate.state !== "pending")
1121
964
  return refuse(response, who, 409, "that draft is already being filed", "/chat");
1122
965
  candidate.state = "filing";
@@ -1125,8 +968,6 @@ export function createChatHandlers(runtime) {
1125
968
  candidate.state = "pending";
1126
969
  return refuse(response, who, 409, "the world changed since this draft was made — it cannot be filed", "/chat");
1127
970
  }
1128
- // Re-validated at the act: the door runs every field check again, and
1129
- // the fields are scanned for secrets before they become durable.
1130
971
  const acceptanceFields = candidate.draft.acceptance.flatMap(c => [c.statement, ...(c.how === null ? [] : [c.how])]);
1131
972
  const fields = [candidate.draft.title, candidate.draft.goal, candidate.draft.outOfScope ?? "", ...candidate.draft.touches, ...acceptanceFields];
1132
973
  if (scanForSecrets(fields.join("\n")).length > 0) {
@@ -1172,10 +1013,8 @@ export function createChatHandlers(runtime) {
1172
1013
  }
1173
1014
  return redirect(response, "/chat");
1174
1015
  }
1175
- /** Chat's first run: the steps, first tasks until the first task exists, and the sandbox while no agent is signed in. */
1176
1016
  function chatFirstRun(now, project) {
1177
1017
  const repo = project ?? managedRepos()[0] ?? null;
1178
- // Done only when a task in this project could start: a live builder bound to it, as dispatch decides.
1179
1018
  const steps = withBuilderStep(firstRunStepsNow(now), builderReadyFor(store, firstRunBuilderRepo(store, project, visible, managedRepos()), now));
1180
1019
  if (steps === null)
1181
1020
  return undefined;
@@ -1187,13 +1026,10 @@ export function createChatHandlers(runtime) {
1187
1026
  suggestions: taskFiled || repo === null ? [] : firstTasksFor(repo),
1188
1027
  sandbox: agent !== undefined && !agent.done && !agent.checking ? SANDBOX_COMMAND : null,
1189
1028
  intro: HOW_IT_WORKS,
1190
- lead: lead === null ? null : { words: `The lead uses ${lead}`, href: "/settings/lead" },
1191
- // With no lead yet and no agent signed in, the page asks this computer again on its own.
1029
+ lead: lead === null ? null : { words: `Chat uses ${lead}`, href: "/settings/lead" },
1192
1030
  recheck: store.getChatConfig() === null && agent !== undefined && !agent.done ? "/lead/check" : null,
1193
1031
  };
1194
1032
  }
1195
- /** After the first Ready result, once (onboarding): the phone, by a chat app or the console over Tailscale. */
1196
- /** Chat's one-line pointer to the phone setup: after the first Ready result, until put away or Telegram is paired. */
1197
1033
  function phoneCard(who, now) {
1198
1034
  if (who.role !== "approver" || store.isDemo() || store.firstSuccessAt(now) === null || store.installationFact(PHONE_CARD_FACT) !== null)
1199
1035
  return undefined;
@@ -1202,16 +1038,12 @@ export function createChatHandlers(runtime) {
1202
1038
  return undefined;
1203
1039
  return phoneSetup(who);
1204
1040
  }
1205
- /** The project a chat request names: exactly one, visible to this person
1206
- * and one of this console's projects; undefined when refused. */
1207
1041
  function chatProjectOf(values) {
1208
1042
  if (values.length === 0)
1209
1043
  return null;
1210
1044
  const wanted = values[0] ?? "";
1211
1045
  return values.length === 1 && visible(wanted) && managedRepos().includes(wanted) ? wanted : undefined;
1212
1046
  }
1213
- /** Which live display each progress handle started: ending a turn ends only its own display (a turn stopped from
1214
- * another window that settles late can never end the next turn's). */
1215
1047
  const progressOf = new WeakMap();
1216
1048
  function beginLiveTurn(thread, shape = {}) {
1217
1049
  const previous = liveTurns.get(thread);
@@ -1219,7 +1051,6 @@ export function createChatHandlers(runtime) {
1219
1051
  clearTimeout(previous.expiry);
1220
1052
  const live = { steps: [], done: false, ok: false, listeners: previous?.listeners ?? new Set(), startedAt: clock().getTime(), stepAt: [], reply: createLiveReply(shape) };
1221
1053
  liveTurns.set(thread, live);
1222
- // A page that has this conversation open follows the reply (GET /live, its chat room).
1223
1054
  runtime.liveTurnStarted(thread);
1224
1055
  const newStep = () => { live.steps.push({ tools: [], toolCalls: [], text: "" }); live.stepAt.push(clock().getTime()); };
1225
1056
  const current = () => live.steps.at(-1) ?? (newStep(), live.steps.at(-1));
@@ -1248,7 +1079,6 @@ export function createChatHandlers(runtime) {
1248
1079
  (live.confirmed ??= [])[live.steps.length - 1] = event.final === true;
1249
1080
  }
1250
1081
  else if (event.kind === "blocked") {
1251
- // Held back as a possible password or key: no step keeps its words (the Live grid's tile reads these too).
1252
1082
  for (const step of live.steps)
1253
1083
  step.text = "";
1254
1084
  }
@@ -1292,7 +1122,6 @@ export function createChatHandlers(runtime) {
1292
1122
  const turn = store.getLeadTurn(noted.turn);
1293
1123
  return turn !== null && turn.session === liveSession ? noted.message : null;
1294
1124
  }
1295
- /** A finished demo exchange's result, read back from the evidence its run actually stored. */
1296
1125
  function demoResultView(exchange) {
1297
1126
  if (exchange.runId === null || exchange.taskId === null)
1298
1127
  return null;
@@ -1333,9 +1162,8 @@ export function createChatHandlers(runtime) {
1333
1162
  }
1334
1163
  const file = join(options.configDir, `chat-key-${provider}`);
1335
1164
  writeFsFileSync(file, `${key.trim()}\n`, { mode: 0o600 });
1336
- // writeFileSync applies the mode only on creation; assert it regardless.
1337
1165
  chmodSync(file, 0o600);
1338
- runtime.catalogCache = null; // a new key may see a different catalog
1166
+ runtime.catalogCache = null;
1339
1167
  return { ok: true };
1340
1168
  }
1341
1169
  function forgetChatKey(provider) {
@@ -1345,12 +1173,9 @@ export function createChatHandlers(runtime) {
1345
1173
  rmFileSync(join(options.configDir, `chat-key-${provider}`));
1346
1174
  }
1347
1175
  catch {
1348
- // never stored — nothing to forget
1349
1176
  }
1350
1177
  runtime.catalogCache = null;
1351
1178
  }
1352
- /** Session-memory hygiene: drafts age out; a filed or dead session frees
1353
- * its bytes; the per-approver cap spans ALL that approver's sessions. */
1354
1179
  function sweepChatDrafts(nowMs) {
1355
1180
  for (const session of sessions.values()) {
1356
1181
  if (session.chat === undefined)
@@ -1361,10 +1186,6 @@ export function createChatHandlers(runtime) {
1361
1186
  }
1362
1187
  }
1363
1188
  }
1364
- /** The one network call a turn makes, run detached from the request that
1365
- * opened it. Every failure maps to the closed enum BEFORE anything can
1366
- * log it; a turn that may have started but has no usable usage LATCHES
1367
- * (unknown spend blocks the credential until acknowledged). */
1368
1189
  async function runChatTurn(turnId, session, enabled, userMessage, dataDocument, turnRepos) {
1369
1190
  const started = store.startChatTurn(turnId, new Date());
1370
1191
  if (!started.ok)
@@ -1396,7 +1217,6 @@ export function createChatHandlers(runtime) {
1396
1217
  };
1397
1218
  if (!result.ok) {
1398
1219
  if (result.problem.startsWith("status-")) {
1399
- // The provider ANSWERED with an error: nothing billed.
1400
1220
  finish({ state: "failed", failureReason: "provider-error", settledMicrousd: 0 });
1401
1221
  tell(null, "The chat provider turned the request down. Nothing was kept or charged. Try again in a minute.");
1402
1222
  }
@@ -1409,18 +1229,14 @@ export function createChatHandlers(runtime) {
1409
1229
  tell(null, "The chat provider stopped responding partway through, and the cost isn't known, so chat is paused. Confirm the cost on this page to turn chat back on.");
1410
1230
  }
1411
1231
  else {
1412
- // 200 with an unusable wrapper: billed, amount unproven.
1413
1232
  finish({ state: "failed", failureReason: "malformed-reply", settledMicrousd: null, unknownSpend: true });
1414
1233
  tell(null, "The chat provider sent back an answer that couldn't be read, and its cost isn't known, so chat is paused. Confirm the cost on this page to turn chat back on.");
1415
1234
  }
1416
1235
  return;
1417
1236
  }
1418
- // The pinned math, or the provider's own reported charge when that is
1419
- // HIGHER — the ledger never undercounts what actually left the wallet.
1420
1237
  const pinnedSettle = settleForPrice(enabled.price, result.answer.tokensIn, result.answer.tokensOut);
1421
1238
  const settled = Math.max(pinnedSettle, result.answer.reportedCostMicrousd ?? 0);
1422
1239
  const envelope = parseAssistantEnvelope(result.answer.text);
1423
- // v140: what the provider's response body itself reported (absent: unreported, kept NULL).
1424
1240
  const reported = { modelReported: result.answer.modelReported ?? null, reportedCostUsd: result.answer.reportedCostUsd ?? null };
1425
1241
  if (!envelope.ok) {
1426
1242
  finish({
@@ -1468,9 +1284,6 @@ export function createChatHandlers(runtime) {
1468
1284
  });
1469
1285
  tell(envelope.envelope.reply, null, envelope.proposalsDiscarded);
1470
1286
  }
1471
- /** The Chat landing's live view: each agent at work now with its task and
1472
- * phase, four counts, plan-window use (never dollars: subscriptions don't
1473
- * bill per run) and Catch up's items, each tagged with its tab. Reads only. */
1474
1287
  function chatHomeOf(who, repos, now) {
1475
1288
  const access = workAccess();
1476
1289
  const admitted = (repo) => repo === null ? visible(null) : repos.includes(repo);
@@ -1480,13 +1293,11 @@ export function createChatHandlers(runtime) {
1480
1293
  agent: `${providerName(run.provider)} on ${run.runner}`, phase: homePhaseWords(run), project: run.repo === null ? null : projectName(run.repo), since: run.startedAt,
1481
1294
  activity: runActivityOf(store, run, now) };
1482
1295
  });
1483
- // The three whole views, read at most once per workspace revision (and on a read worker first when one is attached).
1484
1296
  const view = (name) => sharedIndexPage(access, { view: name, limit: WORK_INDEX_MAX_LIMIT, ...(evidenceRoot === undefined ? {} : { root: evidenceRoot }) });
1485
1297
  const all = view("all"), needs = view("needs-you"), done = view("completed");
1486
1298
  const weekAgo = new Date(now.getTime() - 7 * 86_400_000).toISOString();
1487
1299
  const counts = [
1488
1300
  { key: "working", label: "Working now", value: agents.length, href: "/tasks?view=running" },
1489
- // Each by its shared headline, as the Tasks list words it: a result whose checks failed waits on you, it isn't ready.
1490
1301
  { key: "waiting", label: "Waiting on you", value: needs.items.filter(one => one.status.label !== "Ready for review").length, href: "/tasks?view=needs-you" },
1491
1302
  { key: "ready", label: "Ready to review", value: needs.items.filter(one => one.status.label === "Ready for review").length, href: "/tasks?view=needs-you" },
1492
1303
  { key: "done", label: "Done this week", value: done.items.filter(one => (one.completion?.at ?? one.updatedAt) >= weekAgo).length, href: "/tasks?view=completed" },
@@ -1502,7 +1313,6 @@ export function createChatHandlers(runtime) {
1502
1313
  })(),
1503
1314
  }));
1504
1315
  const windows = who.via === "cookie" && store.isInstanceOperator(who.name) ? limitsView(store.providerLimits(), [], { project: projectName, subagent: id => `Subagent ${id}` }, now) : null;
1505
- // One line: what this person's lead is doing now and when it last acted.
1506
1316
  const activity = leadActivity(store, who.name);
1507
1317
  const leadTask = activity?.taskId == null ? null : store.lookupRef(activity.taskId);
1508
1318
  const lead = activity === null ? null : { name: activity.name, doing: activity.doing, at: activity.at,
@@ -1512,8 +1322,6 @@ export function createChatHandlers(runtime) {
1512
1322
  planUse: (windows?.tiles ?? []).map(one => ({ name: one.name, window: one.window, percent: one.percent, detail: one.detail, tone: one.tone })),
1513
1323
  };
1514
1324
  }
1515
- /** The first tasks last found for a project (docs/plans/get-side-effects.md): the background checks ask gh and
1516
- * git grep while the first run is open; a page shows what they found, or the generic three. */
1517
1325
  function firstTasksFor(repo) {
1518
1326
  return firstTasks.get(repo)?.found ?? firstTaskSuggestions({ issues: [], todos: [] });
1519
1327
  }