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.
- package/CHANGELOG.md +65 -0
- package/README.md +27 -27
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +117 -103
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +3 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +2 -16
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +168 -0
- package/dist/local-owner.js +15 -80
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +2 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +280 -2304
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +3 -18
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +11 -30
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +6 -74
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +26 -103
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +9 -28
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +88 -566
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +29 -564
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +9 -86
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +17 -497
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +8 -133
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +12 -227
- package/dist/server/tasks.js +37 -531
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +8 -73
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +66 -19
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +91 -40
- package/dist/tui.js +54 -54
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +5 -4
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -318
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1972
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -539
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -41
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner.d.ts +0 -124
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -52
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -156
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -35
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1067
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -80
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -59
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -754
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -774
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -342
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -83
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -30
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -144
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/route-store.js
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The only writer of the results-routing rows (docs/plans/results-routing.md, Protection item 1): run_cohort,
|
|
3
|
-
* route_record, models_generation, route_rule, route_exposure*, route_trial_reservation, run.exec_class and
|
|
4
|
-
* task_ref.revision_origin. Release-auto's routing scan (route-hooks.ts) needs a person for any SQL that writes them
|
|
5
|
-
* from anywhere else (the migration and the Models row writers in store.ts aside).
|
|
6
|
-
*
|
|
7
|
-
* Each writer enforces its own invariants, so a new caller can't skip a guard that lives in its caller: a class or
|
|
8
|
-
* an origin outside its list refuses, a first write is never overwritten, a cohort is written only for a code-writing
|
|
9
|
-
* run that exists, and a record is saved only in a state/reason pair the contract names.
|
|
10
|
-
*
|
|
11
|
-
* A policy path (release-auto.ts EVAL_POLICY).
|
|
12
|
-
*/
|
|
13
1
|
import { isProtectedWork } from "./approval-policy.js";
|
|
14
2
|
import { trialSealStandsSql } from "./approval-authority.js";
|
|
15
3
|
import { currentLocalOwner, localOwnerInFlight, localOwnerStandsNow } from "./local-owner.js";
|
|
@@ -17,25 +5,18 @@ import { passwordlessOn } from "./passwordless.js";
|
|
|
17
5
|
import { machineActing } from "./scope.js";
|
|
18
6
|
import { NOT_COUNTED_REASONS, RECORD_STATES, REJECT_REASONS, REVISION_ORIGINS } from "./contracts/route-results.js";
|
|
19
7
|
import { BUILT_IN, nightlyTaskRef, releaseTaskRef } from "./store.js";
|
|
20
|
-
// ---- execution class --------------------------------------------------------------------------------------------
|
|
21
|
-
/** A failed run's raw reason, by whose account it failed. Anything not listed counts as the model's (conservative: a
|
|
22
|
-
* missing or unknown class counts against the cheaper model, never for it). */
|
|
23
8
|
export const EXEC_CLASS_OF_REASON = Object.freeze({
|
|
24
9
|
timeout: "model", agent: "model", "agent-reported": "model", "no-op": "model", "no-handoff": "model",
|
|
25
10
|
"moved-head": "model", "moved-branch": "model", "commit-failure": "model",
|
|
26
11
|
git: "infrastructure", setup: "infrastructure", "provider-init": "infrastructure", "provider-unattested": "infrastructure",
|
|
27
12
|
"provider-protocol": "infrastructure", stopped: "infrastructure",
|
|
28
13
|
});
|
|
29
|
-
/** The gateway's terminal classes that say the provider, not the model, ended the attempt. */
|
|
30
14
|
export const INFRASTRUCTURE_TERMINALS = new Set(["auth-expired", "usage-exhausted", "credits-depleted", "transient-throttle"]);
|
|
31
|
-
/** The class a failed run's raw reason (before the tick's normalization) and its terminal class give. */
|
|
32
15
|
export function execClassOf(reason, terminalClass) {
|
|
33
16
|
if (terminalClass !== null && INFRASTRUCTURE_TERMINALS.has(terminalClass))
|
|
34
17
|
return "infrastructure";
|
|
35
18
|
return Object.prototype.hasOwnProperty.call(EXEC_CLASS_OF_REASON, reason) ? EXEC_CLASS_OF_REASON[reason] : "model";
|
|
36
19
|
}
|
|
37
|
-
/** The sealed facts a code-writing run's eligibility is decided from, conservatively: anything unreadable or not
|
|
38
|
-
* sealed is not eligible. Pure reads of the store, in the admission transaction. */
|
|
39
20
|
export function cohortOf(store, input) {
|
|
40
21
|
const base = {
|
|
41
22
|
run: input.run, taskRef: input.taskRef, rootRef: input.taskRef, repo: null, role: input.role, size: null, risky: null, qualityMode: input.qualityMode,
|
|
@@ -48,8 +29,6 @@ export function cohortOf(store, input) {
|
|
|
48
29
|
return ineligible(base, "not-built-in");
|
|
49
30
|
const taskId = String(ref["external_id"]);
|
|
50
31
|
const repo = ref["repo"] === null ? null : String(ref["repo"]);
|
|
51
|
-
// The family's root, so the record pass finds the family without walking it: a lineage that can't be proved is
|
|
52
|
-
// its own root (and its record says so).
|
|
53
32
|
const family = store.taskFamilyOf(taskId, null, true);
|
|
54
33
|
const rootRef = family !== null && family.problem === null ? family.root.refId : input.taskRef;
|
|
55
34
|
const sealed = store.sealedRouteOf(taskId);
|
|
@@ -69,7 +48,6 @@ export function cohortOf(store, input) {
|
|
|
69
48
|
evidenceDemands: route.evidence.some(kind => kind === "screenshot" || kind === "manual-review"),
|
|
70
49
|
publication: route.publication, release, protected: isProtected, selection,
|
|
71
50
|
};
|
|
72
|
-
// Every reason is a sealed fact or a project rule read now; the first that applies is kept.
|
|
73
51
|
if (row.release)
|
|
74
52
|
return ineligible(row, "release");
|
|
75
53
|
if (row.protected)
|
|
@@ -88,8 +66,6 @@ export function cohortOf(store, input) {
|
|
|
88
66
|
return ineligible(row, "large");
|
|
89
67
|
return { ...row, cohortSize: row.size, ineligible: null };
|
|
90
68
|
}
|
|
91
|
-
/** Keep a failed run's execution class from its raw reason, before the tick normalizes it (dispose.ts). First write
|
|
92
|
-
* wins: a later ending of the same run never rewrites the class it was kept with. */
|
|
93
69
|
export function recordExecClass(store, runId, reason) {
|
|
94
70
|
if (!Number.isSafeInteger(runId) || runId < 1 || typeof reason !== "string")
|
|
95
71
|
throw new Error("an execution class names a run and its raw reason");
|
|
@@ -97,19 +73,12 @@ export function recordExecClass(store, runId, reason) {
|
|
|
97
73
|
const kept = execClassOf(reason, terminal == null ? null : String(terminal));
|
|
98
74
|
store.handle.prepare("UPDATE run SET exec_class = ? WHERE id = ? AND exec_class IS NULL").run(kept, runId);
|
|
99
75
|
}
|
|
100
|
-
/** Who a revision came from, written once with the revision's seal; never on a task that revises nothing. */
|
|
101
76
|
export function recordRevisionOrigin(store, taskId, origin) {
|
|
102
77
|
if (!REVISION_ORIGINS.includes(origin))
|
|
103
78
|
throw new Error(`unknown revision origin: ${String(origin)}`);
|
|
104
79
|
store.handle.prepare("UPDATE task_ref SET revision_origin = ? WHERE backend = 'built-in' AND external_id = ? AND revision_of IS NOT NULL AND revision_origin IS NULL")
|
|
105
80
|
.run(origin, taskId);
|
|
106
81
|
}
|
|
107
|
-
/**
|
|
108
|
-
* A code-writing run's cohort snapshot, in its admission transaction (store.ts admitRun), written once and never
|
|
109
|
-
* updated. A snapshot that can't be computed is never a refused admission: the run is recorded as not eligible, and a
|
|
110
|
-
* write that fails leaves no row (its record then reads "started before results were recorded"), so a cheaper model
|
|
111
|
-
* never gains from either.
|
|
112
|
-
*/
|
|
113
82
|
export function writeRunCohort(store, input) {
|
|
114
83
|
if (input.role !== "builder" && input.role !== "repair")
|
|
115
84
|
return;
|
|
@@ -127,17 +96,13 @@ export function writeRunCohort(store, input) {
|
|
|
127
96
|
ON CONFLICT (run) DO NOTHING`)
|
|
128
97
|
.run(row.run, row.taskRef, row.rootRef, row.repo, row.role, row.size, row.risky === null ? null : row.risky ? 1 : 0, row.qualityMode, row.evidenceDemands ? 1 : 0, row.publication, row.release ? 1 : 0, row.protected ? 1 : 0, JSON.stringify(row.selection), row.routeDigest, row.provider, row.model, row.cohortSize, row.ineligible, row.startedAt, row.run);
|
|
129
98
|
}
|
|
130
|
-
catch {
|
|
99
|
+
catch { }
|
|
131
100
|
}
|
|
132
101
|
function fallbackCohort(input) {
|
|
133
102
|
return { run: input.run, taskRef: input.taskRef, rootRef: input.taskRef, repo: null, role: input.role, size: null, risky: null, qualityMode: input.qualityMode,
|
|
134
103
|
evidenceDemands: false, publication: "none", release: false, protected: false, selection: { kind: "configured" },
|
|
135
104
|
routeDigest: input.routeDigest, provider: input.provider, model: input.model, cohortSize: null, startedAt: input.startedAt };
|
|
136
105
|
}
|
|
137
|
-
/** Save a family's record as evaluated now. A decision time is kept while the state stays the same. Once a verdict
|
|
138
|
-
* is final (settled) it never moves — state, reason, result run, acceptance and decision time stay as decided — but
|
|
139
|
-
* the family's spending and counts keep being updated from later revision and repair runs until the record closes
|
|
140
|
-
* (route-results.ts ACCUMULATE_FOR_MS); a closed record is never written again. */
|
|
141
106
|
export function saveResultRecord(store, value, now) {
|
|
142
107
|
if (!RECORD_STATES.includes(value.state))
|
|
143
108
|
throw new Error(`unknown record state: ${value.state}`);
|
|
@@ -170,16 +135,9 @@ export function saveResultRecord(store, value, now) {
|
|
|
170
135
|
WHERE route_record.closed = 0`)
|
|
171
136
|
.run(value.taskRef, value.repo, value.cohortSize, value.provider, value.model, value.state, value.reason, value.resultRun, value.firstStartedAt, value.acceptedAt, value.decidedAt, value.modelFailures, value.infraFailures, Math.max(0, Math.round(value.apiMicrousd)), value.subscriptionRuns, value.subscriptionTokens, value.unknownRuns, value.remediationRuns, value.personRevisions, value.firstCheckPassed === null ? null : value.firstCheckPassed ? 1 : 0, value.agentTurns, value.turnsUnknownRuns, JSON.stringify(value.selections), value.settled ? 1 : 0, value.settled && value.accumulationEnded ? 1 : 0, now.toISOString());
|
|
172
137
|
}
|
|
173
|
-
/** The generation of one (scope, phase) Models row set: 0 before anything changed it. */
|
|
174
138
|
export function modelsGenerationOf(store, scope, phase) {
|
|
175
139
|
return Number(store.handle.prepare("SELECT generation FROM models_generation WHERE scope = ? AND phase = ?").get(scope, phase)?.["generation"] ?? 0);
|
|
176
140
|
}
|
|
177
|
-
/**
|
|
178
|
-
* Move a (scope, phase) generation: called by every Models row writer (store.ts), inside the writer's own
|
|
179
|
-
* transaction, whenever a row actually changed. Rules that depend on a generation that moved are paused in the same
|
|
180
|
-
* transaction (pauseDependentRules), so a configuration change can never leave a rule running on terms it no longer
|
|
181
|
-
* has.
|
|
182
|
-
*/
|
|
183
141
|
export function bumpModelsGeneration(store, scope, phase, now) {
|
|
184
142
|
if (typeof scope !== "string" || scope === "" || typeof phase !== "string" || phase === "")
|
|
185
143
|
throw new Error("a generation names its scope and phase");
|
|
@@ -188,9 +146,6 @@ export function bumpModelsGeneration(store, scope, phase, now) {
|
|
|
188
146
|
pauseDependentRules(store, now);
|
|
189
147
|
return modelsGenerationOf(store, scope, phase);
|
|
190
148
|
}
|
|
191
|
-
/** Pause every running rule or trial whose recorded dependency generations no longer match: a compare-and-swap on
|
|
192
|
-
* the rule's own generation, so a rule another writer already moved is left to that writer. An unreadable
|
|
193
|
-
* dependency list pauses too. */
|
|
194
149
|
export function pauseDependentRules(store, now) {
|
|
195
150
|
let paused = 0;
|
|
196
151
|
for (const rule of store.handle.prepare("SELECT id, generation, depends_json FROM route_rule WHERE state IN ('active','trialling')").all()) {
|
|
@@ -212,8 +167,6 @@ export function pauseDependentRules(store, now) {
|
|
|
212
167
|
}
|
|
213
168
|
return paused;
|
|
214
169
|
}
|
|
215
|
-
/** A deleted project's results-routing rows (project-delete.ts, through store.ts forgetProjectModels): its rules,
|
|
216
|
-
* their exposures and trial places, its records and its runs' cohort snapshots. How many rows went. */
|
|
217
170
|
export function forgetProjectRoutes(store, repo) {
|
|
218
171
|
const db = store.handle;
|
|
219
172
|
const rules = "SELECT id FROM route_rule WHERE repo = ?";
|
|
@@ -227,8 +180,6 @@ export function forgetProjectRoutes(store, repo) {
|
|
|
227
180
|
rows += Number(db.prepare(`DELETE FROM run_cohort WHERE repo = ? OR task_ref IN (${refs}) OR root_ref IN (${refs})`).run(repo, repo, repo).changes);
|
|
228
181
|
return rows;
|
|
229
182
|
}
|
|
230
|
-
/** The acts and the door each takes (docs/plans/results-routing.md, Authority). Raising acts take a person with a
|
|
231
|
-
* step-up; lowering acts take a person, or a local owner whose in-flight act is exactly the one named here. */
|
|
232
183
|
export const RULE_ACTS = Object.freeze({
|
|
233
184
|
accept: { raising: true, localAct: null },
|
|
234
185
|
keep: { raising: true, localAct: null },
|
|
@@ -236,21 +187,11 @@ export const RULE_ACTS = Object.freeze({
|
|
|
236
187
|
"turn-off": { raising: false, localAct: "routing-turn-off" },
|
|
237
188
|
dismiss: { raising: false, localAct: "dismiss-suggestion" },
|
|
238
189
|
"suggest-off": { raising: false, localAct: "dismiss-suggestion" },
|
|
239
|
-
// Slice 3: starting a trial raises (a person's step-up); stopping one only lowers.
|
|
240
190
|
"trial-start": { raising: true, localAct: null },
|
|
241
191
|
"trial-stop": { raising: false, localAct: "trial-stop" },
|
|
242
192
|
});
|
|
243
193
|
const provedDoors = new WeakSet();
|
|
244
|
-
/** Proofs a raising act accepts: a password or identity provider now, or (only while Passwordless is on) a session
|
|
245
|
-
* or remembered CLI login. A lowering act also accepts a signed-in session: it only takes authority away. */
|
|
246
194
|
const RAISING_PROOFS = new Set(["password-now", "sso-now", "fresh-password", "fresh-sso", "session", "cli-login"]);
|
|
247
|
-
/**
|
|
248
|
-
* The rule doors' one proof, run inside the write's transaction: a lead token or a remote API token never acts
|
|
249
|
-
* (`lead-refused`); a person is re-proved — the same account, still active, still an instance operator who can open
|
|
250
|
-
* the project, at the credential generation the proof was made under, by a proof that still stands (model-choices.ts
|
|
251
|
-
* applyModelChoices' re-proof); a local owner only for a lowering act, only while it still stands, and only when its
|
|
252
|
-
* in-flight act is exactly that act's.
|
|
253
|
-
*/
|
|
254
195
|
export function proveRuleDoor(store, door, act, repo) {
|
|
255
196
|
if (machineActing() || process.env["TOOLROLL_LEAD_TOKEN"] !== undefined)
|
|
256
197
|
return { ok: false, reason: "lead-refused" };
|
|
@@ -283,8 +224,6 @@ function spend(door, act) {
|
|
|
283
224
|
throw new Error("a rule write needs a door proved for exactly this act");
|
|
284
225
|
provedDoors.delete(door);
|
|
285
226
|
}
|
|
286
|
-
/** Insert an accepted earned rule, live. The winner index makes a second live rule for the same project and size
|
|
287
|
-
* refuse (null); nothing else is written. */
|
|
288
227
|
export function insertEarnedRule(store, door, rule, now) {
|
|
289
228
|
spend(door, "accept");
|
|
290
229
|
if (rule.provider !== "claude" || (rule.cohortSize !== "small" && rule.cohortSize !== "medium"))
|
|
@@ -302,8 +241,6 @@ export function insertEarnedRule(store, door, rule, now) {
|
|
|
302
241
|
throw error;
|
|
303
242
|
}
|
|
304
243
|
}
|
|
305
|
-
/** A person's or local owner's end of a live rule — turned off, or a paused one dropped — by compare-and-swap on its
|
|
306
|
-
* generation. False when the rule moved since (or isn't live). */
|
|
307
244
|
export function endRuleByDoor(store, door, ruleId, generation, now) {
|
|
308
245
|
spend(door, "turn-off");
|
|
309
246
|
const row = store.handle.prepare("SELECT state FROM route_rule WHERE id = ?").get(ruleId);
|
|
@@ -311,15 +248,11 @@ export function endRuleByDoor(store, door, ruleId, generation, now) {
|
|
|
311
248
|
return Number(store.handle.prepare(`UPDATE route_rule SET state = ?, generation = generation + 1, ended_at = ?, ended_by = ?, end_reason = ?
|
|
312
249
|
WHERE id = ? AND generation = ? AND state IN ('active','trialling','paused')`).run(state, now.toISOString(), door.actor, state === "dropped" ? "dropped" : "turned-off", ruleId, generation).changes) === 1;
|
|
313
250
|
}
|
|
314
|
-
/** Keep a paused rule: live again, on the configuration generations it depends on now. Its sealed grant (terms,
|
|
315
|
-
* cutoff, expiry) never changes. */
|
|
316
251
|
export function keepPausedRule(store, door, ruleId, generation, depends) {
|
|
317
252
|
spend(door, "keep");
|
|
318
253
|
return Number(store.handle.prepare(`UPDATE route_rule SET state = 'active', generation = generation + 1, depends_json = ?, ended_at = NULL, ended_by = NULL, end_reason = NULL
|
|
319
254
|
WHERE id = ? AND generation = ? AND state = 'paused'`).run(JSON.stringify(depends), ruleId, generation).changes) === 1;
|
|
320
255
|
}
|
|
321
|
-
/** "Not now" on one suggestion: kept as an ended offer (state dropped, reason not-now) so the same suggestion stays
|
|
322
|
-
* quiet for its 30 days; it never blocks a rule. */
|
|
323
256
|
export function recordNotNow(store, door, offer, now) {
|
|
324
257
|
spend(door, "dismiss");
|
|
325
258
|
store.handle.prepare(`INSERT INTO route_rule (repo, cohort_size, kind, provider, model, configured_provider, configured_model, state, generation,
|
|
@@ -327,23 +260,15 @@ export function recordNotNow(store, door, offer, now) {
|
|
|
327
260
|
VALUES (?, ?, 'rule', ?, ?, ?, ?, 'dropped', 1, '{"notNow":true}', ?, '{}', NULL, ?, ?, ?, ?, 'not-now')`)
|
|
328
261
|
.run(offer.repo, offer.cohortSize, offer.provider, offer.model, offer.configuredProvider, offer.configuredModel, JSON.stringify(offer.prices), door.actor, now.toISOString(), now.toISOString(), door.actor);
|
|
329
262
|
}
|
|
330
|
-
/** A project's "Suggest cheaper models" switch. False when the project isn't saved here. */
|
|
331
263
|
export function writeSuggestModels(store, door, repo, on) {
|
|
332
264
|
spend(door, on ? "suggest-on" : "suggest-off");
|
|
333
265
|
return Number(store.handle.prepare("UPDATE project SET suggest_models = ? WHERE path = ?").run(on ? 1 : 0, repo).changes) === 1;
|
|
334
266
|
}
|
|
335
|
-
/** The plane's own end of a rule (no person): switched off by its sealed trigger, paused (a configuration or grant
|
|
336
|
-
* change), or expired. A compare-and-swap on the rule's generation and a live state: false when it moved since. */
|
|
337
267
|
export function endRuleByPlane(store, ruleId, generation, to, reason, now) {
|
|
338
268
|
const from = to === "expired" ? "('active','trialling','paused')" : "('active','trialling')";
|
|
339
269
|
return Number(store.handle.prepare(`UPDATE route_rule SET state = ?, generation = generation + 1, ended_at = ?, ended_by = NULL, end_reason = ?
|
|
340
270
|
WHERE id = ? AND generation = ? AND state IN ${from}`).run(to, now.toISOString(), reason.slice(0, 200), ruleId, generation).changes) === 1;
|
|
341
271
|
}
|
|
342
|
-
// ---- exposure: one row per task and rule, events append-only -----------------------------------------------------
|
|
343
|
-
/** The exposure rows a filing writes (store.ts saveScope): a build leg sealed under a rule opens the task's exposure
|
|
344
|
-
* to it (`proposed`) or, filed again, adds `refiled`; a filing that no longer selects a rule the task was exposed to
|
|
345
|
-
* adds `refiled` to that open exposure, which its approval then closes as approved with another model. Re-filing
|
|
346
|
-
* never adds a row. */
|
|
347
272
|
export function noteExposureFiled(store, taskRef, selection, now) {
|
|
348
273
|
const at = now.toISOString();
|
|
349
274
|
const open = store.handle.prepare("SELECT id, rule FROM route_exposure WHERE task_ref = ? AND closed_at IS NULL").all(taskRef);
|
|
@@ -352,13 +277,10 @@ export function noteExposureFiled(store, taskRef, selection, now) {
|
|
|
352
277
|
appendExposureEvent(store, Number(one["id"]), "refiled", null, at);
|
|
353
278
|
if (rule === null || open.some(one => Number(one["rule"]) === rule))
|
|
354
279
|
return;
|
|
355
|
-
// Exposed once per task and rule: a closed exposure to the same rule is never reopened.
|
|
356
280
|
const made = store.handle.prepare("INSERT INTO route_exposure (task_ref, rule, created_at) VALUES (?, ?, ?) ON CONFLICT (task_ref, rule) DO NOTHING").run(taskRef, rule, at);
|
|
357
281
|
if (Number(made.changes) === 1)
|
|
358
282
|
appendExposureEvent(store, Number(made.lastInsertRowid), "proposed", null, at);
|
|
359
283
|
}
|
|
360
|
-
/** An approval closes the task's open exposures: as proposed when it sealed that very rule, otherwise approved with
|
|
361
|
-
* the model it sealed. */
|
|
362
284
|
export function noteExposureSealed(store, taskRef, sealed, now) {
|
|
363
285
|
const at = now.toISOString();
|
|
364
286
|
for (const one of store.handle.prepare("SELECT id, rule FROM route_exposure WHERE task_ref = ? AND closed_at IS NULL").all(taskRef)) {
|
|
@@ -366,15 +288,12 @@ export function noteExposureSealed(store, taskRef, sealed, now) {
|
|
|
366
288
|
appendExposureEvent(store, Number(one["id"]), same ? "approved-as-proposed" : "approved-with-other", same ? null : sealed.model, at);
|
|
367
289
|
}
|
|
368
290
|
}
|
|
369
|
-
/** A cancel closes the task's open exposures. */
|
|
370
291
|
export function noteExposureCancelled(store, taskRef, now) {
|
|
371
292
|
for (const one of store.handle.prepare("SELECT id FROM route_exposure WHERE task_ref = ? AND closed_at IS NULL").all(taskRef)) {
|
|
372
293
|
appendExposureEvent(store, Number(one["id"]), "cancelled", null, now.toISOString());
|
|
373
294
|
}
|
|
374
295
|
}
|
|
375
296
|
const EXPOSURE_CLOSERS = new Set(["approved-as-proposed", "approved-with-other", "cancelled"]);
|
|
376
|
-
/** Append one event, in order: `proposed` first and only once, nothing after a closing event, and a closing event
|
|
377
|
-
* closes the exposure in the same write. Anything out of order refuses. */
|
|
378
297
|
function appendExposureEvent(store, exposure, kind, model, at) {
|
|
379
298
|
const events = store.handle.prepare("SELECT kind FROM route_exposure_event WHERE exposure = ? ORDER BY id").all(exposure).map(one => String(one["kind"]));
|
|
380
299
|
if (kind === "proposed" ? events.length !== 0 : events[0] !== "proposed" || events.some(one => EXPOSURE_CLOSERS.has(one)))
|
|
@@ -385,9 +304,6 @@ function appendExposureEvent(store, exposure, kind, model, at) {
|
|
|
385
304
|
if (EXPOSURE_CLOSERS.has(kind))
|
|
386
305
|
store.handle.prepare("UPDATE route_exposure SET closed_at = ? WHERE id = ? AND closed_at IS NULL").run(at, exposure);
|
|
387
306
|
}
|
|
388
|
-
// ---- reads routing makes at filing and admission ------------------------------------------------------------------
|
|
389
|
-
/** A project's live earned rules, as routing reads them (phase-routing.ts EarnedRule): kind rule, state active, a
|
|
390
|
-
* Claude model. A row that doesn't read is left out (it can only ever not apply). */
|
|
391
307
|
export function liveEarnedRules(store, repo) {
|
|
392
308
|
if (repo === null)
|
|
393
309
|
return [];
|
|
@@ -399,9 +315,6 @@ export function liveEarnedRules(store, repo) {
|
|
|
399
315
|
configured: { provider: String(row["configured_provider"]), model: row["configured_model"] == null ? null : String(row["configured_model"]) } }];
|
|
400
316
|
});
|
|
401
317
|
}
|
|
402
|
-
/** Why a build of this task must not start under the rule its route sealed, or null: the rule switched itself off
|
|
403
|
-
* after the approval and the task hasn't started (docs/plans/results-routing.md, "When a rule ends"). A rule turned off
|
|
404
|
-
* by a person, or expired, keeps the sealed model; a started task's later attempts finish under it. */
|
|
405
318
|
export function ruleHoldOf(store, taskId) {
|
|
406
319
|
const sealed = store.sealedRouteOf(taskId);
|
|
407
320
|
if (!sealed.ok)
|
|
@@ -416,8 +329,6 @@ export function ruleHoldOf(store, taskId) {
|
|
|
416
329
|
WHERE task_ref.backend = ? AND task_ref.external_id = ? AND run.role IN ('builder','repair') LIMIT 1`).get(BUILT_IN, taskId);
|
|
417
330
|
return started === undefined ? { rule: selection.rule, model: String(rule["model"]) } : null;
|
|
418
331
|
}
|
|
419
|
-
/** Start a trial, live (state trialling) with its number of places. The winner index makes a second live rule or
|
|
420
|
-
* trial for the same project and size refuse (null); nothing else is written. */
|
|
421
332
|
export function insertTrial(store, door, trial, now) {
|
|
422
333
|
spend(door, "trial-start");
|
|
423
334
|
if ((trial.cohortSize !== "small" && trial.cohortSize !== "medium") || !Number.isSafeInteger(trial.limit) || trial.limit < 1 || trial.limit > 50)
|
|
@@ -435,12 +346,6 @@ export function insertTrial(store, door, trial, now) {
|
|
|
435
346
|
throw error;
|
|
436
347
|
}
|
|
437
348
|
}
|
|
438
|
-
/**
|
|
439
|
-
* A person's or local owner's stop of a live or paused trial, by compare-and-swap on its generation, in the same
|
|
440
|
-
* transaction as releasing the places of tasks not approved on them (those plans are re-filed by the rule pass). A
|
|
441
|
-
* place a task was approved on stays reserved: that task keeps the model a person approved (as a rule turned off
|
|
442
|
-
* does). False when the trial moved since.
|
|
443
|
-
*/
|
|
444
349
|
export function endTrialByDoor(store, door, trialId, generation, now) {
|
|
445
350
|
spend(door, "trial-stop");
|
|
446
351
|
const ended = Number(store.handle.prepare(`UPDATE route_rule SET state = 'turned-off', generation = generation + 1, ended_at = ?, ended_by = ?, end_reason = 'stopped'
|
|
@@ -453,8 +358,6 @@ export function endTrialByDoor(store, door, trialId, generation, now) {
|
|
|
453
358
|
}
|
|
454
359
|
return ended;
|
|
455
360
|
}
|
|
456
|
-
/** A project's live trial for one size, as routing reads it (without this filing's place): state trialling, a Claude
|
|
457
|
-
* model. Null when none, or when its row doesn't read (it can only ever not apply). */
|
|
458
361
|
export function liveTrialFor(store, repo, size) {
|
|
459
362
|
if (repo === null || (size !== "small" && size !== "medium"))
|
|
460
363
|
return null;
|
|
@@ -464,13 +367,6 @@ export function liveTrialFor(store, repo, size) {
|
|
|
464
367
|
return { id: Number(row["id"]), generation: Number(row["generation"]), cohortSize: size, provider: "claude", model: String(row["model"]), limit: Number(row["trial_limit"]),
|
|
465
368
|
configured: { provider: String(row["configured_provider"]), model: row["configured_model"] == null ? null : String(row["configured_model"]) } };
|
|
466
369
|
}
|
|
467
|
-
/**
|
|
468
|
-
* This task's place in a trial, in the filing's own write transaction (store.ts saveScope, serialized by
|
|
469
|
-
* beginWriteWithin): a place it already holds (reserved, or consumed by its own earlier attempt) is reused, so
|
|
470
|
-
* repeated saves never take a second one; a place it gave up is never taken back; otherwise a new one only while
|
|
471
|
-
* reserved + consumed is under the trial's limit and the trial is live. Its digest is bound by settleTrialPlaces in
|
|
472
|
-
* the same transaction. Null: no place.
|
|
473
|
-
*/
|
|
474
370
|
export function reserveTrialPlace(store, trialId, taskRef, now) {
|
|
475
371
|
const own = store.handle.prepare("SELECT id, state FROM route_trial_reservation WHERE rule = ? AND task_ref = ?").get(trialId, taskRef);
|
|
476
372
|
if (own !== undefined)
|
|
@@ -481,12 +377,6 @@ export function reserveTrialPlace(store, trialId, taskRef, now) {
|
|
|
481
377
|
.run(trialId, taskRef, now.toISOString(), now.toISOString(), trialId);
|
|
482
378
|
return Number(inserted.changes) === 1 ? Number(inserted.lastInsertRowid) : null;
|
|
483
379
|
}
|
|
484
|
-
/**
|
|
485
|
-
* After a filing, in its transaction: the place its route seals (if any) is bound to the scope digest it was filed
|
|
486
|
-
* under (a compare-and-swap on `reserved`; a place this task's own attempt already consumed stays as it is), and every
|
|
487
|
-
* other place this task holds unconsumed is released. A selection that names a place this task doesn't hold throws:
|
|
488
|
-
* nothing files on it.
|
|
489
|
-
*/
|
|
490
380
|
export function settleTrialPlaces(store, taskRef, selection, digest, now) {
|
|
491
381
|
let kept = -1;
|
|
492
382
|
if (selection?.kind === "trial") {
|
|
@@ -502,24 +392,15 @@ export function settleTrialPlaces(store, taskRef, selection, digest, now) {
|
|
|
502
392
|
}
|
|
503
393
|
store.handle.prepare("UPDATE route_trial_reservation SET state = 'released', updated_at = ? WHERE task_ref = ? AND state = 'reserved' AND id != ?").run(now.toISOString(), taskRef, kept);
|
|
504
394
|
}
|
|
505
|
-
/** A cancel gives up every place the task holds unconsumed (store.ts applyCancellationLocked). A consumed place is
|
|
506
|
-
* never released. How many went. */
|
|
507
395
|
export function releaseTrialPlaces(store, taskRef, now) {
|
|
508
396
|
return Number(store.handle.prepare("UPDATE route_trial_reservation SET state = 'released', updated_at = ? WHERE task_ref = ? AND state = 'reserved'").run(now.toISOString(), taskRef).changes);
|
|
509
397
|
}
|
|
510
|
-
/** Whether this place still stands for this task's approval at `digest`: reserved and bound to exactly that digest,
|
|
511
|
-
* or consumed by this task's own earlier attempt. */
|
|
512
398
|
function placeStands(store, selection, taskRef, digest) {
|
|
513
399
|
const row = store.handle.prepare("SELECT rule, task_ref, state, scope_digest FROM route_trial_reservation WHERE id = ?").get(selection.reservation);
|
|
514
400
|
if (row === undefined || Number(row["rule"]) !== selection.rule || Number(row["task_ref"]) !== taskRef)
|
|
515
401
|
return false;
|
|
516
402
|
return row["state"] === "consumed" || (row["state"] === "reserved" && digest !== "" && row["scope_digest"] === digest);
|
|
517
403
|
}
|
|
518
|
-
/**
|
|
519
|
-
* Why a seal of this route must not stand, or null (store.ts sealScopeApproval): a trial task is approved only by a
|
|
520
|
-
* person — their own ceremony (no basis; not a machine acting, not an AI approver's name) or their paired-chat tap —
|
|
521
|
-
* never a mode, a grant, a schedule, a carry, an automatic seal or the lead; and only while its place stands.
|
|
522
|
-
*/
|
|
523
404
|
export function trialSealProblem(store, input) {
|
|
524
405
|
if (input.selection?.kind !== "trial")
|
|
525
406
|
return null;
|
|
@@ -533,13 +414,6 @@ export function trialSealProblem(store, input) {
|
|
|
533
414
|
return "this task's trial place is no longer held — re-file it";
|
|
534
415
|
return null;
|
|
535
416
|
}
|
|
536
|
-
/**
|
|
537
|
-
* A code-writing run's trial check, in its admission transaction after the run row exists (store.ts admitRun): for a
|
|
538
|
-
* route sealed on a trial, the approval must be a person's own (approval-authority.ts trialSealStandsSql), and the
|
|
539
|
-
* sealed place is consumed exactly once — a compare-and-swap on `reserved` and the sealed scope digest. A retry or
|
|
540
|
-
* repair of the same task whose place that task already consumed is admitted without consuming again. The words, or
|
|
541
|
-
* null to admit; the caller refuses (rolling the row back) on words.
|
|
542
|
-
*/
|
|
543
417
|
export function admitTrialRun(store, input) {
|
|
544
418
|
if (input.role !== "builder" && input.role !== "repair")
|
|
545
419
|
return null;
|
|
@@ -562,20 +436,17 @@ export function admitTrialRun(store, input) {
|
|
|
562
436
|
return "trial-reservation: the trial place this task was approved on was given up — re-file it";
|
|
563
437
|
if (!consumeTrialPlace(store, selection.reservation, String(scope["digest"]), input.run, input.now))
|
|
564
438
|
return "trial-reservation: the trial place doesn't match this approval — re-file it";
|
|
565
|
-
// Every place used: the trial is finished, and its cohort is free for a suggestion again.
|
|
566
439
|
store.handle.prepare(`UPDATE route_rule SET state = 'finished', generation = generation + 1, ended_at = ?, end_reason = 'all-places-used'
|
|
567
440
|
WHERE id = ? AND kind = 'trial' AND state IN ('trialling','paused')
|
|
568
441
|
AND (SELECT COUNT(*) FROM route_trial_reservation p WHERE p.rule = route_rule.id AND p.state = 'consumed') >= trial_limit`).run(input.now.toISOString(), selection.rule);
|
|
569
442
|
return null;
|
|
570
443
|
}
|
|
571
|
-
/** Consume one reserved place for this run: only with the sealed scope digest it was bound to. */
|
|
572
444
|
export function consumeTrialPlace(store, reservation, sealedDigest, run, now) {
|
|
573
445
|
if (typeof sealedDigest !== "string" || sealedDigest === "" || !Number.isSafeInteger(run) || run < 1)
|
|
574
446
|
throw new Error("a trial place is consumed only against the sealed scope digest, by a run");
|
|
575
447
|
return Number(store.handle.prepare(`UPDATE route_trial_reservation SET state = 'consumed', consumed_run = ?, updated_at = ?
|
|
576
448
|
WHERE id = ? AND state = 'reserved' AND scope_digest = ?`).run(run, now.toISOString(), reservation, sealedDigest).changes) === 1;
|
|
577
449
|
}
|
|
578
|
-
/** A trial's places: its limit, how many are reserved (waiting) and consumed (started). */
|
|
579
450
|
export function trialPlacesOf(store, trialId) {
|
|
580
451
|
const row = store.handle.prepare(`SELECT r.trial_limit AS lim,
|
|
581
452
|
(SELECT COUNT(*) FROM route_trial_reservation p WHERE p.rule = r.id AND p.state = 'reserved') AS reserved,
|
|
@@ -583,14 +454,11 @@ export function trialPlacesOf(store, trialId) {
|
|
|
583
454
|
FROM route_rule r WHERE r.id = ? AND r.kind = 'trial'`).get(trialId);
|
|
584
455
|
return { limit: Number(row?.["lim"] ?? 0), reserved: Number(row?.["reserved"] ?? 0), consumed: Number(row?.["consumed"] ?? 0) };
|
|
585
456
|
}
|
|
586
|
-
/** Which place in its trial this one is (1-based, counting places held or used, in order), or null. */
|
|
587
457
|
export function trialOrdinalOf(store, reservation) {
|
|
588
458
|
const row = store.handle.prepare(`SELECT p.rule, p.state, (SELECT COUNT(*) FROM route_trial_reservation o WHERE o.rule = p.rule AND o.id <= p.id AND o.state IN ('reserved','consumed')) AS ordinal
|
|
589
459
|
FROM route_trial_reservation p WHERE p.id = ?`).get(reservation);
|
|
590
460
|
return row === undefined ? null : { trial: Number(row["rule"]), ordinal: Number(row["ordinal"]), state: String(row["state"]) };
|
|
591
461
|
}
|
|
592
|
-
/** Whether a proposal's trial place still stands for re-use by its next approval: the trial is live and the place is
|
|
593
|
-
* held reserved by that task (the rule pass re-files a proposal whose place doesn't). */
|
|
594
462
|
export function trialPlaceLive(store, selection, taskRef) {
|
|
595
463
|
const row = store.handle.prepare(`SELECT 1 FROM route_trial_reservation p JOIN route_rule r ON r.id = p.rule
|
|
596
464
|
WHERE p.id = ? AND p.rule = ? AND p.task_ref = ? AND p.state IN ('reserved','consumed') AND r.state = 'trialling'`).get(selection.reservation, selection.rule, taskRef);
|
package/dist/run-closeout.js
CHANGED
|
@@ -1,37 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Closing out what a run started. When a run ends, whatever its outcome, anything still running in its process
|
|
3
|
-
* groups — the provider's own group and every process or group the run was seen to start — is stopped: SIGTERM, then
|
|
4
|
-
* SIGKILL for whatever is still there after 10 s. Completing or cancelling a task does the same for what Toolroll left
|
|
5
|
-
* running from its checkout: what a finished run started (descends from one of its processes) or an orphan (its parent
|
|
6
|
-
* gone), never one with a live parent Toolroll did not start (a deploy, a person's agent or shell). Each stop is in
|
|
7
|
-
* the ledger, naming what was stopped.
|
|
8
|
-
*
|
|
9
|
-
* Never the live service: this process, its ancestors and their process groups are never targets.
|
|
10
|
-
*
|
|
11
|
-
* A pid saved in the database is never signalled on its word alone (the OS reuses pids): a target must be alive in a
|
|
12
|
-
* fresh process listing and born no later than the run saw it. A group counts when its leader is that same process,
|
|
13
|
-
* or when the leader is gone and the group still has members (the OS never hands a live group's id to a new
|
|
14
|
-
* process). The worker's pass runs this (operate.ts reconcile), so every road a run ends by is covered.
|
|
15
|
-
*/
|
|
16
1
|
import { execFileSync } from "node:child_process";
|
|
17
2
|
import { existsSync, readdirSync, readlinkSync, realpathSync } from "node:fs";
|
|
18
3
|
import { basename, sep } from "node:path";
|
|
19
4
|
import { ownedProcessCount, runOwnerTag } from "./exec.js";
|
|
20
5
|
import { localWitnessSql } from "./store.js";
|
|
21
6
|
import { sleep as defaultSleep } from "./sleep.js";
|
|
22
|
-
/** How long a process has after SIGTERM before SIGKILL. */
|
|
23
7
|
export const STOP_GRACE_MS = 10_000;
|
|
24
|
-
/** `ps` reports age in whole seconds: a process born this close after the run saw its pid is still that process. */
|
|
25
8
|
const BIRTH_SLACK_MS = 2_000;
|
|
26
|
-
/** Every process now: ids, when it was born (from its age) and its program's name — never its arguments, which can
|
|
27
|
-
* carry private provider inputs. */
|
|
28
9
|
export function processCensus(now = Date.now()) {
|
|
29
10
|
if (process.platform === "win32")
|
|
30
11
|
return [];
|
|
31
12
|
const text = execFileSync("/bin/ps", ["-axo", "pid=,ppid=,pgid=,etime=,tty=,comm="], { encoding: "utf8", timeout: 5_000, maxBuffer: 16 * 1024 * 1024 });
|
|
32
13
|
return parseCensus(text, now);
|
|
33
14
|
}
|
|
34
|
-
/** `ps -o pid=,ppid=,pgid=,etime=,tty=,comm=` rows; etime is [[dd-]hh:]mm:ss, tty `??` or `?` for none. Unreadable rows are left out. */
|
|
35
15
|
export function parseCensus(text, now) {
|
|
36
16
|
const rows = [];
|
|
37
17
|
for (const line of text.split("\n")) {
|
|
@@ -44,7 +24,6 @@ export function parseCensus(text, now) {
|
|
|
44
24
|
}
|
|
45
25
|
return rows;
|
|
46
26
|
}
|
|
47
|
-
/** This process, its ancestors, pid 1 and their process groups: the live service, never stopped. */
|
|
48
27
|
export function protectedProcesses(census, self = process.pid) {
|
|
49
28
|
const byPid = new Map(census.map(row => [row.pid, row]));
|
|
50
29
|
const pids = new Set([1, self, process.ppid]);
|
|
@@ -61,11 +40,6 @@ export function protectedProcesses(census, self = process.pid) {
|
|
|
61
40
|
}
|
|
62
41
|
return { pids, groups };
|
|
63
42
|
}
|
|
64
|
-
/**
|
|
65
|
-
* What of a run is still running: each witnessed process that is still the same process (born no later than the run
|
|
66
|
-
* saw it), and every member of each witnessed group whose leader is that same process or gone. Never anything
|
|
67
|
-
* protected.
|
|
68
|
-
*/
|
|
69
43
|
export function closeoutTargets(census, witnesses, guard) {
|
|
70
44
|
const byPid = new Map(census.map(row => [row.pid, row]));
|
|
71
45
|
const groups = new Set();
|
|
@@ -80,7 +54,6 @@ export function closeoutTargets(census, witnesses, guard) {
|
|
|
80
54
|
}
|
|
81
55
|
return census.filter(row => (pids.has(row.pid) || groups.has(row.pgid)) && !guard.pids.has(row.pid) && !guard.groups.has(row.pgid));
|
|
82
56
|
}
|
|
83
|
-
/** SIGTERM each target, wait up to the grace for them to go, then SIGKILL what is still the same process. */
|
|
84
57
|
export async function stopProcesses(targets, options = {}) {
|
|
85
58
|
if (targets.length === 0)
|
|
86
59
|
return { stopped: [], killed: [] };
|
|
@@ -99,7 +72,6 @@ export async function stopProcesses(targets, options = {}) {
|
|
|
99
72
|
}
|
|
100
73
|
}
|
|
101
74
|
};
|
|
102
|
-
// Still there: the same pid, born at the same time (a reused pid is somebody else).
|
|
103
75
|
const remaining = () => {
|
|
104
76
|
let rows;
|
|
105
77
|
try {
|
|
@@ -122,18 +94,12 @@ export async function stopProcesses(targets, options = {}) {
|
|
|
122
94
|
send(left, "SIGKILL");
|
|
123
95
|
return { stopped: [...targets], killed: left };
|
|
124
96
|
}
|
|
125
|
-
/** "node (4123), serve (4130); 1 needed SIGKILL after 10 s" — for the ledger. */
|
|
126
97
|
export function stoppedWords(done, graceMs = STOP_GRACE_MS) {
|
|
127
98
|
const names = done.stopped.map(one => `${one.name} (${one.pid})`).join(", ");
|
|
128
99
|
const groups = new Set(done.stopped.map(one => one.pgid)).size;
|
|
129
100
|
const killed = done.killed.length === 0 ? "" : `; ${done.killed.length} needed SIGKILL after ${Number((graceMs / 1000).toFixed(1))} s`;
|
|
130
101
|
return `${done.stopped.length} process${done.stopped.length === 1 ? "" : "es"} in ${groups} group${groups === 1 ? "" : "s"}: ${names}${killed}`;
|
|
131
102
|
}
|
|
132
|
-
/**
|
|
133
|
-
* The worker's pass: every finished run of this host that still has a process witness open is closed out. A run
|
|
134
|
-
* whose transport here still holds a live child is left to that road.
|
|
135
|
-
* Returns what each run had stopped.
|
|
136
|
-
*/
|
|
137
103
|
export async function closeOutRuns(store, clock, options = {}) {
|
|
138
104
|
if (process.platform === "win32")
|
|
139
105
|
return [];
|
|
@@ -178,7 +144,6 @@ export async function closeOutRuns(store, clock, options = {}) {
|
|
|
178
144
|
store.settleQuiescentStops(clock());
|
|
179
145
|
return out;
|
|
180
146
|
}
|
|
181
|
-
/** Which processes run from inside each of `paths` (their working directory is there): lsof on macOS, /proc on Linux. */
|
|
182
147
|
export function processesIn(paths) {
|
|
183
148
|
const found = new Map();
|
|
184
149
|
if (paths.length === 0 || process.platform === "win32")
|
|
@@ -186,7 +151,7 @@ export function processesIn(paths) {
|
|
|
186
151
|
const roots = paths.map(path => { let real = path; try {
|
|
187
152
|
real = realpathSync(path);
|
|
188
153
|
}
|
|
189
|
-
catch {
|
|
154
|
+
catch { } return { path, real }; });
|
|
190
155
|
const note = (pid, cwd) => {
|
|
191
156
|
for (const one of roots) {
|
|
192
157
|
if ([one.path, one.real].some(root => cwd === root || cwd.startsWith(root + sep)))
|
|
@@ -200,7 +165,7 @@ export function processesIn(paths) {
|
|
|
200
165
|
try {
|
|
201
166
|
note(Number(name), readlinkSync(`/proc/${name}/cwd`));
|
|
202
167
|
}
|
|
203
|
-
catch {
|
|
168
|
+
catch { }
|
|
204
169
|
}
|
|
205
170
|
return found;
|
|
206
171
|
}
|
|
@@ -220,12 +185,6 @@ export function processesIn(paths) {
|
|
|
220
185
|
}
|
|
221
186
|
return found;
|
|
222
187
|
}
|
|
223
|
-
/**
|
|
224
|
-
* Of the processes running from a finished checkout (`inside`), the ones Toolroll left there: each descends from a
|
|
225
|
-
* process a finished run started (`roots`), or is an orphan (its parent is pid 1), or is the child of one that goes.
|
|
226
|
-
* Never one with a live parent Toolroll didn't start — a deploy the lead runs from the checkout, a person's agent or
|
|
227
|
-
* its tools — nor anything at a terminal or protected.
|
|
228
|
-
*/
|
|
229
188
|
export function checkoutTargets(census, inside, roots, guard) {
|
|
230
189
|
const byPid = new Map(census.map(row => [row.pid, row]));
|
|
231
190
|
const fromRun = (row) => {
|
|
@@ -249,7 +208,6 @@ export function checkoutTargets(census, inside, roots, guard) {
|
|
|
249
208
|
};
|
|
250
209
|
return census.filter(left);
|
|
251
210
|
}
|
|
252
|
-
/** The processes finished runs on this host started that are still the same process: what a leftover may descend from. */
|
|
253
211
|
function finishedRunProcesses(store, census) {
|
|
254
212
|
const byPid = new Map(census.map(row => [row.pid, row]));
|
|
255
213
|
const roots = new Set();
|
|
@@ -264,13 +222,7 @@ function finishedRunProcesses(store, census) {
|
|
|
264
222
|
}
|
|
265
223
|
return roots;
|
|
266
224
|
}
|
|
267
|
-
/** Checkouts this process already closed out since their task finished (path and when). */
|
|
268
225
|
const closed = new Set();
|
|
269
|
-
/**
|
|
270
|
-
* Completing or cancelling a task closes out its checkout: what Toolroll left running from it (`checkoutTargets`) is
|
|
271
|
-
* stopped (SIGTERM, then SIGKILL after the grace), in the ledger. `finished` lists the checkouts whose task is
|
|
272
|
-
* complete or cancelled, with when it finished; each is looked at once per finish.
|
|
273
|
-
*/
|
|
274
226
|
export async function closeOutCheckouts(store, clock, finished, options = {}) {
|
|
275
227
|
const fresh = finished.filter(one => !closed.has(`${one.row.path}\u0000${one.finishedAt}`) && existsSync(one.row.path) && one.row.runner === null);
|
|
276
228
|
const out = [];
|