toolroll 0.9.103 → 0.9.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1518) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +27 -27
  3. package/dist/accent-colors.js +0 -29
  4. package/dist/acp-agents.js +0 -3
  5. package/dist/acp-attest.js +0 -30
  6. package/dist/acp-check.js +3 -70
  7. package/dist/acp-client.js +3 -94
  8. package/dist/acp-inspect.js +1 -20
  9. package/dist/action-ledger.js +0 -8
  10. package/dist/activity-line.js +0 -14
  11. package/dist/actor.js +0 -15
  12. package/dist/advanced-schema.js +12 -0
  13. package/dist/advanced-view.js +26 -0
  14. package/dist/advanced.js +61 -0
  15. package/dist/agent-board.js +0 -117
  16. package/dist/agent-fence.js +11 -367
  17. package/dist/agent-onboard.js +12 -50
  18. package/dist/agent-pulse.js +5 -38
  19. package/dist/agent-state-words.js +0 -8
  20. package/dist/agent-state.js +1 -45
  21. package/dist/agent-turns.js +3 -17
  22. package/dist/agentconfig.js +1 -99
  23. package/dist/agents-board.js +0 -60
  24. package/dist/agents-live.js +1 -8
  25. package/dist/api-tokens.js +0 -27
  26. package/dist/approval-authority.js +0 -59
  27. package/dist/approval-password.js +0 -10
  28. package/dist/approval-policy.js +0 -29
  29. package/dist/approval-rules-ui.js +0 -9
  30. package/dist/assignment-adapters.js +0 -14
  31. package/dist/assignment-brief.js +1 -17
  32. package/dist/assignment-delivery.js +0 -22
  33. package/dist/assignment-presentation.js +0 -14
  34. package/dist/assignment-status.js +1 -30
  35. package/dist/assignment-ui.js +0 -12
  36. package/dist/assignment.js +117 -103
  37. package/dist/attest.js +0 -38
  38. package/dist/audit-cli.js +0 -9
  39. package/dist/backend.js +0 -59
  40. package/dist/backup-ui.js +0 -12
  41. package/dist/backup.js +8 -61
  42. package/dist/batch-checks.js +0 -20
  43. package/dist/batch-policy.js +0 -4
  44. package/dist/beads.js +0 -48
  45. package/dist/bin.js +0 -8
  46. package/dist/board.js +1 -36
  47. package/dist/boot-identity.js +0 -42
  48. package/dist/bounded-spawn.js +4 -28
  49. package/dist/brand-mark.js +0 -21
  50. package/dist/brief-fence.js +0 -16
  51. package/dist/browser/terminal.css +1 -1
  52. package/dist/browser/terminal.js +16 -16
  53. package/dist/browser/workspace.css +2 -2
  54. package/dist/browser/workspace.js +26 -26
  55. package/dist/browser-crew.js +0 -8
  56. package/dist/browser-shell.js +2 -15
  57. package/dist/browser-workspace.js +6 -30
  58. package/dist/budget-alerts.js +1 -4
  59. package/dist/build-review.js +2 -50
  60. package/dist/builder-restart.js +0 -13
  61. package/dist/builder.js +21 -1035
  62. package/dist/canonical-json.js +0 -12
  63. package/dist/capscan.js +1 -32
  64. package/dist/card-catalog.js +0 -12
  65. package/dist/card-cli.js +0 -1
  66. package/dist/card-render.js +0 -25
  67. package/dist/card-sources.js +0 -10
  68. package/dist/chat-acceptance.js +0 -7
  69. package/dist/chat-actions.js +5 -190
  70. package/dist/chat-admission.js +0 -7
  71. package/dist/chat-approval.js +0 -25
  72. package/dist/chat-ask.js +0 -17
  73. package/dist/chat-card-part.js +0 -3
  74. package/dist/chat-card.js +0 -6
  75. package/dist/chat-channel.js +2 -83
  76. package/dist/chat-continuity.js +0 -31
  77. package/dist/chat-controls.js +0 -7
  78. package/dist/chat-core.js +0 -55
  79. package/dist/chat-decide.js +2 -153
  80. package/dist/chat-delivery-state.js +0 -49
  81. package/dist/chat-delivery.js +2 -143
  82. package/dist/chat-display.js +0 -2
  83. package/dist/chat-evidence.js +0 -65
  84. package/dist/chat-flow.js +0 -72
  85. package/dist/chat-follow.js +0 -13
  86. package/dist/chat-inbox.js +0 -34
  87. package/dist/chat-live-schema.js +0 -14
  88. package/dist/chat-live.js +2 -87
  89. package/dist/chat-message-states.js +13 -40
  90. package/dist/chat-messages.js +0 -153
  91. package/dist/chat-migration.js +0 -57
  92. package/dist/chat-polish.js +0 -7
  93. package/dist/chat-quiet.js +0 -37
  94. package/dist/chat-review.js +0 -4
  95. package/dist/chat-rooms.js +0 -22
  96. package/dist/chat-settings-page.js +0 -4
  97. package/dist/chat-task-actions.js +0 -7
  98. package/dist/chat-terms.js +0 -21
  99. package/dist/chat-voice.js +0 -38
  100. package/dist/chat-warmth.js +1 -3
  101. package/dist/check-access.js +0 -30
  102. package/dist/check-facts.js +2 -62
  103. package/dist/check-failure.js +0 -98
  104. package/dist/check-levels-ui.js +4 -10
  105. package/dist/check-levels.js +3 -35
  106. package/dist/check-load.js +1 -49
  107. package/dist/check-only-standing.js +0 -6
  108. package/dist/check-only.js +0 -22
  109. package/dist/check-progress.js +0 -32
  110. package/dist/check-repair.js +2 -35
  111. package/dist/check-report.js +1 -108
  112. package/dist/check-stamp.js +0 -20
  113. package/dist/checkout-cleanup.js +0 -84
  114. package/dist/checkout-proof.js +1 -13
  115. package/dist/child-database.js +0 -3
  116. package/dist/claim.js +4 -508
  117. package/dist/claude-print.js +0 -10
  118. package/dist/cli-fast.js +0 -8
  119. package/dist/cli-help.js +90 -78
  120. package/dist/cli-http.js +0 -10
  121. package/dist/cli.js +26 -241
  122. package/dist/code-extract.js +0 -6
  123. package/dist/code-map-acts.js +0 -7
  124. package/dist/code-map-admission.js +2 -26
  125. package/dist/code-map-build.js +3 -24
  126. package/dist/code-map-cli.js +0 -4
  127. package/dist/code-map-main.js +0 -6
  128. package/dist/code-map-read.js +0 -12
  129. package/dist/code-map-report.js +0 -9
  130. package/dist/code-map-shape.js +0 -19
  131. package/dist/code-map-store.js +0 -26
  132. package/dist/codex-limits.js +1 -17
  133. package/dist/coding-context.js +0 -10
  134. package/dist/coding-handoff.js +0 -14
  135. package/dist/coding-provider.js +0 -39
  136. package/dist/coding-shipping-ui.js +0 -1
  137. package/dist/coding-ui.js +0 -1
  138. package/dist/coding-update.js +1 -18
  139. package/dist/coding-workspace.js +0 -27
  140. package/dist/commit-extract.js +0 -83
  141. package/dist/connect-cli.js +0 -19
  142. package/dist/console-chrome.js +1 -34
  143. package/dist/console-instance.js +2 -91
  144. package/dist/container-state.js +0 -4
  145. package/dist/containment.js +2 -105
  146. package/dist/contract-changes.js +0 -6
  147. package/dist/contracts/acceptance-terms.js +0 -7
  148. package/dist/contracts/chat-actions.js +0 -46
  149. package/dist/contracts/chat-callback-rows.js +0 -8
  150. package/dist/contracts/chat-card.js +0 -14
  151. package/dist/contracts/chat-content.js +0 -55
  152. package/dist/contracts/chat-tables.js +0 -7
  153. package/dist/contracts/cli.js +0 -59
  154. package/dist/contracts/coding-activity.js +0 -15
  155. package/dist/contracts/coding-context.js +0 -15
  156. package/dist/contracts/coding-handoff.js +0 -11
  157. package/dist/contracts/coding-workspace.js +0 -14
  158. package/dist/contracts/console-api.js +3 -54
  159. package/dist/contracts/contract-test.js +0 -14
  160. package/dist/contracts/contract.js +0 -48
  161. package/dist/contracts/decision.js +0 -20
  162. package/dist/contracts/diff-stat.js +0 -16
  163. package/dist/contracts/discord-callback.js +0 -9
  164. package/dist/contracts/flow-card.js +0 -18
  165. package/dist/contracts/flow-propose.js +0 -8
  166. package/dist/contracts/flow-send.js +0 -31
  167. package/dist/contracts/flow.js +0 -112
  168. package/dist/contracts/gateway-tools.js +0 -22
  169. package/dist/contracts/handoff.js +0 -22
  170. package/dist/contracts/integration-metadata.js +0 -39
  171. package/dist/contracts/lead-context.js +0 -14
  172. package/dist/contracts/lead-tools.js +0 -49
  173. package/dist/contracts/mcp-oauth.js +0 -12
  174. package/dist/contracts/memory-pass.js +0 -21
  175. package/dist/contracts/model-catalog.js +0 -9
  176. package/dist/contracts/observation-request.js +0 -11
  177. package/dist/contracts/plan.js +0 -16
  178. package/dist/contracts/project-knowledge.js +0 -26
  179. package/dist/contracts/project-memory.js +0 -16
  180. package/dist/contracts/project-skills.js +0 -31
  181. package/dist/contracts/proof.js +0 -23
  182. package/dist/contracts/provider.js +0 -9
  183. package/dist/contracts/recipes.js +0 -16
  184. package/dist/contracts/release-check.js +0 -61
  185. package/dist/contracts/release-terms.js +0 -27
  186. package/dist/contracts/retention.js +0 -12
  187. package/dist/contracts/review-findings.js +0 -13
  188. package/dist/contracts/route-results.js +0 -15
  189. package/dist/contracts/route.js +0 -33
  190. package/dist/contracts/scope.js +0 -29
  191. package/dist/contracts/scout-report.js +0 -34
  192. package/dist/contracts/slack-callback.js +0 -11
  193. package/dist/contracts/sort-answer.js +0 -24
  194. package/dist/contracts/stage-output.js +0 -46
  195. package/dist/contracts/storage.js +0 -8
  196. package/dist/contracts/store-json.js +0 -41
  197. package/dist/contracts/subagent-turn.js +0 -23
  198. package/dist/contracts/task-sizing.js +0 -10
  199. package/dist/contracts/teams-callback.js +0 -7
  200. package/dist/contracts/telegram-callback.js +0 -27
  201. package/dist/contracts/trigger-payloads.js +0 -41
  202. package/dist/contracts/update-journal.js +0 -47
  203. package/dist/contracts/verification-receipt.js +0 -36
  204. package/dist/contracts/verification-view.js +0 -15
  205. package/dist/contracts/youiyoux-request.js +0 -26
  206. package/dist/control-setup.js +0 -7
  207. package/dist/control-ui.js +0 -3
  208. package/dist/controller-service.js +0 -4
  209. package/dist/controller-supervisor.js +0 -15
  210. package/dist/converse.js +3 -129
  211. package/dist/coordinator-proposals.js +1 -6
  212. package/dist/coordinator.js +0 -65
  213. package/dist/credentials-ui.js +0 -6
  214. package/dist/daemon.js +0 -137
  215. package/dist/database-reclaim.js +0 -3
  216. package/dist/decision.js +0 -78
  217. package/dist/demo-chat.js +4 -15
  218. package/dist/demo-sign-in.js +77 -0
  219. package/dist/demo.js +5 -194
  220. package/dist/deploy-gate.js +0 -20
  221. package/dist/deploy-lock.js +0 -4
  222. package/dist/deploy-phase.js +0 -22
  223. package/dist/deploy-rescue.js +0 -21
  224. package/dist/deprecations.js +0 -12
  225. package/dist/design/kit.css +9 -6
  226. package/dist/design/kit.js +2 -33
  227. package/dist/desktop-access.js +0 -9
  228. package/dist/desktop-bundle.js +1 -3
  229. package/dist/desktop-host.js +0 -34
  230. package/dist/desktop-update-gate.js +0 -8
  231. package/dist/desktop-update-recovery.js +1 -18
  232. package/dist/desktop-update.js +2 -48
  233. package/dist/digest-times.js +0 -2
  234. package/dist/disclosure.js +0 -5
  235. package/dist/discord-api.js +0 -6
  236. package/dist/discord-chat.js +0 -31
  237. package/dist/discord.js +0 -7
  238. package/dist/discover.js +0 -50
  239. package/dist/dispatch.js +61 -60
  240. package/dist/dispose.js +0 -208
  241. package/dist/doctor.js +0 -48
  242. package/dist/easy-start-args.js +7 -7
  243. package/dist/easy-start.js +32 -45
  244. package/dist/egress.js +1 -63
  245. package/dist/email-settings.js +0 -8
  246. package/dist/envelope.js +50 -86
  247. package/dist/eval-gate.js +1 -37
  248. package/dist/eval-hooks.js +0 -120
  249. package/dist/eval-oracle-main.js +0 -7
  250. package/dist/eval-oracle.js +3 -42
  251. package/dist/eval-world.js +1 -23
  252. package/dist/evals.js +6 -134
  253. package/dist/evidence-pack.js +0 -29
  254. package/dist/evidence-pair.js +0 -17
  255. package/dist/evidence.js +4 -280
  256. package/dist/exec.js +19 -404
  257. package/dist/exhaustion.js +0 -30
  258. package/dist/export-ui.js +0 -7
  259. package/dist/export.js +1 -38
  260. package/dist/failing-first.js +0 -6
  261. package/dist/fallback-schema.js +0 -5
  262. package/dist/fallback.js +0 -81
  263. package/dist/fast-start.js +0 -97
  264. package/dist/fast-terms.js +0 -3
  265. package/dist/fenced-check-coverage.js +0 -11
  266. package/dist/findings.js +1 -63
  267. package/dist/first-run.js +4 -57
  268. package/dist/first-tasks-child.js +0 -5
  269. package/dist/flaky-ci.js +1 -24
  270. package/dist/flaky-cli.js +0 -4
  271. package/dist/flaky.js +0 -43
  272. package/dist/fleet-schema.js +0 -11
  273. package/dist/flow-actions.js +0 -31
  274. package/dist/flow-browser.js +0 -42
  275. package/dist/flow-cadence.js +1 -24
  276. package/dist/flow-card-task.js +0 -11
  277. package/dist/flow-changed.js +0 -16
  278. package/dist/flow-code.js +1 -45
  279. package/dist/flow-draft.js +0 -17
  280. package/dist/flow-engine.js +2 -76
  281. package/dist/flow-gallery-ui.js +0 -28
  282. package/dist/flow-gallery.js +0 -54
  283. package/dist/flow-insights.js +0 -12
  284. package/dist/flow-items.js +0 -27
  285. package/dist/flow-live.js +0 -31
  286. package/dist/flow-people.js +0 -14
  287. package/dist/flow-pull-request.js +0 -32
  288. package/dist/flow-replies.js +0 -9
  289. package/dist/flow-result-card.js +0 -8
  290. package/dist/flow-schedule.js +0 -74
  291. package/dist/flow-scripts.js +0 -13
  292. package/dist/flow-secrets.js +0 -10
  293. package/dist/flow-send.js +0 -45
  294. package/dist/flow-share.js +0 -60
  295. package/dist/flow-sort.js +1 -24
  296. package/dist/flow-starters-ui.js +0 -2
  297. package/dist/flow-starters.js +0 -13
  298. package/dist/flow-steps.js +0 -80
  299. package/dist/flow-triggers.js +2 -256
  300. package/dist/flow-unattended-words.js +0 -13
  301. package/dist/flow-unattended.js +2 -115
  302. package/dist/flows-cli.js +2 -36
  303. package/dist/flows-ui.js +0 -51
  304. package/dist/flows.js +0 -158
  305. package/dist/folder-gate.js +0 -21
  306. package/dist/folder-look.js +0 -42
  307. package/dist/follow-through-brief.js +0 -6
  308. package/dist/follow-through-cli.js +0 -5
  309. package/dist/fonts.js +0 -13
  310. package/dist/gaps.js +0 -20
  311. package/dist/gate-failure.js +0 -7
  312. package/dist/git-floor.js +0 -12
  313. package/dist/git-incident.js +2 -38
  314. package/dist/git-views.js +0 -24
  315. package/dist/git.js +0 -31
  316. package/dist/github-import.js +0 -22
  317. package/dist/github-jobs.js +0 -12
  318. package/dist/google-mail.js +2 -27
  319. package/dist/grant.js +0 -110
  320. package/dist/graph.js +0 -108
  321. package/dist/guides.js +4 -15
  322. package/dist/handover-note.js +0 -12
  323. package/dist/health-cli.js +0 -2
  324. package/dist/home-groups.js +0 -15
  325. package/dist/html.js +0 -54
  326. package/dist/install-method.js +0 -12
  327. package/dist/integrations-ui.js +0 -15
  328. package/dist/integrations.js +7 -50
  329. package/dist/invoke.js +1 -381
  330. package/dist/is-record.js +0 -1
  331. package/dist/issues.js +0 -48
  332. package/dist/jsonl-discriminants.js +0 -6
  333. package/dist/keymap.js +2 -16
  334. package/dist/keys.js +0 -56
  335. package/dist/kits-ui.js +0 -3
  336. package/dist/kits.js +1 -24
  337. package/dist/knowledge-cli.js +0 -4
  338. package/dist/knowledge-ui.js +0 -8
  339. package/dist/landed-cleanup.js +0 -119
  340. package/dist/laptop-background.js +0 -85
  341. package/dist/laptop-service.js +0 -67
  342. package/dist/latency-timeline.js +2 -23
  343. package/dist/lead-about.js +0 -7
  344. package/dist/lead-answer-eval.js +0 -39
  345. package/dist/lead-capabilities.js +0 -19
  346. package/dist/lead-cli-live.js +0 -22
  347. package/dist/lead-cli.js +0 -27
  348. package/dist/lead-commitments.js +1 -27
  349. package/dist/lead-context.js +2 -42
  350. package/dist/lead-contract.js +0 -8
  351. package/dist/lead-doors.js +0 -105
  352. package/dist/lead-follow.js +0 -41
  353. package/dist/lead-identity.js +1 -4
  354. package/dist/lead-latency-schema.js +0 -13
  355. package/dist/lead-people.js +3 -18
  356. package/dist/lead-progress.js +0 -12
  357. package/dist/lead-queue-runtime.js +0 -26
  358. package/dist/lead-queue.js +0 -35
  359. package/dist/lead-route.js +0 -33
  360. package/dist/lead-status.js +0 -37
  361. package/dist/lead-sweep.js +0 -18
  362. package/dist/lead-tools.js +0 -160
  363. package/dist/lead-voice.js +0 -54
  364. package/dist/lead.js +2 -105
  365. package/dist/learning-child.js +0 -6
  366. package/dist/learning-look.js +0 -14
  367. package/dist/ledger-chain.js +0 -34
  368. package/dist/ledger-csv.js +0 -2
  369. package/dist/ledger-view.js +0 -3
  370. package/dist/lesson-notes.js +0 -56
  371. package/dist/limits-ui.js +0 -14
  372. package/dist/link.js +0 -79
  373. package/dist/live-backup.js +3 -33
  374. package/dist/live-bus.js +7 -81
  375. package/dist/live-children-read.js +4 -47
  376. package/dist/live-children.js +4 -44
  377. package/dist/live-detail.js +0 -17
  378. package/dist/live-input.js +5 -68
  379. package/dist/live-main-read.js +1 -14
  380. package/dist/live-notes.js +0 -12
  381. package/dist/live-open.js +1 -23
  382. package/dist/live-records.js +4 -151
  383. package/dist/live-reply.js +1 -51
  384. package/dist/live-terminal.js +12 -111
  385. package/dist/live.js +4 -130
  386. package/dist/local-owner-acts.js +168 -0
  387. package/dist/local-owner.js +15 -80
  388. package/dist/log.js +0 -8
  389. package/dist/login-secrets.js +2 -38
  390. package/dist/machine-check.js +0 -2
  391. package/dist/machine-identity.js +1 -46
  392. package/dist/mailbox.js +0 -30
  393. package/dist/maintenance.js +1 -3
  394. package/dist/mcp-connect.js +0 -88
  395. package/dist/mcp-core.js +0 -45
  396. package/dist/mcp-http.js +0 -13
  397. package/dist/mcp-oauth.js +0 -37
  398. package/dist/mcp-person.js +0 -11
  399. package/dist/mcp.js +3 -73
  400. package/dist/memory-cli.js +0 -3
  401. package/dist/memory-pass.js +0 -53
  402. package/dist/memory-tidy.js +0 -55
  403. package/dist/memory-use.js +2 -24
  404. package/dist/merge-checklist.js +21 -29
  405. package/dist/metrics.js +0 -10
  406. package/dist/mobile-viewport.js +0 -6
  407. package/dist/model-catalog.js +1 -33
  408. package/dist/model-choices.js +9 -84
  409. package/dist/model-names.js +0 -9
  410. package/dist/models-cli.js +0 -13
  411. package/dist/models-ui.js +0 -17
  412. package/dist/modes.js +0 -35
  413. package/dist/monitoring-settings.js +2 -27
  414. package/dist/monitoring-ui.js +2 -14
  415. package/dist/monitoring.js +2 -38
  416. package/dist/names.js +0 -39
  417. package/dist/needs-you.js +7 -70
  418. package/dist/never-index.js +0 -9
  419. package/dist/nightly-check.js +0 -74
  420. package/dist/nightly-github.js +0 -168
  421. package/dist/notification-delivery.js +0 -3
  422. package/dist/notification-rows.js +0 -17
  423. package/dist/oauth-run-token.js +1 -37
  424. package/dist/observations.js +0 -16
  425. package/dist/oidc.js +1 -20
  426. package/dist/onboard.js +4 -57
  427. package/dist/one-step-chat-schema.js +0 -15
  428. package/dist/openrouter-models.js +0 -6
  429. package/dist/operate-remote-arguments.js +2 -17
  430. package/dist/operate-remote.js +0 -33
  431. package/dist/operate.js +280 -2304
  432. package/dist/orphan-sweep.js +3 -37
  433. package/dist/page-work-contract.js +0 -3
  434. package/dist/password-bearer.js +1 -11
  435. package/dist/passwordless.js +0 -3
  436. package/dist/peek-cli.js +0 -46
  437. package/dist/peek.js +2 -61
  438. package/dist/people-audit-ui.js +0 -6
  439. package/dist/person-proof.js +0 -6
  440. package/dist/phase-routing.js +8 -183
  441. package/dist/plain-schema.js +0 -14
  442. package/dist/plain-words.js +18 -12
  443. package/dist/plan-auto.js +3 -18
  444. package/dist/plan-login.js +0 -16
  445. package/dist/plan.js +0 -68
  446. package/dist/plane-review.js +0 -56
  447. package/dist/planner-source.js +0 -96
  448. package/dist/planner.js +0 -117
  449. package/dist/policy-ui.js +0 -8
  450. package/dist/policy.js +0 -47
  451. package/dist/prepared-evidence.js +0 -5
  452. package/dist/principal.js +0 -29
  453. package/dist/probe.js +0 -30
  454. package/dist/process-custody.js +0 -15
  455. package/dist/process-liveness.js +0 -32
  456. package/dist/process-tree.js +3 -29
  457. package/dist/project-access.js +0 -10
  458. package/dist/project-admission.js +1 -41
  459. package/dist/project-cli.js +0 -6
  460. package/dist/project-concurrency.js +0 -35
  461. package/dist/project-delete-ui.js +4 -29
  462. package/dist/project-delete.js +1 -73
  463. package/dist/project-demo.js +0 -13
  464. package/dist/project-file.js +0 -2
  465. package/dist/project-identity.js +0 -41
  466. package/dist/project-knowledge.js +0 -39
  467. package/dist/project-learning.js +3 -55
  468. package/dist/project-memory.js +2 -45
  469. package/dist/project-outcomes.js +0 -6
  470. package/dist/project-sandbox.js +0 -23
  471. package/dist/project-skills.js +0 -12
  472. package/dist/project-tools.js +6 -184
  473. package/dist/project.js +0 -48
  474. package/dist/prompt.js +0 -31
  475. package/dist/proof.js +0 -220
  476. package/dist/proposal.js +0 -50
  477. package/dist/protected-storage-look.js +0 -6
  478. package/dist/protected-storage.js +1 -84
  479. package/dist/provider-auth.js +3 -69
  480. package/dist/provider-capture.js +1 -15
  481. package/dist/provider-connection.js +0 -8
  482. package/dist/provider-home.js +0 -25
  483. package/dist/provider-limits.js +0 -14
  484. package/dist/provider.js +0 -324
  485. package/dist/public-access.js +11 -30
  486. package/dist/public-check.js +0 -16
  487. package/dist/publish.js +1 -150
  488. package/dist/pull-request-flow.js +6 -74
  489. package/dist/pull-request-schema.js +0 -4
  490. package/dist/pull-request-ui.js +0 -5
  491. package/dist/pulls.js +0 -80
  492. package/dist/push.js +5 -89
  493. package/dist/quick-start.js +1 -23
  494. package/dist/read-executor-worker.js +0 -1
  495. package/dist/read-executor.js +0 -10
  496. package/dist/read-only-request.js +0 -7
  497. package/dist/recipe-ui.js +0 -6
  498. package/dist/recipes.js +0 -13
  499. package/dist/release-adapters.js +6 -214
  500. package/dist/release-approval.js +0 -74
  501. package/dist/release-authority.js +0 -42
  502. package/dist/release-auto.js +0 -142
  503. package/dist/release-card.js +26 -103
  504. package/dist/release-carry.js +0 -132
  505. package/dist/release-ci-hold.js +0 -20
  506. package/dist/release-cli.js +0 -46
  507. package/dist/release-coverage.js +0 -16
  508. package/dist/release-gate.js +0 -30
  509. package/dist/release-git.js +0 -24
  510. package/dist/release-links.js +0 -17
  511. package/dist/release-net.js +0 -42
  512. package/dist/release-next.js +0 -25
  513. package/dist/release-recheck.js +0 -89
  514. package/dist/release-refusal.js +0 -18
  515. package/dist/release-view.js +0 -5
  516. package/dist/release.js +7 -341
  517. package/dist/releases.js +0 -49
  518. package/dist/remote-audit.js +0 -25
  519. package/dist/remote-command.js +0 -16
  520. package/dist/remote-destination.js +5 -26
  521. package/dist/remote-exec.js +1 -27
  522. package/dist/remote-main.js +1 -53
  523. package/dist/remote-run.js +0 -5
  524. package/dist/remote.js +0 -49
  525. package/dist/render.js +0 -133
  526. package/dist/reply-shape.js +0 -85
  527. package/dist/reply-voice.js +0 -7
  528. package/dist/report-summary.js +0 -5
  529. package/dist/reported-usage.js +0 -30
  530. package/dist/repos.js +9 -62
  531. package/dist/repository-context.js +1 -24
  532. package/dist/request-budget-ui.js +0 -4
  533. package/dist/request-budget.js +0 -23
  534. package/dist/restart-certification.js +0 -37
  535. package/dist/result-actions.js +0 -62
  536. package/dist/result-acts.js +0 -34
  537. package/dist/result-completion.js +9 -28
  538. package/dist/result-evidence-readers.js +0 -3
  539. package/dist/result-follow-ups.js +1 -39
  540. package/dist/result-review.js +0 -86
  541. package/dist/result-shots.js +0 -39
  542. package/dist/retention-ui.js +0 -7
  543. package/dist/retention.js +2 -46
  544. package/dist/review-context.js +0 -129
  545. package/dist/review-evidence.js +0 -4
  546. package/dist/review-switch.js +1 -7
  547. package/dist/reviewer.js +0 -35
  548. package/dist/route-change-check.js +0 -2
  549. package/dist/route-change.js +0 -16
  550. package/dist/route-hooks.js +0 -27
  551. package/dist/route-results.js +2 -58
  552. package/dist/route-rules.js +1 -106
  553. package/dist/route-savings.js +0 -36
  554. package/dist/route-store.js +1 -133
  555. package/dist/run-closeout.js +2 -50
  556. package/dist/run-efficiency.js +2 -44
  557. package/dist/run-ending.js +0 -13
  558. package/dist/runner-process.js +0 -33
  559. package/dist/runner.js +17 -189
  560. package/dist/sample-project.js +2 -27
  561. package/dist/sandbox-launch.js +4 -25
  562. package/dist/sandbox-runtime.js +1 -88
  563. package/dist/scan.js +0 -27
  564. package/dist/scope.js +88 -566
  565. package/dist/scout-browser-lock.js +0 -6
  566. package/dist/scout-browser.js +2 -68
  567. package/dist/scout-net.js +1 -32
  568. package/dist/scout-report.js +0 -22
  569. package/dist/scout.js +1 -116
  570. package/dist/secret-mint.js +0 -6
  571. package/dist/serve.js +29 -564
  572. package/dist/server/agents-computers.js +0 -10
  573. package/dist/server/agents-live-filed.js +0 -13
  574. package/dist/server/agents-live-lead.js +0 -19
  575. package/dist/server/agents-live-room.js +0 -19
  576. package/dist/server/chat.js +2 -194
  577. package/dist/server/chrome.js +17 -263
  578. package/dist/server/console.css +4 -4
  579. package/dist/server/edge-refusal.js +0 -3
  580. package/dist/server/flows.js +5 -74
  581. package/dist/server/guards.js +9 -86
  582. package/dist/server/handler-registry.js +0 -2
  583. package/dist/server/home-asks.js +1 -22
  584. package/dist/server/home.js +1 -30
  585. package/dist/server/http.js +0 -82
  586. package/dist/server/in-place.js +0 -15
  587. package/dist/server/kit-standalone.js +0 -20
  588. package/dist/server/kit.js +2 -114
  589. package/dist/server/last-checks.js +0 -2
  590. package/dist/server/live.js +1 -36
  591. package/dist/server/merge-ready-view.js +0 -6
  592. package/dist/server/mutation-key.js +3 -40
  593. package/dist/server/pages-assets.js +0 -16
  594. package/dist/server/pages.js +7 -195
  595. package/dist/server/people-tokens.js +3 -101
  596. package/dist/server/remote-hooks.js +0 -13
  597. package/dist/server/remote.js +0 -28
  598. package/dist/server/render-chat.js +8 -144
  599. package/dist/server/render-code-map.js +0 -5
  600. package/dist/server/render-flaky.js +0 -8
  601. package/dist/server/render-follow-through.js +2 -5
  602. package/dist/server/render-history.js +2 -34
  603. package/dist/server/render-new-task.js +2 -29
  604. package/dist/server/render-pages.js +1 -111
  605. package/dist/server/render-people.js +2 -46
  606. package/dist/server/render-projects.js +15 -32
  607. package/dist/server/render-release.js +1 -14
  608. package/dist/server/render-results.js +4 -355
  609. package/dist/server/render-settings.js +0 -15
  610. package/dist/server/render-tasks.js +17 -497
  611. package/dist/server/request-context.js +2 -9
  612. package/dist/server/retired-routes.js +0 -11
  613. package/dist/server/route-policy.js +0 -3
  614. package/dist/server/route-table.js +8 -133
  615. package/dist/server/runtime.js +0 -1
  616. package/dist/server/session.js +0 -28
  617. package/dist/server/settings.js +40 -246
  618. package/dist/server/signup-gate.js +0 -11
  619. package/dist/server/sweeps.js +0 -6
  620. package/dist/server/task-views.js +12 -227
  621. package/dist/server/tasks.js +37 -531
  622. package/dist/server/terminals.js +2 -46
  623. package/dist/server/welcome.js +2 -22
  624. package/dist/server-telemetry.js +0 -9
  625. package/dist/settings-groups-ui.js +50 -63
  626. package/dist/settings-kit-script.js +0 -19
  627. package/dist/settings-kit.js +0 -63
  628. package/dist/settings-proofs.js +0 -23
  629. package/dist/setup-guide.js +1 -9
  630. package/dist/shared-deps.js +9 -84
  631. package/dist/sign-in-guard.js +0 -27
  632. package/dist/skills-ui.js +0 -2
  633. package/dist/skills.js +2 -54
  634. package/dist/slack-api.js +0 -3
  635. package/dist/slack-chat.js +0 -25
  636. package/dist/slack-settings.js +0 -1
  637. package/dist/slack-socket.js +0 -5
  638. package/dist/slack.js +0 -4
  639. package/dist/sleep.js +0 -1
  640. package/dist/source-key.js +0 -10
  641. package/dist/spend-report.js +0 -29
  642. package/dist/spend-ui.js +0 -26
  643. package/dist/spend.js +0 -40
  644. package/dist/sqlite-runtime.js +0 -2
  645. package/dist/sqlite-telemetry.js +0 -9
  646. package/dist/sso-settings.js +0 -13
  647. package/dist/sso-ui.js +0 -2
  648. package/dist/staged-runtimes.js +5 -39
  649. package/dist/steer-capabilities.js +1 -7
  650. package/dist/steer-controls.js +0 -10
  651. package/dist/steer-live.js +0 -31
  652. package/dist/steer-mailbox.js +4 -65
  653. package/dist/steer-status.js +0 -7
  654. package/dist/stop-proof.js +5 -62
  655. package/dist/storage-sweep-child.js +1 -5
  656. package/dist/storage-sweep-process.js +2 -20
  657. package/dist/storage-sweep-schedule.js +0 -32
  658. package/dist/storage-sweep.js +2 -51
  659. package/dist/storage-ui.js +0 -18
  660. package/dist/storage.js +0 -31
  661. package/dist/store-baseline.js +0 -14
  662. package/dist/store.js +109 -4763
  663. package/dist/stream-scope.js +0 -16
  664. package/dist/structured-output.js +0 -39
  665. package/dist/style-asset.js +0 -2
  666. package/dist/subagent-admin.js +0 -9
  667. package/dist/subagent-desk.js +0 -29
  668. package/dist/subagent-memory.js +0 -38
  669. package/dist/subagent-question.js +0 -29
  670. package/dist/subagent-tools.js +1 -60
  671. package/dist/subagent-week.js +0 -28
  672. package/dist/subagent-work.js +1 -39
  673. package/dist/subagents-ui.js +1 -13
  674. package/dist/subagents.js +0 -40
  675. package/dist/subscription-chat.js +1 -42
  676. package/dist/summary.js +0 -19
  677. package/dist/surface.js +8 -73
  678. package/dist/sweep-gate.js +0 -2
  679. package/dist/sweep-quarantine.js +2 -13
  680. package/dist/sync.js +0 -47
  681. package/dist/tailnet.js +0 -9
  682. package/dist/tamper-scan.js +0 -15
  683. package/dist/task-activity.js +1 -16
  684. package/dist/task-aliases.js +0 -3
  685. package/dist/task-archive.js +0 -7
  686. package/dist/task-base.js +0 -18
  687. package/dist/task-composer.js +0 -2
  688. package/dist/task-control.js +0 -74
  689. package/dist/task-live.js +0 -23
  690. package/dist/task-moves.js +0 -28
  691. package/dist/task-outcome-cli.js +66 -19
  692. package/dist/task-review-brief.js +0 -7
  693. package/dist/task-sizing.js +0 -47
  694. package/dist/task-source.js +0 -23
  695. package/dist/task-status.js +0 -106
  696. package/dist/task-text.js +0 -12
  697. package/dist/team-chat-authorization.js +0 -3
  698. package/dist/team-contract.js +0 -2
  699. package/dist/team-http.js +0 -4
  700. package/dist/team-leads.js +1 -16
  701. package/dist/team-runtime.js +0 -13
  702. package/dist/team-ui.js +0 -1
  703. package/dist/team-updates.js +0 -4
  704. package/dist/teams-api.js +0 -12
  705. package/dist/teams-chat.js +0 -28
  706. package/dist/teams.js +0 -12
  707. package/dist/teardown-git.js +6 -294
  708. package/dist/telegram-flow.js +0 -51
  709. package/dist/telegram-lead.js +2 -203
  710. package/dist/telegram-live.js +1 -42
  711. package/dist/telegram-progress.js +0 -18
  712. package/dist/telegram-settings.js +0 -7
  713. package/dist/telegram-status.js +0 -46
  714. package/dist/telegram-team.js +1 -33
  715. package/dist/telegram.js +6 -454
  716. package/dist/templates.js +0 -24
  717. package/dist/terminal-catalog.js +2 -20
  718. package/dist/terminal-text.js +0 -12
  719. package/dist/test-infra.js +0 -50
  720. package/dist/test-temp.js +3 -26
  721. package/dist/text-limits.js +0 -92
  722. package/dist/tidy.js +0 -76
  723. package/dist/tier-report.js +0 -2
  724. package/dist/token-notices.js +1 -9
  725. package/dist/tokens-cli.js +0 -13
  726. package/dist/tool-broker.js +2 -53
  727. package/dist/tool-launcher.js +0 -14
  728. package/dist/tool-secret-store.js +3 -125
  729. package/dist/toolroll-update-cli.js +0 -9
  730. package/dist/toolroll-update-ui.js +0 -14
  731. package/dist/toolroll-update.js +13 -252
  732. package/dist/tools-ui.js +0 -17
  733. package/dist/transitions-recipes.js +0 -2
  734. package/dist/tree-proof.js +0 -23
  735. package/dist/tui-contract.js +0 -8
  736. package/dist/tui-source.js +91 -40
  737. package/dist/tui.js +54 -54
  738. package/dist/typed-start.js +0 -27
  739. package/dist/unfenced-test-support.js +0 -5
  740. package/dist/up-processes.js +1 -40
  741. package/dist/up-role-child.js +1 -13
  742. package/dist/update-notice.js +0 -1
  743. package/dist/vanished-retry.js +0 -40
  744. package/dist/verification-evidence.js +0 -39
  745. package/dist/version.js +0 -1
  746. package/dist/wake-hub.js +0 -28
  747. package/dist/webhook-limits.js +0 -7
  748. package/dist/webhook-readers.js +0 -30
  749. package/dist/webhook-signing.js +0 -14
  750. package/dist/webhooks.js +0 -54
  751. package/dist/welcome-facts.js +2 -14
  752. package/dist/when-html.js +0 -27
  753. package/dist/work-index.js +26 -98
  754. package/dist/work-summary.js +2 -17
  755. package/dist/workspace-motion.js +0 -2
  756. package/dist/workspace-revision.js +1 -21
  757. package/dist/workspace-ui.js +15 -135
  758. package/dist/worktree-notices.js +0 -3
  759. package/dist/worktree.js +0 -308
  760. package/dist/writes-mode.js +0 -1
  761. package/dist/youiyoux-intake.js +4 -159
  762. package/package.json +5 -4
  763. package/dist/accent-colors.d.ts +0 -51
  764. package/dist/acp-agents.d.ts +0 -43
  765. package/dist/acp-attest.d.ts +0 -44
  766. package/dist/acp-check.d.ts +0 -37
  767. package/dist/acp-client.d.ts +0 -163
  768. package/dist/acp-inspect.d.ts +0 -23
  769. package/dist/action-ledger.d.ts +0 -27
  770. package/dist/activity-line.d.ts +0 -29
  771. package/dist/actor.d.ts +0 -11
  772. package/dist/agent-board.d.ts +0 -229
  773. package/dist/agent-fence.d.ts +0 -479
  774. package/dist/agent-onboard.d.ts +0 -158
  775. package/dist/agent-pulse.d.ts +0 -43
  776. package/dist/agent-state-words.d.ts +0 -19
  777. package/dist/agent-state.d.ts +0 -65
  778. package/dist/agent-turns.d.ts +0 -52
  779. package/dist/agentconfig.d.ts +0 -191
  780. package/dist/agents-board.d.ts +0 -145
  781. package/dist/agents-live.d.ts +0 -31
  782. package/dist/api-tokens.d.ts +0 -80
  783. package/dist/approval-authority.d.ts +0 -51
  784. package/dist/approval-password.d.ts +0 -31
  785. package/dist/approval-policy.d.ts +0 -69
  786. package/dist/approval-rules-ui.d.ts +0 -40
  787. package/dist/assignment-adapters.d.ts +0 -152
  788. package/dist/assignment-brief.d.ts +0 -83
  789. package/dist/assignment-delivery.d.ts +0 -86
  790. package/dist/assignment-presentation.d.ts +0 -37
  791. package/dist/assignment-status.d.ts +0 -71
  792. package/dist/assignment-ui.d.ts +0 -68
  793. package/dist/assignment.d.ts +0 -318
  794. package/dist/attest.d.ts +0 -59
  795. package/dist/audit-cli.d.ts +0 -17
  796. package/dist/backend.d.ts +0 -97
  797. package/dist/backup-ui.d.ts +0 -32
  798. package/dist/backup.d.ts +0 -92
  799. package/dist/batch-checks.d.ts +0 -15
  800. package/dist/batch-policy.d.ts +0 -23
  801. package/dist/beads.d.ts +0 -34
  802. package/dist/bin.d.ts +0 -2
  803. package/dist/board.d.ts +0 -134
  804. package/dist/boot-identity.d.ts +0 -64
  805. package/dist/bounded-spawn.d.ts +0 -57
  806. package/dist/brand-icons.d.ts +0 -168
  807. package/dist/brand-mark.d.ts +0 -28
  808. package/dist/brief-fence.d.ts +0 -9
  809. package/dist/browser-crew.d.ts +0 -12
  810. package/dist/browser-shell.d.ts +0 -9
  811. package/dist/browser-workspace.d.ts +0 -1972
  812. package/dist/budget-alerts.d.ts +0 -19
  813. package/dist/build-review.d.ts +0 -38
  814. package/dist/builder-restart.d.ts +0 -21
  815. package/dist/builder.d.ts +0 -409
  816. package/dist/canonical-json.d.ts +0 -14
  817. package/dist/capscan.d.ts +0 -35
  818. package/dist/card-catalog.d.ts +0 -209
  819. package/dist/card-cli.d.ts +0 -43
  820. package/dist/card-render.d.ts +0 -43
  821. package/dist/card-sources.d.ts +0 -68
  822. package/dist/chat-acceptance.d.ts +0 -74
  823. package/dist/chat-actions.d.ts +0 -460
  824. package/dist/chat-admission.d.ts +0 -19
  825. package/dist/chat-approval.d.ts +0 -58
  826. package/dist/chat-ask.d.ts +0 -32
  827. package/dist/chat-card-part.d.ts +0 -11
  828. package/dist/chat-card.d.ts +0 -46
  829. package/dist/chat-channel.d.ts +0 -126
  830. package/dist/chat-continuity.d.ts +0 -32
  831. package/dist/chat-controls.d.ts +0 -117
  832. package/dist/chat-core.d.ts +0 -177
  833. package/dist/chat-decide.d.ts +0 -269
  834. package/dist/chat-delivery-state.d.ts +0 -132
  835. package/dist/chat-delivery.d.ts +0 -71
  836. package/dist/chat-display.d.ts +0 -1
  837. package/dist/chat-evidence.d.ts +0 -123
  838. package/dist/chat-flow.d.ts +0 -70
  839. package/dist/chat-follow.d.ts +0 -20
  840. package/dist/chat-inbox.d.ts +0 -57
  841. package/dist/chat-live-schema.d.ts +0 -17
  842. package/dist/chat-live.d.ts +0 -161
  843. package/dist/chat-message-states.d.ts +0 -75
  844. package/dist/chat-messages.d.ts +0 -338
  845. package/dist/chat-migration.d.ts +0 -30
  846. package/dist/chat-polish.d.ts +0 -17
  847. package/dist/chat-quiet.d.ts +0 -40
  848. package/dist/chat-review.d.ts +0 -51
  849. package/dist/chat-rooms.d.ts +0 -123
  850. package/dist/chat-settings-page.d.ts +0 -43
  851. package/dist/chat-task-actions.d.ts +0 -59
  852. package/dist/chat-terms.d.ts +0 -29
  853. package/dist/chat-voice.d.ts +0 -69
  854. package/dist/chat-warmth.d.ts +0 -21
  855. package/dist/check-access.d.ts +0 -54
  856. package/dist/check-facts.d.ts +0 -126
  857. package/dist/check-failure.d.ts +0 -113
  858. package/dist/check-levels-ui.d.ts +0 -36
  859. package/dist/check-levels.d.ts +0 -70
  860. package/dist/check-load.d.ts +0 -85
  861. package/dist/check-only-standing.d.ts +0 -36
  862. package/dist/check-only.d.ts +0 -15
  863. package/dist/check-progress.d.ts +0 -78
  864. package/dist/check-repair.d.ts +0 -47
  865. package/dist/check-report.d.ts +0 -177
  866. package/dist/check-stamp.d.ts +0 -46
  867. package/dist/checkout-cleanup.d.ts +0 -157
  868. package/dist/checkout-proof.d.ts +0 -28
  869. package/dist/child-database.d.ts +0 -12
  870. package/dist/claim.d.ts +0 -627
  871. package/dist/claude-print.d.ts +0 -12
  872. package/dist/cli-fast.d.ts +0 -8
  873. package/dist/cli-help.d.ts +0 -8
  874. package/dist/cli-http.d.ts +0 -58
  875. package/dist/cli.d.ts +0 -149
  876. package/dist/code-extract.d.ts +0 -44
  877. package/dist/code-map-acts.d.ts +0 -24
  878. package/dist/code-map-admission.d.ts +0 -52
  879. package/dist/code-map-build.d.ts +0 -63
  880. package/dist/code-map-cli.d.ts +0 -153
  881. package/dist/code-map-main.d.ts +0 -1
  882. package/dist/code-map-read.d.ts +0 -106
  883. package/dist/code-map-report.d.ts +0 -37
  884. package/dist/code-map-shape.d.ts +0 -172
  885. package/dist/code-map-store.d.ts +0 -136
  886. package/dist/codex-limits.d.ts +0 -15
  887. package/dist/coding-context.d.ts +0 -18
  888. package/dist/coding-handoff.d.ts +0 -39
  889. package/dist/coding-provider.d.ts +0 -88
  890. package/dist/coding-shipping-ui.d.ts +0 -5
  891. package/dist/coding-types.d.ts +0 -16
  892. package/dist/coding-ui.d.ts +0 -19
  893. package/dist/coding-update.d.ts +0 -28
  894. package/dist/coding-workspace.d.ts +0 -141
  895. package/dist/commit-extract.d.ts +0 -135
  896. package/dist/connect-cli.d.ts +0 -34
  897. package/dist/console-chrome.d.ts +0 -41
  898. package/dist/console-instance.d.ts +0 -157
  899. package/dist/container-state.d.ts +0 -5
  900. package/dist/containment.d.ts +0 -205
  901. package/dist/contract-changes.d.ts +0 -52
  902. package/dist/contracts/acceptance-terms.d.ts +0 -14
  903. package/dist/contracts/chat-actions.d.ts +0 -465
  904. package/dist/contracts/chat-callback-rows.d.ts +0 -59
  905. package/dist/contracts/chat-card.d.ts +0 -91
  906. package/dist/contracts/chat-content.d.ts +0 -551
  907. package/dist/contracts/chat-tables.d.ts +0 -12
  908. package/dist/contracts/cli.d.ts +0 -987
  909. package/dist/contracts/coding-activity.d.ts +0 -64
  910. package/dist/contracts/coding-context.d.ts +0 -97
  911. package/dist/contracts/coding-handoff.d.ts +0 -44
  912. package/dist/contracts/coding-workspace.d.ts +0 -165
  913. package/dist/contracts/console-api.d.ts +0 -539
  914. package/dist/contracts/contract-test.d.ts +0 -45
  915. package/dist/contracts/contract.d.ts +0 -92
  916. package/dist/contracts/decision.d.ts +0 -45
  917. package/dist/contracts/diff-stat.d.ts +0 -58
  918. package/dist/contracts/discord-callback.d.ts +0 -45
  919. package/dist/contracts/flow-card.d.ts +0 -53
  920. package/dist/contracts/flow-propose.d.ts +0 -334
  921. package/dist/contracts/flow-send.d.ts +0 -245
  922. package/dist/contracts/flow.d.ts +0 -19565
  923. package/dist/contracts/gateway-tools.d.ts +0 -472
  924. package/dist/contracts/handoff.d.ts +0 -91
  925. package/dist/contracts/health.d.ts +0 -82
  926. package/dist/contracts/integration-metadata.d.ts +0 -100
  927. package/dist/contracts/lead-context.d.ts +0 -165
  928. package/dist/contracts/lead-tools.d.ts +0 -2312
  929. package/dist/contracts/mcp-oauth.d.ts +0 -53
  930. package/dist/contracts/memory-pass.d.ts +0 -157
  931. package/dist/contracts/model-catalog.d.ts +0 -21
  932. package/dist/contracts/observation-request.d.ts +0 -37
  933. package/dist/contracts/plan.d.ts +0 -58
  934. package/dist/contracts/project-knowledge.d.ts +0 -159
  935. package/dist/contracts/project-memory.d.ts +0 -119
  936. package/dist/contracts/project-skills.d.ts +0 -120
  937. package/dist/contracts/proof.d.ts +0 -136
  938. package/dist/contracts/provider.d.ts +0 -40
  939. package/dist/contracts/recipes.d.ts +0 -166
  940. package/dist/contracts/release-check.d.ts +0 -371
  941. package/dist/contracts/release-terms.d.ts +0 -107
  942. package/dist/contracts/retention.d.ts +0 -42
  943. package/dist/contracts/review-findings.d.ts +0 -46
  944. package/dist/contracts/route-results.d.ts +0 -121
  945. package/dist/contracts/route.d.ts +0 -897
  946. package/dist/contracts/scope.d.ts +0 -105
  947. package/dist/contracts/scout-report.d.ts +0 -234
  948. package/dist/contracts/slack-callback.d.ts +0 -43
  949. package/dist/contracts/sort-answer.d.ts +0 -83
  950. package/dist/contracts/stage-output.d.ts +0 -127
  951. package/dist/contracts/storage.d.ts +0 -37
  952. package/dist/contracts/store-json.d.ts +0 -313
  953. package/dist/contracts/subagent-turn.d.ts +0 -43
  954. package/dist/contracts/task-sizing.d.ts +0 -24
  955. package/dist/contracts/teams-callback.d.ts +0 -13
  956. package/dist/contracts/telegram-callback.d.ts +0 -120
  957. package/dist/contracts/trigger-payloads.d.ts +0 -389
  958. package/dist/contracts/update-journal.d.ts +0 -254
  959. package/dist/contracts/verification-receipt.d.ts +0 -200
  960. package/dist/contracts/verification-view.d.ts +0 -102
  961. package/dist/contracts/youiyoux-request.d.ts +0 -248
  962. package/dist/control-setup.d.ts +0 -44
  963. package/dist/control-ui.d.ts +0 -37
  964. package/dist/controller-service.d.ts +0 -1
  965. package/dist/controller-supervisor.d.ts +0 -38
  966. package/dist/converse.d.ts +0 -316
  967. package/dist/coordinator-proposals.d.ts +0 -29
  968. package/dist/coordinator.d.ts +0 -186
  969. package/dist/credentials-ui.d.ts +0 -33
  970. package/dist/daemon.d.ts +0 -226
  971. package/dist/database-reclaim.d.ts +0 -4
  972. package/dist/decision.d.ts +0 -119
  973. package/dist/demo-chat.d.ts +0 -32
  974. package/dist/demo.d.ts +0 -153
  975. package/dist/deploy-gate.d.ts +0 -20
  976. package/dist/deploy-lock.d.ts +0 -8
  977. package/dist/deploy-phase.d.ts +0 -37
  978. package/dist/deploy-rescue.d.ts +0 -42
  979. package/dist/deprecations.d.ts +0 -20
  980. package/dist/design/kit.d.ts +0 -216
  981. package/dist/desktop-access.d.ts +0 -28
  982. package/dist/desktop-bundle.d.ts +0 -16
  983. package/dist/desktop-host.d.ts +0 -54
  984. package/dist/desktop-update-gate.d.ts +0 -12
  985. package/dist/desktop-update-recovery.d.ts +0 -14
  986. package/dist/desktop-update.d.ts +0 -147
  987. package/dist/digest-times.d.ts +0 -3
  988. package/dist/disclosure.d.ts +0 -6
  989. package/dist/discord-api.d.ts +0 -24
  990. package/dist/discord-chat.d.ts +0 -27
  991. package/dist/discord-settings.d.ts +0 -4
  992. package/dist/discord.d.ts +0 -10
  993. package/dist/discover.d.ts +0 -75
  994. package/dist/dispatch.d.ts +0 -123
  995. package/dist/dispose.d.ts +0 -194
  996. package/dist/doctor.d.ts +0 -67
  997. package/dist/easy-start-args.d.ts +0 -13
  998. package/dist/easy-start.d.ts +0 -77
  999. package/dist/egress.d.ts +0 -121
  1000. package/dist/email-settings.d.ts +0 -34
  1001. package/dist/envelope.d.ts +0 -47
  1002. package/dist/eval-gate.d.ts +0 -51
  1003. package/dist/eval-hooks.d.ts +0 -94
  1004. package/dist/eval-oracle-main.d.ts +0 -1
  1005. package/dist/eval-oracle.d.ts +0 -60
  1006. package/dist/eval-world.d.ts +0 -17
  1007. package/dist/evals.d.ts +0 -299
  1008. package/dist/evidence-pack.d.ts +0 -186
  1009. package/dist/evidence-pair.d.ts +0 -53
  1010. package/dist/evidence.d.ts +0 -371
  1011. package/dist/exec.d.ts +0 -355
  1012. package/dist/exhaustion.d.ts +0 -58
  1013. package/dist/export-ui.d.ts +0 -11
  1014. package/dist/export.d.ts +0 -48
  1015. package/dist/failing-first.d.ts +0 -31
  1016. package/dist/fallback-schema.d.ts +0 -8
  1017. package/dist/fallback.d.ts +0 -138
  1018. package/dist/fast-start.d.ts +0 -213
  1019. package/dist/fast-terms.d.ts +0 -9
  1020. package/dist/fenced-check-coverage.d.ts +0 -62
  1021. package/dist/findings.d.ts +0 -224
  1022. package/dist/first-run.d.ts +0 -197
  1023. package/dist/first-tasks-child.d.ts +0 -1
  1024. package/dist/flaky-ci.d.ts +0 -31
  1025. package/dist/flaky-cli.d.ts +0 -60
  1026. package/dist/flaky.d.ts +0 -83
  1027. package/dist/fleet-schema.d.ts +0 -17
  1028. package/dist/flow-actions.d.ts +0 -79
  1029. package/dist/flow-browser.d.ts +0 -103
  1030. package/dist/flow-cadence.d.ts +0 -48
  1031. package/dist/flow-card-task.d.ts +0 -11
  1032. package/dist/flow-changed.d.ts +0 -14
  1033. package/dist/flow-code.d.ts +0 -84
  1034. package/dist/flow-draft.d.ts +0 -42
  1035. package/dist/flow-engine.d.ts +0 -82
  1036. package/dist/flow-gallery-ui.d.ts +0 -73
  1037. package/dist/flow-gallery.d.ts +0 -147
  1038. package/dist/flow-insights.d.ts +0 -104
  1039. package/dist/flow-items.d.ts +0 -37
  1040. package/dist/flow-live.d.ts +0 -16
  1041. package/dist/flow-people.d.ts +0 -23
  1042. package/dist/flow-pull-request.d.ts +0 -14
  1043. package/dist/flow-replies.d.ts +0 -48
  1044. package/dist/flow-result-card.d.ts +0 -22
  1045. package/dist/flow-schedule.d.ts +0 -154
  1046. package/dist/flow-scripts.d.ts +0 -31
  1047. package/dist/flow-secrets.d.ts +0 -13
  1048. package/dist/flow-send.d.ts +0 -54
  1049. package/dist/flow-share.d.ts +0 -78
  1050. package/dist/flow-sort.d.ts +0 -63
  1051. package/dist/flow-starters-ui.d.ts +0 -15
  1052. package/dist/flow-starters.d.ts +0 -63
  1053. package/dist/flow-steps.d.ts +0 -52
  1054. package/dist/flow-triggers.d.ts +0 -303
  1055. package/dist/flow-unattended-words.d.ts +0 -48
  1056. package/dist/flow-unattended.d.ts +0 -259
  1057. package/dist/flows-cli.d.ts +0 -358
  1058. package/dist/flows-ui.d.ts +0 -70
  1059. package/dist/flows.d.ts +0 -136
  1060. package/dist/folder-gate.d.ts +0 -32
  1061. package/dist/folder-look.d.ts +0 -110
  1062. package/dist/follow-through-brief.d.ts +0 -12
  1063. package/dist/follow-through-cli.d.ts +0 -23
  1064. package/dist/fonts.d.ts +0 -19
  1065. package/dist/gaps.d.ts +0 -35
  1066. package/dist/gate-failure.d.ts +0 -40
  1067. package/dist/git-floor.d.ts +0 -16
  1068. package/dist/git-incident.d.ts +0 -65
  1069. package/dist/git-views.d.ts +0 -20
  1070. package/dist/git.d.ts +0 -54
  1071. package/dist/github-import.d.ts +0 -62
  1072. package/dist/github-jobs.d.ts +0 -25
  1073. package/dist/google-mail.d.ts +0 -59
  1074. package/dist/grant.d.ts +0 -136
  1075. package/dist/graph.d.ts +0 -164
  1076. package/dist/guides.d.ts +0 -22
  1077. package/dist/handover-note.d.ts +0 -33
  1078. package/dist/health-cli.d.ts +0 -3
  1079. package/dist/home-groups.d.ts +0 -39
  1080. package/dist/html.d.ts +0 -85
  1081. package/dist/install-method.d.ts +0 -17
  1082. package/dist/integrations-ui.d.ts +0 -17
  1083. package/dist/integrations.d.ts +0 -138
  1084. package/dist/invoke.d.ts +0 -228
  1085. package/dist/is-record.d.ts +0 -2
  1086. package/dist/issues.d.ts +0 -41
  1087. package/dist/jsonl-discriminants.d.ts +0 -11
  1088. package/dist/keymap.d.ts +0 -41
  1089. package/dist/keys.d.ts +0 -108
  1090. package/dist/kits-ui.d.ts +0 -16
  1091. package/dist/kits.d.ts +0 -88
  1092. package/dist/knowledge-cli.d.ts +0 -132
  1093. package/dist/knowledge-ui.d.ts +0 -45
  1094. package/dist/landed-cleanup.d.ts +0 -175
  1095. package/dist/laptop-background.d.ts +0 -187
  1096. package/dist/laptop-service.d.ts +0 -111
  1097. package/dist/latency-timeline.d.ts +0 -46
  1098. package/dist/lead-about.d.ts +0 -35
  1099. package/dist/lead-answer-eval.d.ts +0 -93
  1100. package/dist/lead-capabilities.d.ts +0 -57
  1101. package/dist/lead-cli-live.d.ts +0 -56
  1102. package/dist/lead-cli.d.ts +0 -58
  1103. package/dist/lead-commitments.d.ts +0 -84
  1104. package/dist/lead-context.d.ts +0 -45
  1105. package/dist/lead-contract.d.ts +0 -10
  1106. package/dist/lead-doors.d.ts +0 -122
  1107. package/dist/lead-follow.d.ts +0 -26
  1108. package/dist/lead-identity.d.ts +0 -23
  1109. package/dist/lead-latency-schema.d.ts +0 -24
  1110. package/dist/lead-people.d.ts +0 -55
  1111. package/dist/lead-progress.d.ts +0 -67
  1112. package/dist/lead-queue-runtime.d.ts +0 -46
  1113. package/dist/lead-queue.d.ts +0 -104
  1114. package/dist/lead-route.d.ts +0 -56
  1115. package/dist/lead-status.d.ts +0 -116
  1116. package/dist/lead-sweep.d.ts +0 -67
  1117. package/dist/lead-tools.d.ts +0 -167
  1118. package/dist/lead-voice.d.ts +0 -85
  1119. package/dist/lead.d.ts +0 -142
  1120. package/dist/learning-child.d.ts +0 -1
  1121. package/dist/learning-look.d.ts +0 -25
  1122. package/dist/ledger-chain.d.ts +0 -46
  1123. package/dist/ledger-csv.d.ts +0 -4
  1124. package/dist/ledger-view.d.ts +0 -27
  1125. package/dist/lesson-notes.d.ts +0 -81
  1126. package/dist/limits-ui.d.ts +0 -34
  1127. package/dist/link.d.ts +0 -72
  1128. package/dist/live-backup.d.ts +0 -39
  1129. package/dist/live-bus.d.ts +0 -141
  1130. package/dist/live-children-read.d.ts +0 -52
  1131. package/dist/live-children.d.ts +0 -73
  1132. package/dist/live-detail.d.ts +0 -27
  1133. package/dist/live-input.d.ts +0 -68
  1134. package/dist/live-main-read.d.ts +0 -19
  1135. package/dist/live-notes.d.ts +0 -20
  1136. package/dist/live-open.d.ts +0 -28
  1137. package/dist/live-records.d.ts +0 -149
  1138. package/dist/live-reply.d.ts +0 -83
  1139. package/dist/live-terminal.d.ts +0 -273
  1140. package/dist/live.d.ts +0 -152
  1141. package/dist/local-owner.d.ts +0 -124
  1142. package/dist/log.d.ts +0 -7
  1143. package/dist/login-secrets.d.ts +0 -60
  1144. package/dist/machine-check.d.ts +0 -16
  1145. package/dist/machine-identity.d.ts +0 -75
  1146. package/dist/mailbox.d.ts +0 -57
  1147. package/dist/maintenance.d.ts +0 -13
  1148. package/dist/mcp-connect.d.ts +0 -181
  1149. package/dist/mcp-core.d.ts +0 -110
  1150. package/dist/mcp-http.d.ts +0 -32
  1151. package/dist/mcp-oauth.d.ts +0 -92
  1152. package/dist/mcp-person.d.ts +0 -22
  1153. package/dist/mcp.d.ts +0 -20
  1154. package/dist/memory-cli.d.ts +0 -768
  1155. package/dist/memory-pass.d.ts +0 -151
  1156. package/dist/memory-tidy.d.ts +0 -181
  1157. package/dist/memory-use.d.ts +0 -35
  1158. package/dist/merge-checklist.d.ts +0 -55
  1159. package/dist/metrics.d.ts +0 -6
  1160. package/dist/mobile-viewport.d.ts +0 -7
  1161. package/dist/model-catalog.d.ts +0 -123
  1162. package/dist/model-choices.d.ts +0 -235
  1163. package/dist/model-names.d.ts +0 -6
  1164. package/dist/models-cli.d.ts +0 -307
  1165. package/dist/models-ui.d.ts +0 -161
  1166. package/dist/modes.d.ts +0 -99
  1167. package/dist/monitoring-settings.d.ts +0 -44
  1168. package/dist/monitoring-ui.d.ts +0 -23
  1169. package/dist/monitoring.d.ts +0 -34
  1170. package/dist/names.d.ts +0 -67
  1171. package/dist/needs-you.d.ts +0 -164
  1172. package/dist/never-index.d.ts +0 -3
  1173. package/dist/nightly-check.d.ts +0 -107
  1174. package/dist/nightly-github.d.ts +0 -318
  1175. package/dist/notification-delivery.d.ts +0 -19
  1176. package/dist/notification-rows.d.ts +0 -30
  1177. package/dist/oauth-run-token.d.ts +0 -51
  1178. package/dist/observations.d.ts +0 -36
  1179. package/dist/oidc.d.ts +0 -71
  1180. package/dist/onboard.d.ts +0 -108
  1181. package/dist/one-step-chat-schema.d.ts +0 -22
  1182. package/dist/openrouter-models.d.ts +0 -34
  1183. package/dist/operate-remote-arguments.d.ts +0 -36
  1184. package/dist/operate-remote.d.ts +0 -98
  1185. package/dist/operate.d.ts +0 -401
  1186. package/dist/orphan-sweep.d.ts +0 -65
  1187. package/dist/page-work-contract.d.ts +0 -21
  1188. package/dist/password-bearer.d.ts +0 -25
  1189. package/dist/passwordless.d.ts +0 -23
  1190. package/dist/peek-cli.d.ts +0 -112
  1191. package/dist/peek.d.ts +0 -110
  1192. package/dist/people-audit-ui.d.ts +0 -16
  1193. package/dist/person-proof.d.ts +0 -2
  1194. package/dist/phase-routing.d.ts +0 -401
  1195. package/dist/plain-schema.d.ts +0 -23
  1196. package/dist/plain-words.d.ts +0 -20
  1197. package/dist/plan-auto.d.ts +0 -25
  1198. package/dist/plan-login.d.ts +0 -14
  1199. package/dist/plan.d.ts +0 -188
  1200. package/dist/plane-review.d.ts +0 -54
  1201. package/dist/planner-source.d.ts +0 -225
  1202. package/dist/planner.d.ts +0 -76
  1203. package/dist/policy-ui.d.ts +0 -22
  1204. package/dist/policy.d.ts +0 -92
  1205. package/dist/prepared-evidence.d.ts +0 -17
  1206. package/dist/principal.d.ts +0 -42
  1207. package/dist/probe.d.ts +0 -46
  1208. package/dist/process-custody.d.ts +0 -17
  1209. package/dist/process-liveness.d.ts +0 -13
  1210. package/dist/process-tree.d.ts +0 -39
  1211. package/dist/project-access.d.ts +0 -17
  1212. package/dist/project-activity.d.ts +0 -20
  1213. package/dist/project-admission.d.ts +0 -105
  1214. package/dist/project-cli.d.ts +0 -19
  1215. package/dist/project-concurrency.d.ts +0 -62
  1216. package/dist/project-delete-ui.d.ts +0 -96
  1217. package/dist/project-delete.d.ts +0 -59
  1218. package/dist/project-demo.d.ts +0 -12
  1219. package/dist/project-file.d.ts +0 -3
  1220. package/dist/project-identity.d.ts +0 -52
  1221. package/dist/project-knowledge.d.ts +0 -124
  1222. package/dist/project-learning.d.ts +0 -120
  1223. package/dist/project-memory.d.ts +0 -70
  1224. package/dist/project-outcomes.d.ts +0 -119
  1225. package/dist/project-sandbox.d.ts +0 -59
  1226. package/dist/project-skills.d.ts +0 -139
  1227. package/dist/project-tools.d.ts +0 -318
  1228. package/dist/project.d.ts +0 -65
  1229. package/dist/prompt.d.ts +0 -33
  1230. package/dist/proof.d.ts +0 -457
  1231. package/dist/proposal.d.ts +0 -70
  1232. package/dist/protected-storage-look.d.ts +0 -1
  1233. package/dist/protected-storage.d.ts +0 -98
  1234. package/dist/provider-auth.d.ts +0 -143
  1235. package/dist/provider-capture.d.ts +0 -34
  1236. package/dist/provider-connection.d.ts +0 -23
  1237. package/dist/provider-home.d.ts +0 -22
  1238. package/dist/provider-limits.d.ts +0 -37
  1239. package/dist/provider.d.ts +0 -369
  1240. package/dist/public-access.d.ts +0 -52
  1241. package/dist/public-check.d.ts +0 -37
  1242. package/dist/publish.d.ts +0 -146
  1243. package/dist/pull-request-flow.d.ts +0 -189
  1244. package/dist/pull-request-schema.d.ts +0 -5
  1245. package/dist/pull-request-ui.d.ts +0 -25
  1246. package/dist/pulls.d.ts +0 -121
  1247. package/dist/push.d.ts +0 -120
  1248. package/dist/quality.d.ts +0 -8
  1249. package/dist/quick-start.d.ts +0 -26
  1250. package/dist/read-executor-worker.d.ts +0 -1
  1251. package/dist/read-executor.d.ts +0 -66
  1252. package/dist/read-only-request.d.ts +0 -4
  1253. package/dist/recipe-ui.d.ts +0 -21
  1254. package/dist/recipes.d.ts +0 -56
  1255. package/dist/release-adapters.d.ts +0 -205
  1256. package/dist/release-approval.d.ts +0 -180
  1257. package/dist/release-authority.d.ts +0 -173
  1258. package/dist/release-auto.d.ts +0 -184
  1259. package/dist/release-card.d.ts +0 -156
  1260. package/dist/release-carry.d.ts +0 -261
  1261. package/dist/release-ci-hold.d.ts +0 -41
  1262. package/dist/release-cli.d.ts +0 -34
  1263. package/dist/release-coverage.d.ts +0 -16
  1264. package/dist/release-gate.d.ts +0 -84
  1265. package/dist/release-git.d.ts +0 -43
  1266. package/dist/release-links.d.ts +0 -29
  1267. package/dist/release-net.d.ts +0 -90
  1268. package/dist/release-next.d.ts +0 -48
  1269. package/dist/release-recheck.d.ts +0 -146
  1270. package/dist/release-refusal.d.ts +0 -32
  1271. package/dist/release-view.d.ts +0 -37
  1272. package/dist/release.d.ts +0 -806
  1273. package/dist/releases.d.ts +0 -94
  1274. package/dist/remote-audit.d.ts +0 -79
  1275. package/dist/remote-command.d.ts +0 -45
  1276. package/dist/remote-destination.d.ts +0 -36
  1277. package/dist/remote-exec.d.ts +0 -38
  1278. package/dist/remote-main.d.ts +0 -111
  1279. package/dist/remote-run.d.ts +0 -20
  1280. package/dist/remote.d.ts +0 -67
  1281. package/dist/render.d.ts +0 -64
  1282. package/dist/reply-shape.d.ts +0 -106
  1283. package/dist/reply-voice.d.ts +0 -23
  1284. package/dist/report-summary.d.ts +0 -22
  1285. package/dist/reported-usage.d.ts +0 -69
  1286. package/dist/repos.d.ts +0 -67
  1287. package/dist/repository-context-ui.d.ts +0 -3
  1288. package/dist/repository-context.d.ts +0 -66
  1289. package/dist/request-budget-ui.d.ts +0 -14
  1290. package/dist/request-budget.d.ts +0 -127
  1291. package/dist/restart-certification.d.ts +0 -133
  1292. package/dist/result-actions.d.ts +0 -36
  1293. package/dist/result-acts.d.ts +0 -112
  1294. package/dist/result-completion.d.ts +0 -35
  1295. package/dist/result-evidence-readers.d.ts +0 -42
  1296. package/dist/result-follow-ups.d.ts +0 -118
  1297. package/dist/result-review.d.ts +0 -220
  1298. package/dist/result-shots.d.ts +0 -59
  1299. package/dist/retention-ui.d.ts +0 -21
  1300. package/dist/retention.d.ts +0 -77
  1301. package/dist/review-context.d.ts +0 -245
  1302. package/dist/review-evidence.d.ts +0 -33
  1303. package/dist/review-switch.d.ts +0 -36
  1304. package/dist/reviewer.d.ts +0 -99
  1305. package/dist/route-change-check.d.ts +0 -4
  1306. package/dist/route-change.d.ts +0 -22
  1307. package/dist/route-hooks.d.ts +0 -54
  1308. package/dist/route-results.d.ts +0 -75
  1309. package/dist/route-rules.d.ts +0 -324
  1310. package/dist/route-savings.d.ts +0 -136
  1311. package/dist/route-store.d.ts +0 -300
  1312. package/dist/run-closeout.d.ts +0 -89
  1313. package/dist/run-efficiency.d.ts +0 -74
  1314. package/dist/run-ending.d.ts +0 -21
  1315. package/dist/runner-process.d.ts +0 -76
  1316. package/dist/runner.d.ts +0 -324
  1317. package/dist/sample-project.d.ts +0 -31
  1318. package/dist/sandbox-launch.d.ts +0 -1
  1319. package/dist/sandbox-runtime.d.ts +0 -128
  1320. package/dist/scan.d.ts +0 -32
  1321. package/dist/scope.d.ts +0 -1067
  1322. package/dist/scout-browser-lock.d.ts +0 -69
  1323. package/dist/scout-browser.d.ts +0 -107
  1324. package/dist/scout-net.d.ts +0 -25
  1325. package/dist/scout-report.d.ts +0 -23
  1326. package/dist/scout.d.ts +0 -142
  1327. package/dist/secret-mint.d.ts +0 -1
  1328. package/dist/serve.d.ts +0 -11
  1329. package/dist/server/agents-computers.d.ts +0 -9
  1330. package/dist/server/agents-live-filed.d.ts +0 -17
  1331. package/dist/server/agents-live-lead.d.ts +0 -47
  1332. package/dist/server/agents-live-room.d.ts +0 -23
  1333. package/dist/server/chat.d.ts +0 -39
  1334. package/dist/server/chrome.d.ts +0 -328
  1335. package/dist/server/edge-refusal.d.ts +0 -7
  1336. package/dist/server/flows.d.ts +0 -8
  1337. package/dist/server/guards.d.ts +0 -80
  1338. package/dist/server/handler-context.d.ts +0 -22
  1339. package/dist/server/handler-registry.d.ts +0 -23
  1340. package/dist/server/home-asks.d.ts +0 -45
  1341. package/dist/server/home.d.ts +0 -65
  1342. package/dist/server/http.d.ts +0 -337
  1343. package/dist/server/in-place.d.ts +0 -15
  1344. package/dist/server/kit-standalone.d.ts +0 -22
  1345. package/dist/server/kit.d.ts +0 -452
  1346. package/dist/server/last-checks.d.ts +0 -17
  1347. package/dist/server/live.d.ts +0 -74
  1348. package/dist/server/merge-ready-view.d.ts +0 -10
  1349. package/dist/server/mutation-key.d.ts +0 -70
  1350. package/dist/server/pages-assets.d.ts +0 -11
  1351. package/dist/server/pages.d.ts +0 -8
  1352. package/dist/server/people-tokens.d.ts +0 -18
  1353. package/dist/server/remote-hooks.d.ts +0 -29
  1354. package/dist/server/remote.d.ts +0 -59
  1355. package/dist/server/render-chat.d.ts +0 -439
  1356. package/dist/server/render-code-map.d.ts +0 -30
  1357. package/dist/server/render-flaky.d.ts +0 -20
  1358. package/dist/server/render-follow-through.d.ts +0 -11
  1359. package/dist/server/render-history.d.ts +0 -51
  1360. package/dist/server/render-new-task.d.ts +0 -54
  1361. package/dist/server/render-pages.d.ts +0 -236
  1362. package/dist/server/render-people.d.ts +0 -102
  1363. package/dist/server/render-projects.d.ts +0 -104
  1364. package/dist/server/render-release.d.ts +0 -19
  1365. package/dist/server/render-results.d.ts +0 -754
  1366. package/dist/server/render-settings.d.ts +0 -93
  1367. package/dist/server/render-tasks.d.ts +0 -774
  1368. package/dist/server/request-context.d.ts +0 -78
  1369. package/dist/server/retired-routes.d.ts +0 -17
  1370. package/dist/server/route-policy.d.ts +0 -18
  1371. package/dist/server/route-table.d.ts +0 -114
  1372. package/dist/server/runtime.d.ts +0 -342
  1373. package/dist/server/session.d.ts +0 -192
  1374. package/dist/server/settings.d.ts +0 -76
  1375. package/dist/server/signup-gate.d.ts +0 -9
  1376. package/dist/server/sweeps.d.ts +0 -4
  1377. package/dist/server/task-views.d.ts +0 -98
  1378. package/dist/server/tasks.d.ts +0 -83
  1379. package/dist/server/terminals.d.ts +0 -31
  1380. package/dist/server/welcome.d.ts +0 -28
  1381. package/dist/server-telemetry.d.ts +0 -87
  1382. package/dist/settings-groups-ui.d.ts +0 -286
  1383. package/dist/settings-kit-script.d.ts +0 -21
  1384. package/dist/settings-kit.d.ts +0 -173
  1385. package/dist/settings-proofs.d.ts +0 -64
  1386. package/dist/setup-guide.d.ts +0 -39
  1387. package/dist/shared-deps.d.ts +0 -115
  1388. package/dist/sign-in-guard.d.ts +0 -70
  1389. package/dist/skills-ui.d.ts +0 -12
  1390. package/dist/skills.d.ts +0 -99
  1391. package/dist/slack-api.d.ts +0 -59
  1392. package/dist/slack-chat.d.ts +0 -37
  1393. package/dist/slack-settings.d.ts +0 -4
  1394. package/dist/slack-socket.d.ts +0 -12
  1395. package/dist/slack.d.ts +0 -6
  1396. package/dist/sleep.d.ts +0 -2
  1397. package/dist/source-key.d.ts +0 -2
  1398. package/dist/spend-report.d.ts +0 -87
  1399. package/dist/spend-ui.d.ts +0 -80
  1400. package/dist/spend.d.ts +0 -142
  1401. package/dist/sqlite-runtime.d.ts +0 -3
  1402. package/dist/sqlite-telemetry.d.ts +0 -9
  1403. package/dist/sso-settings.d.ts +0 -33
  1404. package/dist/sso-ui.d.ts +0 -26
  1405. package/dist/staged-runtimes.d.ts +0 -54
  1406. package/dist/steer-capabilities.d.ts +0 -32
  1407. package/dist/steer-controls.d.ts +0 -14
  1408. package/dist/steer-live.d.ts +0 -19
  1409. package/dist/steer-mailbox.d.ts +0 -46
  1410. package/dist/steer-status.d.ts +0 -25
  1411. package/dist/stop-proof.d.ts +0 -67
  1412. package/dist/storage-sweep-child.d.ts +0 -1
  1413. package/dist/storage-sweep-process.d.ts +0 -55
  1414. package/dist/storage-sweep-schedule.d.ts +0 -30
  1415. package/dist/storage-sweep.d.ts +0 -77
  1416. package/dist/storage-ui.d.ts +0 -23
  1417. package/dist/storage.d.ts +0 -68
  1418. package/dist/store-baseline.d.ts +0 -19
  1419. package/dist/store.d.ts +0 -8613
  1420. package/dist/stream-scope.d.ts +0 -18
  1421. package/dist/structured-output.d.ts +0 -57
  1422. package/dist/style-asset.d.ts +0 -7
  1423. package/dist/subagent-admin.d.ts +0 -53
  1424. package/dist/subagent-desk.d.ts +0 -59
  1425. package/dist/subagent-memory.d.ts +0 -65
  1426. package/dist/subagent-question.d.ts +0 -59
  1427. package/dist/subagent-tools.d.ts +0 -125
  1428. package/dist/subagent-week.d.ts +0 -68
  1429. package/dist/subagent-work.d.ts +0 -76
  1430. package/dist/subagents-ui.d.ts +0 -22
  1431. package/dist/subagents.d.ts +0 -146
  1432. package/dist/subscription-chat.d.ts +0 -54
  1433. package/dist/summary.d.ts +0 -33
  1434. package/dist/surface.d.ts +0 -49
  1435. package/dist/sweep-gate.d.ts +0 -10
  1436. package/dist/sweep-quarantine.d.ts +0 -29
  1437. package/dist/sync.d.ts +0 -94
  1438. package/dist/tailnet.d.ts +0 -11
  1439. package/dist/tamper-scan.d.ts +0 -4
  1440. package/dist/task-activity.d.ts +0 -27
  1441. package/dist/task-aliases.d.ts +0 -5
  1442. package/dist/task-archive.d.ts +0 -13
  1443. package/dist/task-base.d.ts +0 -39
  1444. package/dist/task-composer.d.ts +0 -14
  1445. package/dist/task-control.d.ts +0 -159
  1446. package/dist/task-live.d.ts +0 -8
  1447. package/dist/task-moves.d.ts +0 -90
  1448. package/dist/task-outcome-cli.d.ts +0 -30
  1449. package/dist/task-review-brief.d.ts +0 -69
  1450. package/dist/task-sizing.d.ts +0 -58
  1451. package/dist/task-source.d.ts +0 -77
  1452. package/dist/task-status.d.ts +0 -324
  1453. package/dist/task-text.d.ts +0 -31
  1454. package/dist/team-chat-authorization.d.ts +0 -11
  1455. package/dist/team-contract.d.ts +0 -103
  1456. package/dist/team-http.d.ts +0 -25
  1457. package/dist/team-leads.d.ts +0 -85
  1458. package/dist/team-runtime.d.ts +0 -25
  1459. package/dist/team-ui.d.ts +0 -4
  1460. package/dist/team-updates.d.ts +0 -8
  1461. package/dist/teams-api.d.ts +0 -33
  1462. package/dist/teams-chat.d.ts +0 -36
  1463. package/dist/teams-settings.d.ts +0 -14
  1464. package/dist/teams.d.ts +0 -24
  1465. package/dist/teardown-git.d.ts +0 -164
  1466. package/dist/telegram-flow.d.ts +0 -112
  1467. package/dist/telegram-lead.d.ts +0 -151
  1468. package/dist/telegram-live.d.ts +0 -116
  1469. package/dist/telegram-progress.d.ts +0 -20
  1470. package/dist/telegram-settings.d.ts +0 -9
  1471. package/dist/telegram-status.d.ts +0 -83
  1472. package/dist/telegram-team.d.ts +0 -68
  1473. package/dist/telegram.d.ts +0 -271
  1474. package/dist/templates.d.ts +0 -69
  1475. package/dist/terminal-catalog.d.ts +0 -11
  1476. package/dist/terminal-text.d.ts +0 -11
  1477. package/dist/test-infra.d.ts +0 -34
  1478. package/dist/test-temp.d.ts +0 -40
  1479. package/dist/text-limits.d.ts +0 -297
  1480. package/dist/tidy.d.ts +0 -130
  1481. package/dist/tier-report.d.ts +0 -44
  1482. package/dist/token-notices.d.ts +0 -11
  1483. package/dist/tokens-cli.d.ts +0 -21
  1484. package/dist/tool-broker.d.ts +0 -52
  1485. package/dist/tool-launcher.d.ts +0 -1
  1486. package/dist/tool-secret-store.d.ts +0 -167
  1487. package/dist/toolroll-update-cli.d.ts +0 -15
  1488. package/dist/toolroll-update-ui.d.ts +0 -47
  1489. package/dist/toolroll-update.d.ts +0 -265
  1490. package/dist/tools-ui.d.ts +0 -51
  1491. package/dist/transitions-recipes.d.ts +0 -1
  1492. package/dist/tree-proof.d.ts +0 -34
  1493. package/dist/tui-contract.d.ts +0 -144
  1494. package/dist/tui-source.d.ts +0 -14
  1495. package/dist/typed-start.d.ts +0 -51
  1496. package/dist/unfenced-test-support.d.ts +0 -2
  1497. package/dist/up-processes.d.ts +0 -162
  1498. package/dist/up-role-child.d.ts +0 -1
  1499. package/dist/update-notice.d.ts +0 -5
  1500. package/dist/vanished-retry.d.ts +0 -30
  1501. package/dist/verification-evidence.d.ts +0 -68
  1502. package/dist/version.d.ts +0 -2
  1503. package/dist/wake-hub.d.ts +0 -72
  1504. package/dist/webhook-limits.d.ts +0 -23
  1505. package/dist/webhook-readers.d.ts +0 -56
  1506. package/dist/webhook-signing.d.ts +0 -27
  1507. package/dist/webhooks.d.ts +0 -84
  1508. package/dist/welcome-facts.d.ts +0 -18
  1509. package/dist/when-html.d.ts +0 -40
  1510. package/dist/work-index.d.ts +0 -175
  1511. package/dist/work-summary.d.ts +0 -61
  1512. package/dist/workspace-motion.d.ts +0 -4
  1513. package/dist/workspace-revision.d.ts +0 -48
  1514. package/dist/workspace-ui.d.ts +0 -385
  1515. package/dist/worktree-notices.d.ts +0 -13
  1516. package/dist/worktree.d.ts +0 -365
  1517. package/dist/writes-mode.d.ts +0 -9
  1518. package/dist/youiyoux-intake.d.ts +0 -234
@@ -1,13 +1,3 @@
1
- /**
2
- * Settings: the overview and its group pages, in the revamp kit (src/design/KIT.md; the owner-approved prototype's
3
- * Settings area, docs/plans/settings-revamp.md §3). Server HTML only: every form posts to the route and fields it
4
- * posted to before, under its proof inventory row (settings-proofs.ts), and the kit's section forms
5
- * (settings-kit.ts kitSectionForm) save one section at a time. Nothing here reads a request or decides an act; the
6
- * page that calls it has already dropped what this person can't use, and every handler proves the act again.
7
- *
8
- * Groups (design/kit.ts SETTINGS_GROUPS): General, Agents and models, Chat apps and alerts, Approvals and safety,
9
- * Projects, People and sign-in, Spend (its own page, /spend), System.
10
- */
11
1
  import { ACCENT_PRESETS, accentNote } from "./accent-colors.js";
12
2
  import {} from "./browser-workspace.js";
13
3
  import { SETTINGS_GROUP_ICONS, SETTINGS_GROUPS, plural } from "./design/kit.js";
@@ -18,25 +8,23 @@ import {} from "./scope.js";
18
8
  import { qualityModeTitle } from "./quality.js";
19
9
  import {} from "./store.js";
20
10
  import { kitSectionForm, SECRET_OPT_OUTS } from "./settings-kit.js";
11
+ import { ADVANCED_PAGES } from "./advanced-view.js";
21
12
  import { btn, chip, codeLine, disclose, formRow, infoLine, input, needsPanel, note, notice, radios, select, settingsLink, settingsLinks, settingsRecord, settingsSection, settingsShell, switchInput, } from "./server/kit.js";
22
- /** The group pages this module draws (Spend is /spend; Approvals and safety is /settings/approval, its own handler). */
23
13
  export const GROUP_PATHS = {
24
14
  "/settings": "hub", "/settings/general": "general", "/settings/agents": "agents", "/settings/alerts": "alerts",
25
- "/settings/projects": "projects", "/settings/access": "access", "/settings/system": "system",
15
+ "/settings/projects": "projects", "/settings/access": "access", "/settings/system": "system", "/settings/advanced": "advanced",
26
16
  };
27
17
  const CHAT_APPS = [["telegram", "Telegram"], ["slack", "Slack"], ["discord", "Discord"], ["teams", "Teams"]];
28
18
  const and = (names) => names.length > 1 ? `${names.slice(0, -1).join(", ")} and ${names.at(-1)}` : names[0] ?? "";
29
19
  const groupHref = (slug) => SETTINGS_GROUPS.find(([, one]) => one === slug)?.[2] ?? "/settings";
30
20
  const groupLabel = (slug) => SETTINGS_GROUPS.find(([, one]) => one === slug)?.[0] ?? "Settings";
31
21
  const sentence = (text) => text === "" ? text : `${text.charAt(0).toUpperCase()}${text.slice(1)}`;
32
- /** A notice the handler sent back with the page (?said= or ?problem=), in place under the page's lead. */
33
22
  const answered = (facts) => facts.problem ? notice(sentence(facts.problem)) : facts.said ? infoLine(sentence(facts.said)) : html ``;
34
- /** What waits on this person in Settings (never a task): no builder, a chat app failing, a failed backup. Read-only. */
35
23
  export function settingsNeeds(facts) {
36
24
  const out = [];
37
25
  if (facts.workers !== null && facts.approver && !facts.workers.some(one => one.tone === "ok")) {
38
- out.push({ group: "agents", title: facts.workers.length === 0 ? "No builder is connected" : "No builder is connected right now",
39
- text: "Approved work waits until a computer builds it. Run toolroll up on the computer with your projects.", action: ["Open builders", "/settings/agents#workers"] });
26
+ out.push({ group: "agents", title: facts.workers.length === 0 ? "Nothing is taking work" : "Nothing is taking work right now",
27
+ text: "Approved work waits until a computer builds it. Run toolroll up on the computer with your projects.", action: ["Start taking work", "/settings/agents#workers"] });
40
28
  }
41
29
  if (facts.telegram.failing)
42
30
  out.push({ group: "alerts", title: "Telegram isn’t delivering", text: facts.telegram.delivery ?? "Alerts to your phone are failing.", action: ["Open Telegram", "/settings/telegram"] });
@@ -44,7 +32,6 @@ export function settingsNeeds(facts) {
44
32
  out.push({ group: "system", title: "The last backup failed", text: facts.backup.words, action: ["Open backups", "/settings/backups"] });
45
33
  return out;
46
34
  }
47
- /** Which groups have something waiting, for the section nav's dot and the overview's rows. */
48
35
  export function needsByGroup(items) {
49
36
  const out = {};
50
37
  for (const item of items)
@@ -52,13 +39,12 @@ export function needsByGroup(items) {
52
39
  return out;
53
40
  }
54
41
  const flagsOf = (counts) => Object.fromEntries(Object.keys(counts).map(key => [key, true]));
55
- // ---- the overview -----------------------------------------------------------------------------------------------
56
42
  const themeWords = (theme) => theme === "light" ? "Light" : theme === "dark" ? "Dark" : "Match this device";
57
43
  function agentsWords(facts) {
58
44
  const signed = facts.providers?.find(one => one.connection !== null && one.tone === "ok") ?? facts.providers?.find(one => one.tone === "ok");
59
45
  const builders = facts.workers === null ? null : facts.workers.filter(one => one.tone === "ok").length;
60
- return [signed ? `${signed.name}: ${signed.words}` : facts.providers === null ? "Models, the lead, tools and knowledge" : "No agent signed in yet",
61
- builders === null ? null : builders === 0 ? "no builder connected" : `${plural(builders, "builder", "builders")} connected`].filter(Boolean).join(" · ");
46
+ return [signed ? `${signed.name}: ${signed.words}` : facts.providers === null ? "Models, chat and tools" : "No agent signed in yet",
47
+ builders === null ? null : builders === 0 ? "not taking work yet" : "taking work"].filter(Boolean).join(" · ");
62
48
  }
63
49
  function alertsWords(facts) {
64
50
  const configured = facts.messaging?.configured ?? [];
@@ -70,12 +56,12 @@ function alertsWords(facts) {
70
56
  }
71
57
  function approvalWords(facts) {
72
58
  return [facts.permission ? `New tasks: ${facts.permission.mode === "bypassPermissions" ? "Full access" : "Auto"}` : null,
73
- facts.quality ? `${qualityModeTitle(facts.quality.mode)} quality` : null, "operating modes, policy and approval rules"].filter(Boolean).join(" · ");
59
+ facts.quality ? `${qualityModeTitle(facts.quality.mode)} quality` : null, "Who approves, and what runs without asking"].filter(Boolean).join(" · ");
74
60
  }
75
61
  function accessWords(facts) {
76
62
  const people = facts.people === null ? null : [facts.people.approvers.length ? `${and(facts.people.approvers)} can manage and approve` : "",
77
63
  facts.people.viewers.length ? `${and(facts.people.viewers)} can view` : ""].filter(Boolean).join(" · ");
78
- return [people || "Your sessions and API tokens", facts.passwordless === null ? null : facts.passwordless ? "Passwordless on" : "Passwordless off"].filter(Boolean).join(" · ");
64
+ return [people || "Who can get in", facts.passwordless === null || passwordFree(facts) ? null : facts.passwordless ? "Passwordless on" : "Passwordless off"].filter(Boolean).join(" · ");
79
65
  }
80
66
  function systemWords(facts) {
81
67
  const latest = facts.updates?.latest;
@@ -83,11 +69,6 @@ function systemWords(facts) {
83
69
  : latest !== null && latest?.newer ? `Toolroll ${facts.updates.current} · ${latest.version} is available` : `Toolroll ${facts.updates.current}`;
84
70
  return [facts.backup?.failed ? "The last backup failed" : null, version, "backups, storage, retention, monitoring"].filter(Boolean).join(" · ");
85
71
  }
86
- /** The overview: what waits on this person, then one row per group with its state. Viewers see the groups they can open. */
87
- /**
88
- * Easy-start C5: local mode, said once. The local owner without a password is offered the one way to more ("Let agents
89
- * work on their own" → /password/set); a full session of an operator sees it on, and can turn it off (a step-up, confirmed).
90
- */
91
72
  function localModeSection(facts) {
92
73
  const local = facts.local;
93
74
  if (local === undefined || local === null)
@@ -117,10 +98,12 @@ export function settingsHub(facts) {
117
98
  spend: "Monthly limits and the spend report",
118
99
  system: systemWords(facts),
119
100
  };
120
- const shown = SETTINGS_GROUPS.filter(([, slug]) => slug !== "spend" || facts.operator).filter(([, slug]) => slug !== "system" || facts.operator || facts.approver);
101
+ const shown = SETTINGS_GROUPS.filter(([, slug]) => slug !== "spend" || facts.operator).filter(([, slug]) => slug !== "system" || facts.operator || facts.approver)
102
+ .filter(([, slug]) => slug !== "spend" || advancedOn(facts));
103
+ words["advanced"] = advancedWords(facts);
121
104
  const panel = needsPanel(items.map((item, index) => ({ title: item.title, text: item.text, action: btn(item.action[0], { variant: index === 0 ? "primary" : "outline", href: item.action[1] }) })));
122
105
  return settingsShell({
123
- group: "hub", title: "Settings", lead: "For the whole Toolroll.", flags: flagsOf(counts),
106
+ group: "hub", title: "Settings", flags: flagsOf(counts),
124
107
  body: joinHtml([
125
108
  answered(facts),
126
109
  panel,
@@ -129,14 +112,12 @@ export function settingsHub(facts) {
129
112
  ]),
130
113
  });
131
114
  }
132
- /** The hub's old anchors, forwarded to their group (fragments never reach the server). */
133
115
  export const HUB_ANCHORS = {
134
116
  providers: "/settings/agents#providers", workers: "/settings/agents#workers", email: "/settings/alerts#email", "settings-chat-apps": "/settings/alerts#chat-apps",
135
117
  "telegram-token": "/settings/alerts#telegram-token", phone: "/settings/alerts#phone", notifications: "/settings/alerts#notifications",
136
118
  updates: "/settings/system#updates", accent: "/settings/general#appearance", appearance: "/settings/general#appearance",
137
119
  };
138
120
  export const HUB_ANCHOR_SCRIPT = `(function(){var m=${JSON.stringify(HUB_ANCHORS)};var h=decodeURIComponent(location.hash.slice(1));if(Object.prototype.hasOwnProperty.call(m,h))location.replace(m[h]);})();`;
139
- // ---- General ----------------------------------------------------------------------------------------------------
140
121
  const ACCENT_CHOICES = ACCENT_PRESETS.slice(0, 6);
141
122
  export function generalGroup(facts, flags) {
142
123
  const themeButton = (value, label) => html `<button type="submit" name="theme" value="${value}" aria-pressed="${String(facts.theme === value)}">${label}</button>`;
@@ -176,9 +157,9 @@ export function generalGroup(facts, flags) {
176
157
  facts.operator ? formRow("Updates", null, btn("Open updates", { sm: true, variant: "ghost", href: "/settings/updates" }), "inline") : "",
177
158
  ]),
178
159
  });
179
- return settingsShell({ group: "general", title: "General", lead: "How Toolroll looks and behaves in this browser.", flags, body: joinHtml([answered(facts), appearance, browser, password, version]) });
160
+ const withPassword = passwordFree(facts) ? [] : [browser, password];
161
+ return settingsShell({ group: "general", title: "General", lead: "How Toolroll looks and behaves in this browser.", flags, body: joinHtml([answered(facts), appearance, ...withPassword, version]) });
180
162
  }
181
- // ---- Agents and models ------------------------------------------------------------------------------------------
182
163
  const toneChip = (tone, words) => chip(words, tone === "ok" ? "done" : tone === "warn" ? "failed" : "");
183
164
  function providerRecord(one) {
184
165
  const form = kitSectionForm({ proof: "provider-key", action: "/settings/provider-key", id: `provider-${one.provider}`, gate: true, hidden: { provider: one.provider }, save: { label: `Save ${one.name}` },
@@ -214,19 +195,18 @@ export function agentsGroup(facts, flags) {
214
195
  });
215
196
  const links = settingsLinks("In this group", [
216
197
  settingsLink({ href: "/settings/models", title: "Models", status: "Which model plans, builds and reviews" }),
217
- settingsLink({ href: "/settings/lead", title: "Lead", status: "The assistant you chat with" }),
218
- settingsLink({ href: "/settings/lead/subagents", title: "Subagents", status: "Helpers the lead looks after" }),
198
+ settingsLink({ href: "/settings/lead", title: "Chat", status: "The assistant you chat with" }),
199
+ ...(advancedOn(facts) ? [settingsLink({ href: "/settings/lead/subagents", title: "Subagents", status: "Helpers the lead looks after" })] : []),
219
200
  settingsLink({ href: "/settings/tools", title: "Tools", status: "What builds can use, per project" }),
220
- settingsLink({ href: "/settings/skills", title: "Skills", status: "Reusable instructions for agents" }),
201
+ ...(advancedOn(facts) ? [settingsLink({ href: "/settings/skills", title: "Skills", status: "Reusable instructions for agents" })] : []),
221
202
  settingsLink({ href: "/settings/knowledge", title: "Knowledge", status: "What agents know about each project" }),
222
- settingsLink({ href: "/settings/learning", title: "Learning", status: "Lessons kept from finished work" }),
203
+ ...(advancedOn(facts) ? [settingsLink({ href: "/settings/learning", title: "Learning", status: "Lessons kept from finished work" })] : []),
223
204
  ]);
224
205
  return settingsShell({
225
206
  group: "agents", title: "Agents and models", lead: "Which agent does the work, how it’s paid for, and which model plans, builds and reviews.", flags,
226
207
  body: joinHtml([answered(facts), providers, facts.workers === null ? "" : workersSection(facts.workers), links]),
227
208
  });
228
209
  }
229
- // ---- Chat apps and alerts ---------------------------------------------------------------------------------------
230
210
  function chatAppsSection(facts) {
231
211
  const configured = facts.messaging?.configured ?? [];
232
212
  const receiving = facts.messaging?.channel ?? (configured.length === 1 ? configured[0] : null);
@@ -290,9 +270,6 @@ function pushSection(facts) {
290
270
  enrol,
291
271
  ]) });
292
272
  }
293
- /** Enrolling this device fills the subscription the form posts; it never reads the password beside it. With the kit's
294
- * section forms (section-forms.ts) it answers their `k-prepare` hook after the password is confirmed, so the post
295
- * goes exactly once under the pending guard; without them it holds the plain submit, then posts. */
296
273
  export function pushScriptOf(facts) {
297
274
  if (facts.push === null || !facts.push.available)
298
275
  return null;
@@ -403,8 +380,9 @@ export function approvalGroup(view) {
403
380
  const rules = view.chosen === "" ? settingsSection({ id: "rules", title: "Approval rules", body: note("Add a project to set its approval rules.") })
404
381
  : joinHtml([picker, view.rules]);
405
382
  const links = settingsLinks("In this group", [
406
- settingsLink({ href: "/mode", title: "Operating mode", status: view.mode }),
407
- settingsLink({ href: "/settings/policy", title: "Policy", status: "Limits no task can go past, whatever its mode or approver" }),
383
+ ...(view.advanced === undefined || view.advanced.on || view.advanced.modeActive ? [settingsLink({ href: "/mode", title: "Operating mode", status: view.mode })] : []),
384
+ ...(view.advanced === undefined || view.advanced.on || (view.advanced.policy ?? null) !== null
385
+ ? [settingsLink({ href: "/settings/policy", title: "Policy", status: view.advanced?.policy ?? "Limits no task can go past, whatever its mode or approver" })] : []),
408
386
  settingsLink({ href: "/caps", title: "Requirements", status: "What builders are missing for waiting work" }),
409
387
  settingsLink({ href: "/settings/projects", title: "Network, writes and sandbox", status: "Set for each project" }),
410
388
  ]);
@@ -414,7 +392,6 @@ export function approvalGroup(view) {
414
392
  note(html `<b>Which setting wins:</b> protected work and policy limits always apply; then a project’s operating mode; then these defaults.`), links]),
415
393
  });
416
394
  }
417
- // ---- Projects, People and sign-in, System -----------------------------------------------------------------------
418
395
  export function projectsGroup(facts, flags) {
419
396
  const rows = facts.projects.map(one => settingsLink({ href: `/settings/project?repo=${encodeURIComponent(one.repo)}`, title: one.name, status: html `<span class="k-mono">${one.repo}</span>` }));
420
397
  const per = facts.projects.length === 0 ? "" : settingsLinks("For each project", [
@@ -437,9 +414,11 @@ export function accessGroup(facts, flags) {
437
414
  const links = [
438
415
  settingsLink({ href: "/people", title: "People", status: people === null ? "Your own access" : [accessWords({ ...facts, passwordless: null }), people.invites === 0 ? "no open invites" : plural(people.invites, "open invite", "open invites")].join(" · ") }),
439
416
  settingsLink({ href: "/settings/sessions", title: "Sessions and tokens", status: `Signed in on ${plural(facts.access.sessions, "device", "devices")} · ${plural(facts.access.tokens, "API token", "API tokens")}` }),
440
- ...(facts.operator ? [
441
- settingsLink({ href: "/settings/sign-in", title: "Sign-in with a provider", status: facts.sso === null ? "Not set up: everyone uses a password" : `People sign in with ${facts.sso}` }),
442
- settingsLink({ href: "/settings/passwordless", title: "Passwordless", status: facts.passwordless ? "On: signing in is the only password" : "Off: approvals ask for your password" }),
417
+ ...(facts.operator && (advancedOn(facts) || facts.sso !== null) ? [
418
+ settingsLink({ href: "/settings/sign-in", title: "Sign-in with a provider", status: facts.sso === null ? "Not set up: everyone uses a password" : `People sign in with ${facts.sso}` })
419
+ ] : []),
420
+ ...(facts.operator && (advancedOn(facts) || facts.passwordless === true) ? [
421
+ settingsLink({ href: "/settings/passwordless", title: "Passwordless", status: facts.passwordless ? "On: signing in is the only password" : "Off: approvals ask for your password" })
443
422
  ] : []),
444
423
  ];
445
424
  return settingsShell({ group: "access", title: "People and sign-in", lead: "Who can get in, how they sign in, and the ways in they hold.", flags,
@@ -467,18 +446,17 @@ export function systemGroup(facts, flags) {
467
446
  settingsLink({ href: "/settings/backups", title: "Backups", status: facts.backup?.words ?? "When and where the database is copied", needs: facts.backup?.failed ? 1 : 0 }),
468
447
  settingsLink({ href: "/settings/storage", title: "Storage", status: "Task folders on this computer, and cleaning them up" }),
469
448
  settingsLink({ href: "/settings/retention", title: "Retention", status: "How long run logs and chats are kept" }),
470
- settingsLink({ href: "/settings/monitoring", title: "Monitoring", status: "Send the audit stream and traces to your own systems" }),
449
+ ...(advancedOn(facts) ? [settingsLink({ href: "/settings/monitoring", title: "Monitoring", status: "Send the audit stream and traces to your own systems" })] : []),
471
450
  settingsLink({ href: "/settings/data", title: "Data export", status: "Everything except secrets, as one download" }),
472
451
  settingsLink({ href: "/settings/integrations", title: "Integrations", status: "Which connected services work" }),
473
- settingsLink({ href: "/fleet", title: "Builders", status: "Every computer that builds, on Agents" }),
452
+ ...(advancedOn(facts) ? [settingsLink({ href: "/fleet", title: "Builders", status: "Every computer that builds, on Agents" })] : []),
474
453
  ]) : settingsLinks("In this group", [
475
454
  settingsLink({ href: "/settings/integrations", title: "Integrations", status: "Which connected services work" }),
476
- settingsLink({ href: "/fleet", title: "Builders", status: "Every computer that builds" }),
455
+ ...(advancedOn(facts) ? [settingsLink({ href: "/fleet", title: "Builders", status: "Every computer that builds" })] : []),
477
456
  ]);
478
457
  return settingsShell({ group: "system", title: "System", lead: "This Toolroll’s version, backups, storage and what leaves this computer.", flags,
479
458
  body: joinHtml([answered(facts), facts.updates === null ? "" : updatesSection(facts.updates), links]) });
480
459
  }
481
- /** One group page by its slug. */
482
460
  export function settingsGroupPage(group, facts) {
483
461
  const flags = flagsOf(needsByGroup(settingsNeeds(facts)));
484
462
  switch (group) {
@@ -489,17 +467,15 @@ export function settingsGroupPage(group, facts) {
489
467
  case "projects": return projectsGroup(facts, flags);
490
468
  case "access": return accessGroup(facts, flags);
491
469
  case "system": return systemGroup(facts, flags);
470
+ case "advanced": return advancedGroup(facts, flags);
492
471
  case "approval": return settingsHub(facts);
493
472
  }
494
473
  }
495
474
  export const groupTitle = (group) => group === "hub" ? "Settings" : groupLabel(group);
496
475
  export { groupHref };
497
- /** A settings sub-page in the frame: the group's breadcrumb, the page's title, its old body inside. */
498
476
  export function settingsSubPage(group, title, body, options = {}) {
499
477
  return settingsShell({ group, title, sub: true, body, ...(options.lead === undefined ? {} : { lead: options.lead }), ...(options.flags === undefined ? {} : { flags: options.flags }) });
500
478
  }
501
- /** /mode: the mode a project runs under now, and (for an approver) the choices to sign a new one. Reading the terms is
502
- * the next page (/mode/confirm), where the password signs exactly what it shows. */
503
479
  export function modePageHtml(view) {
504
480
  const now = settingsSection({ id: "mode-now", title: "Now",
505
481
  body: view.live === null
@@ -535,7 +511,6 @@ export function modePageHtml(view) {
535
511
  const answer = view.problem ? notice(sentence(view.problem)) : view.said ? infoLine(sentence(view.said)) : "";
536
512
  return settingsSubPage("approval", "Operating mode", joinHtml([answer, now, sign]), { lead: "A signed, time-limited mode that lets more run without asking. It ends on its own. Scope changes, agent questions and requested revisions still wait for you." });
537
513
  }
538
- /** /mode/confirm: every resolved term in words; the password signs exactly this digest (a changed form is refused). */
539
514
  export function modeCeremonyHtml(view) {
540
515
  return settingsSubPage("approval", `Sign the ${view.name} mode`, joinHtml([
541
516
  settingsSection({ id: "mode-terms", title: `What you sign for ${view.project}`,
@@ -554,8 +529,6 @@ function accessFields(id, projects, selected) {
554
529
  : html `<fieldset class="k-sopts"><legend class="k-sr">Projects</legend>${projects.map((one, at) => html `<label class="k-sopt" for="${id}-p${at}"><input type="checkbox" id="${id}-p${at}" name="projects" value="${one.repo}"${selected?.includes(one.repo) ? html ` checked` : ""}><span><b>${one.name}</b></span></label>`)}</fieldset>`,
555
530
  ]);
556
531
  }
557
- /** People: who can get in, what each can do and where, open invites, and inviting someone. Inviting and widening
558
- * access always ask for the password typed now; removing someone or cancelling an invite is a step-up. */
559
532
  export function peopleHtml(view) {
560
533
  const answer = view.problem ? notice(sentence(view.problem)) : view.said ? infoLine(sentence(view.said)) : "";
561
534
  const people = settingsSection({ id: "people", title: "People", state: html ` <span class="k-count">${view.people.filter(one => one.revoked === null).length}</span>`,
@@ -597,7 +570,6 @@ export function peopleHtml(view) {
597
570
  note(html `To revoke one, run <code class="k-mono">toolroll coordinator revoke &lt;cid&gt; --as you</code> on this computer.`)]) });
598
571
  return settingsSubPage("access", "People", joinHtml([answer, people, invites, filers]), { lead: "Who can see and approve work in this Toolroll." });
599
572
  }
600
- /** People for someone limited to some projects: their own access, in words. */
601
573
  export function ownAccessHtml(view) {
602
574
  return settingsSubPage("access", "Your access", joinHtml([
603
575
  settingsSection({ id: "your-access", title: `${view.name} · ${roleWords(view.approver)}`, lead: view.approver ? "You can create, manage and approve work in these projects." : "You can read work in these projects.",
@@ -605,7 +577,6 @@ export function ownAccessHtml(view) {
605
577
  html `<div class="k-acts">${btn("Your activity", { sm: true, href: view.activity })}</div>`]) }),
606
578
  ]));
607
579
  }
608
- /** The invite link, once, on a page with no script: selectable text, what it lets them do, and where to cancel it. */
609
580
  export function inviteLinkHtml(view) {
610
581
  return settingsSubPage("access", "Invite link", joinHtml([
611
582
  settingsSection({ id: "invite-link", title: "Shown once, so copy it now",
@@ -614,9 +585,6 @@ export function inviteLinkHtml(view) {
614
585
  html `<div class="k-acts">${btn("Back to People", { sm: true, href: "/people" })}</div>`]) }),
615
586
  ]));
616
587
  }
617
- // ---- Passwordless (/settings/passwordless) ----------------------------------------------------------------------
618
- /** The switch and the trade in plain words. Turning it on is a way in: it always asks for the password typed now.
619
- * Turning it off is one click. */
620
588
  export function passwordlessHtml(view) {
621
589
  const answer = view.problem ? notice(sentence(view.problem)) : view.said ? infoLine(sentence(view.said)) : "";
622
590
  const control = view.on
@@ -630,9 +598,28 @@ export function passwordlessHtml(view) {
630
598
  body: joinHtml([note(view.trade), control]) }),
631
599
  ]), { lead: "Sign in once; most approvals then need no password." });
632
600
  }
633
- /** Which project a per-project settings page shows: a GET form (an address, not a save). */
634
601
  export function projectPicker(action, projects, chosen) {
635
602
  if (projects.length < 2)
636
603
  return html ``;
637
604
  return html `<form method="get" action="${action}" class="k-acts k-picker">${select({ name: "repo", label: "Project", current: chosen, items: projects.map(one => [one.repo, one.name]) })}${btn("Show", { sm: true, type: "submit" })}</form>`;
638
605
  }
606
+ function passwordFree(facts) {
607
+ return facts.local?.owner === true && !facts.local.passwordSet;
608
+ }
609
+ function advancedOn(facts) { return facts.advanced === undefined || facts.advanced.on; }
610
+ function advancedWords(facts) {
611
+ return advancedOn(facts) ? "On: every page shows in the menus" : "Off: menus show only the main steps";
612
+ }
613
+ export function advancedGroup(facts, flags) {
614
+ const on = advancedOn(facts);
615
+ const change = facts.advanced?.canChange === true
616
+ ? postForm("/settings/advanced", btn(on ? "Turn off" : "Turn on", { sm: true, type: "submit" }), { hidden: { advanced: on ? "off" : "on" } })
617
+ : html ``;
618
+ const toggle = settingsSection({ id: "show-advanced", title: "Show advanced features", state: on ? " · on" : " · off", right: change,
619
+ lead: "Flows, other computers, spend limits, operating modes and the rest, in your menus. They keep working either way, and each opens from below.",
620
+ body: html `` });
621
+ const pages = ADVANCED_PAGES.filter(one => one.operator !== true || facts.operator)
622
+ .map(one => settingsLink({ href: one.href, title: one.title, status: one.words }));
623
+ return settingsShell({ group: "advanced", title: "Advanced", lead: "Everything beyond filing, approving and accepting work.", flags,
624
+ body: joinHtml([answered(facts), toggle, settingsLinks("Advanced pages", pages)]) });
625
+ }
@@ -1,20 +1,3 @@
1
- /**
2
- * The settings kit's one script (docs/plans/settings-revamp.md §4), shipped as a page's functional script beside kit
3
- * forms (settings-kit.ts). Without it every kit form works as today: the proof field shows inline and Save posts.
4
- *
5
- * With it, a kit form that asks for a proof:
6
- * - moves its server-written proof field into the `<dialog>` inside the same form (the field never leaves the form);
7
- * - opens the dialog on submit instead of posting, remembering the pressed button;
8
- * - Confirm (its button, or Enter in the field) posts the form with that button (`requestSubmit(submitter)`, after the
9
- * submit event that asked has finished), so its name=value and every hidden term go along unchanged; Cancel (or
10
- * Escape) closes it and posts nothing, and focus returns to the button;
11
- * - once a kit form posts, it is pending: further submits are dropped and its Save and Confirm are disabled (after the
12
- * post has taken their values), until the page is shown again or the post was cancelled — never on a timer;
13
- * - asks for nothing when the proof was left out (Passwordless) — there is no dialog then — and shows the
14
- * identity-provider link when the sign-in swapped the field.
15
- * Each section's Save bar names what changed. The script never reads or sets a field's value except to check that a
16
- * required proof isn't empty; the server still proves everything.
17
- */
18
1
  export const SETTINGS_KIT_SCRIPT = `(function(){
19
2
  if(window.__soKit)return;window.__soKit=1;
20
3
  var d=document;d.documentElement.classList.add("kit-js");
@@ -59,8 +42,6 @@ f.__kitChanged=f.__kitChanged||[];var name=label(t);if(name&&f.__kitChanged.inde
59
42
  bar.setAttribute("data-changed","");state.textContent="Changed: "+f.__kitChanged.join(", ");}
60
43
  d.addEventListener("input",changed);d.addEventListener("change",changed);
61
44
  })();`;
62
- /** The pages that wear the settings frame: one column, no Crew sheet, a breadcrumb under Settings. Here (not in
63
- * settings-kit.ts) so the browser bundle reads it without the server's form contracts. */
64
45
  export function isSettingsFrame(pathname) {
65
46
  return pathname === "/settings" || pathname.startsWith("/settings/") || pathname === "/setup" || pathname.startsWith("/setup/")
66
47
  || pathname === "/people" || pathname === "/mode" || pathname === "/control" || pathname === "/spend";
@@ -1,25 +1,9 @@
1
- /**
2
- * The settings kit (docs/plans/settings-revamp.md §4): the frame's breadcrumb, and the pieces every settings page is
3
- * rebuilt from — a section, its own sticky Save, the step-up dialog drawn from the action's own proof contract
4
- * (settings-proofs.ts), field errors, secret inputs and choice groups. Server-rendered HTML that works without
5
- * JavaScript; settings-kit-script.ts only turns the inline proof field into a dialog.
6
- *
7
- * Rules the helpers keep (and settings-kit.test.ts pins):
8
- * - the proof field is written into the form's own server HTML, named as its handler reads it, labelled, and
9
- * `current-password`; so sensitivity (serve.ts sendScreen) and the identity-provider swap (ssoStepUps) still see it;
10
- * - a step-up field renders through `reauth`, so Passwordless leaves it out exactly as today; a credential or typed
11
- * password field always renders;
12
- * - a CSRF-only action renders no proof field and no dialog;
13
- * - nothing here ever sets `value` on a proof or secret field;
14
- * - handlers never read any of this: it only draws.
15
- */
16
1
  import { attributes, html, htmlString, joinHtml, postForm, reauth, replaceMarkup } from "./html.js";
17
2
  import { isSettingsFrame } from "./settings-kit-script.js";
18
3
  import { requestContext } from "./server/request-context.js";
19
4
  import { contractReads, PROOF_INVENTORY, proofRow } from "./settings-proofs.js";
20
5
  export { isSettingsFrame };
21
6
  const ENTITIES = { amp: "&", lt: "<", gt: ">", quot: '"', "#39": "'", "#x27": "'", nbsp: " " };
22
- /** The text of a page's first h1 (tags dropped, the common entities read), or null. */
23
7
  export function headingText(page) {
24
8
  const found = /<h1\b[^>]*>([\s\S]*?)<\/h1>/i.exec(page);
25
9
  if (found === null)
@@ -27,11 +11,9 @@ export function headingText(page) {
27
11
  const text = found[1].replace(/<[^>]*>/g, "").replace(/&(amp|lt|gt|quot|#39|#x27|nbsp);/g, (_whole, name) => ENTITIES[name] ?? "").replace(/\s+/g, " ").trim();
28
12
  return text === "" ? null : text.slice(0, 80);
29
13
  }
30
- /** The breadcrumb for a settings-frame page: "Settings / <this page>", or nothing on the hub and outside the frame. */
31
14
  export function settingsCrumbs(pathname, title, page) {
32
15
  if (!isSettingsFrame(pathname) || pathname === "/settings")
33
16
  return undefined;
34
- // A page in the revamp kit's Settings frame (server/kit.ts settingsShell) names its own trail: Settings, its group, itself.
35
17
  const kit = /<nav class="k-tb-ctx k-crumbs" aria-label="Breadcrumb">([\s\S]*?)<\/nav>/.exec(page);
36
18
  if (kit !== null) {
37
19
  const trail = [{ label: "Settings", href: "/settings" }];
@@ -45,27 +27,19 @@ export function settingsCrumbs(pathname, title, page) {
45
27
  const name = headingText(page) ?? (title.charAt(0).toUpperCase() + title.slice(1));
46
28
  return [{ label: "Settings", href: "/settings" }, { label: name, href: null }];
47
29
  }
48
- /** The project the sidebar's picker names: the session's saved selection while this person may still see it, else
49
- * the page's own effective project, else none — checked against the visible project list, so a selection that
50
- * outlived the ceiling is never sent to the page. */
51
30
  export function openProjectFor(saved, effective, visible) {
52
31
  return [saved, effective ?? null].find((path) => path !== null && visible.some(one => one.path === path)) ?? null;
53
32
  }
54
- /** The breadcrumb as server HTML (the page before scripts, and without them). */
55
33
  export function crumbsHtml(crumbs) {
56
34
  return html `<nav class="kit-crumbs" aria-label="Breadcrumb"><ol>${crumbs.map(one => one.href === null
57
35
  ? html `<li aria-current="page">${one.label}</li>`
58
36
  : html `<li><a href="${one.href}">${one.label}</a></li>`)}</ol></nav>`;
59
37
  }
60
- // ---- fields --------------------------------------------------------------------------------------------------------
61
- /** The password-manager opt-outs every secret input carries (a service's key is not the person's sign-in). */
62
38
  export const SECRET_OPT_OUTS = { "data-1p-ignore": true, "data-lpignore": "true", "data-bwignore": true, "data-form-type": "other" };
63
39
  const errorId = (id) => `${id}-error`;
64
- /** A field's message under it: tied to the field with aria-describedby, announced, and the field focused. */
65
40
  export function fieldError(id, message) {
66
41
  return html `<p class="kit-field-error" id="${errorId(id)}" role="alert">${message}</p>`;
67
42
  }
68
- /** A labelled text field; with an error it is aria-invalid, names its message and takes focus. */
69
43
  export function textField(field) {
70
44
  const hint = field.hint === undefined ? null : `${field.id}-hint`;
71
45
  const described = [hint, field.error ? errorId(field.id) : null].filter(Boolean).join(" ");
@@ -75,8 +49,6 @@ ${field.hint === undefined ? "" : html `<p class="kit-hint" id="${hint}">${field
75
49
  "aria-invalid": field.error ? "true" : null, "aria-describedby": described === "" ? null : described, autofocus: field.error ? true : null })}>\
76
50
  ${field.error ? fieldError(field.id, field.error) : ""}</div>`;
77
51
  }
78
- /** A secret that is not the person's own password (an API key, a bot token, a client secret): masked, never given a
79
- * value, kept out of password managers. The field name is the handler's own wire name. */
80
52
  export function secretInput(field) {
81
53
  const described = [field.hint === undefined ? null : `${field.id}-hint`, field.error ? errorId(field.id) : null].filter(Boolean).join(" ");
82
54
  return html `<div class="kit-field"><label for="${field.id}">${field.label}</label>\
@@ -85,7 +57,6 @@ ${field.hint === undefined ? "" : html `<p class="kit-hint" id="${field.id}-hint
85
57
  required: field.required === true, "aria-invalid": field.error ? "true" : null, "aria-describedby": described === "" ? null : described, autofocus: field.error ? true : null })}>\
86
58
  ${field.error ? fieldError(field.id, field.error) : ""}</div>`;
87
59
  }
88
- /** A choice group: a fieldset with its legend, each option's detail tied to it. Nothing saves until Save. */
89
60
  export function choiceGroup(group) {
90
61
  return html `<fieldset class="kit-choices"${group.error ? html ` aria-describedby="${errorId(group.id)}"` : ""}><legend>${group.legend}</legend>\
91
62
  ${group.options.map((one, at) => {
@@ -94,12 +65,7 @@ ${group.options.map((one, at) => {
94
65
  <span>${one.label}</span>${one.detail === undefined ? "" : html `<span class="kit-choice-detail" id="${id}-detail">${one.detail}</span>`}</label>`;
95
66
  })}${group.error ? fieldError(group.id, group.error) : ""}</fieldset>`;
96
67
  }
97
- // ---- proof ---------------------------------------------------------------------------------------------------------
98
- /** Proofs that only a password typed now satisfies: no Passwordless session and no identity-provider re-check. */
99
68
  export const typedOnly = (row) => row.proof === "typed-password" || row.proof === "typed-now-operator";
100
- /** The proof field a row's handler reads, as today's forms write it; empty for a CSRF-only row. A step-up field goes
101
- * through `reauth` (Passwordless leaves it out); a credential or typed field always shows. A typed-only field carries
102
- * `data-so-typed`, so the identity-provider swap leaves it a real password field (keepTypedFields). Never a value. */
103
69
  export function proofField(row, options = {}) {
104
70
  if (row.field === null || row.proof === "none")
105
71
  return html ``;
@@ -108,7 +74,6 @@ export function proofField(row, options = {}) {
108
74
  const label = options.label ?? "Your Toolroll password";
109
75
  if (typedOnly(row))
110
76
  return html `<label>${label}<input type="password" name="${row.field}" data-so-typed autocomplete="current-password" required></label>`;
111
- // A row that needs its proof only for some posts (its `when`) leaves the field optional: the handler decides.
112
77
  const field = options.optional === true && row.when !== undefined
113
78
  ? html `<label>${label}<input type="password" name="${row.field}" autocomplete="current-password"></label>`
114
79
  : html `<label>${label}<input type="password" name="${row.field}" autocomplete="current-password" required></label>`;
@@ -116,18 +81,11 @@ export function proofField(row, options = {}) {
116
81
  }
117
82
  const TYPED_FIELD = /<input type="password" name="([a-z-]+)" data-so-typed autocomplete="current-password" required>/g;
118
83
  const HELD_FIELD = /<input type="password" name="([a-z-]+)" data-so-typed data-so-typed-held required>/g;
119
- /**
120
- * The identity-provider swap (render-people.ts ssoStepUps) with typed-only proof fields kept: those handlers take only
121
- * a password typed now, so the field must stay a real password input. The field is held out of the swap by its
122
- * marker and put back as it was. Every other step-up field is swapped exactly as before.
123
- */
124
84
  export function keepTypedFields(page, swap, ...rest) {
125
85
  const held = replaceMarkup(page, TYPED_FIELD, (_whole, name) => html `<input type="password" name="${name}" data-so-typed data-so-typed-held required>`);
126
86
  return replaceMarkup(swap(held, ...rest), HELD_FIELD, (_whole, name) => html `<input type="password" name="${name}" data-so-typed autocomplete="current-password" required>`);
127
87
  }
128
- /** The rows that share this row's route: one handler's variants. */
129
88
  const variantsOf = (row) => PROOF_INVENTORY.filter(one => one !== row && one.routes.some(route => row.routes.includes(route)));
130
- /** How the dialog explains a proof that Passwordless doesn't cover, in words; null where nothing needs saying. */
131
89
  export function proofNote(row) {
132
90
  if (row.proof === "credential")
133
91
  return "This changes a way in, so it always takes your password.";
@@ -137,13 +95,6 @@ export function proofNote(row) {
137
95
  return "Widening this takes an instance operator's password, typed now.";
138
96
  return null;
139
97
  }
140
- /**
141
- * A section's form, posted to its existing route with its existing fields, and its sticky Save. When the row needs a
142
- * proof, the proof field sits in the form's own HTML — inline (as today, which is how it works without JavaScript) and
143
- * moved into a `<dialog>` inside the same form by settings-kit-script.ts, which opens it on submit, keeps the pressed
144
- * button, and posts nothing on Cancel. The server still proves everything.
145
- */
146
- /** The row for a form posting to `action` with these hidden terms; throws on a form the row doesn't describe. */
147
98
  function rowForForm(proof, action, hidden) {
148
99
  const row = proofRow(proof);
149
100
  if (!row.routes.includes(action))
@@ -151,8 +102,6 @@ function rowForForm(proof, action, hidden) {
151
102
  for (const name of Object.keys(hidden))
152
103
  if (row.field === name || row.secrets.includes(name))
153
104
  throw new Error(`${row.id}: ${name} is never a hidden value`);
154
- // The exact variant: its own selector must be in the hidden terms, and no other variant's may be, unless both are
155
- // credential acts: two of those on one form ask the strongest proof there is, so nothing gets weaker.
156
105
  if (row.select !== undefined && String(hidden[row.select.field] ?? "") !== row.select.value)
157
106
  throw new Error(`${row.id} posts ${row.select.field}=${row.select.value}`);
158
107
  for (const other of variantsOf(row))
@@ -179,15 +128,12 @@ ${note === null ? "" : html `<p class="kit-hint">${note}</p>`}<div class="kit-di
179
128
  dialog,
180
129
  ]), { hidden, attrs: { id: form.id, class: "kit-form", "data-kit-form": row.id, "data-kit-step-up": asks ? "" : null } });
181
130
  }
182
- /** A section: a heading, a one-line state, a problem the handler sent back (role=alert), then its form. */
183
131
  export function kitSection(section) {
184
132
  return html `<section class="kit-section" id="${section.id}" aria-labelledby="${section.id}-title"><h2 id="${section.id}-title">${section.title}</h2>\
185
133
  ${section.state === undefined ? "" : html `<p class="kit-state">${section.state}</p>`}\
186
134
  ${section.problem ? html `<p class="kit-problem" role="alert">${section.problem}</p>` : ""}\
187
135
  ${section.said ? html `<p class="kit-said" role="status">${section.said}</p>` : ""}${section.body}</section>`;
188
136
  }
189
- /** The kit's look: one 760px column, sections with no nested wells, the sticky Save, the dialog. The needs-you colour
190
- * falls back to the warning token until S5 lands `--so-needs-you`. */
191
137
  export const SETTINGS_KIT_CSS = ":root{--so-settings-width:760px}" +
192
138
  ".kit-crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none;font-size:14px;color:var(--so-muted)}" +
193
139
  ".kit-crumbs li+li::before{content:'/';margin-right:6px;color:var(--so-muted)}.kit-crumbs a{color:var(--so-muted);text-decoration:none}.kit-crumbs a:hover{color:var(--so-ink);text-decoration:underline}" +
@@ -205,13 +151,6 @@ export const SETTINGS_KIT_CSS = ":root{--so-settings-width:760px}" +
205
151
  ".kit-dialog::backdrop{background:rgb(0 0 0 / .35)}.kit-dialog h2{margin:0 0 6px;font-size:17px}.kit-dialog-slot .kit-proof{display:block}" +
206
152
  ".kit-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin:16px 0 0}" +
207
153
  "@media (max-width:900px){.kit-save-bar button,.kit-dialog-actions button,.kit-crumbs a{min-height:44px}.kit-crumbs a{display:inline-flex;align-items:center}}";
208
- /**
209
- * A settings section's form in the revamp kit's look, posted to its existing route with its existing fields and
210
- * proof. Without the kit's script it is a plain form: the proof field (when the row asks for one) shows in place and
211
- * Save posts. With it (src/browser/kit/behavior.ts, section forms): Save appears once something changed, the proof is
212
- * asked in a password popover only when the rules need it, one validated snapshot is posted, a second press does
213
- * nothing while one is pending, and a refusal shows next to Save with the edits kept. The server proves everything.
214
- */
215
154
  export function kitSectionForm(form) {
216
155
  const hidden = form.hidden ?? {};
217
156
  const row = rowForForm(form.proof, form.action, hidden);
@@ -234,8 +173,6 @@ export function kitSectionForm(form) {
234
173
  "data-k-confirm": form.confirm ?? row.action, "data-k-note": note,
235
174
  } });
236
175
  }
237
- /** Whether this request is the page again after a save of form `id` couldn't be confirmed (section-forms.ts asks for it
238
- * with ?unconfirmed=<id>). It only picks which of this page's own forms shows the fixed note; the value is never drawn. */
239
176
  function unconfirmedHere(id) {
240
177
  const at = requestContext.getStore()?.returnTo;
241
178
  if (at === undefined)
@@ -1,29 +1,11 @@
1
- /**
2
- * The settings proof inventory (docs/plans/settings-revamp.md §4): for every settings action, the proof its handler
3
- * already asks for, as data. Only rendering code reads it (settings-kit.ts draws the step-up dialog from it); no
4
- * handler does, and nothing here changes what a handler proves. `src/settings-kit.test.ts` pins every row against the
5
- * form contracts (console-api.ts), the route table, and — for one row of each kind — the handler itself over HTTP.
6
- *
7
- * Proof kinds, as the handlers implement them (scope.ts, server/guards.ts):
8
- * - `none`: the session and the form token (CSRF) only.
9
- * - `step-up`: `authenticateApprover` — a password typed now; an empty field stands in under Passwordless (the
10
- * person's own live browser session) and for a one-use identity-provider re-check.
11
- * - `credential`: `authenticateCredential` — a password typed now, or a one-use identity-provider re-check. Passwordless
12
- * never covers it.
13
- * - `typed-password`: the handler checks the typed password itself (`authenticateAccount`, or an empty field refused
14
- * before the check). Neither Passwordless nor an identity-provider re-check stands in.
15
- * - `typed-now-operator`: a password typed now by an instance operator (widening check access); not even a re-check.
16
- */
17
1
  import { CONSOLE_FORMS } from "./contracts/console-api.js";
18
2
  const ACCEPT = { passwordless: "accepted", sso: "accepted" };
19
3
  const CREDENTIAL = { passwordless: "refused", sso: "accepted" };
20
4
  const TYPED = { passwordless: "refused", sso: "refused" };
21
5
  const NONE = { passwordless: "n/a", sso: "n/a" };
22
- /** /mode/sign re-derives the digest from the posted terms, so every one rides back. */
23
6
  const MODE_TERMS = ["nonce", "digest", "expiry", "name", "days", "publication", "auto-approve", "plan-auto", "chat-approve", "repair-auto"];
24
7
  const CHAT_APPS = [["slack", "Slack", "slack", ["app-token", "bot-token"]], ["teams", "Teams", "teams", ["secret"]], ["discord", "Discord", "discord", ["bot-token"]]];
25
8
  export const PROOF_INVENTORY = [
26
- // CSRF only.
27
9
  { id: "quality-default", action: "Set the default quality for new tasks", routes: ["/settings/quality-default"], form: "qualityDefault", field: null, proof: "none", ...NONE, role: "any", secrets: [], terms: [] },
28
10
  { id: "notifications", action: "Choose what reaches you", routes: ["/settings/notifications"], form: "notifications", field: null, proof: "none", ...NONE, role: "any", secrets: [], terms: [] },
29
11
  { id: "notifications-mute", action: "Mute a project", routes: ["/settings/notifications/mute"], form: "notificationsMute", field: null, proof: "none", ...NONE, role: "any", secrets: [], terms: [] },
@@ -37,7 +19,6 @@ export const PROOF_INVENTORY = [
37
19
  { id: "chat-approval-confirm", action: "Review approving from chat", routes: ["/settings/chat-approval/confirm", "/settings/chat-approval/off"], form: "chatApproval", field: null, proof: "none", ...NONE, role: "approver", secrets: [], terms: [] },
38
20
  { id: "models-rules-off", action: "Turn an earned rule off, stop a trial, say Not now, or turn suggestions off", routes: ["/settings/models/turn-off", "/settings/models/not-now", "/settings/models/suggest-off", "/settings/models/stop"], form: "modelsRules", field: null, proof: "none", ...NONE, role: "operator", secrets: [], terms: [] },
39
21
  ...CHAT_APPS.map(([app, name, form]) => ({ id: `${app}-alerts`, action: `Send alerts to ${name}`, routes: [`/settings/${app}/alerts`], form, field: null, proof: "none", ...NONE, role: "approver", secrets: [], terms: [] })),
40
- // Step-up: a password typed now, the Passwordless session, or a one-use re-check.
41
22
  { id: "permission-default", action: "Start new tasks with Full access", routes: ["/settings/permission-default"], form: "permissionDefault", field: "password", proof: "step-up", when: "only when widening to Full access", ...ACCEPT, role: "any", secrets: [], terms: [] },
42
23
  { id: "spend-budget", action: "Set a monthly limit", routes: ["/spend/budget"], form: "spendBudget", field: "password", proof: "step-up", ...ACCEPT, role: "operator", secrets: [], terms: [] },
43
24
  { id: "models-agent", action: "Change which model does each job", routes: ["/settings/models/agent"], form: "modelsChange", field: "password", proof: "step-up", ...ACCEPT, role: "operator", secrets: [], terms: ["scope", "digest"] },
@@ -73,7 +54,6 @@ export const PROOF_INVENTORY = [
73
54
  { id: "mode-sign", action: "Sign an operating mode", routes: ["/mode/sign"], form: "mode", field: "token", proof: "step-up", ...ACCEPT, role: "any", handlerRole: "an approver of the project", secrets: [], terms: MODE_TERMS },
74
55
  { id: "mode-sign-chat-approve", action: "Sign an operating mode that lets your chat app approve", routes: ["/mode/sign"], select: { field: "chat-approve", value: "1" }, form: "mode", field: "token", proof: "credential", ...CREDENTIAL, role: "any", handlerRole: "an approver of the project", secrets: [], terms: MODE_TERMS },
75
56
  { id: "mode-sign-repair", action: "Sign an operating mode that repairs failed checks by itself", routes: ["/mode/sign"], select: { field: "repair-auto", value: "1" }, form: "mode", field: "token", proof: "credential", ...CREDENTIAL, role: "any", handlerRole: "an approver of the project", secrets: [], terms: MODE_TERMS },
76
- // Credential acts: a password typed now or a one-use re-check; never Passwordless.
77
57
  { id: "passwordless-on", action: "Turn Passwordless on", routes: ["/settings/passwordless"], form: "passwordless", field: "password", proof: "credential", when: "only to turn it on (off needs nothing)", ...CREDENTIAL, role: "operator", secrets: [], terms: [] },
78
58
  { id: "sign-in", action: "Change sign-in (SSO)", routes: ["/settings/sign-in"], form: "signIn", field: "password", proof: "credential", when: "every action except Test", ...CREDENTIAL, role: "operator", secrets: ["client-secret"], terms: [] },
79
59
  { id: "release-approval", action: "Approve releases automatically", routes: ["/settings/release-approval"], form: "releaseApproval", field: "password", proof: "credential", when: "only to approve automatically (Ask me needs nothing)", ...CREDENTIAL, role: "approver", handlerRole: "an approver of the project", secrets: [], terms: ["repo"] },
@@ -87,21 +67,18 @@ export const PROOF_INVENTORY = [
87
67
  { id: "sessions-token", action: "Make an API token", routes: ["/settings/sessions"], form: "sessions", field: "password", proof: "credential", when: "only to make a token (ending sessions and revoking tokens need nothing)", ...CREDENTIAL, role: "any", secrets: [], notProof: ["token"], terms: [], note: "`token` here names an API token to revoke" },
88
68
  { id: "people-invite", action: "Invite someone", routes: ["/people/invite"], form: "peopleInvite", field: "token", proof: "credential", ...CREDENTIAL, role: "any", handlerRole: "an approver", secrets: [], terms: [] },
89
69
  { id: "people-projects", action: "Change a person's projects", routes: ["/people/projects"], form: "peopleProjects", field: "token", proof: "credential", ...CREDENTIAL, role: "operator", secrets: [], terms: ["name"] },
90
- // A typed password, checked by the handler itself.
91
70
  { id: "telegram-pair", action: "Pair your phone with Telegram", routes: ["/settings/telegram/pair"], form: "telegramPair", field: "password", proof: "typed-password", ...TYPED, role: "approver", secrets: [], terms: [] },
92
71
  { id: "chat-approval-save", action: "Turn on approving from chat", routes: ["/settings/chat-approval/save"], form: "chatApproval", field: "token", proof: "typed-password", ...TYPED, role: "approver", secrets: [], terms: ["nonce", "digest", "scope", "full-access", "cap-usd"] },
93
72
  { id: "push-subscribe", action: "Get alerts on this device", routes: ["/push/subscribe"], form: "pushSubscribe", field: "token", proof: "typed-password", ...TYPED, role: "any", handlerRole: "an approver", secrets: [], terms: ["endpoint", "p256dh", "auth"] },
94
73
  { id: "lead-config", action: "Set up the lead's model and its own key", routes: ["/chat/config"], form: "chatConfig", field: "token", proof: "typed-password", ...TYPED, role: "any", handlerRole: "an approver", secrets: ["key"], terms: [] },
95
74
  ];
96
75
  const BY_ID = new Map(PROOF_INVENTORY.map(row => [row.id, row]));
97
- /** One row by id; throws on an unknown id (a rendering bug, never a request's input). */
98
76
  export function proofRow(id) {
99
77
  const row = BY_ID.get(id);
100
78
  if (row === undefined)
101
79
  throw new Error(`no proof inventory row ${id}`);
102
80
  return row;
103
81
  }
104
- /** Whether the field a row names is one its form contract reads (used by the kit's own guard and the tests). */
105
82
  export function contractReads(row, field) {
106
83
  return CONSOLE_FORMS[row.form].fields.includes(field);
107
84
  }