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/deploy-lock.js
CHANGED
|
@@ -6,9 +6,6 @@ export function acquireDeploymentLock(journalFile, waitMs = 5000) {
|
|
|
6
6
|
if (!Number.isInteger(waitMs) || waitMs < 0 || waitMs > 5000)
|
|
7
7
|
throw Error("Invalid deployment lock wait.");
|
|
8
8
|
const journal = canonical(journalFile), file = `${journal}.lock.sqlite`;
|
|
9
|
-
// Only create a missing file. On POSIX, closing ANY independently opened descriptor
|
|
10
|
-
// for an existing inode can drop this process's fcntl lock, even another connection's.
|
|
11
|
-
// Let SQLite manage all descriptors for an existing coordination file.
|
|
12
9
|
try {
|
|
13
10
|
const fd = openSync(file, constants.O_CREAT | constants.O_EXCL | constants.O_RDWR | constants.O_NOFOLLOW, 0o600);
|
|
14
11
|
closeSync(fd);
|
|
@@ -19,7 +16,6 @@ export function acquireDeploymentLock(journalFile, waitMs = 5000) {
|
|
|
19
16
|
}
|
|
20
17
|
if (!lstatSync(file).isFile())
|
|
21
18
|
throw Error(`Unexpected deployment lock: ${file}`);
|
|
22
|
-
// Lazy, as elsewhere in the CLI: merely importing the help must not load SQLite.
|
|
23
19
|
const { DatabaseSync } = createRequire(import.meta.url)("node:sqlite");
|
|
24
20
|
const db = new DatabaseSync(file);
|
|
25
21
|
try {
|
package/dist/deploy-phase.js
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The phases of a browser deployment's journal, and what a stopped deployment at each one calls for.
|
|
3
|
-
*
|
|
4
|
-
* The rows are data: deploy-phase-data.json beside this file, the one authored list (the build copies it into dist,
|
|
5
|
-
* scripts/postbuild.mjs). The deploy scripts read the same file through scripts/deploy-phase-table.mjs, where each
|
|
6
|
-
* column is described. Both sides check its shape the same way; deploy-phase.test.ts holds them to each other and to
|
|
7
|
-
* its own hand-written expectations.
|
|
8
|
-
*/
|
|
9
1
|
import { readFileSync } from "node:fs";
|
|
10
2
|
import { join } from "node:path";
|
|
11
3
|
const ACTIONS = ["none", "lift-pause", "forward", "roll-back"];
|
|
12
4
|
const FLAGS = ["beforeSwap", "beforePause", "migrationStarted", "restartable", "deployed"];
|
|
13
|
-
/** The rows of a parsed data file, or an Error naming what is wrong with it. Never a partial table. */
|
|
14
5
|
export function deployPhaseRows(data) {
|
|
15
6
|
const rows = data?.phases;
|
|
16
7
|
if (!Array.isArray(rows) || rows.length === 0)
|
|
@@ -28,37 +19,24 @@ export function deployPhaseRows(data) {
|
|
|
28
19
|
return Object.freeze({ phase, action: action, flags: Object.freeze([...flags]) });
|
|
29
20
|
}));
|
|
30
21
|
}
|
|
31
|
-
// By path, not by URL: a test environment that stands in for a browser replaces the global URL.
|
|
32
22
|
const ROWS = deployPhaseRows(JSON.parse(readFileSync(join(import.meta.dirname, "deploy-phase-data.json"), "utf8")));
|
|
33
23
|
const rowOf = (phase) => typeof phase === "string" ? ROWS.find(row => row.phase === phase) : undefined;
|
|
34
24
|
const withFlag = (flag) => Object.freeze(ROWS.filter(row => row.flags.includes(flag)).map(row => row.phase));
|
|
35
25
|
const withAction = (action) => Object.freeze(ROWS.filter(row => row.action === action).map(row => row.phase));
|
|
36
|
-
/** Every phase, in journal order. */
|
|
37
26
|
export const DEPLOY_PHASES = Object.freeze(ROWS.map(row => row.phase));
|
|
38
27
|
export const isDeployPhase = (phase) => rowOf(phase) !== undefined;
|
|
39
|
-
/** The one action a journal's phase calls for; "refuse" for anything that is not a phase. */
|
|
40
28
|
export const deployActionOf = (phase) => rowOf(phase)?.action ?? "refuse";
|
|
41
|
-
/** The word itself, or an Error: a journal is never written with a word the table does not hold. */
|
|
42
29
|
export function assertDeployPhase(phase) {
|
|
43
30
|
if (!isDeployPhase(phase))
|
|
44
31
|
throw new Error(`"${String(phase)}" is not a deployment phase; the journal was not written.`);
|
|
45
32
|
return phase;
|
|
46
33
|
}
|
|
47
|
-
/** The service was never stopped. */
|
|
48
34
|
export const BEFORE_SWAP = withFlag("beforeSwap");
|
|
49
|
-
/** Before the swap, with the pause in place. */
|
|
50
35
|
export const PAUSED_BEFORE_SWAP = Object.freeze(ROWS.filter(row => row.flags.includes("beforeSwap") && !row.flags.includes("beforePause")).map(row => row.phase));
|
|
51
|
-
/** The candidate's store opened the live database, or the new service ran on it. */
|
|
52
36
|
export const MIGRATION_STARTED = withFlag("migrationStarted");
|
|
53
|
-
/** The old service is proved stopped: the previous definition may be started again. */
|
|
54
37
|
export const RESTARTABLE = withFlag("restartable");
|
|
55
|
-
/** The new service may be running: never rolled back by a journal alone. */
|
|
56
38
|
export const FORWARD_ONLY = withAction("forward");
|
|
57
|
-
/** Nothing is left to recover. Not the same as deployed: a released deployment never installed its runtime. */
|
|
58
39
|
export const NEEDS_NO_RECOVERY = withAction("none");
|
|
59
|
-
/** The deployment finished and its runtime is the installed one. */
|
|
60
40
|
export const isDeployed = (phase) => rowOf(phase)?.flags.includes("deployed") === true;
|
|
61
|
-
/** Stopped where nothing was changed (before its pause), or with nothing left to do. */
|
|
62
41
|
export const stoppedWhereNothingChanged = (phase) => { const row = rowOf(phase); return row !== undefined && (row.flags.includes("beforePause") || row.action === "none"); };
|
|
63
|
-
/** The phase a lifted pause leaves behind (release-gate.ts). */
|
|
64
42
|
export const RELEASED = assertDeployPhase("released");
|
package/dist/deploy-rescue.js
CHANGED
|
@@ -1,25 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `toolroll release --recover-deploy [--stage <dir>] [--yes]`: one command for a browser deployment that stopped half
|
|
3
|
-
* way and could not put itself back (the 2026-10-29 deploy stuck at "stopping": an `up` left running under launchd
|
|
4
|
-
* that ignored SIGTERM, a restart refused while its stale heartbeat lapsed, and every resume refusing "not proved
|
|
5
|
-
* stopped"). It does what was done by hand, through the deployment's own recovery (scripts/deploy-browser.mjs
|
|
6
|
-
* --phase recover, run from the recorded commit's pristine extraction exactly as `toolroll release` resumes one):
|
|
7
|
-
*
|
|
8
|
-
* - the journal is verified (one unfinished deployment of this database, its run recorded) under the deployment lock
|
|
9
|
-
* - when the journal says the old service must be stopped, recovery requires proof it already exited; historical
|
|
10
|
-
* PIDs and argv never authorize signals or booting out a currently loaded service. Remaining processes must be
|
|
11
|
-
* stopped through their owner before recovery can resume.
|
|
12
|
-
* - the previous service is started again (the verified backup first when the database was migrated past it) and
|
|
13
|
-
* waited for past a stale worker heartbeat's window, then the deployment's update pause is lifted
|
|
14
|
-
*
|
|
15
|
-
* A journal at or past the new service's start is never touched here: the new service may be running, and the
|
|
16
|
-
* release resumes it forward. Finished journals need nothing. Run again after a refusal or a failure: every step
|
|
17
|
-
* re-proves itself, so a rerun does only what is still left.
|
|
18
|
-
*/
|
|
19
1
|
import { realpathSync } from "node:fs";
|
|
20
2
|
import { join } from "node:path";
|
|
21
3
|
import { BEFORE_SWAP, FORWARD_ONLY, MIGRATION_STARTED, NEEDS_NO_RECOVERY, RESTARTABLE } from "./deploy-phase.js";
|
|
22
|
-
/** Phases where the new service may be running: recovery leaves them to the release, which resumes forward. */
|
|
23
4
|
export { FORWARD_ONLY };
|
|
24
5
|
const real = (path) => { try {
|
|
25
6
|
return realpathSync(path);
|
|
@@ -27,7 +8,6 @@ const real = (path) => { try {
|
|
|
27
8
|
catch {
|
|
28
9
|
return path;
|
|
29
10
|
} };
|
|
30
|
-
/** What recovery will do from a phase, in a few words. */
|
|
31
11
|
export function rescuePlan(phase, journal) {
|
|
32
12
|
const id = String(journal["id"] ?? "?"), prior = String(journal["priorRuntime"] ?? "?");
|
|
33
13
|
if (BEFORE_SWAP.includes(phase))
|
|
@@ -45,7 +25,6 @@ export function rescuePlan(phase, journal) {
|
|
|
45
25
|
}
|
|
46
26
|
return words.length > 0 ? words : [`Journal phase ${phase}: the deployment's own recovery decides; it refuses anything it can't prove.`];
|
|
47
27
|
}
|
|
48
|
-
/** Find the one unfinished deployment (or the named stage), verify its journal, and recover it (with `yes`). */
|
|
49
28
|
export async function rescueDeployment(stageArg, yes, world) {
|
|
50
29
|
const all = world.journals();
|
|
51
30
|
let chosen;
|
package/dist/deprecations.js
CHANGED
|
@@ -1,27 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* D5 (schema v117): one AI concept, the lead. The central team service's CLI (the central `lead list|create|update|
|
|
3
|
-
* member|transfer`, `conversation …`, and `chat`/`brief` with --lead, --conversation or a saved profile) and native
|
|
4
|
-
* coding sessions (`session …`) were deprecated in 0.9.56 and are removed now: each answers with one line naming what
|
|
5
|
-
* to use instead, changing nothing. `connect` stays — remote commands and `toolroll health` use the profile it saves.
|
|
6
|
-
*/
|
|
7
1
|
const NEXT_STEP = {
|
|
8
2
|
team: "Talk to your lead with `toolroll chat`.",
|
|
9
3
|
session: "Queue work with `toolroll task add`.",
|
|
10
4
|
};
|
|
11
|
-
/** The one line a deprecated command prints on stderr: what it is, when it goes, and what to use instead. */
|
|
12
5
|
export function deprecationWarning(command, kind) {
|
|
13
6
|
return `Warning: \`toolroll ${command}\` is deprecated and will be removed in the next minor release. ${NEXT_STEP[kind]}`;
|
|
14
7
|
}
|
|
15
|
-
/** What a deprecated console page or API says about itself. */
|
|
16
8
|
export const DEPRECATED_PAGE = {
|
|
17
9
|
team: "Team chat is deprecated and will be removed in the next minor release. Your lead in Chat does the same work.",
|
|
18
10
|
session: "Coding sessions are deprecated and will be removed in the next minor release. Queue work as a task instead.",
|
|
19
11
|
};
|
|
20
12
|
const CENTRAL_LEAD_ACTIONS = ["list", "create", "update", "member", "transfer"];
|
|
21
13
|
const CENTRAL_CHAT_FLAGS = ["--profile", "--lead", "--conversation", "--authorize", "--terms-digest", "--request-id"];
|
|
22
|
-
/** The removed command an invocation names, as `{ named, kind }`; null when it is a live command. `chat`/`brief`
|
|
23
|
-
* without --local went to the central service whenever a profile was saved (`savedProfile`, asked only then): that
|
|
24
|
-
* invocation is removed too, never quietly run against this computer's lead instead. */
|
|
25
14
|
export function removedCommand(argv, savedProfile = () => false) {
|
|
26
15
|
const [first, second] = argv;
|
|
27
16
|
const verb = () => argv.slice(1).find(arg => !arg.startsWith("-")) ?? "";
|
|
@@ -37,7 +26,6 @@ export function removedCommand(argv, savedProfile = () => false) {
|
|
|
37
26
|
return { named: `${first} --conversation`, kind: "team" };
|
|
38
27
|
return null;
|
|
39
28
|
}
|
|
40
|
-
/** The one line a removed command answers with. */
|
|
41
29
|
export function removedMessage(named, kind) {
|
|
42
30
|
return `\`toolroll ${named}\` was removed. ${NEXT_STEP[kind]}`;
|
|
43
31
|
}
|
package/dist/design/kit.css
CHANGED
|
@@ -30,6 +30,8 @@
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
/* ---------- Text, icons, helpers ---------- */
|
|
33
|
+
/* A short command or path that must read as one piece: it moves to the next line whole, never breaks mid-token. */
|
|
34
|
+
.k-nowrap { white-space: nowrap; }
|
|
33
35
|
.k-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; padding: 0; border: 0; }
|
|
34
36
|
.k-mono { font-family: var(--so-font-mono); font-size: 12px; font-weight: 400; }
|
|
35
37
|
.k-num { font-variant-numeric: tabular-nums; }
|
|
@@ -89,13 +91,13 @@
|
|
|
89
91
|
.k-tabs .k-count { margin-left: 2px; }
|
|
90
92
|
|
|
91
93
|
/* ---------- Fields: one family (KIT.md "Fields") ----------
|
|
92
|
-
Every text field, select and secondary text box is one filled surface (--so-field),
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
Every text field, select and secondary text box is one filled surface (--so-field), radius 12px, with a 1px
|
|
95
|
+
--so-field-line boundary (3:1 on paper, so a person can see where to type); the label above names it, the hint and
|
|
96
|
+
the error sit below it, focus draws the 2px ink ring. Textareas grow with their words (field-sizing), no resize grip. */
|
|
95
97
|
.k-field { display: grid; gap: 6px; margin: 0; min-width: 0; }
|
|
96
98
|
.k-label { display: block; margin: 0; font: 500 12.5px/1.35 var(--so-font-sans); color: var(--so-muted); }
|
|
97
99
|
.k-hint { margin: 0; font-size: 12px; color: var(--so-muted); line-height: 1.45; }
|
|
98
|
-
.k-input.k-input, .k-textarea.k-textarea, .k-sel.k-sel { box-sizing: border-box; width: 100%; margin: 0; border: 1px solid
|
|
100
|
+
.k-input.k-input, .k-textarea.k-textarea, .k-sel.k-sel { box-sizing: border-box; width: 100%; margin: 0; border: 1px solid var(--so-field-line); border-radius: 12px; background: var(--so-field); color: var(--so-ink); font: 400 13.5px/1.4 var(--so-font-sans); box-shadow: none; transition: background-color var(--m-quick) var(--m-ease); }
|
|
99
101
|
.k-input.k-input { height: 36px; min-height: 0; padding: 0 12px; }
|
|
100
102
|
.k-textarea.k-textarea { min-height: 76px; max-height: 360px; padding: 10px 12px; resize: none; field-sizing: content; overflow-y: auto; max-width: 640px; line-height: 1.5; }
|
|
101
103
|
.k-input::placeholder, .k-textarea::placeholder { color: var(--so-muted); opacity: 1; }
|
|
@@ -174,7 +176,7 @@
|
|
|
174
176
|
|
|
175
177
|
/* ---------- Lists: rows between hairlines under group headings ---------- */
|
|
176
178
|
.k-grp { display: flex; align-items: center; gap: 8px; height: 36px; margin: 8px 0 0; padding: 0 24px; font: 600 12.5px/1 var(--so-font-sans); border-bottom: 1px solid var(--so-line); color: var(--so-ink); }
|
|
177
|
-
.k-row { display: grid; grid-template-columns: 96px minmax(160px, 30%) minmax(0, 1fr) auto 124px; align-items: center; gap: 16px; min-height: 48px; padding: 6px 24px; border-bottom: 1px solid var(--so-line); position: relative; }
|
|
179
|
+
.k-row { display: grid; grid-template-columns: 96px minmax(160px, 30%) minmax(0, 1fr) auto minmax(124px, max-content); align-items: center; gap: 16px; min-height: 48px; padding: 6px 24px; border-bottom: 1px solid var(--so-line); position: relative; }
|
|
178
180
|
.k-row-t { font-weight: 500; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--so-ink); text-decoration: none; }
|
|
179
181
|
.k-row.wait .k-row-t { font-weight: 600; }
|
|
180
182
|
/* The title link stretches over the row, so the whole row is one target; the action sits above it. */
|
|
@@ -372,7 +374,7 @@ button.k-steprow-head[aria-expanded="true"]::after { transform: rotate(45deg); }
|
|
|
372
374
|
.k-pop.k-pop-menu { width: 240px; }
|
|
373
375
|
.k-drawer { position: fixed; top: 8px; right: 8px; bottom: 8px; width: 400px; max-width: calc(100vw - 16px); z-index: 30; background: var(--so-paper); color: var(--so-ink); border-radius: 12px; border: 1px solid var(--so-overlay-line); overflow: auto; display: flex; flex-direction: column; }
|
|
374
376
|
.k-drawer-h { display: flex; align-items: center; gap: 6px; padding: 10px 10px 10px 20px; border-bottom: 1px solid var(--so-line); position: sticky; top: 0; background: var(--so-paper); }
|
|
375
|
-
.k-drawer-h h2 { margin: 0; font: 600 14px/1.3 var(--so-font-sans); flex: 1; }
|
|
377
|
+
.k-drawer-h h2 { margin: 0; font: 600 14px/1.3 var(--so-font-sans); flex: 1; color: var(--so-ink); }
|
|
376
378
|
.k-drawer-b { padding: 18px 20px 28px; display: grid; gap: 22px; align-content: start; }
|
|
377
379
|
.k-sheet { position: fixed; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); z-index: 45; max-height: calc(100dvh - 16px); display: flex; flex-direction: column; background: var(--so-paper); color: var(--so-ink); border-radius: 14px; border: 1px solid var(--so-overlay-line); }
|
|
378
380
|
.k-sheet-h { display: flex; align-items: center; gap: 8px; padding: 6px 6px 8px 16px; border-bottom: 1px solid var(--so-line); flex: none; }
|
|
@@ -561,6 +563,7 @@ html:not(.k-js) .k-composer:focus-within, html.k-kbd .k-composer:focus-within {
|
|
|
561
563
|
.k-input.k-input, .k-pop .k-input.k-input, .k-sel.k-sel, .k-selw.sm .k-sel { height: 44px; }
|
|
562
564
|
.k-selw::after { right: 13px; }
|
|
563
565
|
.k-seg > a, .k-seg > button { height: 44px; font-size: 13.5px; }
|
|
566
|
+
.k-seg.k-seg-icons > a, .k-seg.k-seg-icons > button { min-width: 44px; justify-content: center; }
|
|
564
567
|
.k-tabs > button, .k-tabs > a { min-height: 44px; }
|
|
565
568
|
.k-disclose > summary { min-height: 44px; }
|
|
566
569
|
.k-facts a { display: inline-flex; align-items: center; min-height: 44px; }
|
package/dist/design/kit.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The revamp kit's words and rules, shared by the server's HTML kit (src/server/kit.ts) and the React kit
|
|
3
|
-
* (src/browser/kit/), so both draw the same thing from the same facts. No DOM, no server state: the rules
|
|
4
|
-
* are in src/design/KIT.md, the look in src/design/kit.css.
|
|
5
|
-
*
|
|
6
|
-
* The approval helpers here decide only what a page SHOWS (a password field, one click, or no button). The server
|
|
7
|
-
* still proves every act at the moment it happens (scope.ts freshness, passwordless.ts, people-tokens.ts); a page
|
|
8
|
-
* that shows one click for an act the server then refuses says so in place.
|
|
9
|
-
*/
|
|
10
1
|
import { HEADLINE_TONE } from "../task-status.js";
|
|
11
2
|
export const STATUS = {
|
|
12
3
|
needs: { word: "Needs you", tone: "needs" },
|
|
@@ -15,13 +6,10 @@ export const STATUS = {
|
|
|
15
6
|
finished: { word: "Finished", tone: "done" },
|
|
16
7
|
failed: { word: "Failed", tone: "failed" },
|
|
17
8
|
};
|
|
18
|
-
/** A task's headline (task-status.ts) as the kit's chip: its own word, in the tone of the status it belongs to. A
|
|
19
|
-
* row that waits on a person never shows a failure tone; something that waits on someone else never carries the needs-you mark. */
|
|
20
9
|
export function chipOfHeadline(headline) {
|
|
21
10
|
const status = statusOfHeadline(headline);
|
|
22
11
|
return { word: headline === "Needs you" ? STATUS.needs.word : headline, tone: STATUS[status].tone, status };
|
|
23
12
|
}
|
|
24
|
-
/** Which of the five a headline is. */
|
|
25
13
|
export function statusOfHeadline(headline) {
|
|
26
14
|
switch (HEADLINE_TONE[headline]) {
|
|
27
15
|
case "attention":
|
|
@@ -32,7 +20,6 @@ export function statusOfHeadline(headline) {
|
|
|
32
20
|
case "neutral": return "queued";
|
|
33
21
|
}
|
|
34
22
|
}
|
|
35
|
-
/** Resource states (a computer that builds, not work): never the needs-you mark. */
|
|
36
23
|
export const RESOURCE = {
|
|
37
24
|
idle: { word: "Idle", tone: "" },
|
|
38
25
|
building: { word: "Building", tone: "live" },
|
|
@@ -52,7 +39,6 @@ export function approvalAsk(kind, facts) {
|
|
|
52
39
|
return "click";
|
|
53
40
|
return "password";
|
|
54
41
|
}
|
|
55
|
-
/** How a click without a password is justified, for the record line after an approval. */
|
|
56
42
|
export function approvalHow(kind, facts) {
|
|
57
43
|
const ask = approvalAsk(kind, facts);
|
|
58
44
|
if (ask === "password")
|
|
@@ -63,7 +49,6 @@ export function approvalHow(kind, facts) {
|
|
|
63
49
|
return "none";
|
|
64
50
|
return facts.passwordless ? "passwordless" : "remembered";
|
|
65
51
|
}
|
|
66
|
-
/** The terms line under an approval: which rule applies, in words. Empty for a one-click act. */
|
|
67
52
|
export function termsOf(kind, facts) {
|
|
68
53
|
if (kind === "way-in") {
|
|
69
54
|
if (facts.passwordless)
|
|
@@ -82,8 +67,6 @@ export function termsOf(kind, facts) {
|
|
|
82
67
|
return facts.rememberedUntil ? `No password needed: remembered on this computer until ${facts.rememberedUntil}.` : "No password needed: remembered on this computer.";
|
|
83
68
|
return "Asks for your password.";
|
|
84
69
|
}
|
|
85
|
-
// ---- time and counts --------------------------------------------------------------------------------------------
|
|
86
|
-
/** A duration in seconds as the timing rows say it: "38s", "6m 12s", "1h 25m". */
|
|
87
70
|
export function dur(seconds) {
|
|
88
71
|
const n = Math.max(0, Math.round(seconds));
|
|
89
72
|
if (n < 60)
|
|
@@ -92,23 +75,17 @@ export function dur(seconds) {
|
|
|
92
75
|
return `${Math.floor(n / 60)}m ${String(n % 60).padStart(2, "0")}s`;
|
|
93
76
|
return `${Math.floor(n / 3600)}h ${String(Math.floor((n % 3600) / 60)).padStart(2, "0")}m`;
|
|
94
77
|
}
|
|
95
|
-
/** "3 flows", "1 flow". */
|
|
96
78
|
export const plural = (n, one, many) => `${n} ${n === 1 ? one : many}`;
|
|
97
79
|
export const TIMING_WORDS = { ok: "Done", run: "Now", q: "Queued", bad: "Failed", wait: "Needs you" };
|
|
98
|
-
/** Each row's bar as percentages of one shared axis; a queued row has no bar until it starts. */
|
|
99
80
|
export function timingBars(rows, scale) {
|
|
100
81
|
const sc = scale ?? Math.max(1, ...rows.map(row => row.start + (row.st === "q" ? 0 : row.dur))) * 1.02;
|
|
101
82
|
return rows.map(row => row.st === "q" ? null : { left: (Math.max(0, row.start) / sc) * 100, width: (Math.max(row.dur, sc / 400) / sc) * 100 });
|
|
102
83
|
}
|
|
103
|
-
/** The words a screen reader hears for a step row's marker. */
|
|
104
84
|
export const STEP_ROW_WORDS = {
|
|
105
85
|
done: "done", needs: "waiting on you", live: "in progress", wait: "waiting", stuck: "stopped here", skipped: "skipped", todo: "not started",
|
|
106
86
|
};
|
|
107
|
-
/** The id of a step row's body, for its disclosure's aria-controls. */
|
|
108
87
|
export const stepRowBodyId = (key) => `steprow-${key}`;
|
|
109
|
-
/** The words a screen reader hears for a step's state. */
|
|
110
88
|
export const STEP_WORDS = { done: "done", now: "waiting on you", live: "in progress", failed: "failed", todo: "not started" };
|
|
111
|
-
/** How far the line is filled, 0–1: up to the current step (the first that isn't done), or all of it. */
|
|
112
89
|
export function stepsFill(steps) {
|
|
113
90
|
if (steps.length < 2)
|
|
114
91
|
return steps.length === 1 && steps[0].state === "done" ? 1 : 0;
|
|
@@ -117,9 +94,7 @@ export function stepsFill(steps) {
|
|
|
117
94
|
}
|
|
118
95
|
const path = (d) => ["path", { d }];
|
|
119
96
|
const circle = (cx, cy, r) => ["circle", { cx, cy, r }];
|
|
120
|
-
/** The icons the kit draws (lucide shapes). */
|
|
121
97
|
export const KIT_ICONS = {
|
|
122
|
-
// The app shell's destinations (the rail and the phone menu) and its New task pen.
|
|
123
98
|
home: [path("m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"), path("M9 22V12h6v10")],
|
|
124
99
|
tasks: [path("m3 17 2 2 4-4"), path("m3 7 2 2 4-4"), path("M13 6h8"), path("M13 12h8"), path("M13 18h8")],
|
|
125
100
|
flows: [["rect", { x: 3, y: 3, width: 8, height: 8, rx: 2 }], path("M7 11v4a2 2 0 0 0 2 2h4"), ["rect", { x: 13, y: 13, width: 8, height: 8, rx: 2 }]],
|
|
@@ -140,12 +115,10 @@ export const KIT_ICONS = {
|
|
|
140
115
|
alert: [circle(12, 12, 9), path("M12 8v4"), path("M12 16h.01")],
|
|
141
116
|
more: [circle(5, 12, 1), circle(12, 12, 1), circle(19, 12, 1)],
|
|
142
117
|
file: [path("M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"), path("M14 3v5h5")],
|
|
143
|
-
// Wave C (flows): the canvas's zoom bar and the flow page's tools.
|
|
144
118
|
minus: [path("M5 12h14")],
|
|
145
119
|
fit: [path("M15 3h6v6"), path("M9 21H3v-6"), path("M21 3l-7 7"), path("M3 21l7-7")],
|
|
146
120
|
bolt: [path("M13 2 4 14h7l-1 8 9-12h-7z")],
|
|
147
121
|
code: [path("m16 18 6-6-6-6"), path("m8 6-6 6 6 6")],
|
|
148
|
-
// The Settings groups' icons (wave D; SETTINGS_GROUP_ICONS).
|
|
149
122
|
sun: [circle(12, 12, 4), path("M12 2v2"), path("M12 20v2"), path("m4.93 4.93 1.41 1.41"), path("m17.66 17.66 1.41 1.41"), path("M2 12h2"), path("M20 12h2"), path("m6.34 17.66-1.41 1.41"), path("m19.07 4.93-1.41 1.41")],
|
|
150
123
|
cpu: [["rect", { x: 4, y: 4, width: 16, height: 16, rx: 2 }], ["rect", { x: 9, y: 9, width: 6, height: 6, rx: 1 }], path("M15 2v2"), path("M15 20v2"), path("M2 15h2"), path("M2 9h2"), path("M20 15h2"), path("M20 9h2"), path("M9 2v2"), path("M9 20v2")],
|
|
151
124
|
bell: [path("M10.27 21a2 2 0 0 0 3.46 0"), path("M3.26 15.33A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.67C19.41 13.96 18 12.5 18 8A6 6 0 0 0 6 8c0 4.5-1.41 5.96-2.74 7.33")],
|
|
@@ -158,8 +131,6 @@ export const KIT_ICONS = {
|
|
|
158
131
|
board: [["rect", { x: 3, y: 3, width: 18, height: 18, rx: 2 }], path("M9 3v18"), path("M15 3v18")],
|
|
159
132
|
panel: [["rect", { x: 3, y: 3, width: 18, height: 18, rx: 2 }], path("M15 3v18")],
|
|
160
133
|
};
|
|
161
|
-
// ---- settings frame ---------------------------------------------------------------------------------------------
|
|
162
|
-
/** The eight Settings groups, in order: [label, slug, href]. */
|
|
163
134
|
export const SETTINGS_GROUPS = [
|
|
164
135
|
["General", "general", "/settings/general"],
|
|
165
136
|
["Agents and models", "agents", "/settings/agents"],
|
|
@@ -169,14 +140,12 @@ export const SETTINGS_GROUPS = [
|
|
|
169
140
|
["People and sign-in", "access", "/settings/access"],
|
|
170
141
|
["Spend", "spend", "/spend"],
|
|
171
142
|
["System", "system", "/settings/system"],
|
|
143
|
+
["Advanced", "advanced", "/settings/advanced"],
|
|
172
144
|
];
|
|
173
|
-
/** Each group's icon on the Settings overview (wave D). */
|
|
174
145
|
export const SETTINGS_GROUP_ICONS = {
|
|
175
|
-
general: "sun", agents: "cpu", alerts: "bell", approval: "shield", projects: "folder", access: "people", spend: "coin", system: "monitor",
|
|
146
|
+
general: "sun", agents: "cpu", alerts: "bell", approval: "shield", projects: "folder", access: "people", spend: "coin", system: "monitor", advanced: "settings",
|
|
176
147
|
};
|
|
177
|
-
/** How a Settings row says what waits on this person: "1 item needs you", "2 items need you". */
|
|
178
148
|
export const needsWords = (n) => n === 1 ? "1 item needs you" : `${n} items need you`;
|
|
179
|
-
/** The not-found page's default words. */
|
|
180
149
|
export const NOT_FOUND = {
|
|
181
150
|
title: (path) => `There’s no page at ${path}.`,
|
|
182
151
|
text: "It may have moved. Home has what needs you; Tasks has every task.",
|
package/dist/desktop-access.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Local desktop readiness, not a permission grant or task execution. */
|
|
2
1
|
import { mkdtempSync, readFileSync, writeFileSync, unlinkSync, rmdirSync, opendirSync, realpathSync } from "node:fs";
|
|
3
2
|
import { join, resolve } from "node:path";
|
|
4
3
|
import { fileURLToPath } from "node:url";
|
|
@@ -15,15 +14,12 @@ export function accessFailure(repo, code) {
|
|
|
15
14
|
return { repo, state: "missing", message: "This folder is missing or its drive is disconnected. Reconnect it or choose the project's new location." };
|
|
16
15
|
return { repo, state: "unavailable", message: "The worker could not check this Git project. Check that Git is installed and the folder is available, then check again." };
|
|
17
16
|
}
|
|
18
|
-
/** Probe only unique files we created, inside Git metadata, never tracked files.
|
|
19
|
-
* Run in a bounded child of the real service, not the foreground shell. */
|
|
20
17
|
export function probeDesktopProject(repo) {
|
|
21
18
|
let scratch;
|
|
22
19
|
try {
|
|
23
20
|
const directory = opendirSync(repo);
|
|
24
21
|
directory.readSync();
|
|
25
22
|
directory.closeSync();
|
|
26
|
-
// The project's own repository, read through a frozen view: a build's include naming a FIFO can't hang the probe.
|
|
27
23
|
const top = checkoutTop(repo, 4000);
|
|
28
24
|
if (top === null)
|
|
29
25
|
throw Error("Not a readable Git checkout");
|
|
@@ -42,7 +38,6 @@ export function probeDesktopProject(repo) {
|
|
|
42
38
|
return accessFailure(repo, error.code);
|
|
43
39
|
}
|
|
44
40
|
finally {
|
|
45
|
-
// No recursive deletion: only our own exact file and empty directory.
|
|
46
41
|
if (scratch) {
|
|
47
42
|
try {
|
|
48
43
|
unlinkSync(join(scratch, "check"));
|
|
@@ -68,21 +63,17 @@ export function interpretAccessProbe(repo, result) {
|
|
|
68
63
|
}
|
|
69
64
|
export async function checkDesktopProjects(repos) {
|
|
70
65
|
const checked = [];
|
|
71
|
-
// Bound concurrency and each diagnostic; these are not task runtime caps.
|
|
72
66
|
for (let offset = 0; offset < repos.length; offset += 4) {
|
|
73
67
|
checked.push(...await Promise.all(repos.slice(offset, offset + 4).map(async (repo) => interpretAccessProbe(repo, await run(process.execPath, [fileURLToPath(import.meta.url), "probe", repo], { timeoutMs: 6500, maxBuffer: 8192 })))));
|
|
74
68
|
}
|
|
75
69
|
return checked;
|
|
76
70
|
}
|
|
77
|
-
/** A receipt from an old worker or old project selection is never readiness. */
|
|
78
71
|
export function currentDesktopAccess(report, supervisor, repos, request) {
|
|
79
72
|
const matching = report?.version === 1 && Number.isFinite(Date.parse(report.checkedAt)) && report.request === request &&
|
|
80
73
|
Array.isArray(report.projects) && report.projects.every(one => one && typeof one.repo === "string" && typeof one.message === "string" && ["ready", "permission-needed", "missing", "unavailable"].includes(one.state)) &&
|
|
81
74
|
report.projects.length === repos.length && repos.every(repo => report.projects.some(one => one.repo === repo));
|
|
82
75
|
const current = matching && supervisor?.phase === "running" && report.controllerPid === supervisor.controllerPid && report.checkedAt >= (supervisor.updatedAt ?? "~");
|
|
83
76
|
const pending = (repo) => ({ repo, state: "checking", message: "Waiting for this background worker to check access." });
|
|
84
|
-
// Retain an actionable failure while the controller backs off, but never
|
|
85
|
-
// treat a stopped worker's successful probe as current readiness.
|
|
86
77
|
const failed = matching && ["backoff", "stopped"].includes(supervisor?.phase ?? "") && report.projects.some(one => one.state !== "ready");
|
|
87
78
|
const projects = current ? report.projects : failed ? report.projects.map(one => one.state === "ready" ? pending(one.repo) : one) : repos.map(pending);
|
|
88
79
|
return { verified: projects.length > 0 && projects.every(one => one.state === "ready"), projects };
|
package/dist/desktop-bundle.js
CHANGED
|
@@ -2,8 +2,6 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { lstatSync, readFileSync, readdirSync, realpathSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { run } from "./exec.js";
|
|
5
|
-
/** Hash the exact bundle, including executable modes; reject aliases inside
|
|
6
|
-
* it so a checked file cannot secretly refer to mutable external code. */
|
|
7
5
|
export function bundleHash(path) {
|
|
8
6
|
const hash = createHash("sha256");
|
|
9
7
|
const walk = (file, relative) => {
|
|
@@ -61,7 +59,7 @@ export async function verifyDesktopUpdateBundles(previous, candidate) {
|
|
|
61
59
|
throw Error("The manifest and signed app identity disagree.");
|
|
62
60
|
}
|
|
63
61
|
if (candidate.development)
|
|
64
|
-
return;
|
|
62
|
+
return;
|
|
65
63
|
const team = (text) => /^TeamIdentifier=(?!not set$)(.+)$/m.exec(text)?.[1];
|
|
66
64
|
if (!team(old) || team(old) !== team(next) || !/^Authority=Developer ID Application:/m.test(next))
|
|
67
65
|
throw Error("A release update must preserve the installed Developer ID signing team.");
|
package/dist/desktop-host.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Entry point for the macOS shell. No account credential enters argv or logs. */
|
|
2
1
|
import { randomBytes } from "node:crypto";
|
|
3
2
|
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, realpathSync } from "node:fs";
|
|
4
3
|
import { dirname, join, resolve } from "node:path";
|
|
@@ -35,8 +34,6 @@ export function readDesktopConfig(stateDir) {
|
|
|
35
34
|
return realpathSync(repo);
|
|
36
35
|
}
|
|
37
36
|
catch (error) {
|
|
38
|
-
// An unplugged volume or moved checkout must never reset the account,
|
|
39
|
-
// database selection, or service identity. Keep it visible for recovery.
|
|
40
37
|
if (["ENOENT", "EACCES", "EPERM"].includes(error.code ?? ""))
|
|
41
38
|
return resolve(repo);
|
|
42
39
|
throw error;
|
|
@@ -59,8 +56,6 @@ export async function addDesktopProjects(stateDir, store, paths, exact = false)
|
|
|
59
56
|
const enrolled = await updateRepos(join(dirname(current.databaseFile), "repos.json"), existing => addRepos(existing, repos));
|
|
60
57
|
if (!enrolled.ok)
|
|
61
58
|
throw new Error(enrolled.message);
|
|
62
|
-
// Native helpers and the browser share this database lock. Read/merge/write
|
|
63
|
-
// synchronously under it so simultaneous selections cannot lose a project.
|
|
64
59
|
return store.transact(() => {
|
|
65
60
|
const latest = readDesktopConfig(stateDir);
|
|
66
61
|
latest.repos = [...new Set([...latest.repos, ...repos])];
|
|
@@ -85,8 +80,6 @@ export function openDesktopStore(file) {
|
|
|
85
80
|
}
|
|
86
81
|
export function openConfiguredDesktopStore(stateDir) {
|
|
87
82
|
const config = readDesktopConfig(stateDir);
|
|
88
|
-
// Only a recorded first-time setup may create a queue. An established or
|
|
89
|
-
// legacy installation whose database disappeared must fail closed.
|
|
90
83
|
let store;
|
|
91
84
|
if (config.databaseInitialized === false)
|
|
92
85
|
store = openDesktopStore(config.databaseFile);
|
|
@@ -112,12 +105,10 @@ export function openConfiguredDesktopStore(stateDir) {
|
|
|
112
105
|
throw error;
|
|
113
106
|
}
|
|
114
107
|
}
|
|
115
|
-
/** Recovery controls must not depend on opening or migrating the task store. */
|
|
116
108
|
export function desktopDatabaseStatus(file) {
|
|
117
109
|
let db;
|
|
118
110
|
const result = (ready, message) => ({ ready, message, expectedSchema: SCHEMA_VERSION });
|
|
119
111
|
try {
|
|
120
|
-
// Read-only open: a missing/unreadable file must never become a new queue.
|
|
121
112
|
db = new createRequire(import.meta.url)("node:sqlite").DatabaseSync(file, { readOnly: true });
|
|
122
113
|
db.exec("PRAGMA busy_timeout = 1000");
|
|
123
114
|
const schema = readSchemaVersion(db);
|
|
@@ -160,7 +151,6 @@ function legacyLogin(file) {
|
|
|
160
151
|
return null;
|
|
161
152
|
}
|
|
162
153
|
}
|
|
163
|
-
/** Share `up`'s existing durable credential, without replacing another login. */
|
|
164
154
|
export function pairDesktopLogin(store, file, login) {
|
|
165
155
|
if (!/^[A-Za-z0-9_.-]{1,64}$/.test(login.name) || login.password.length < 8 || login.password.trim() !== login.password || /[\r\n\u0000]/.test(login.password))
|
|
166
156
|
throw new Error("Use a valid username and a password of at least eight characters without surrounding whitespace or line breaks.");
|
|
@@ -169,7 +159,6 @@ export function pairDesktopLogin(store, file, login) {
|
|
|
169
159
|
throw new Error("This username and password do not match an active operator.");
|
|
170
160
|
const remembered = legacyLogin(file);
|
|
171
161
|
if (remembered === null) {
|
|
172
|
-
// File before row, as in `up`: a crashed bootstrap can adopt the same intent.
|
|
173
162
|
writeLoginFileDurably(file, login.name, login.password);
|
|
174
163
|
}
|
|
175
164
|
else if (!(first && remembered.name === login.name && remembered.password === login.password) && !authenticateApprover(store, remembered.name, remembered.password).ok) {
|
|
@@ -180,7 +169,6 @@ export function pairDesktopLogin(store, file, login) {
|
|
|
180
169
|
if (!authenticateApprover(store, login.name, login.password).ok)
|
|
181
170
|
throw new Error("Another operator was created during setup. Sign in again.");
|
|
182
171
|
}
|
|
183
|
-
/** The desktop service definition the shell asks for: the shared launchd contract, labelled by the shell. */
|
|
184
172
|
export function desktopServiceDefinition(stateDir, args) {
|
|
185
173
|
const runtimeDir = dirname(args.node);
|
|
186
174
|
const home = args.home ?? homedir();
|
|
@@ -195,7 +183,6 @@ export function desktopServiceDefinition(stateDir, args) {
|
|
|
195
183
|
pathEnv: [runtimeDir, ...(args.providerBin ? [args.providerBin] : []), join(home, ".local", "bin"), "/opt/homebrew/bin", "/usr/local/bin", "/usr/bin", "/bin", "/usr/sbin", "/sbin"].join(":"),
|
|
196
184
|
});
|
|
197
185
|
}
|
|
198
|
-
/** The fresh-liveness check: the controller answers its identity challenge on the configured port. */
|
|
199
186
|
export async function verifyDesktopLiveness(config, fetchImpl = fetch) {
|
|
200
187
|
const challenge = randomBytes(32).toString("hex");
|
|
201
188
|
try {
|
|
@@ -212,7 +199,6 @@ export async function verifyDesktopLiveness(config, fetchImpl = fetch) {
|
|
|
212
199
|
return { alive: false, port: config.port, problem: `no controller answered on port ${config.port} (${error instanceof Error ? error.message : String(error)})` };
|
|
213
200
|
}
|
|
214
201
|
}
|
|
215
|
-
/** `service-start | service-stop | service-status --node <path> --helper <path> --label <label>`: the shell's service verbs, on the shared lifecycle. */
|
|
216
202
|
export async function desktopServiceCommand(verb, stateDir, config, argv, supervise = execRun) {
|
|
217
203
|
const read = (name) => {
|
|
218
204
|
const at = argv.indexOf(`--${name}`);
|
|
@@ -237,8 +223,6 @@ export async function desktopServiceCommand(verb, stateDir, config, argv, superv
|
|
|
237
223
|
}
|
|
238
224
|
if (config.repos.length === 0)
|
|
239
225
|
throw new Error("Choose a repository in the desktop app first.");
|
|
240
|
-
// Fail before installing/reloading launchd. Stop and Status deliberately
|
|
241
|
-
// skip this gate, including when an incompatible update was installed.
|
|
242
226
|
const database = desktopDatabaseStatus(config.databaseFile);
|
|
243
227
|
if (!database.ready)
|
|
244
228
|
throw new Error(database.message);
|
|
@@ -253,7 +237,6 @@ export async function desktopServiceCommand(verb, stateDir, config, argv, superv
|
|
|
253
237
|
finally {
|
|
254
238
|
opened.store.close();
|
|
255
239
|
}
|
|
256
|
-
// The log stays private: the service writes into the state directory only.
|
|
257
240
|
if (!existsSync(definition.logPath))
|
|
258
241
|
writeFileSync(definition.logPath, "", { mode: 0o600 });
|
|
259
242
|
const started = await installLaunchdService(definition, supervise);
|
|
@@ -263,14 +246,10 @@ export async function desktopServiceCommand(verb, stateDir, config, argv, superv
|
|
|
263
246
|
}
|
|
264
247
|
if (verb === "service-stop") {
|
|
265
248
|
if (!argv.includes("--update-id") && existsSync(join(stateDir, "desktop-update.json"))) {
|
|
266
|
-
// An operator stop is durable and wins over later automatic recovery.
|
|
267
|
-
// A broken update record must not take away the ordinary Stop control.
|
|
268
249
|
try {
|
|
269
250
|
await (await import("./desktop-update.js")).requestUpdateStop(stateDir);
|
|
270
251
|
}
|
|
271
252
|
catch {
|
|
272
|
-
// If disk/receipt damage prevents a durable stop intent, disabling
|
|
273
|
-
// the exact recovery job is the independent fail-closed boundary.
|
|
274
253
|
const recoveryLabel = `${definition.label}.update`;
|
|
275
254
|
const recoveryStopped = await stopLaunchdService({ ...definition, label: recoveryLabel, unitPath: join(dirname(definition.unitPath), `${recoveryLabel}.plist`) }, supervise);
|
|
276
255
|
console.error(recoveryStopped.ok ? "The update stop request could not be recorded, so automatic update recovery was disabled. Preserve the update files and check Update status before restarting." : "The update stop request and recovery-service stop could not be confirmed. Check Update status and service logs before leaving this installation unattended.");
|
|
@@ -338,7 +317,6 @@ export async function desktopMain(argv, supervise = execRun) {
|
|
|
338
317
|
return;
|
|
339
318
|
}
|
|
340
319
|
if (argv[0] === "database-status") {
|
|
341
|
-
// Candidate-build preflight: no setup, login, supervisor, or project probe.
|
|
342
320
|
console.log(JSON.stringify(desktopDatabaseStatus(readDesktopConfig(stateDir).databaseFile)));
|
|
343
321
|
return;
|
|
344
322
|
}
|
|
@@ -370,9 +348,7 @@ export async function desktopMain(argv, supervise = execRun) {
|
|
|
370
348
|
}
|
|
371
349
|
return;
|
|
372
350
|
}
|
|
373
|
-
// Inspection and launch must never migrate another running controller.
|
|
374
351
|
const store = openConfiguredDesktopStore(stateDir);
|
|
375
|
-
// The saved login: in the reserved folder every agent fence denies (login-secrets.ts), else where older versions kept it.
|
|
376
352
|
const legacyFile = savedLoginFile(dirname(config.databaseFile));
|
|
377
353
|
if (argv[0] !== "serve-controller") {
|
|
378
354
|
try {
|
|
@@ -381,7 +357,6 @@ export async function desktopMain(argv, supervise = execRun) {
|
|
|
381
357
|
console.log(JSON.stringify({ ...config, names: store.listApprovers().map(one => one.name), importable: legacy !== null && authenticateApprover(store, legacy.name, legacy.password).ok }));
|
|
382
358
|
}
|
|
383
359
|
else if (argv[0] === "import-login") {
|
|
384
|
-
// Only the native helper's private stdout pipe receives this value.
|
|
385
360
|
const legacy = legacyLogin(legacyFile);
|
|
386
361
|
if (legacy === null || !authenticateApprover(store, legacy.name, legacy.password).ok)
|
|
387
362
|
throw new Error("No valid remembered login is available.");
|
|
@@ -389,7 +364,6 @@ export async function desktopMain(argv, supervise = execRun) {
|
|
|
389
364
|
}
|
|
390
365
|
else if (argv[0] === "pair") {
|
|
391
366
|
const login = await readInput();
|
|
392
|
-
// A login saved here goes into the reserved folder, made and proven first; an older one moves in.
|
|
393
367
|
migrateLegacyLogin(dirname(config.databaseFile));
|
|
394
368
|
ensureSecretsDir(dirname(config.databaseFile));
|
|
395
369
|
pairDesktopLogin(store, savedLoginFile(dirname(config.databaseFile)), login);
|
|
@@ -435,9 +409,6 @@ export async function desktopMain(argv, supervise = execRun) {
|
|
|
435
409
|
store.close();
|
|
436
410
|
throw new Error("Choose a repository in the desktop app first.");
|
|
437
411
|
}
|
|
438
|
-
// Persist the legacy default once, under the same lock as project edits.
|
|
439
|
-
// Explicit identity makes a restart await its predecessor's real liveness
|
|
440
|
-
// fences instead of creating hostname-2 and stranding the old worker's work.
|
|
441
412
|
if (config.runnerName === undefined || config.containment === undefined) {
|
|
442
413
|
config = store.transact(() => {
|
|
443
414
|
const latest = readDesktopConfig(stateDir);
|
|
@@ -454,8 +425,6 @@ export async function desktopMain(argv, supervise = execRun) {
|
|
|
454
425
|
});
|
|
455
426
|
}
|
|
456
427
|
store.close();
|
|
457
|
-
// Only the real controller writes these receipts. A foreground helper's
|
|
458
|
-
// successful read would not establish launchd/TCC access for the worker.
|
|
459
428
|
let checking = false, lastSelection = "", lastRequest = "";
|
|
460
429
|
const checkAccess = async () => {
|
|
461
430
|
if (checking)
|
|
@@ -480,9 +449,6 @@ export async function desktopMain(argv, supervise = execRun) {
|
|
|
480
449
|
await checkAccess();
|
|
481
450
|
const accessTimer = setInterval(() => { void checkAccess().catch(() => { }); }, 2000);
|
|
482
451
|
accessTimer.unref();
|
|
483
|
-
// Reuse the same registry supervisor, worker, custody, and recovery paths as
|
|
484
|
-
// the CLI. The service parent owns this controller; closing the web view
|
|
485
|
-
// owns nothing here. `serve-controller` is its child entry, never a new engine.
|
|
486
452
|
const remembered = legacyLogin(legacyFile);
|
|
487
453
|
let exit;
|
|
488
454
|
try {
|
|
@@ -10,16 +10,11 @@ const statements = (id, frozen = false) => {
|
|
|
10
10
|
`CREATE TRIGGER ${prefix}claim BEFORE INSERT ON claim BEGIN SELECT RAISE(ABORT, '${UPDATE_PAUSED} [${id}]'); END`,
|
|
11
11
|
`CREATE TRIGGER ${prefix}mate BEFORE INSERT ON mate_turn BEGIN SELECT RAISE(ABORT, '${UPDATE_PAUSED} [${id}]'); END`,
|
|
12
12
|
`CREATE TRIGGER ${prefix}run BEFORE INSERT ON run ${frozen ? "" : "WHEN NEW.parent_run IS NULL AND NOT EXISTS (SELECT 1 FROM claim WHERE lease_id=NEW.lease_id AND released_at IS NULL) "}BEGIN SELECT RAISE(ABORT, '${UPDATE_PAUSED} [${id}]'); END`,
|
|
13
|
-
// An already-owned lead turn may finish its remaining provider steps.
|
|
14
13
|
`CREATE TRIGGER ${prefix}chat BEFORE INSERT ON chat_turn ${frozen ? "" : "WHEN NEW.mate_turn IS NULL "}BEGIN SELECT RAISE(ABORT, '${UPDATE_PAUSED} [${id}]'); END`,
|
|
15
14
|
];
|
|
16
15
|
};
|
|
17
|
-
/** A gate statement as SQLite may keep it: a table RENAME re-quotes names, and a later build may name the lead's turns
|
|
18
|
-
* lead_turn (D5). This build's updater lifts a gate it made under either name. */
|
|
19
16
|
const same = (sql) => sql.replace(/"([A-Za-z_][A-Za-z0-9_]*)"/g, "$1").replace(/\b(?:mate|lead)_turn\b/g, "mate_turn");
|
|
20
17
|
const owns = (wanted, sql) => wanted.map(same).includes(same(String(sql)));
|
|
21
|
-
/** SQLite enforces the gate even for a CLI racing an old in-memory snapshot.
|
|
22
|
-
* Existing leases, replies, heartbeats and task data remain writable. */
|
|
23
18
|
export function installUpdateGate(db, id) {
|
|
24
19
|
const wanted = statements(id);
|
|
25
20
|
db.exec("BEGIN IMMEDIATE");
|
|
@@ -70,12 +65,9 @@ export function activeUpdateWork(db) {
|
|
|
70
65
|
conversations: count("SELECT count(*) n FROM mate_turn WHERE state IN ('queued','running')") + count("SELECT count(*) n FROM chat_turn WHERE state IN ('queued','running')"),
|
|
71
66
|
stopping: count("SELECT count(*) n FROM run_stop WHERE settled_at IS NULL"),
|
|
72
67
|
...activeCodingUpdateWork(db),
|
|
73
|
-
// Live terminals in a console that is still running (terminal-catalog.ts).
|
|
74
68
|
...activeTerminalUpdateWork(db),
|
|
75
69
|
};
|
|
76
70
|
}
|
|
77
|
-
/** Last admission race closes in the same SQLite write transaction as the
|
|
78
|
-
* empty-work check. Existing work is never killed to satisfy an update. */
|
|
79
71
|
export function freezeUpdateGate(db, id) {
|
|
80
72
|
db.exec("BEGIN IMMEDIATE");
|
|
81
73
|
try {
|