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/daemon.js
CHANGED
|
@@ -1,40 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The daemon manager: the loop as a service, with no crontab in sight.
|
|
3
|
-
*
|
|
4
|
-
* `toolroll daemon install` writes the platform's own supervision unit —
|
|
5
|
-
* a launchd LaunchAgent on macOS, a systemd user unit on Linux, a Task
|
|
6
|
-
* Scheduler task on Windows, chosen by process.platform — pointed at
|
|
7
|
-
* `toolroll watch`, and loads it. The OS keeps it alive across crashes
|
|
8
|
-
* and reboots; watch's incarnation recovery is what makes those restarts
|
|
9
|
-
* safe, so the two halves were built for each other.
|
|
10
|
-
*
|
|
11
|
-
* The runner token never enters the unit file. It is written 0600 to a
|
|
12
|
-
* credential file beside the database (the same discipline as the Telegram
|
|
13
|
-
* bot token), and the unit runs `watch --token-file <path>`. A unit file is
|
|
14
|
-
* the kind of thing that ends up in a dotfiles repo; a credential file
|
|
15
|
-
* beside the database is the kind of thing backup tooling already treats
|
|
16
|
-
* as sensitive.
|
|
17
|
-
*
|
|
18
|
-
* The lifecycle (OS containment and login recovery plan) is ONE contract
|
|
19
|
-
* for the CLI daemon and the desktop service, which share the launchd road
|
|
20
|
-
* below:
|
|
21
|
-
* - an installed always-on controller restarts after an unexpected
|
|
22
|
-
* clean exit as well as a crash (launchd KeepAlive=true, systemd
|
|
23
|
-
* Restart=always, a cmd restart loop under Task Scheduler);
|
|
24
|
-
* - start is idempotent — a healthy running service is never killed
|
|
25
|
-
* because the installer or the app window ran again;
|
|
26
|
-
* - a CHANGED definition (runtime, entry, flags) really reloads: the old
|
|
27
|
-
* job is booted out, its disappearance is awaited (the pending-bootout
|
|
28
|
-
* race), and the new unit is bootstrapped;
|
|
29
|
-
* - explicit stop unloads AND disables, so nothing relaunches it until a
|
|
30
|
-
* person installs again — which re-enables;
|
|
31
|
-
* - status tells a loaded definition from a fresh working controller,
|
|
32
|
-
* and names a missing runtime, a missing entry, or a disabled service.
|
|
33
|
-
*
|
|
34
|
-
* Everything here is generation plus one supervisor invocation, both
|
|
35
|
-
* injectable — the tests read the generated unit and script `launchctl`,
|
|
36
|
-
* and never touch the machine's real supervision.
|
|
37
|
-
*/
|
|
38
1
|
import { chmodSync, closeSync, existsSync, fsyncSync, mkdirSync, openSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
39
2
|
import { createHash, randomUUID } from "node:crypto";
|
|
40
3
|
import { homedir } from "node:os";
|
|
@@ -43,16 +6,9 @@ import { dirname, join } from "node:path";
|
|
|
43
6
|
import { isAlive } from "./runner.js";
|
|
44
7
|
import { envTwins } from "./names.js";
|
|
45
8
|
import { sleep as defaultSleep } from "./sleep.js";
|
|
46
|
-
/** A stable fingerprint of a unit's text: the changed-definition test. */
|
|
47
9
|
export function definitionDigest(unitContent) {
|
|
48
10
|
return createHash("sha256").update(unitContent).digest("hex").slice(0, 16);
|
|
49
11
|
}
|
|
50
|
-
/**
|
|
51
|
-
* `launchctl bootout` can return before the old label has disappeared from
|
|
52
|
-
* the user domain. Bootstrapping the replacement during that short window
|
|
53
|
-
* appears to succeed, then the pending bootout removes the new job too. Wait
|
|
54
|
-
* for the observable supervisor boundary before loading the replacement.
|
|
55
|
-
*/
|
|
56
12
|
async function waitForLaunchdBootout(run, service, attempts = 50, sleep = defaultSleep) {
|
|
57
13
|
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
58
14
|
const status = await run("launchctl", ["print", service]);
|
|
@@ -62,16 +18,6 @@ async function waitForLaunchdBootout(run, service, attempts = 50, sleep = defaul
|
|
|
62
18
|
}
|
|
63
19
|
return false;
|
|
64
20
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Pin a service to the Node runtime that is executing Toolroll.
|
|
67
|
-
*
|
|
68
|
-
* launchd does not inherit an interactive shell's PATH, so invoking a JS
|
|
69
|
-
* package bin through `#!/usr/bin/env node` can install successfully and then
|
|
70
|
-
* fail before the CLI starts. The service instead runs the absolute Node
|
|
71
|
-
* binary with the package entry as its first argument. An explicitly supplied
|
|
72
|
-
* non-JavaScript executable remains an escape hatch for wrappers and packaged
|
|
73
|
-
* binaries.
|
|
74
|
-
*/
|
|
75
21
|
export function daemonLaunchCommand(args) {
|
|
76
22
|
if (args.explicitBin !== undefined) {
|
|
77
23
|
return /\.(?:c|m)?js$/i.test(args.explicitBin)
|
|
@@ -82,11 +28,9 @@ export function daemonLaunchCommand(args) {
|
|
|
82
28
|
return null;
|
|
83
29
|
return { bin: args.execPath, binArgs: [args.entry] };
|
|
84
30
|
}
|
|
85
|
-
/** One service per repo, named so two repos' watches never collide. */
|
|
86
31
|
export function labelFor(repo) {
|
|
87
32
|
return `com.toolroll.watch.${watchSlug(repo)}`;
|
|
88
33
|
}
|
|
89
|
-
/** The label a watch installed before the rename to Toolroll runs under: still found, stopped and uninstalled. */
|
|
90
34
|
export function legacyLabelFor(repo) {
|
|
91
35
|
return `com.standing-orders.watch.${watchSlug(repo)}`;
|
|
92
36
|
}
|
|
@@ -98,17 +42,9 @@ function watchSlug(repo) {
|
|
|
98
42
|
.slice(-40);
|
|
99
43
|
return slug === "" ? "root" : slug;
|
|
100
44
|
}
|
|
101
|
-
/** The uid launchd's gui domain is keyed by. */
|
|
102
45
|
function launchdUid() {
|
|
103
46
|
return typeof process.getuid === "function" ? process.getuid() : 501;
|
|
104
47
|
}
|
|
105
|
-
/**
|
|
106
|
-
* The launchd unit shared by the CLI daemon and the desktop service.
|
|
107
|
-
* KeepAlive requests relaunch after either clean exit or crash. macOS may
|
|
108
|
-
* defer nondemand launches; the desktop's live controller supervisor covers
|
|
109
|
-
* controller exits independently. Login/OS-service recovery requires the
|
|
110
|
-
* physical certification, not just a valid plist.
|
|
111
|
-
*/
|
|
112
48
|
export function launchdPlist(args) {
|
|
113
49
|
if (args.startInterval !== undefined && (!Number.isSafeInteger(args.startInterval) || args.startInterval < 1))
|
|
114
50
|
throw Error("Invalid launchd start interval.");
|
|
@@ -116,8 +52,6 @@ export function launchdPlist(args) {
|
|
|
116
52
|
throw new Error("Invalid associated app bundle identifier.");
|
|
117
53
|
const escaped = args.command.map(part => ` <string>${xml(part)}</string>`).join("\n");
|
|
118
54
|
const digest = createHash("sha256").update(JSON.stringify(args));
|
|
119
|
-
// Include executable and package code identity so an update at the same
|
|
120
|
-
// path reloads the service. Files are only read; credentials are excluded.
|
|
121
55
|
for (const file of args.command.slice(0, 2)) {
|
|
122
56
|
try {
|
|
123
57
|
if (file && existsSync(file))
|
|
@@ -173,10 +107,6 @@ ${environment}
|
|
|
173
107
|
</plist>
|
|
174
108
|
`;
|
|
175
109
|
}
|
|
176
|
-
/**
|
|
177
|
-
* Everything `install` would do, computed without doing it — the unit text,
|
|
178
|
-
* where it goes, where logs land. `--dry-run` prints exactly this.
|
|
179
|
-
*/
|
|
180
110
|
export function planDaemon(args) {
|
|
181
111
|
const { platform, bin, binArgs, runner, repo, configDir, watchFlags } = args;
|
|
182
112
|
const home = args.home ?? homedir();
|
|
@@ -216,14 +146,6 @@ export function planDaemon(args) {
|
|
|
216
146
|
};
|
|
217
147
|
}
|
|
218
148
|
if (platform === "win32") {
|
|
219
|
-
// Task Scheduler is Windows' launchd: a logon-triggered task, restarted
|
|
220
|
-
// on failure, created from an XML definition — no admin, no Service
|
|
221
|
-
// wrapper. schtasks does not redirect output, so the action runs
|
|
222
|
-
// through cmd with an append redirection into the same log file the
|
|
223
|
-
// other platforms use. RestartOnFailure covers a crash only; a clean
|
|
224
|
-
// exit would end the task, so the action itself is a bounded restart
|
|
225
|
-
// loop (15 s between runs, like ThrottleInterval) — `schtasks /End`
|
|
226
|
-
// (explicit stop) ends the loop's whole tree.
|
|
227
149
|
const inner = [quoteWin(bin), ...binArgs.map(quoteWin), "watch",
|
|
228
150
|
"--runner", quoteWin(runner), "--token-file", quoteWin(tokenFile),
|
|
229
151
|
"--repo", quoteWin(repo), ...watchFlags.map(quoteWin)].join(" ");
|
|
@@ -269,10 +191,6 @@ export function planDaemon(args) {
|
|
|
269
191
|
entry,
|
|
270
192
|
};
|
|
271
193
|
}
|
|
272
|
-
// Restart=always: a clean exit the operator did not ask for comes back
|
|
273
|
-
// too; `systemctl --user stop` / `disable --now` (explicit stop) does
|
|
274
|
-
// not trigger a restart. Whether the user manager itself survives logout
|
|
275
|
-
// is linger (`loginctl enable-linger`) — documented, not assumed.
|
|
276
194
|
const unitContent = `[Unit]
|
|
277
195
|
Description=toolroll watch — ${repo}
|
|
278
196
|
|
|
@@ -300,7 +218,6 @@ WantedBy=default.target
|
|
|
300
218
|
entry,
|
|
301
219
|
};
|
|
302
220
|
}
|
|
303
|
-
/** The desktop shell's always-on controller: the same launchd contract, pointed at the desktop host. */
|
|
304
221
|
export function planDesktopService(args) {
|
|
305
222
|
const home = args.home ?? homedir();
|
|
306
223
|
const logPath = join(args.stateDir, "service.log");
|
|
@@ -322,21 +239,11 @@ export function planDesktopService(args) {
|
|
|
322
239
|
entry: args.helper,
|
|
323
240
|
};
|
|
324
241
|
}
|
|
325
|
-
/** The file on disk does not identify the definition launchd has loaded. */
|
|
326
242
|
function loadedLaunchdMatches(unit, status) {
|
|
327
|
-
// Either name: a unit written before the rename carries only the older one.
|
|
328
243
|
const wanted = /<key>(?:TOOLROLL|STANDING_ORDERS)_SERVICE_DIGEST<\/key>\s*<string>([a-f0-9]{64})<\/string>/.exec(unit)?.[1];
|
|
329
244
|
const actual = /(?:TOOLROLL|STANDING_ORDERS)_SERVICE_DIGEST\s*=>\s*([a-f0-9]{64})/.exec(status)?.[1];
|
|
330
245
|
return wanted !== undefined && actual === wanted;
|
|
331
246
|
}
|
|
332
|
-
/**
|
|
333
|
-
* The shared launchd road. Idempotent start: a loaded job whose definition
|
|
334
|
-
* is unchanged is kickstarted WITHOUT -k (a running one is left alone; a
|
|
335
|
-
* stopped one starts); a loaded job whose definition changed is booted out,
|
|
336
|
-
* awaited, and bootstrapped afresh; an unloaded label is enabled (an
|
|
337
|
-
* explicit stop had disabled it) and bootstrapped. Nothing here kills a
|
|
338
|
-
* healthy service to prove it can.
|
|
339
|
-
*/
|
|
340
247
|
export async function installLaunchdService(definition, run) {
|
|
341
248
|
const uid = launchdUid();
|
|
342
249
|
const service = `gui/${uid}/${definition.label}`;
|
|
@@ -363,28 +270,21 @@ export async function installLaunchdService(definition, run) {
|
|
|
363
270
|
return { ok: false, message: "launchd did not finish stopping the previous worker; try the install again" };
|
|
364
271
|
}
|
|
365
272
|
}
|
|
366
|
-
// An explicit stop disables the label; installing again is the only road back.
|
|
367
273
|
const enabled = await run("launchctl", ["enable", service]);
|
|
368
274
|
if (enabled.code !== 0)
|
|
369
275
|
return { ok: false, message: `launchctl could not enable the service: ${firstLine(enabled.stderr) || enabled.code}` };
|
|
370
276
|
const modern = await run("launchctl", ["bootstrap", `gui/${uid}`, definition.unitPath]);
|
|
371
277
|
if (modern.code === 0) {
|
|
372
|
-
// RunAtLoad starts the job; the kickstart (no -k: never a restart) gives
|
|
373
|
-
// the installer a synchronous boundary instead of "the plist parsed".
|
|
374
278
|
const started = await run("launchctl", ["kickstart", service]);
|
|
375
279
|
if (started.code === 0)
|
|
376
280
|
return { ok: true, changed, action: loaded ? "reloaded" : "bootstrapped" };
|
|
377
281
|
return { ok: false, message: `loaded, but launchctl could not start the worker: ${firstLine(started.stderr) || `exit ${started.code}`}` };
|
|
378
282
|
}
|
|
379
|
-
// Modern first, legacy fallback: `bootstrap` replaced `load` but older
|
|
380
|
-
// macOS answers only to the old verb.
|
|
381
283
|
const legacy = await run("launchctl", ["load", "-w", definition.unitPath]);
|
|
382
284
|
if (legacy.code === 0)
|
|
383
285
|
return { ok: true, changed, action: loaded ? "reloaded" : "bootstrapped" };
|
|
384
286
|
return { ok: false, message: `launchctl refused the unit: ${firstLine(modern.stderr) || firstLine(legacy.stderr) || `exit ${legacy.code}`}` };
|
|
385
287
|
}
|
|
386
|
-
/** Replace a file whole: a flushed temporary beside it, renamed over it, and the directory flushed, so a crash
|
|
387
|
-
* leaves the old text or the new, never a torn one. */
|
|
388
288
|
export function writeFileDurably(file, content, mode = 0o600) {
|
|
389
289
|
const temp = join(dirname(file), `.${file.slice(dirname(file).length + 1)}.${randomUUID().slice(0, 8)}.tmp`);
|
|
390
290
|
const fd = openSync(temp, "wx", mode);
|
|
@@ -407,8 +307,6 @@ export function writeFileDurably(file, content, mode = 0o600) {
|
|
|
407
307
|
}
|
|
408
308
|
}
|
|
409
309
|
}
|
|
410
|
-
/** Explicit stop: unload AND disable, so nothing relaunches it until a person installs again. `waitMs` is how long
|
|
411
|
-
* the job may take to leave launchd (5 s by default; a watch's `toolroll up` can take 45 s to exit). */
|
|
412
310
|
export async function stopLaunchdService(definition, run, wait = {}) {
|
|
413
311
|
const service = `gui/${launchdUid()}/${definition.label}`;
|
|
414
312
|
const disabled = await run("launchctl", ["disable", service]);
|
|
@@ -421,23 +319,10 @@ export async function stopLaunchdService(definition, run, wait = {}) {
|
|
|
421
319
|
return { ok: false, message: `launchctl did not stop ${definition.label}; the service is still loaded` };
|
|
422
320
|
return { ok: true, wasLoaded: modern.code === 0 };
|
|
423
321
|
}
|
|
424
|
-
/**
|
|
425
|
-
* The same repo's watch as installed under the label it had before the
|
|
426
|
-
* rename to Toolroll, when its unit is still on disk; null otherwise.
|
|
427
|
-
* Installing the new one stops and removes it, so two watches never run.
|
|
428
|
-
*/
|
|
429
322
|
export function installedLegacyDaemon(args) {
|
|
430
323
|
const legacy = planDaemon({ ...args, label: legacyLabelFor(args.repo) });
|
|
431
324
|
return "error" in legacy || !existsSync(legacy.unitPath) ? null : legacy;
|
|
432
325
|
}
|
|
433
|
-
/**
|
|
434
|
-
* Install the watch, then retire its copy from before the rename. The new
|
|
435
|
-
* job goes in first: when its install fails the legacy watch is left
|
|
436
|
-
* running, so the repo is never left without one. Only once the new job is
|
|
437
|
-
* installed is the legacy one stopped and removed; the new one is then
|
|
438
|
-
* started again, since it may have stepped aside while the legacy watch
|
|
439
|
-
* still held the repo's lease.
|
|
440
|
-
*/
|
|
441
326
|
export async function installReplacingLegacy(plan, token, legacy, run) {
|
|
442
327
|
const installed = await installDaemon(plan, token, run);
|
|
443
328
|
if (!installed.ok || legacy === null)
|
|
@@ -451,7 +336,6 @@ export async function installReplacingLegacy(plan, token, legacy, run) {
|
|
|
451
336
|
const restarted = await installDaemon(plan, token, run);
|
|
452
337
|
return restarted.ok ? installed : restarted;
|
|
453
338
|
}
|
|
454
|
-
/** Write the token 0600 and the unit, then hand the unit to the supervisor. */
|
|
455
339
|
export async function installDaemon(plan, token, run) {
|
|
456
340
|
writeFileSync(plan.tokenFile, `${token}\n`, { mode: 0o600 });
|
|
457
341
|
chmodSync(plan.tokenFile, 0o600);
|
|
@@ -463,9 +347,6 @@ export async function installDaemon(plan, token, run) {
|
|
|
463
347
|
mkdirSync(join(plan.unitPath, ".."), { recursive: true });
|
|
464
348
|
writeFileSync(plan.unitPath, plan.unitContent, { mode: 0o644 });
|
|
465
349
|
if (plan.platform === "win32") {
|
|
466
|
-
// /F replaces an existing definition, so re-install is idempotent. A
|
|
467
|
-
// task already running under an UNCHANGED definition is left alone; a
|
|
468
|
-
// changed one is ended and run again so the new action takes effect.
|
|
469
350
|
const created = await run("schtasks", ["/Create", "/TN", plan.label, "/XML", plan.unitPath, "/F"]);
|
|
470
351
|
if (created.code !== 0) {
|
|
471
352
|
return { ok: false, message: `schtasks /Create failed: ${firstLine(created.stderr) || `exit ${created.code}`}` };
|
|
@@ -488,8 +369,6 @@ export async function installDaemon(plan, token, run) {
|
|
|
488
369
|
}
|
|
489
370
|
const active = (await run("systemctl", ["--user", "is-active", plan.label])).stdout.trim() === "active";
|
|
490
371
|
if (active && changed) {
|
|
491
|
-
// `enable --now` leaves a running service on its OLD definition; only a
|
|
492
|
-
// restart loads the new one.
|
|
493
372
|
const restarted = await run("systemctl", ["--user", "restart", plan.label]);
|
|
494
373
|
if (restarted.code !== 0)
|
|
495
374
|
return { ok: false, message: `systemctl restart failed: ${firstLine(restarted.stderr)}` };
|
|
@@ -522,12 +401,6 @@ export async function uninstallDaemon(plan, run) {
|
|
|
522
401
|
}
|
|
523
402
|
return { ok: true, existed };
|
|
524
403
|
}
|
|
525
|
-
/**
|
|
526
|
-
* The definition a label is INSTALLED under, read back from the unit file
|
|
527
|
-
* (the certificate's view: whatever is on disk is the baseline, so `stale`
|
|
528
|
-
* is false by construction and the runtime/entry are the installed ones).
|
|
529
|
-
* Null when no unit file exists for the label.
|
|
530
|
-
*/
|
|
531
404
|
export function installedServiceDefinition(args) {
|
|
532
405
|
const platform = args.platform ?? process.platform;
|
|
533
406
|
if (platform !== "darwin" && platform !== "linux" && platform !== "win32")
|
|
@@ -558,7 +431,6 @@ export function installedServiceDefinition(args) {
|
|
|
558
431
|
function unxml(text) {
|
|
559
432
|
return text.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");
|
|
560
433
|
}
|
|
561
|
-
/** Runtime facts that make a loaded definition unable to become a working controller. */
|
|
562
434
|
export function runtimeProblems(definition) {
|
|
563
435
|
const problems = [];
|
|
564
436
|
if (!existsSync(definition.bin))
|
|
@@ -617,14 +489,6 @@ export async function daemonStatus(plan, run) {
|
|
|
617
489
|
? { state: "running", pid: pid > 0 ? pid : null, detail: "active", ...facts }
|
|
618
490
|
: { state: "loaded", pid: null, detail: "installed, inactive", ...facts };
|
|
619
491
|
}
|
|
620
|
-
/**
|
|
621
|
-
* A supervisor PID is necessary but not sufficient: macOS can leave a
|
|
622
|
-
* process stuck behind a protected-folder access check before it ever
|
|
623
|
-
* opens the queue. The credentialed runner heartbeat is the end-to-end
|
|
624
|
-
* readiness receipt that proves a service reached the work loop — and a
|
|
625
|
-
* FRESH one, newer than what stood before the start, so a stale row from
|
|
626
|
-
* the previous incarnation cannot pass for the new controller.
|
|
627
|
-
*/
|
|
628
492
|
export async function awaitFreshHeartbeat(store, runnerName, heartbeatBefore, deadlineMs = 5_000, sleep = defaultSleep) {
|
|
629
493
|
const deadline = Date.now() + deadlineMs;
|
|
630
494
|
for (;;) {
|
|
@@ -639,7 +503,6 @@ export async function awaitFreshHeartbeat(store, runnerName, heartbeatBefore, de
|
|
|
639
503
|
function xml(text) {
|
|
640
504
|
return text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
641
505
|
}
|
|
642
|
-
/** cmd.exe quoting: wrap anything with spaces; embedded quotes are not survivable in cmd — refuse them upstream by construction (paths and flags here never carry them). */
|
|
643
506
|
function quoteWin(part) {
|
|
644
507
|
return /[\s&|<>^]/.test(part) ? `"${part}"` : part;
|
|
645
508
|
}
|
package/dist/database-reclaim.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/** Reclaim whole free pages on databases created without auto_vacuum. Call only after committing writes.
|
|
2
|
-
* A migration needs at least 1 MiB to justify the I/O; retention reclaims whenever more than 25% is free. */
|
|
3
1
|
export function reclaimDatabase(db, reason) {
|
|
4
2
|
const free = Number(db.prepare("PRAGMA freelist_count").get()["freelist_count"]);
|
|
5
3
|
const pages = Number(db.prepare("PRAGMA page_count").get()["page_count"]);
|
|
@@ -7,7 +5,6 @@ export function reclaimDatabase(db, reason) {
|
|
|
7
5
|
if (reason === "migration" ? free * size < 1024 * 1024 : free * 4 <= pages)
|
|
8
6
|
return false;
|
|
9
7
|
db.exec("VACUUM");
|
|
10
|
-
// VACUUM writes through WAL too: checkpoint so the main file (and its backups) shrinks now.
|
|
11
8
|
db.exec("PRAGMA wal_checkpoint(TRUNCATE)");
|
|
12
9
|
return true;
|
|
13
10
|
}
|
package/dist/decision.js
CHANGED
|
@@ -1,51 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The decision payload, validated (§7).
|
|
3
|
-
*
|
|
4
|
-
* The convention agents drift from in prose is a schema here, and the schema
|
|
5
|
-
* is fail-closed: a payload missing anything a person would need on a phone
|
|
6
|
-
* screen at 7am is not a decision, it is a malformed one — and the caller's
|
|
7
|
-
* next move is bounded repair, not a guess at what the agent meant.
|
|
8
|
-
*
|
|
9
|
-
* Everything in the payload is written by an agent, which means everything in
|
|
10
|
-
* it is untrusted twice over: it will be rendered into a web page, printed
|
|
11
|
-
* into terminals, and — after the operator answers — quoted back into another
|
|
12
|
-
* agent's brief. The caps and the control-character rejection here are the
|
|
13
|
-
* first line of that defence; the escaping at each sink is the second. The
|
|
14
|
-
* caps also keep one screen one screen: an option list that needs scrolling
|
|
15
|
-
* has already failed the milestone sentence.
|
|
16
|
-
*/
|
|
17
1
|
import { readDecisionPayload } from "./contracts/decision.js";
|
|
18
2
|
import { TEXT_LIMITS } from "./text-limits.js";
|
|
19
|
-
/** One screen's worth, enforced rather than hoped for. The payload's fields are bounded by its schema (src/contracts/decision.ts, from TEXT_LIMITS). */
|
|
20
3
|
export const LIMITS = {
|
|
21
|
-
/** Bytes, before parsing. Applied by the reader too; this is the backstop. */
|
|
22
4
|
payload: 64 * 1024,
|
|
23
|
-
/** UTF-16 code units (TEXT_LIMITS.note: revise feedback, steering and decision notes); the byte backstop lives in validateNote. */
|
|
24
5
|
note: TEXT_LIMITS.note,
|
|
25
6
|
};
|
|
26
|
-
/** Bytes an operator's note may occupy — the UTF-8 backstop under LIMITS.note. */
|
|
27
7
|
export const NOTE_BYTE_CAP = TEXT_LIMITS.noteBytes;
|
|
28
|
-
/** Why a question closed without an answer (v119), in plain words. */
|
|
29
8
|
export function closedQuestionReason(reason) {
|
|
30
9
|
return reason === "scope-changed" ? "The scope changed, so planning started again." : "The task was cancelled.";
|
|
31
10
|
}
|
|
32
|
-
/** The same, said once on one line wherever its answer would show. */
|
|
33
11
|
export function closedQuestionWords(reason) {
|
|
34
12
|
return `Closed without an answer. ${closedQuestionReason(reason)}`;
|
|
35
13
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Unicode that reorders or breaks lines invisibly: bidi controls and the
|
|
38
|
-
* line/paragraph separators. A note carrying these can spoof what a
|
|
39
|
-
* reviewer SEES agreeing to — rejected outright, never stripped
|
|
40
|
-
* (Codex free-text review, prescribed caps).
|
|
41
|
-
*/
|
|
42
14
|
const FORBIDDEN_INVISIBLES = /[\u2028\u2029\u061C\u200E\u200F\u202A-\u202E\u2066-\u2069]/;
|
|
43
|
-
/**
|
|
44
|
-
* The one validator every note passes — before a draft persists AND inside
|
|
45
|
-
* the answer CAS, which stays the final gate. Trims, then refuses empty,
|
|
46
|
-
* oversized (units or bytes), control-carrying, or invisibly-reordering
|
|
47
|
-
* text. Ordinary Unicode with internal newlines and tabs passes untouched.
|
|
48
|
-
*/
|
|
49
15
|
export function validateNote(raw) {
|
|
50
16
|
const note = raw.trim();
|
|
51
17
|
if (note === "")
|
|
@@ -60,33 +26,14 @@ export function validateNote(raw) {
|
|
|
60
26
|
}
|
|
61
27
|
return { ok: true, note };
|
|
62
28
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Multi-line prose may contain newlines and tabs; nothing anywhere in a
|
|
65
|
-
* decision may contain the rest of C0/C1 — those are how text stops being
|
|
66
|
-
* text and starts being terminal escape sequences.
|
|
67
|
-
*/
|
|
68
|
-
// eslint-disable-next-line no-control-regex
|
|
69
29
|
const FORBIDDEN_MULTILINE = /[\u0000-\u0008\u000B-\u001F\u007F-\u009F]/;
|
|
70
|
-
// eslint-disable-next-line no-control-regex
|
|
71
30
|
const FORBIDDEN_SINGLE_LINE = /[\u0000-\u001F\u007F-\u009F]/;
|
|
72
|
-
/** Whether text carries controls that could become escapes at a sink. Newlines and tabs pass. */
|
|
73
31
|
export function hasForbiddenControls(text) {
|
|
74
32
|
return FORBIDDEN_MULTILINE.test(text);
|
|
75
33
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Controls OR direction-override invisibles — the full disguise kit. For
|
|
78
|
-
* text that becomes standing authority or a task identity (setup commands,
|
|
79
|
-
* imported issue titles): a title reading "fix docs" while spelled
|
|
80
|
-
* backwards is not a title, it is a costume.
|
|
81
|
-
*/
|
|
82
34
|
export function hasDisguisedText(text) {
|
|
83
35
|
return FORBIDDEN_MULTILINE.test(text) || FORBIDDEN_INVISIBLES.test(text);
|
|
84
36
|
}
|
|
85
|
-
/**
|
|
86
|
-
* A parked decision, read against its contract (src/contracts/decision.ts): fail closed, every problem at once, each
|
|
87
|
-
* naming its path (`options[1].reversible: required`) under the reason code the repair turn, incidents and tests have
|
|
88
|
-
* always used (`missing-reversible`). A decision written without `version` reads as it always did.
|
|
89
|
-
*/
|
|
90
37
|
export function parseDecision(raw) {
|
|
91
38
|
if (Buffer.byteLength(raw, "utf8") > LIMITS.payload) {
|
|
92
39
|
return refuse("too-large", `payload: over ${LIMITS.payload} bytes — one screen does not need that`);
|
|
@@ -117,12 +64,10 @@ export function parseDecision(raw) {
|
|
|
117
64
|
options: payload.options.map(option => ({ id: option.id, label: option.label.trim(), consequence: option.consequence.trim(), reversible: option.reversible })),
|
|
118
65
|
recommendation: recommendedId(payload.recommendation),
|
|
119
66
|
assignee: payload.assignee === undefined || payload.assignee === null ? null : payload.assignee.trim(),
|
|
120
|
-
// Normalized so the store's lexicographic-comparison invariant holds.
|
|
121
67
|
deadline: payload.deadline === undefined || payload.deadline === null ? null : new Date(Date.parse(payload.deadline)).toISOString(),
|
|
122
68
|
},
|
|
123
69
|
};
|
|
124
70
|
}
|
|
125
|
-
/** The reason code a contract issue has always had: `missing-recap`, `too-few-options`, `bad-option-id`. */
|
|
126
71
|
function decisionReasonOf(issue) {
|
|
127
72
|
const at = issue.path;
|
|
128
73
|
const text = (field) => (issue.kind === "too-long" ? `${field}-too-long` : `missing-${field}`);
|
|
@@ -146,14 +91,7 @@ function decisionReasonOf(issue) {
|
|
|
146
91
|
return text(at);
|
|
147
92
|
}
|
|
148
93
|
const decisionProblemOf = (issue) => ({ reason: decisionReasonOf(issue), message: issue.line });
|
|
149
|
-
/** True when `problems` name `field` or anything under it. */
|
|
150
94
|
const touched = (problems, field) => problems.some(problem => problem.message.startsWith(`${field}:`) || problem.message.startsWith(`${field}[`) || problem.message.startsWith(`${field}.`));
|
|
151
|
-
/**
|
|
152
|
-
* The rules JSON Schema cannot state, in plain code with named errors: text not blank once trimmed and free of control
|
|
153
|
-
* characters (a label or assignee on one line), unique option ids, a recommendation naming one of them, and a deadline
|
|
154
|
-
* that is a timestamp. Fields the contract already refused are skipped, so every problem is reported once and all at
|
|
155
|
-
* once.
|
|
156
|
-
*/
|
|
157
95
|
function decisionRuleProblems(body, contract) {
|
|
158
96
|
const problems = [];
|
|
159
97
|
const text = (value, path, slug, oneLine) => {
|
|
@@ -194,7 +132,6 @@ function decisionRuleProblems(body, contract) {
|
|
|
194
132
|
}
|
|
195
133
|
return problems;
|
|
196
134
|
}
|
|
197
|
-
/** The option id a recommendation names: a bare id, or the id before the first ":" in "<id>: why". */
|
|
198
135
|
function recommendedId(recommendation) {
|
|
199
136
|
const colon = recommendation.indexOf(":");
|
|
200
137
|
return (colon === -1 ? recommendation : recommendation.slice(0, colon)).trim();
|
|
@@ -214,14 +151,9 @@ function truncate(text, at) {
|
|
|
214
151
|
}
|
|
215
152
|
export const HANDOFF_VERSION = 2;
|
|
216
153
|
export const HANDOFF_CONCLUSION_CAP = 600;
|
|
217
|
-
/** The handoff's whole-file and list caps, exported so the brief states
|
|
218
|
-
* exactly what the parser holds it to (raw authority repair). */
|
|
219
154
|
export const HANDOFF_PAYLOAD_CAP = 16 * 1024;
|
|
220
155
|
export const HANDOFF_LIST_CAP = 8;
|
|
221
156
|
export const HANDOFF_ITEM_CAP = 240;
|
|
222
|
-
/** Agent prose is display material, not authority. Once the structural
|
|
223
|
-
* outcome is valid, excess verbosity is compacted deterministically rather
|
|
224
|
-
* than throwing away completed code and paying for a whole new attempt. */
|
|
225
157
|
function compactHandoffText(value, cap) {
|
|
226
158
|
const clean = value.replace(/\s+/g, " ").trim();
|
|
227
159
|
if (clean.length <= cap)
|
|
@@ -297,16 +229,6 @@ export function parseHandoff(raw) {
|
|
|
297
229
|
},
|
|
298
230
|
};
|
|
299
231
|
}
|
|
300
|
-
/**
|
|
301
|
-
* The compact error a repair turn is resumed with: every problem by name,
|
|
302
|
-
* then the one instruction. Written for an agent that already holds the
|
|
303
|
-
* context — it needs the list of what failed, not the theory of why.
|
|
304
|
-
*/
|
|
305
|
-
/**
|
|
306
|
-
* Every unattended agent runs headless (run 2085): its turn ending IS the
|
|
307
|
-
* process exiting, so a command left in the background, a wakeup or a loop
|
|
308
|
-
* never gets a second turn — the attempt just ends without its handoff.
|
|
309
|
-
*/
|
|
310
232
|
export const HEADLESS_RULE = [
|
|
311
233
|
"- You run headless: run every command in the foreground and wait for it,",
|
|
312
234
|
" however long it takes. Never background a command to wait on it, and",
|
package/dist/demo-chat.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat in `toolroll demo`: the scripted lead's conversation (src/demo.ts),
|
|
3
|
-
* rendered as plain server HTML with native forms. One small script keeps a
|
|
4
|
-
* running build's progress live; without it the page still works by reload.
|
|
5
|
-
*/
|
|
6
1
|
import { START_COMMAND } from "./first-run.js";
|
|
7
2
|
import { html, postForm } from "./html.js";
|
|
8
3
|
import { headlineOf } from "./task-status.js";
|
|
9
4
|
const SUGGESTIONS = ["Fix the flaky refund test", "Rewrite the empty Payouts page", "Put the new invoice view behind a flag"];
|
|
10
5
|
function hint() {
|
|
11
|
-
return html `<section class="demo-hint" aria-label="Get started"><h2 class="demo-hint-title">What should
|
|
6
|
+
return html `<section class="demo-hint" aria-label="Get started"><h2 class="demo-hint-title">What should we work on?</h2><p class="demo-hint-sub">Ask for something, like “fix the flaky refund test”, or start from one of these.</p>${postForm("/chat/demo/ask", SUGGESTIONS.map(one => html `<button type="submit" name="message" value="${one}">${one}</button>`), { attrs: { class: "demo-suggestions" } })}</section>`;
|
|
12
7
|
}
|
|
13
8
|
function planCard(exchange) {
|
|
14
9
|
const plan = exchange.plan;
|
|
@@ -38,7 +33,6 @@ function resultCard(exchange, result) {
|
|
|
38
33
|
if (result === null)
|
|
39
34
|
return html `<section class="card demo-result"><p class="meta">This result's saved evidence is unavailable.</p></section>`;
|
|
40
35
|
const passed = result.checks.status === "passed";
|
|
41
|
-
// The shared headline (task-status.ts): the same words as every real task.
|
|
42
36
|
const headline = headlineOf({ stage: exchange.state === "complete" ? "complete" : exchange.state === "sent-back" ? "building" : "finished",
|
|
43
37
|
checks: { status: passed ? "passed" : "failed", exitCode: null, head: null } });
|
|
44
38
|
const status = html `<span class="badge${headline === "Complete" ? " demo-complete" : headline === "Ready for review" ? " demo-ready" : ""}" data-headline="${headline}">${headline}</span>`;
|
|
@@ -48,14 +42,13 @@ function resultCard(exchange, result) {
|
|
|
48
42
|
: html `<p class="meta"><a href="${result.taskHref}">Open in Tasks</a></p>`;
|
|
49
43
|
return html `<section class="card demo-result" id="demo-${exchange.id}-work" aria-label="Result"><p class="demo-state">${status}<span class="meta">${exchange.plan.project}</span></p><h2>${exchange.plan.title}</h2><p>${exchange.plan.conclusion}</p><p class="meta">${summary}</p>${actions}${result.diff === null ? "" : html `<details class="demo-evidence"${exchange.state === "ready" ? html ` open` : ""}><summary>Changes</summary><pre class="demo-diff">${diffHtml(result.diff)}</pre></details>`}${result.checkLog === null ? "" : html `<details class="demo-evidence"><summary>Check log</summary><pre class="demo-log">${result.checkLog}</pre></details>`}${result.screenshot === null ? "" : html `<details class="demo-evidence"><summary>Screenshot</summary><figure><img src="${result.screenshot.href}" alt="${result.screenshot.caption}" width="960" height="600"><figcaption class="meta">${result.screenshot.caption}</figcaption></figure></details>`}</section>`;
|
|
50
44
|
}
|
|
51
|
-
/** The conversation itself; the live script swaps this region in place. */
|
|
52
45
|
export function demoThreadHtml(exchanges, resultOf) {
|
|
53
46
|
if (exchanges.length === 0)
|
|
54
47
|
return hint();
|
|
55
48
|
return html `${exchanges.map(exchange => {
|
|
56
49
|
const parts = [
|
|
57
50
|
html `<div class="demo-said demo-you"><p>${exchange.asked}</p></div>`,
|
|
58
|
-
html `<div class="demo-said demo-lead"><p class="demo-who"><span class="demo-avatar" aria-hidden="true">
|
|
51
|
+
html `<div class="demo-said demo-lead"><p class="demo-who"><span class="demo-avatar" aria-hidden="true">T</span>Toolroll</p><p>${exchange.reply}</p></div>`,
|
|
59
52
|
planCard(exchange),
|
|
60
53
|
];
|
|
61
54
|
if (exchange.state === "working")
|
|
@@ -63,19 +56,15 @@ export function demoThreadHtml(exchanges, resultOf) {
|
|
|
63
56
|
if (exchange.state === "ready" || exchange.state === "complete" || exchange.state === "sent-back")
|
|
64
57
|
parts.push(resultCard(exchange, resultOf(exchange)));
|
|
65
58
|
if (exchange.state === "complete") {
|
|
66
|
-
parts.push(html `<div class="demo-said demo-lead"><p class="demo-who"><span class="demo-avatar" aria-hidden="true">
|
|
59
|
+
parts.push(html `<div class="demo-said demo-lead"><p class="demo-who"><span class="demo-avatar" aria-hidden="true">T</span>Toolroll</p><p>Done. That's the whole loop: ask, approve, Ready, Complete. Ask for something else whenever you like.</p></div>`, html `<section class="card demo-handoff" data-demo-handoff aria-label="Your own project"><h2>Now try it on your own project</h2><p>In your repository's folder, run:</p><pre class="demo-command"><code>${START_COMMAND}</code></pre><p class="meta">It opens in that terminal. Press w there to open it in the browser.</p></section>`);
|
|
67
60
|
}
|
|
68
61
|
return html `<article class="demo-turn" id="demo-${exchange.id}">${parts}</article>`;
|
|
69
62
|
})}`;
|
|
70
63
|
}
|
|
71
64
|
export function demoChatHtml(input) {
|
|
72
65
|
const working = input.exchanges.some(one => one.state === "working");
|
|
73
|
-
return html `<div class="demo-chat${input.exchanges.length === 0 ? " demo-chat--empty" : ""}">${input.problem === null ? "" : html `<p class="problem" role="alert">${input.problem}</p>`}<div id="demo-thread" class="demo-thread" aria-live="polite" data-version="${input.version}" data-working="${working ? "1" : "0"}">${demoThreadHtml(input.exchanges, input.resultOf)}</div>${postForm("/chat/demo/ask", html `<label for="demo-message" class="so-sr-only">
|
|
66
|
+
return html `<div class="demo-chat${input.exchanges.length === 0 ? " demo-chat--empty" : ""}">${input.problem === null ? "" : html `<p class="problem" role="alert">${input.problem}</p>`}<div id="demo-thread" class="demo-thread" aria-live="polite" data-version="${input.version}" data-working="${working ? "1" : "0"}">${demoThreadHtml(input.exchanges, input.resultOf)}</div>${postForm("/chat/demo/ask", html `<label for="demo-message" class="so-sr-only">Ask for a change</label><div class="demo-composer-card"><textarea id="demo-message" name="message" rows="1" maxlength="500" placeholder="Ask for a change" required aria-describedby="demo-composer-hint"></textarea><div class="demo-composer-bar"><span id="demo-composer-hint">Enter to send · Shift + Enter for a new line</span><button type="submit" class="demo-primary demo-send" aria-label="Send"><svg aria-hidden="true" viewBox="0 0 16 16" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M8 13V3M3.5 7.5 8 3l4.5 4.5"/></svg></button></div></div>`, { attrs: { class: "demo-composer" } })}</div>`;
|
|
74
67
|
}
|
|
75
|
-
/**
|
|
76
|
-
* Keeps a running build live: polls while one is working and swaps the
|
|
77
|
-
* thread in place, unless the visitor is typing inside it. Enter sends.
|
|
78
|
-
*/
|
|
79
68
|
export const DEMO_CHAT_SCRIPT = `(() => {
|
|
80
69
|
const thread = () => document.getElementById("demo-thread");
|
|
81
70
|
let timer = 0;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { spawn as spawnChild } from "node:child_process";
|
|
2
|
+
import { chmodSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { SIGN_IN_LINK_MS, SIGN_IN_LINK_PATH } from "./server/session.js";
|
|
5
|
+
export function demoLoopbackOrigin(address) {
|
|
6
|
+
if (address === null || typeof address === "string")
|
|
7
|
+
return null;
|
|
8
|
+
if (!Number.isInteger(address.port) || address.port < 1 || address.port > 65_535)
|
|
9
|
+
return null;
|
|
10
|
+
if (address.address === "127.0.0.1")
|
|
11
|
+
return `http://127.0.0.1:${address.port}`;
|
|
12
|
+
if (address.address === "::1")
|
|
13
|
+
return `http://[::1]:${address.port}`;
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
export function demoSignInLink(server, account, caller) {
|
|
17
|
+
if (!caller.stdin || !caller.stdout || caller.agent || caller.json)
|
|
18
|
+
return null;
|
|
19
|
+
const origin = demoLoopbackOrigin(server.address());
|
|
20
|
+
if (origin === null)
|
|
21
|
+
return null;
|
|
22
|
+
const path = server.mintSignInLink(account);
|
|
23
|
+
if (path === null || !path.startsWith(SIGN_IN_LINK_PATH))
|
|
24
|
+
return null;
|
|
25
|
+
return `${origin}${path}`;
|
|
26
|
+
}
|
|
27
|
+
export function writeSignInPage(parent, link) {
|
|
28
|
+
const dir = mkdtempSync(join(parent, "sign-in-"));
|
|
29
|
+
chmodSync(dir, 0o700);
|
|
30
|
+
const file = join(dir, "open.html");
|
|
31
|
+
const attribute = link.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<");
|
|
32
|
+
writeFileSync(file, `<!doctype html><meta charset="utf-8"><meta name="referrer" content="no-referrer">`
|
|
33
|
+
+ `<meta http-equiv="refresh" content="0;url=${attribute}"><title>Toolroll</title>`
|
|
34
|
+
+ `<script>location.replace(${JSON.stringify(link).replace(/</g, "\\u003c")})</script><p>Opening Toolroll…</p>\n`, { mode: 0o600 });
|
|
35
|
+
chmodSync(file, 0o600);
|
|
36
|
+
return file;
|
|
37
|
+
}
|
|
38
|
+
export function removeSignInPage(file) {
|
|
39
|
+
rmSync(join(file, ".."), { recursive: true, force: true });
|
|
40
|
+
}
|
|
41
|
+
export function openSignInPage(file, spawn = spawnChild, platform = process.platform) {
|
|
42
|
+
const command = platform === "darwin" ? "open" : platform === "linux" ? "xdg-open" : null;
|
|
43
|
+
if (command === null)
|
|
44
|
+
return false;
|
|
45
|
+
try {
|
|
46
|
+
spawn(command, [file], { detached: true, stdio: "ignore" }).unref();
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export function removeSignInPageWhenSpent(store, file, account, options = {}) {
|
|
54
|
+
const sinceRow = store.handle.prepare("SELECT coalesce(max(id), 0) AS id FROM action_ledger").get();
|
|
55
|
+
const since = Number(sinceRow?.["id"] ?? 0);
|
|
56
|
+
const spent = store.handle.prepare("SELECT 1 FROM action_ledger WHERE id > ? AND source = 'sign-in' AND actor = ? AND action = 'signed in' AND outcome = 'one-time link' LIMIT 1");
|
|
57
|
+
let done = false;
|
|
58
|
+
const finish = () => {
|
|
59
|
+
if (done)
|
|
60
|
+
return;
|
|
61
|
+
done = true;
|
|
62
|
+
clearInterval(timer);
|
|
63
|
+
clearTimeout(expiry);
|
|
64
|
+
removeSignInPage(file);
|
|
65
|
+
};
|
|
66
|
+
const timer = setInterval(() => { try {
|
|
67
|
+
if (spent.get(since, account) !== undefined)
|
|
68
|
+
finish();
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
finish();
|
|
72
|
+
} }, options.everyMs ?? 500);
|
|
73
|
+
const expiry = setTimeout(finish, options.expiresMs ?? SIGN_IN_LINK_MS);
|
|
74
|
+
timer.unref?.();
|
|
75
|
+
expiry.unref?.();
|
|
76
|
+
return finish;
|
|
77
|
+
}
|