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,15 +1,3 @@
1
- /**
2
- * Git for teardown (landed-cleanup.ts and the checkout removal it drives in worktree.ts), run by Toolroll's own
3
- * process inside the shared repository a build can write to. A build can plant hooks in .git/hooks and settings in
4
- * .git/config (or a worktree's config.worktree), so every teardown command runs hardened: an allowlisted environment
5
- * with no system or global config (remote-main.ts's), no hooks, no fsmonitor, no ext transport, no prompts and no
6
- * automatic maintenance.
7
- *
8
- * Settings that name a command, and includes (which could bring them in from a file nobody looked at), are not
9
- * overridden but refused: before each command the repository's own config is read with includes off, and if it sets
10
- * any of them the command never runs. The refusal is a failed git result, so every caller's existing doubt applies and
11
- * nothing is removed.
12
- */
13
1
  import { spawnSync } from "node:child_process";
14
2
  import { accessSync, closeSync, constants as fsConstants, existsSync, fstatSync, lstatSync, mkdirSync, mkdtempSync, openSync, readdirSync, readFileSync, realpathSync, renameSync, rmSync, symlinkSync, writeFileSync, writeSync } from "node:fs";
15
3
  import { randomBytes } from "node:crypto";
@@ -21,12 +9,10 @@ import { run } from "./exec.js";
21
9
  import { ENV, ENV_ALLOWLIST } from "./remote-main.js";
22
10
  import { WORKTREE_TIMEOUT_MS } from "./worktree.js";
23
11
  import { FOLDER_DIDNT_ANSWER, folderAnswers } from "./folder-gate.js";
24
- /** Fixed on every teardown command, ahead of its own arguments. */
25
12
  export const TEARDOWN_FLAGS = [
26
13
  "--no-optional-locks", "-c", "core.hooksPath=/dev/null", "-c", "core.fsmonitor=false", "-c", "protocol.ext.allow=never",
27
14
  "-c", "credential.helper=", "-c", "gc.auto=0", "-c", "maintenance.auto=false", "-c", "submodule.recurse=false",
28
15
  ];
29
- /** Exit code of a refused command (git's own fatal code, so no caller reads it as "not found" or "no"). */
30
16
  export const REFUSED_CODE = 128;
31
17
  const REFUSED_PREFIX = "Toolroll won't run git here: ";
32
18
  const KNOWN_SECTIONS = new Map(Object.entries({
@@ -36,7 +22,6 @@ const KNOWN_SECTIONS = new Map(Object.entries({
36
22
  "packedgitlimit", "packedgitwindowsize", "deltabasecachelimit", "multipackindex", "commitgraph", "splitindex", "warnambiguousrefs", "notesref",
37
23
  "sparsecheckout", "sparsecheckoutcone", "filesreflocktimeout", "packedrefstimeout", "usereplacerefs", "fsync", "fsyncmethod", "fsyncobjectfiles",
38
24
  "checkroundtripencoding", "protecthfs", "protectntfs", "logallrefupdates", "restrictinheritedhandles", "maxtreedepth", "createobject"] },
39
- // A remote: never its helper programs; its URLs are checked apart (helperUrl).
40
25
  remote: { allow: ["url", "pushurl", "fetch", "push", "mirror", "tagopt", "prune", "prunetags", "promisor", "partialclonefilter", "skipdefaultupdate",
41
26
  "skipfetchall", "followremotehead", "serveroption", "proxy", "proxyauthmethod"] },
42
27
  branch: "any", user: "any", init: "any", pull: "any", push: "any", fetch: "any", status: "any", color: "any", advice: "any", extensions: "any",
@@ -52,12 +37,9 @@ const KNOWN_SECTIONS = new Map(Object.entries({
52
37
  submodule: { deny: ["update"] },
53
38
  gc: { deny: ["recentobjectshook"] },
54
39
  uploadpack: { deny: ["packobjectshook"] },
55
- // git-lfs's own: lfsCommand decides (inert keys only); filter: git-lfs's exact values only (runsCommand).
56
40
  lfs: "any",
57
41
  ssh: { allow: ["variant"] },
58
42
  }));
59
- /** A remote URL git hands to a remote helper: `<helper>::…`, or a scheme git has no transport of its own for (it runs
60
- * git-remote-<scheme>). scp-like `host:path`, `user@host:path` and plain paths are git's own. */
61
43
  const OWN_SCHEMES = new Set(["https", "http", "ssh", "git", "file", "git+ssh", "ssh+git"]);
62
44
  function helperUrl(value) {
63
45
  const url = value.trim();
@@ -66,7 +48,6 @@ function helperUrl(value) {
66
48
  const scheme = /^([A-Za-z][A-Za-z0-9+.-]*):\/\//.exec(url);
67
49
  return scheme !== null && !OWN_SCHEMES.has(scheme[1].toLowerCase());
68
50
  }
69
- /** A config key's parts as git names them: section and variable lowercased, the subsection as it is (or null). */
70
51
  function keyParts(key) {
71
52
  const first = key.indexOf(".");
72
53
  const last = key.lastIndexOf(".");
@@ -74,8 +55,6 @@ function keyParts(key) {
74
55
  return { section: key.toLowerCase(), subsection: null, variable: "" };
75
56
  return { section: key.slice(0, first).toLowerCase(), subsection: first === last ? null : key.slice(first + 1, last), variable: key.slice(last + 1).toLowerCase() };
76
57
  }
77
- /** git-lfs settings that name no program (where it fetches, what, whether it checks locks, how it signs in); any other
78
- * `lfs.*` key in a checkout's own config could (extensions, custom and standalone transfer agents), so it's refused. */
79
58
  const INERT_LFS_PLAIN = new Set(["url", "pushurl", "fetchinclude", "fetchexclude", "locksverify", "repositoryformatversion", "setlockablereadonly", "skipdownloaderrors", "concurrenttransfers"]);
80
59
  const INERT_LFS_SUBSECTION = new Set(["access", "locksverify"]);
81
60
  const lfsCommand = (key) => {
@@ -84,17 +63,11 @@ const lfsCommand = (key) => {
84
63
  return false;
85
64
  return subsection === null ? !INERT_LFS_PLAIN.has(variable) : !INERT_LFS_SUBSECTION.has(variable);
86
65
  };
87
- /** core.fsmonitor as a boolean is git's own daemon; anything else is a command to run. */
88
66
  const BOOLEAN = /^(|true|false|yes|no|on|off|-?\d+)$/i;
89
- /** Whether one setting can run a command (or bring in config nobody read), whatever scope it came from. git-lfs's own
90
- * filters, exactly as `git lfs install` writes them (LFS_FILTER), are the one filter allowed, and only where the caller
91
- * has also refused a `.lfsconfig` naming a git-lfs extension (`lfsChecked`): git-lfs reads that file as it runs. */
92
67
  function runsCommand(key, value, lfsChecked) {
93
68
  const { section, subsection, variable } = keyParts(key);
94
69
  if (section === "core" && variable === "fsmonitor")
95
70
  return !BOOLEAN.test(value.trim());
96
- // A filter: whether it is required names no program; its commands only git-lfs's own, exactly, beside a checked
97
- // .lfsconfig.
98
71
  if (section === "filter")
99
72
  return !((variable === "required" && BOOLEAN.test(value.trim())) || (lfsChecked && subsection === "lfs" && LFS_FILTER.get(`filter.lfs.${variable}`) === value));
100
73
  if (section === "lfs")
@@ -110,10 +83,6 @@ function runsCommand(key, value, lfsChecked) {
110
83
  return rule.deny.includes(variable);
111
84
  return !rule.allow.includes(variable);
112
85
  }
113
- /** The command-running setting a `git config --list --show-scope -z` listing sets, or null. Only local and worktree
114
- * scope count: teardown commands never read system or global config. `lfsChecked`: the caller refuses a checkout whose
115
- * `.lfsconfig` names a git-lfs extension (lfsExtensionIn), so git-lfs's own exact filters may stand (runsCommand).
116
- * Fails closed: a listing that can't be classified names a setting. */
117
86
  export function commandSetting(listing, options = {}) {
118
87
  try {
119
88
  const fields = listing.split("\0");
@@ -134,18 +103,11 @@ export function commandSetting(listing, options = {}) {
134
103
  return "a setting that couldn't be read";
135
104
  }
136
105
  }
137
- /**
138
- * What the plane's git on a build's checkout keeps of the operator's own (global and system) configuration: values,
139
- * never commands — identity, line endings, ignore and case settings — and git-lfs's filters only as git-lfs itself
140
- * installs them, exactly. Everything else there (filters, diff drivers, fsmonitor, signing and its key commands,
141
- * whatever an include brings in) is left out, so nothing in it can run a file of the checkout's.
142
- */
143
106
  const CARRIED_VALUES = new Set(["user.name", "user.email", "core.autocrlf", "core.eol", "core.safecrlf", "core.excludesfile", "core.ignorecase",
144
107
  "core.precomposeunicode", "core.quotepath", "core.filemode", "core.symlinks", "core.longpaths"]);
145
108
  const LFS_FILTER = new Map(Object.entries({
146
109
  "filter.lfs.clean": "git-lfs clean -- %f", "filter.lfs.smudge": "git-lfs smudge -- %f", "filter.lfs.process": "git-lfs filter-process", "filter.lfs.required": "true",
147
110
  }));
148
- /** The `-c` settings that carry the operator's own values (CARRIED_VALUES, LFS_FILTER) from a global/system listing. */
149
111
  export function carriedSettings(listing) {
150
112
  const fields = listing.split("\0");
151
113
  const carried = new Map();
@@ -163,13 +125,10 @@ export function carriedSettings(listing) {
163
125
  }
164
126
  return [...carried].flatMap(([key, value]) => ["-c", `${key}=${value}`]);
165
127
  }
166
- /** Why a teardown command was refused, or null when `result` isn't a refusal. */
167
128
  export function refusal(result) {
168
129
  return result.code === REFUSED_CODE && result.stderr.startsWith(REFUSED_PREFIX) ? result.stderr.slice(REFUSED_PREFIX.length).trim() : null;
169
130
  }
170
131
  const refused = (why) => ({ code: REFUSED_CODE, stdout: "", stderr: `${REFUSED_PREFIX}${why}\n`, timedOut: false, notFound: false });
171
- /** Refuse nested repositories without asking Git to enter them or evaluate their config.
172
- * Includes ignored/untracked repositories and bare repositories; never follows symlinks. */
173
132
  function nestedRepository(path) {
174
133
  const pending = [path];
175
134
  while (pending.length > 0) {
@@ -184,18 +143,10 @@ function nestedRepository(path) {
184
143
  }
185
144
  return false;
186
145
  }
187
- /**
188
- * Runs `work` with a write view of `cwd`'s repository (gitView): the view, and how to restore git's output. From a
189
- * folder inside a checkout, the view is of the checkout git would find (checkoutRootOf); with none, git's own "not a
190
- * git repository", nothing run. One whose `.git` or config can't be read as git reads it, or isn't bound to one
191
- * repository (boundDirs; `binding.repo` when the caller has the project's), is refused; so is a command whose
192
- * repository changed under it while git ran.
193
- */
194
146
  async function inView(cwd, binding, work, after = true, lockTimeoutMs, doing, gitFile = "git") {
195
147
  const root = checkoutRootOf(cwd);
196
148
  if (root === null)
197
149
  return NOT_A_REPOSITORY;
198
- // One plane git command at a time on a checkout (git-views.ts withCheckoutLock: re-entrant along one call chain).
199
150
  let key;
200
151
  try {
201
152
  key = realpathSync(root);
@@ -228,17 +179,9 @@ async function inView(cwd, binding, work, after = true, lockTimeoutMs, doing, gi
228
179
  return refused(error instanceof Error ? error.message : "the checkout is busy");
229
180
  }
230
181
  }
231
- /** The one way teardown runs git, including the target checkout immediately before removal. Every command runs
232
- * against a write view of its repository (gitView), whose config is the one inspected and whose info is a copy, so a
233
- * setting or attributes file an agent adds after the inspection is never read (a build's process can outlive its turn:
234
- * on macOS containment is observational, src/containment.ts, and a sibling build shares the repository). A removal's
235
- * target is bound to the same repository as the folder it is removed from. A removal without --force runs under the
236
- * target's own view (its own config.worktree folded in), so git's last check of whether it is clean reads it as the
237
- * target itself would. `binding.repo`: the project's main checkout, from the plane's records, when the caller has it. */
238
182
  export function teardownGit(runner = run, binding = {}, lockTimeoutMs, gitFile = "git") {
239
183
  const options = (cwd, env) => ({ cwd, envAllowlist: ENV_ALLOWLIST, env: { ...ENV, ...env }, timeoutMs: WORKTREE_TIMEOUT_MS, maxBuffer: 512 * 1024 * 1024 });
240
184
  const configProblem = async (cwd, env) => {
241
- // git-lfs's own filters may stand only beside a .lfsconfig that names no extension (commandSetting's lfsChecked).
242
185
  if (lfsExtensionIn(env["GIT_WORK_TREE"] ?? cwd, gitFile))
243
186
  return refused("the checkout's .lfsconfig sets a git-lfs key that can run a command");
244
187
  const config = await runner("git", ["--no-optional-locks", "config", "--list", "--no-includes", "--show-scope", "-z"], options(cwd, env));
@@ -264,7 +207,6 @@ export function teardownGit(runner = run, binding = {}, lockTimeoutMs, gitFile =
264
207
  const ran = async (env) => restore(await runner("git", [...TEARDOWN_FLAGS, ...WRITE_VIEW_FLAGS, ...safeArgs], options(cwd, env)), args);
265
208
  if (!(removal || inspection || args.includes("checkout") || args.includes("clean")))
266
209
  return ran(view.env);
267
- // The checkout the command acts on, in its own view (bound to the same repository), checked first.
268
210
  return inView(target, { repo: binding.repo ?? dirname(view.dirs.common) }, async (targetView) => {
269
211
  if (removal) {
270
212
  const targetProblem = await configProblem(target, targetView.env);
@@ -278,25 +220,18 @@ export function teardownGit(runner = run, binding = {}, lockTimeoutMs, gitFile =
278
220
  catch {
279
221
  return refused("the checkout couldn't be inspected for nested repositories");
280
222
  }
281
- // ls-files reads index entries only; it cannot run submodule filters. Even an uninitialized
282
- // gitlink is kept, so worktree remove's internal status can never traverse it.
283
223
  const index = await runner("git", [...TEARDOWN_FLAGS, ...WRITE_VIEW_FLAGS, "ls-files", "--stage", "-z"], options(target, targetView.env));
284
224
  if (index.code !== 0)
285
225
  return refused("the checkout's index couldn't be read");
286
226
  if (index.stdout.split("\0").some(entry => entry.startsWith("160000 ")))
287
227
  return refused("the checkout contains a gitlink");
288
- // git's own clean check in a removal (a `status` it runs in the target) reads the config GIT_COMMON_DIR names:
289
- // the target's view, inspected above, so it judges the target by the target's own settings.
290
228
  return ran(removal && !forced ? { ...view.env, GIT_COMMON_DIR: targetView.env["GIT_COMMON_DIR"] } : view.env);
291
- // A removed target has no git directory left to prove: the folder it was removed from is proven instead.
292
229
  }, !removal, lockTimeoutMs, doing, gitFile);
293
230
  }, true, lockTimeoutMs, teardownDoing(args), gitFile);
294
231
  }
295
- /** What teardown git is doing, for an incident's notice: removing a checkout, or looking one over to tidy it. */
296
232
  function teardownDoing(args) {
297
233
  return args.includes("worktree") && args.includes("remove") ? "removing an old checkout" : "tidying an old checkout";
298
234
  }
299
- /** What a build's git is doing, for an incident's notice. */
300
235
  function checkoutDoing(args) {
301
236
  if (args.includes("worktree"))
302
237
  return args.includes("remove") ? "removing a checkout" : args.includes("add") ? "making a checkout" : "listing checkouts";
@@ -306,8 +241,6 @@ function checkoutDoing(args) {
306
241
  return "updating a repository";
307
242
  return "reading a build's checkout";
308
243
  }
309
- /** A setup call's time limit: its own five seconds, or less when a caller's deadline leaves less (never below 1 ms;
310
- * a caller checks the deadline itself before calling). */
311
244
  const setupTimeout = (limit) => limit === undefined ? 5_000 : Math.max(1, Math.min(5_000, limit()));
312
245
  export function checkoutIncludes(checkout, gitFile = "git", limit) {
313
246
  const dirs = gitDirsOf(checkout);
@@ -323,10 +256,7 @@ export function checkoutIncludes(checkout, gitFile = "git", limit) {
323
256
  }
324
257
  return false;
325
258
  }
326
- /** One config file, read only as the regular file it is (bounded), or null. */
327
259
  function regularFile(path) {
328
- // Opened without following a link and without blocking, then judged by what was opened: a FIFO swapped in after a
329
- // look never hangs the read (eval-harness review 1, finding 7).
330
260
  let fd = null;
331
261
  try {
332
262
  fd = openSync(path, fsConstants.O_RDONLY | fsConstants.O_NOFOLLOW | fsConstants.O_NONBLOCK);
@@ -343,13 +273,10 @@ function regularFile(path) {
343
273
  closeSync(fd);
344
274
  }
345
275
  }
346
- /** A checkout's git directory and common directory, as git finds them from its `.git` (a folder, or a one-line
347
- * `gitdir: ` file); null when the pointer isn't one git would read the same way. */
348
276
  function gitDirsOf(checkout, vouched = NO_VOUCHED) {
349
277
  let gitdir = join(checkout, ".git");
350
278
  try {
351
279
  if (!lstatSync(gitdir).isDirectory()) {
352
- // As git reads a .git file: "gitdir: " then the path, one line; anything else (more lines, stray space) refused.
353
280
  const text = (regularFile(gitdir) ?? "").replace(/\r?\n$/, "");
354
281
  if (!text.startsWith("gitdir: ") || /[\r\n]/.test(text))
355
282
  return null;
@@ -362,12 +289,6 @@ function gitDirsOf(checkout, vouched = NO_VOUCHED) {
362
289
  catch {
363
290
  return null;
364
291
  }
365
- // Where the checkout's own files point (a build can write both): read, in the console, only while that folder
366
- // answered a look lately, and never vouched for by the checkout pool's spelling (folder-gate.ts). Held back: not one
367
- // git would read the same way, so every caller refuses.
368
- // `vouched`: the very folders this view was made from, read again after git ran (settle). They answered moments ago
369
- // and git just ran in them; the gate's staleness is no evidence about them. Anything they now point elsewhere is
370
- // gated as ever, so a re-pointed `.git` or `commondir` is never read on the console's thread on its say.
371
292
  if (gitdir !== join(checkout, ".git") && !vouched.has(gitdir) && !folderAnswers(gitdir, true))
372
293
  return null;
373
294
  const named = regularFile(join(gitdir, "commondir"))?.trim();
@@ -376,14 +297,8 @@ function gitDirsOf(checkout, vouched = NO_VOUCHED) {
376
297
  return null;
377
298
  return { gitdir, common };
378
299
  }
379
- /** What includeIn answers when Git didn't finish parsing the file in time: still a refusal, named as what it is. */
380
300
  export const INCLUDE_PARSE_TIMED_OUT = "Git didn't finish reading it in time";
381
- /** The include parse's own limit: a loaded machine (a CI runner's parallel test files) can take seconds to start git, and
382
- * a refusal that names a slow machine an "unreadable file" sent two releases chasing a config that was fine. */
383
301
  const INCLUDE_PARSE_MS = 15_000;
384
- /** The include key one config file sets (lowercased, as git names it), "include" when only a plain reading finds one,
385
- * "an unreadable file" when it can't be read as a plain file or parsed, or INCLUDE_PARSE_TIMED_OUT when the caller's
386
- * deadline or the parse's own limit ran out first; null when it includes nothing. Every non-null answer refuses. */
387
302
  function includeIn(path, gitFile = "git", limit) {
388
303
  const text = regularFile(path);
389
304
  if (text === null)
@@ -465,7 +380,6 @@ function boundDirs(checkout, binding = {}, vouched = NO_VOUCHED) {
465
380
  fail("belongs to a git directory that names another checkout");
466
381
  dirs = { checkout: top, gitdir, common, linked: true, spelled: [named.gitdir, named.common, gitdir, common] };
467
382
  }
468
- // The common folder is a main checkout's own `.git` folder, a real one.
469
383
  if (basename(dirs.common) !== ".git")
470
384
  fail("belongs to a repository that isn't a checkout's");
471
385
  try {
@@ -476,10 +390,6 @@ function boundDirs(checkout, binding = {}, vouched = NO_VOUCHED) {
476
390
  fail("belongs to a repository that isn't there");
477
391
  }
478
392
  if (binding.repo != null) {
479
- // The anchor is the plane's own record, never a pointer file: the recorded project's main checkout, whose `.git`
480
- // must be a real folder (not a link, holding no `commondir`); its real path is the only common folder accepted. A
481
- // record that isn't such a checkout (a linked worktree, as agent-fence.ts trustedWorktreeBinding also refuses) or
482
- // can't be read is refused, never taken as unbound.
483
393
  let recorded = null;
484
394
  try {
485
395
  const dotgit = join(realpathSync(binding.repo), ".git");
@@ -496,24 +406,14 @@ function boundDirs(checkout, binding = {}, vouched = NO_VOUCHED) {
496
406
  }
497
407
  return dirs;
498
408
  }
499
- /** The shared git folder of a recorded project, read from disk and proven as boundDirs proves it: the project's own
500
- * real `.git` folder, holding no `commondir`. No pointer file or `commondir` an agent can write decides it, and no git
501
- * runs (a page visit reads this). Throws with the reason otherwise. */
502
409
  export function recordedCommonDir(repo) {
503
410
  return boundDirs(repo, { repo }).common;
504
411
  }
505
- /** What git keeps only per worktree and the plane never links: HEAD (git won't take it as a link) and the pointers. */
506
- /** What the plane links of a worktree's own git folder (git writes them in place through the link: the index and its
507
- * logs by lockfile, per-worktree refs and logs inside the folders), whether or not they exist yet; a rebase's,
508
- * cherry-pick's or sequencer's state folder only when one is already there. */
509
412
  const ADMIN_LINKED = ["index", "logs", "refs", "reftable"];
510
- /** What git keeps in a common directory (its path.c common_list, and reftable), linked whether or not it exists yet. */
511
413
  const COMMON_NAMES = ["branches", "gc.pid", "logs", "lost-found", "modules", "objects", "packed-refs", "reftable", "refs", "remotes", "rr-cache", "shallow", "svn", "worktrees"];
512
- /** Where git incidents are recorded: beside the fenced views folder (git-incident.ts). */
513
414
  export function gitIncidentRecord() {
514
415
  return join(dirname(ensureGitViewsRoot(realpathSync(homedir()))), "git-incidents.jsonl");
515
416
  }
516
- /** `doing`: what the plane was doing, in a person's words ("tidying an old checkout"), for an incident's notice. */
517
417
  function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
518
418
  const dirs = boundDirs(checkout, binding);
519
419
  const root = ensureGitViewsRoot(realpathSync(homedir()));
@@ -529,7 +429,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
529
429
  const configPath = join(view, "config");
530
430
  writeFileSync(configPath, config, { mode: 0o600 });
531
431
  const base = { cwd: "/", encoding: "utf8", killSignal: "SIGKILL", env: { PATH: process.env["PATH"] ?? "", GIT_CONFIG_NOSYSTEM: "1", GIT_CONFIG_GLOBAL: "/dev/null", HOME: "/nonexistent" } };
532
- // Each call's limit is worked out as it starts, from what is left of a caller's deadline.
533
432
  const plainNow = () => {
534
433
  if (limit !== undefined && limit() <= 0)
535
434
  throw new Error("the read's deadline passed");
@@ -540,7 +439,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
540
439
  if (flag.status !== 0 && flag.status !== 1)
541
440
  throw new Error("the checkout's git config couldn't be read");
542
441
  if (flag.stdout.trim() === "true") {
543
- // Git would also read the worktree's config.worktree, which the agent can still change: folded in as it is now.
544
442
  const worktree = join(dirs.gitdir, "config.worktree");
545
443
  const own = existsSync(worktree) ? regularFile(worktree) : "";
546
444
  if (own === null)
@@ -558,7 +456,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
558
456
  if (include !== null)
559
457
  throw new Error(`the checkout's git config includes another file (${include})`);
560
458
  mkdirSync(join(view, "info"));
561
- // A main checkout's sparse-checkout patterns are in its own (common) info folder; a linked one's in its admin's.
562
459
  for (const name of kind === "write" ? ["exclude", "attributes", "sparse-checkout"] : ["exclude", "sparse-checkout"]) {
563
460
  if (name === "sparse-checkout" && dirs.linked)
564
461
  continue;
@@ -566,7 +463,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
566
463
  if (!existsSync(path))
567
464
  continue;
568
465
  const text = regularFile(path);
569
- // A write that dropped the operator's exclude or attributes could stage what they keep out: refused instead.
570
466
  if (text === null && kind === "write")
571
467
  throw new Error(`the checkout's info/${name} couldn't be read as a plain file`);
572
468
  if (text !== null)
@@ -578,32 +474,25 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
578
474
  try {
579
475
  mkdirSync(folder);
580
476
  }
581
- catch { /* git reports it if it needs the folder */ }
477
+ catch { }
582
478
  }
583
479
  try {
584
480
  for (const id of readdirSync(folder))
585
481
  priorWorktrees.add(id);
586
482
  }
587
- catch { /* none yet */ }
483
+ catch { }
588
484
  }
589
485
  for (const name of new Set([...readdirSync(dirs.common), ...COMMON_NAMES])) {
590
486
  if (name === "config" || name === "info" || name === "hooks" || name === "commondir")
591
487
  continue;
592
488
  symlinkSync(join(dirs.common, name), join(view, name));
593
489
  }
594
- // GIT_DIR is the plane's too (git's ref store reads `commondir` from GIT_DIR as it goes, empirically on 2.50.1):
595
- // its `commondir` names the view and its `gitdir` this checkout, both the plane's; HEAD is a copy (git won't take
596
- // it as a link) carried back after the run; the worktree's other files are linked (the index and logs even before
597
- // they exist), so git's lockfiles write them in place.
598
- // (A folder under a dangling link can't be made by git: the worktree's `logs` is made first, as git would.)
599
490
  if (kind === "write" && !existsSync(join(dirs.gitdir, "logs"))) {
600
491
  try {
601
492
  mkdirSync(join(dirs.gitdir, "logs"));
602
493
  }
603
- catch { /* git reports it */ }
494
+ catch { }
604
495
  }
605
- // Only what git needs of the worktree's own folder is linked (ADMIN_LINKED, and a split index's shared files), each
606
- // checked to be a real entry directly in it, never a link (Codex review of a0fa135d).
607
496
  const linked = [...ADMIN_LINKED, ...readdirSync(dirs.gitdir).filter(name => name.startsWith("sharedindex."))];
608
497
  for (const name of new Set(linked)) {
609
498
  const path = join(dirs.gitdir, name);
@@ -622,9 +511,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
622
511
  const head = regularFile(join(dirs.gitdir, "HEAD"));
623
512
  if (head === null)
624
513
  throw new Error("the checkout's HEAD couldn't be read as a plain file");
625
- // The worktree's own state files (WORKTREE_STATE: HEAD, a merge's, cherry-pick's, rebase's or bisect's pseudo-refs
626
- // and messages) are copies (git won't take them as links), carried back after the run; its state folders, when
627
- // there, are linked.
628
514
  for (const name of WORKTREE_STATE) {
629
515
  const path = join(dirs.gitdir, name);
630
516
  if (!existsSync(path) && name !== "HEAD")
@@ -651,7 +537,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
651
537
  }
652
538
  writeFileSync(join(admin, "commondir"), `${view}\n`, { mode: 0o600 });
653
539
  writeFileSync(join(admin, "gitdir"), `${join(dirs.checkout, ".git")}\n`, { mode: 0o600 });
654
- // A main checkout's own info (its sparse-checkout) is the view's frozen one; a linked one's is its own.
655
540
  symlinkSync(dirs.linked ? join(dirs.gitdir, "info") : join(view, "info"), join(admin, "info"));
656
541
  if (!pinned(dirs).ok)
657
542
  throw new Error("the checkout's repository has a folder that is a link");
@@ -660,7 +545,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
660
545
  dispose();
661
546
  throw error;
662
547
  }
663
- // The folders down to the worktree's own, as they are now: carry-back writes only while each is still the same one.
664
548
  let anchor;
665
549
  try {
666
550
  anchor = anchorOf(dirs.gitdir);
@@ -669,9 +553,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
669
553
  dispose();
670
554
  throw new Error("the checkout's repository has a folder that is a link");
671
555
  }
672
- // Where git names a view (rev-parse --git-dir, --git-common-dir), the caller is told the repository's own folder;
673
- // where `worktree list` names the common view as the main worktree, that worktree (git's rule: the common dir less
674
- // `/.git`).
675
556
  const mainWorktree = dirname(dirs.common);
676
557
  const restore = (output, args) => {
677
558
  if (!output.includes(view) && !output.includes(admin))
@@ -682,8 +563,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
682
563
  const settle = () => {
683
564
  const now = pinned(dirs);
684
565
  let bound = false;
685
- // The same proof as before git ran, of the same folders: re-read past the console's folder gate only where they are
686
- // the very ones this view was made from (vouched), so a gate whose answer went stale mid-run is never read as a swap.
687
566
  try {
688
567
  const again = boundDirs(checkout, binding, new Set(dirs.spelled));
689
568
  bound = again.gitdir === dirs.gitdir && again.common === dirs.common;
@@ -692,7 +571,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
692
571
  bound = false;
693
572
  }
694
573
  if (!now.ok || !bound) {
695
- // Too late to prevent: recorded and told (git-incident.ts), never rolled back where the swap leads.
696
574
  if (kind === "write") {
697
575
  gitIncident({ checkout: dirs.checkout, repository: dirs.common, swapped: now.swapped.length > 0 ? now.swapped.map(({ path, leadsTo }) => ({ path, leadsTo })) : [{ path: join(dirs.checkout, ".git"), leadsTo: null }],
698
576
  cause: now.swapped.length > 0 ? "swapped" : "rebound", ...(doing === undefined ? {} : { doing }), record: gitIncidentRecord() });
@@ -700,8 +578,6 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
700
578
  return "the checkout's repository changed while git ran";
701
579
  }
702
580
  if (kind === "write") {
703
- // The worktree's own state git rewrote in the plane's GIT_DIR goes back to it, and what it removed is removed
704
- // there; anything else git left there the plane can't keep, and says so.
705
581
  const left = readdirSync(admin).filter(name => !initial.has(name) && !WORKTREE_STATE.includes(name) && !["commondir", "gitdir", "info"].includes(name));
706
582
  try {
707
583
  carryBack(admin, dirs.gitdir, initial, anchor);
@@ -722,37 +598,16 @@ function gitView(checkout, kind, binding = {}, gitFile = "git", limit, doing) {
722
598
  };
723
599
  return { env: { GIT_DIR: admin, GIT_COMMON_DIR: view, GIT_WORK_TREE: dirs.checkout }, restore, dispose, dirs, settle };
724
600
  }
725
- /** A worktree's own state files git may write (git's per-worktree names: HEAD and the pseudo-refs and messages of a
726
- * merge, cherry-pick, revert, rebase or bisect), and its state folders. */
727
601
  const WORKTREE_STATE = ["HEAD", "ORIG_HEAD", "MERGE_HEAD", "MERGE_MSG", "MERGE_MODE", "MERGE_RR", "AUTO_MERGE", "FETCH_HEAD", "COMMIT_EDITMSG",
728
602
  "CHERRY_PICK_HEAD", "REVERT_HEAD", "REBASE_HEAD", "SQUASH_MSG", "TAG_EDITMSG", "BISECT_LOG", "BISECT_START", "BISECT_TERMS", "BISECT_EXPECTED_REV",
729
603
  "BISECT_ANCESTORS_OK", "BISECT_NAMES", "BISECT_RUN", "BISECT_HEAD"];
730
604
  const WORKTREE_STATE_DIRS = ["sequencer", "rebase-merge", "rebase-apply"];
731
- /**
732
- * Whether every path git may write through a view is still the repository's own (Codex review of a0fa135d: git
733
- * writes deeper than the top-level folders, through a link at `refs/heads/x`, `logs/…` or `objects/xx` as well). The
734
- * walk, by lstat, never following a link: every name of the common folder git may write (COMMON_NAMES: refs, logs,
735
- * reftable, packed-refs, worktrees with each worktree's own folder, rr-cache, modules, …) all the way down, HEAD and
736
- * the index; the worktree's own state (WORKTREE_STATE: its HEAD, index, refs, logs, a merge's, rebase's or bisect's
737
- * state, a split index's shared files); and the object store (the common `objects`, and a submodule git directory's
738
- * own under modules/): its fan-out folders' entries for links, `info` and `pack` all the way down, but not each loose
739
- * object (a big repository has very many, and hard-linked objects are legitimate). Any link is refused, so is a folder
740
- * that can't be listed, and so is any file walked deep with a second hard link (git appends to a log in place), but for
741
- * another checkout's index (siblingIndexes: still never a link). The exemptions are by place only: an `objects` anywhere else (under refs/, logs/, worktrees/) is walked like the rest. For each one found, where it leads (for an incident's record).
742
- *
743
- * Checked when the view is made and again after git ran; between the two, a process that outlived the agent's turn
744
- * can still swap one of these for a link and have git write through it mid-command. That window is an accepted
745
- * residual: git takes paths, not handles. Seen after the run, it is an incident (git-incident.ts).
746
- */
747
605
  function pinned(dirs) {
748
606
  const swapped = [];
749
607
  const seen = new Set();
750
608
  let budget = 400_000;
751
609
  const stores = objectStores(dirs.common);
752
610
  const siblings = siblingIndexes(dirs);
753
- /** `deep`: every entry all the way down, each file held to one hard link. `shallow`: the folder's own entries
754
- * checked for links only. `store`: an object store (objects/: its fan-out folders shallow, `info` and `pack` deep
755
- * without the hard-link test). A link, or a folder that can't be listed, is swapped. */
756
611
  const check = (path, mode) => {
757
612
  if (seen.has(path))
758
613
  return;
@@ -777,9 +632,6 @@ function pinned(dirs) {
777
632
  swapped.push({ path, leadsTo: real });
778
633
  return;
779
634
  }
780
- // Another checkout's own index, by exact place (siblingIndexes): held to being no link, but a second name is not
781
- // counted. A tool in that checkout may hard-link it for a moment (Claude Code's security-guidance plugin does, to
782
- // diff against a copy), and git never writes another checkout's index, nor any index in place.
783
635
  if (held.isFile() && mode === "deep" && held.nlink > 1 && !siblings.has(path)) {
784
636
  swapped.push({ path, leadsTo: null });
785
637
  return;
@@ -787,7 +639,6 @@ function pinned(dirs) {
787
639
  if (!held.isDirectory())
788
640
  return;
789
641
  let entries;
790
- // A folder that can't be listed hides what's in it: it counts as swapped (fail closed).
791
642
  try {
792
643
  entries = readdirSync(path);
793
644
  }
@@ -802,19 +653,16 @@ function pinned(dirs) {
802
653
  if (lstatSync(child).isSymbolicLink())
803
654
  check(child, "shallow");
804
655
  }
805
- catch { /* gone */ }
656
+ catch { }
806
657
  continue;
807
658
  }
808
659
  if (mode === "store") {
809
660
  check(child, name === "info" || name === "pack" ? "deep-unlinked" : "shallow");
810
661
  continue;
811
662
  }
812
- // The object store exemption by exact place, never by name (stores, enumerated before the walk).
813
663
  check(child, stores.has(child) ? "store" : mode);
814
664
  }
815
665
  };
816
- // The common folder's every name git may write, all the way down (refs, logs, reftable, packed-refs, worktrees with
817
- // each worktree's own folder, rr-cache, modules, the rest of COMMON_NAMES), and the worktree's own state.
818
666
  for (const name of COMMON_NAMES)
819
667
  if (name !== "objects")
820
668
  check(join(dirs.common, name), "deep");
@@ -830,14 +678,10 @@ function pinned(dirs) {
830
678
  catch {
831
679
  swapped.push({ path: dirs.gitdir, leadsTo: null });
832
680
  }
833
- // The object store: the folder and its fan-out folders for links (not each loose object: a big repository has very
834
- // many, and `clone --local` hard-links them legitimately; git writes a new object to a fresh temporary file linked
835
- // into place, never through an existing one), `info` and `pack` all the way down.
836
681
  for (const store of stores)
837
682
  check(store, "store");
838
683
  if (budget <= 0)
839
684
  swapped.push({ path: dirs.common, leadsTo: null });
840
- // A path that is no longer its own real path (a folder on the way swapped) counts too.
841
685
  for (const path of [dirs.common, dirs.gitdir]) {
842
686
  try {
843
687
  if (realpathSync(path) !== path)
@@ -849,12 +693,6 @@ function pinned(dirs) {
849
693
  }
850
694
  return { ok: swapped.length === 0, swapped };
851
695
  }
852
- /**
853
- * The object stores the walk exempts from its full check, enumerated before it, never decided by a name met on the
854
- * way: the common `objects`, and `<gitdir>/objects` for each submodule git directory under modules/ — a folder with
855
- * its own config, HEAD, refs/ and objects/, reached through no component named refs, logs, reftable, objects, info,
856
- * worktrees or hooks (so `modules/x/refs/objects` with a planted HEAD is no store).
857
- */
858
696
  function objectStores(common) {
859
697
  const stores = new Set([join(common, "objects")]);
860
698
  const NOT_A_PATH = new Set(["refs", "logs", "reftable", "objects", "info", "worktrees", "hooks"]);
@@ -890,16 +728,6 @@ function objectStores(common) {
890
728
  visit(join(common, "modules"), 0);
891
729
  return stores;
892
730
  }
893
- /**
894
- * The index files of the repository's other checkouts, by exact place, enumerated before the walk: `index` directly in
895
- * each worktree folder of the common `worktrees` that isn't this checkout's own git directory, and, for a linked
896
- * checkout, the main checkout's `index` in the common folder. The walk still refuses any of them that is a link; it
897
- * only doesn't count a second hard link to one (pinned). The view links only this checkout's own index, and git writes
898
- * an index only by renaming a new file over it, so a hard link at another checkout's can't take a write of the plane's
899
- * anywhere. Measured (Nov 2026): Claude Code's security-guidance plugin hard-links the index of the checkout a session
900
- * runs in to a temporary copy for up to seconds at a time, and a release gate that ran meanwhile in another checkout of
901
- * the repository was stopped as an incident naming that checkout's index.
902
- */
903
731
  function siblingIndexes(dirs) {
904
732
  const indexes = new Set();
905
733
  if (dirs.linked)
@@ -908,7 +736,7 @@ function siblingIndexes(dirs) {
908
736
  try {
909
737
  ids = readdirSync(join(dirs.common, "worktrees"));
910
738
  }
911
- catch { /* none (an unlistable folder is the walk's to refuse) */ }
739
+ catch { }
912
740
  for (const id of ids) {
913
741
  const folder = join(dirs.common, "worktrees", id);
914
742
  if (folder !== dirs.gitdir)
@@ -929,8 +757,6 @@ function anchorOf(path) {
929
757
  }
930
758
  class AnchorMoved extends Error {
931
759
  }
932
- /** Throws AnchorMoved unless every folder of `anchor` is still the one it was (Node has no openat, so each component
933
- * is looked at again right before each rename or unlink). */
934
760
  function holdAnchor(anchor) {
935
761
  for (const one of anchor) {
936
762
  let held;
@@ -944,9 +770,6 @@ function holdAnchor(anchor) {
944
770
  throw new AnchorMoved(one.path);
945
771
  }
946
772
  }
947
- /** Carry the WORKTREE_STATE files git rewrote or removed in the plane's GIT_DIR back to the worktree's own folder: a
948
- * new file of a random name, created exclusively (never through a link), then renamed into place; before each rename
949
- * or unlink, every folder down to the worktree's own is proven the same one it was when the view was made. */
950
773
  function carryBack(admin, gitdir, initial, anchor) {
951
774
  for (const name of WORKTREE_STATE) {
952
775
  const here = join(admin, name);
@@ -959,7 +782,6 @@ function carryBack(admin, gitdir, initial, anchor) {
959
782
  }
960
783
  const was = initial.get(name);
961
784
  if (held === null) {
962
- // Removed by git: removed in the worktree's own folder too (a merge's state once it concluded).
963
785
  if (initial.get(name) != null) {
964
786
  holdAnchor(anchor);
965
787
  rmSync(join(gitdir, name), { force: true });
@@ -990,19 +812,6 @@ function carryBack(admin, gitdir, initial, anchor) {
990
812
  }
991
813
  }
992
814
  }
993
- /**
994
- * A worktree `worktree add` made through a view, pointed at its repository instead of the view. Before git 2.48 the new
995
- * checkout's `.git` file names the common directory as given (the view, removed right after the run: every later
996
- * command in that checkout would find no repository); later versions name its real path, and this finds nothing to do.
997
- * Only a worktree folder this run made (not there when the view was made) whose checkout's `.git` is a plain file
998
- * reading exactly `gitdir: <view>/worktrees/<id>` (a name private to this run, in a folder every fence denies) is
999
- * rewritten: a new file created exclusively (never through a link) and renamed into place, then bound to the repository
1000
- * (boundDirs) as any checkout is. Before it writes, the repository's own record of the worktree must name this very
1001
- * checkout and repository, and every folder down to the checkout is anchored (anchorOf) and proven the same one before
1002
- * the open, the re-read and the rename, as carryBack does. A failure after the rename isn't undone (the old content
1003
- * names a view that no longer exists, so the checkout is unusable either way); it refuses. Null when every such
1004
- * checkout is bound, or why one isn't.
1005
- */
1006
815
  function relinkAdded(view, common, prior) {
1007
816
  let ids;
1008
817
  try {
@@ -1032,7 +841,6 @@ function relinkAdded(view, common, prior) {
1032
841
  } };
1033
842
  if (read()?.trim() !== stale)
1034
843
  continue;
1035
- // The repository's record of this worktree names this checkout and this repository, before anything is written.
1036
844
  const admin = join(common, "worktrees", id);
1037
845
  let recorded;
1038
846
  try {
@@ -1062,7 +870,6 @@ function relinkAdded(view, common, prior) {
1062
870
  finally {
1063
871
  closeSync(fd);
1064
872
  }
1065
- // Checked again at the moment of use: the same folders, and still the plain file git wrote.
1066
873
  holdAnchor(anchor);
1067
874
  if (read()?.trim() !== stale) {
1068
875
  rmSync(temporary, { force: true });
@@ -1084,8 +891,6 @@ function relinkAdded(view, common, prior) {
1084
891
  }
1085
892
  return null;
1086
893
  }
1087
- /** The checkout git would find from `cwd`: the nearest folder, `cwd` or above, with a `.git`; null when there is
1088
- * none (git's own "not a git repository"). A `.git` that can't even be looked at counts as found (the view refuses it). */
1089
894
  function checkoutRootOf(cwd) {
1090
895
  for (let dir = resolve(cwd);; dir = dirname(dir)) {
1091
896
  try {
@@ -1101,14 +906,7 @@ function checkoutRootOf(cwd) {
1101
906
  }
1102
907
  }
1103
908
  const NOT_A_REPOSITORY = { code: 128, stdout: "", stderr: "fatal: not a git repository (or any of the parent directories): .git\n", timedOut: false, notFound: false };
1104
- /** Settings fixed on every write through a view: `worktree add` records absolute paths (relative ones would need a
1105
- * config write, which a view keeps); no transport at all (a caller that fetches allows its one protocol by name, as the
1106
- * nightly check's local fetch does with protocol.file.allow); and no split index (its shared index files would be
1107
- * written in the plane's GIT_DIR). */
1108
909
  export const WRITE_VIEW_FLAGS = ["-c", "worktree.useRelativePaths=false", "-c", "protocol.allow=never", "-c", "core.splitIndex=false"];
1109
- /** Whether the checkout's .lfsconfig (read as git parses it, that file only) sets any git-lfs key that could name a
1110
- * program (anything but INERT_LFS). A file that
1111
- * isn't a plain one, or doesn't parse, counts as naming one. */
1112
910
  export function lfsExtensionIn(checkout, gitFile = "git", limit) {
1113
911
  const path = join(checkout, ".lfsconfig");
1114
912
  try {
@@ -1123,14 +921,8 @@ export function lfsExtensionIn(checkout, gitFile = "git", limit) {
1123
921
  const parsed = spawnSync(gitFile, ["config", "--file", path, "--no-includes", "--name-only", "--list", "-z"], { cwd: "/", encoding: "utf8", timeout: setupTimeout(limit), killSignal: "SIGKILL", env: { PATH: process.env["PATH"] ?? "", GIT_CONFIG_NOSYSTEM: "1", GIT_CONFIG_GLOBAL: "/dev/null", HOME: "/nonexistent" } });
1124
922
  return parsed.status !== 0 || parsed.stdout.split("\0").filter(Boolean).some(name => lfsCommand(name) || ["include", "includeif"].includes(keyParts(name).section));
1125
923
  }
1126
- /** The hardened runners' own reads before the caller's command (the checkout's config listing): their own bounds, never
1127
- * the caller's. A caller's small `maxBuffer` is for its own command's output (builder.ts reads one ls-tree line with
1128
- * 2 KiB): inherited, it failed the config listing once a project's .git/config grew past 2 KiB (one [branch] section per
1129
- * work branch), and every prepared release check then failed as "its config couldn't be read" (runs 3316–3324). */
1130
924
  export const CONFIG_READ_BYTES = 16 * 1024 * 1024;
1131
925
  export const CONFIG_READ_MS = 30_000;
1132
- /** What of a caller's options an internal read keeps: where it runs and with what environment and containment —
1133
- * never its time limit, output limit, stdin or output callbacks. */
1134
926
  function internalOptions(options, env) {
1135
927
  const { cwd, envAllowlist, omitEnv, fence, fenceGrants, confinement, processGroup, owner, signal } = options ?? {};
1136
928
  return { ...(cwd === undefined ? {} : { cwd }), ...(envAllowlist === undefined ? {} : { envAllowlist }), ...(omitEnv === undefined ? {} : { omitEnv }),
@@ -1138,29 +930,21 @@ function internalOptions(options, env) {
1138
930
  ...(processGroup === undefined ? {} : { processGroup }), ...(owner === undefined ? {} : { owner }), ...(signal === undefined ? {} : { signal }),
1139
931
  env, timeoutMs: CONFIG_READ_MS, maxBuffer: CONFIG_READ_BYTES };
1140
932
  }
1141
- /** Why the checkout's config listing failed, in words, for the refusal: git's own first line, or what stopped it. */
1142
933
  function listingFailure(result) {
1143
934
  if (result.timedOut)
1144
935
  return `its config couldn't be read (the read ran past ${CONFIG_READ_MS / 1000} s)`;
1145
936
  const said = `${result.stderr}`.split("\n").map(line => line.trim()).find(line => line !== "");
1146
937
  return `its config couldn't be read${said === undefined ? ` (git exited ${result.code})` : ` (${said.slice(0, 300)})`}`;
1147
938
  }
1148
- /** Every command runs against a view of the checkout's repository (gitView) whose config and info are copies the
1149
- * plane made, inspected there, so neither can change between the inspection and the run. `mode` "read" is for reading
1150
- * a checkout an agent may still be writing (the code page): every command also takes readFlags(), and the view holds
1151
- * no info/attributes. "build" is the plane's staging and committing of a build's work, which writes the repository
1152
- * through the view (gitView). */
1153
939
  export function checkoutGit(inner = run, mode = "build", binding = {}) {
1154
940
  return async (file, args, options) => {
1155
941
  if (file !== "git")
1156
942
  return inner(file, args, options);
1157
943
  const cwd = options?.cwd;
1158
- // In the console, a checkout whose folder hasn't answered a look lately is not read on its thread (folder-gate.ts).
1159
944
  if (cwd !== undefined && !folderAnswers(cwd))
1160
945
  return refused(FOLDER_DIDNT_ANSWER);
1161
946
  if (cwd === undefined || checkoutIncludes(cwd))
1162
947
  return refused("the checkout's git config includes another file, or couldn't be read as a plain file");
1163
- // git-lfs also reads .lfsconfig from the checkout: one that names an extension (a command it would run) is refused.
1164
948
  if (lfsExtensionIn(cwd))
1165
949
  return refused("the checkout's .lfsconfig sets a git-lfs key that can run a command");
1166
950
  const once = async () => {
@@ -1173,21 +957,16 @@ export function checkoutGit(inner = run, mode = "build", binding = {}) {
1173
957
  }
1174
958
  try {
1175
959
  const viewed = { ...options, env: { ...(options?.env ?? {}), ...view.env } };
1176
- // The checkout's own config may name no command. Read with this runner's own bounds (internalOptions).
1177
960
  const own = await inner("git", ["--no-optional-locks", "config", "--list", "--show-scope", "-z"], internalOptions(options, viewed.env));
1178
961
  if (own.code !== 0)
1179
962
  return refused(listingFailure(own));
1180
963
  const key = commandSetting(own.stdout, { lfsChecked: true });
1181
964
  if (key !== null)
1182
965
  return refused(`the checkout's git config sets ${key}, which can run a command`);
1183
- // A git without --no-lazy-fetch: a repository that could fetch lazily is refused, from the view's frozen config.
1184
966
  if (!lazyFetchSupported() && lazyFetchSetting(own.stdout) !== null)
1185
967
  return refused(PARTIAL_CLONE_REFUSAL);
1186
- // The operator's own config contributes values only (carriedSettings); git then reads no global or system config.
1187
- // A read carries no filter: it reads attributes from the empty tree anyway.
1188
968
  const carried = mode === "read" ? withoutFilters(carriedSettings(own.stdout)) : carriedSettings(own.stdout);
1189
969
  const env = { ...viewed.env, GIT_CONFIG_NOSYSTEM: "1", GIT_CONFIG_GLOBAL: "/dev/null" };
1190
- // Never into a submodule or nested repository, whose own config this never read: status and diff skip them.
1191
970
  const safeArgs = withoutUnsupportedFlags(args);
1192
971
  const command = safeArgs.findIndex(arg => arg === "status" || arg === "diff");
1193
972
  if (command >= 0 && !safeArgs.includes("--ignore-submodules=all"))
@@ -1205,7 +984,6 @@ export function checkoutGit(inner = run, mode = "build", binding = {}) {
1205
984
  };
1206
985
  if (mode !== "build")
1207
986
  return once();
1208
- // A write, one at a time on a checkout (git-views.ts withCheckoutLock: re-entrant along one call chain).
1209
987
  try {
1210
988
  return await withCheckoutLock(realpathSync(homedir()), realpathSync(cwd), once);
1211
989
  }
@@ -1215,30 +993,13 @@ export function checkoutGit(inner = run, mode = "build", binding = {}) {
1215
993
  };
1216
994
  }
1217
995
  const withoutFilters = (carried) => carried.filter((one, at, all) => !(one.startsWith("filter.") || (one === "-c" && all[at + 1]?.startsWith("filter."))));
1218
- /**
1219
- * Flags for reading a checkout an agent writes while a page waits (docs/plans/get-side-effects.md). Command-line
1220
- * settings win over anything the checkout's config says, even one changed after it was inspected: no fsmonitor, hooks,
1221
- * pager or credential helper; no network (lazy fetch off, every protocol refused); and attributes read from the empty
1222
- * tree, so no filter or textconv a .gitattributes names can run. A diff also takes --no-ext-diff --no-textconv.
1223
- */
1224
996
  export const PAGE_READ_FLAGS = [
1225
997
  "--no-lazy-fetch", "--attr-source=4b825dc642cb6eb9a060e54bf8d69288fbee4904",
1226
998
  "-c", "protocol.allow=never", "-c", "core.pager=cat", "-c", "core.alternateRefsCommand=", "-c", "core.attributesFile=/dev/null",
1227
999
  ];
1228
- /** The read flags, for every read of an agent-written checkout, whatever the HTTP method (security review of
1229
- * 01bf3114): the worktree's attributes come from the empty tree. Git still reads the repository's info/attributes and
1230
- * its config as it starts, so the flags alone don't stop a filter planted in both after the inspection: every read
1231
- * also runs against a view of the checkout's repository (gitView; checkoutGitSync, checkoutGit "read"), whose config and info are the plane's. The cost is cosmetic: a checkout's line-ending or encoding rules are not applied, so
1232
- * a file they would normalize can read as changed (fail closed: shipping then asks for a clean commit). */
1233
1000
  export function readFlags(gitFile = "git") {
1234
1001
  return lazyFetchSupported(gitFile) ? PAGE_READ_FLAGS : PAGE_READ_FLAGS.filter(flag => flag !== "--no-lazy-fetch");
1235
1002
  }
1236
- /**
1237
- * checkoutGit, synchronously, for reads a page shows from a checkout an agent writes (docs/plans/get-side-effects.md):
1238
- * the same refusals (an include, an .lfsconfig extension, a config key that can run a command), no system or global
1239
- * config, the operator's own values carried, PAGE_READ_FLAGS and a view of the checkout's repository (gitView: they hold even if its config
1240
- * or info/attributes change after they were read), submodules skipped, bounded. A refusal throws.
1241
- */
1242
1003
  export function checkoutGitSync(cwd, args, options = {}) {
1243
1004
  const ran = viewedGitSync(cwd, args, options);
1244
1005
  if (ran.status !== 0)
@@ -1247,14 +1008,11 @@ export function checkoutGitSync(cwd, args, options = {}) {
1247
1008
  }
1248
1009
  export function viewedGitSync(cwd, args, options = {}) {
1249
1010
  const gitFile = options.git ?? "git";
1250
- // `deadline` (absolute, wall-clock ms): every subprocess here, setup included, gets only what is left of it, and an
1251
- // expired deadline throws before the next one starts or after the last one ran.
1252
1011
  const deadline = options.deadline;
1253
1012
  const limit = deadline === undefined ? undefined : () => deadline - Date.now();
1254
1013
  const expire = () => { if (limit !== undefined && limit() <= 0)
1255
1014
  throw new Error("the read's deadline passed"); };
1256
1015
  expire();
1257
- // In the console, a checkout whose folder hasn't answered a look lately is not read on its thread (folder-gate.ts).
1258
1016
  if (!folderAnswers(cwd))
1259
1017
  throw new Error(FOLDER_DIDNT_ANSWER);
1260
1018
  if (checkoutIncludes(cwd, gitFile, limit))
@@ -1263,13 +1021,11 @@ export function viewedGitSync(cwd, args, options = {}) {
1263
1021
  if (lfsExtensionIn(cwd, gitFile, limit))
1264
1022
  throw new Error("the checkout's .lfsconfig sets a git-lfs key that can run a command");
1265
1023
  expire();
1266
- // Its config and info/attributes as read once, in a folder of the plane's own: neither can change before git runs.
1267
1024
  const view = gitView(cwd, "read", options.binding, gitFile, limit);
1268
1025
  try {
1269
1026
  const env = { PATH: process.env["PATH"] ?? "", HOME: process.env["HOME"] ?? "", LANG: "C", GIT_CONFIG_NOSYSTEM: "1", GIT_CONFIG_GLOBAL: "/dev/null", GIT_TERMINAL_PROMPT: "0", ...view.env };
1270
1027
  const timeoutNow = () => { expire(); return limit === undefined ? options.timeoutMs ?? 60_000 : Math.max(1, Math.min(options.timeoutMs ?? 60_000, limit())); };
1271
1028
  const fixed = { cwd, env, encoding: "utf8", killSignal: "SIGKILL", maxBuffer: options.maxBuffer ?? 1_048_576, stdio: ["ignore", "pipe", "pipe"] };
1272
- // Its own bounds, never the caller's output limit (CONFIG_READ_BYTES); a caller's deadline still holds.
1273
1029
  const own = spawnSync(gitFile, ["--no-optional-locks", "config", "--list", "--show-scope", "-z"], { ...fixed, maxBuffer: CONFIG_READ_BYTES,
1274
1030
  timeout: limit === undefined ? CONFIG_READ_MS : Math.max(1, Math.min(CONFIG_READ_MS, limit())) });
1275
1031
  if (own.status !== 0)
@@ -1277,21 +1033,17 @@ export function viewedGitSync(cwd, args, options = {}) {
1277
1033
  const key = commandSetting(own.stdout, { lfsChecked: true });
1278
1034
  if (key !== null)
1279
1035
  throw new Error(`the checkout's git config sets ${key}, which can run a command`);
1280
- // A git without --no-lazy-fetch: a repository that could fetch lazily is refused, from the view's frozen config.
1281
1036
  if (!lazyFetchSupported(gitFile) && lazyFetchSetting(own.stdout) !== null)
1282
1037
  throw new Error(PARTIAL_CLONE_REFUSAL);
1283
1038
  const safeArgs = withoutUnsupportedFlags(args, gitFile);
1284
1039
  const command = safeArgs.findIndex(arg => arg === "status" || arg === "diff");
1285
1040
  if (command >= 0 && !safeArgs.includes("--ignore-submodules=all"))
1286
1041
  safeArgs.splice(command + 1, 0, "--ignore-submodules=all");
1287
- // An external diff program is named by config, which may change after it was read: never used here.
1288
1042
  if (command >= 0 && safeArgs[command] === "diff")
1289
1043
  safeArgs.splice(command + 1, 0, "--no-ext-diff", "--no-textconv");
1290
- // The operator's own values, but no filter: PAGE_READ_FLAGS reads attributes from the empty tree anyway.
1291
1044
  const carried = withoutFilters(carriedSettings(own.stdout));
1292
1045
  const argv = [...TEARDOWN_FLAGS, ...readFlags(gitFile), "-c", "diff.ignoreSubmodules=all", ...carried, ...safeArgs];
1293
1046
  if (options.buffer === true) {
1294
- // stdin is the caller's own bytes when given (cat-file --batch), else closed.
1295
1047
  const ran = spawnSync(gitFile, argv, { ...fixed, timeout: timeoutNow(), encoding: "buffer", ...(options.input === undefined ? {} : { input: options.input, stdio: ["pipe", "pipe", "pipe"] }) });
1296
1048
  const why = view.settle();
1297
1049
  if (why !== null)
@@ -1310,12 +1062,6 @@ export function viewedGitSync(cwd, args, options = {}) {
1310
1062
  view.dispose();
1311
1063
  }
1312
1064
  }
1313
- /**
1314
- * checkoutGit ("build": the repository written through its view) for callers that name the repository with a leading
1315
- * `git -C <dir>` instead of a cwd: worktree add and remove in a project's repository, a merge in a checkout of it.
1316
- * The project's repository is shared with every build, which can write its config, info and hooks; nothing here runs
1317
- * what they name. Anything but git goes to `inner` as given.
1318
- */
1319
1065
  export function hardenedGit(inner = run, mode = "build", binding = {}) {
1320
1066
  const hardened = checkoutGit(inner, mode, binding);
1321
1067
  return (file, args, options) => {
@@ -1330,15 +1076,8 @@ export function hardenedGit(inner = run, mode = "build", binding = {}) {
1330
1076
  return hardened("git", rest, { ...options, ...(cwd === undefined ? {} : { cwd }) });
1331
1077
  };
1332
1078
  }
1333
- /**
1334
- * Git older than 2.45 has no `--no-lazy-fetch` (and no GIT_NO_LAZY_FETCH): there, every hardened read leaves the flag
1335
- * out and instead refuses a repository whose config makes lazy fetching possible (lazyFetchSetting), while
1336
- * `protocol.allow=never` stays on every read and write, so a lazy fetch that slipped past would still find no
1337
- * transport. Asked once per process, as the plane's other plain git probes run: no system or global config.
1338
- */
1339
1079
  const lazyFetchByGit = new Map();
1340
1080
  let lazyFetchOverride;
1341
- /** The git executable `file` names, as the real path it runs (a bare name looked up on PATH), or `file` itself. */
1342
1081
  function gitExecutablePath(file) {
1343
1082
  const candidates = file.includes("/") ? [file] : (process.env["PATH"] ?? "").split(delimiter).filter(dir => isAbsolute(dir)).map(dir => join(dir, file));
1344
1083
  for (const candidate of candidates) {
@@ -1346,12 +1085,10 @@ function gitExecutablePath(file) {
1346
1085
  accessSync(candidate, fsConstants.X_OK);
1347
1086
  return realpathSync(candidate);
1348
1087
  }
1349
- catch { /* next */ }
1088
+ catch { }
1350
1089
  }
1351
1090
  return file;
1352
1091
  }
1353
- /** Asked once per git executable (eval-harness review 2, follow-up): a fixed git given to viewedGitSync is probed
1354
- * itself, never answered for by the one PATH names. */
1355
1092
  export function lazyFetchSupported(gitFile = "git") {
1356
1093
  if (lazyFetchOverride !== undefined)
1357
1094
  return lazyFetchOverride;
@@ -1365,23 +1102,12 @@ export function lazyFetchSupported(gitFile = "git") {
1365
1102
  }
1366
1103
  return known;
1367
1104
  }
1368
- /** For tests: forget the probes' answers, or set one for every executable (null forgets). */
1369
1105
  export function setLazyFetchSupportedForTest(value) { lazyFetchOverride = value ?? undefined; lazyFetchByGit.clear(); }
1370
- /** The words for a partial clone refused on a git without `--no-lazy-fetch`. */
1371
1106
  export const PARTIAL_CLONE_REFUSAL = "this project is a partial clone; protected reads need git 2.45 or newer";
1372
- /** `--no-lazy-fetch` where the installed git has it, else nothing (and lazyFetchSetting refuses partial clones). */
1373
1107
  export function noLazyFetch() { return lazyFetchSupported() ? ["--no-lazy-fetch"] : []; }
1374
- /** A caller's own arguments with `--no-lazy-fetch` taken out when the installed git doesn't know it. */
1375
1108
  function withoutUnsupportedFlags(args, gitFile = "git") {
1376
1109
  return lazyFetchSupported(gitFile) ? [...args] : args.filter(arg => arg !== "--no-lazy-fetch");
1377
1110
  }
1378
- /**
1379
- * The repository setting (local or worktree scope of a `git config --list --show-scope -z` listing) that makes lazy
1380
- * fetching possible, or null: `extensions.partialClone` set at all, any `remote.<name>.promisor` not plainly false, or
1381
- * any `remote.<name>.partialCloneFilter` set (git makes that remote a promisor). Fails closed: a listing that can't be
1382
- * read names a setting. `remote.<name>.vcs` (a foreign-VCS helper) is named too, though the classifier already refuses
1383
- * it (commandSetting: not in the remote allowlist), as it does every `protocol.*` key and every include.
1384
- */
1385
1111
  export function lazyFetchSetting(listing) {
1386
1112
  try {
1387
1113
  const fields = listing.split("\0");
@@ -1407,23 +1133,9 @@ export function lazyFetchSetting(listing) {
1407
1133
  return "a setting that couldn't be read";
1408
1134
  }
1409
1135
  }
1410
- /**
1411
- * For the reads that run git directly on a repository rather than through a view: with `--no-lazy-fetch` they run as
1412
- * they always have (the flag stops any fetch). Without it, they must not check a repository's config and then run git
1413
- * on it (the config could change in between, or an include could set what the check never saw): `inner`, wrapped so
1414
- * every git command runs through a frozen read view (checkoutGit "read"), whose own config listing (includes refused,
1415
- * command and protocol settings refused, a partial clone refused) is the config git then runs with.
1416
- */
1417
1136
  export function lazyFetchSafeGit(inner = run) {
1418
- // On every git version (eval-harness review 1, finding 7): with --no-lazy-fetch the direct read still took the
1419
- // repository's config and its includes as git found them, and an include naming a FIFO could hang the plane.
1420
1137
  return checkoutGit(inner, "read");
1421
1138
  }
1422
- /**
1423
- * The checkout a folder sits in, for choosing a folder (easy-start): the nearest parent holding a `.git`, then read
1424
- * through checkoutGitSync, so a config that includes another file (a FIFO), or sets a command, is refused and the read
1425
- * is bounded. Null when there is no checkout or it can't be read that way.
1426
- */
1427
1139
  export function checkoutTop(dir, timeoutMs = 10_000) {
1428
1140
  let at;
1429
1141
  try {