toolroll 0.9.104 → 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 +62 -5
- package/README.md +18 -20
- 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 +17 -139
- 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 +1 -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 +0 -17
- 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 +0 -53
- package/dist/local-owner.js +2 -93
- 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 +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- 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 +0 -20
- 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 +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- 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 +0 -100
- 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 +0 -25
- 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 +4 -567
- 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 +21 -555
- 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 +1 -88
- 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 +13 -493
- 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 +6 -135
- 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 +9 -227
- package/dist/server/tasks.js +5 -539
- 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 +0 -75
- 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 +17 -28
- 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 +16 -36
- package/dist/tui.js +1 -1
- 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 +4 -3
- 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 -350
- 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 -1985
- 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 -540
- 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 -43
- 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-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- 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 -61
- 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 -170
- 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 -39
- 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 -1098
- 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 -81
- 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 -60
- 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 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- 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 -343
- 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 -108
- 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 -48
- 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 -202
- 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/console-instance.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* THE RUNNING CONSOLE, PROVED LIVE (docs/plans/agents-cockpit.md B1).
|
|
3
|
-
*
|
|
4
|
-
* Bare `toolroll` in a repository attaches to a console already running for this installation instead of starting a
|
|
5
|
-
* second one. Build agents run as the operator's own user, so nothing the filesystem says can tell the operator from
|
|
6
|
-
* an agent: the console's Unix socket is DISCOVERY ONLY. It answers one verb, `hello`, with facts an agent could learn
|
|
7
|
-
* anyway, and changes nothing.
|
|
8
|
-
*
|
|
9
|
-
* What proves the console is real is a fresh random instance secret, minted at each start of `up` and written to the
|
|
10
|
-
* database (behind the agent fence) with its pid, build and port. The CLI reads it from the database it opens itself,
|
|
11
|
-
* then makes the LIVE console answer two fresh challenges with it: over the socket (HMAC of "socket:" + challenge),
|
|
12
|
-
* and over the advertised HTTP listener (HMAC of "http:" + challenge + " " + address + " " + port, where the address and
|
|
13
|
-
* port are what the console itself saw as the receiving end of that very connection). The CLI requires those to be
|
|
14
|
-
* 127.0.0.1 and the recorded port, so a relay on 127.0.0.1 forwarding to the console's other address is refused, as are
|
|
15
|
-
* a replayed hello, a stale record with a recycled pid, and another process now on that port.
|
|
16
|
-
*/
|
|
17
1
|
import { createHmac, randomBytes, timingSafeEqual } from "node:crypto";
|
|
18
2
|
import { lstatSync, mkdirSync, realpathSync } from "node:fs";
|
|
19
3
|
import { createConnection, createServer } from "node:net";
|
|
@@ -28,12 +12,6 @@ CREATE TABLE IF NOT EXISTS console_instance (
|
|
|
28
12
|
socket TEXT NOT NULL,
|
|
29
13
|
started_at TEXT NOT NULL
|
|
30
14
|
);`;
|
|
31
|
-
/**
|
|
32
|
-
* The socket's own owner-only directory beside the database's REAL file (a symlinked database resolves to the one
|
|
33
|
-
* folder every spelling shares). Each console start binds a socket of its own, under a fresh random name recorded
|
|
34
|
-
* with its secret: no console ever needs to remove — or can remove — another console's socket.
|
|
35
|
-
*/
|
|
36
|
-
/** Toolroll's own name, so it never collides with a project or worktree that happens to sit beside the database. */
|
|
37
15
|
export const INSTANCE_DIR = ".toolroll-run";
|
|
38
16
|
export function instanceRunDir(databaseFile) {
|
|
39
17
|
let file = databaseFile;
|
|
@@ -44,18 +22,15 @@ export function instanceRunDir(databaseFile) {
|
|
|
44
22
|
try {
|
|
45
23
|
file = join(realpathSync(dirname(databaseFile)), basename(databaseFile));
|
|
46
24
|
}
|
|
47
|
-
catch {
|
|
25
|
+
catch { }
|
|
48
26
|
}
|
|
49
27
|
return join(dirname(file), INSTANCE_DIR);
|
|
50
28
|
}
|
|
51
29
|
const SOCKET_NAME = /^[0-9a-f]{16}\.sock$/;
|
|
52
|
-
/** The longest Unix socket path the platform binds without truncating (sun_path less its NUL). */
|
|
53
30
|
const SOCKET_PATH_MAX = process.platform === "darwin" ? 103 : 107;
|
|
54
|
-
/** The console's own answer to a challenge over HTTP (an edge route, no sign-in: it reveals nothing). */
|
|
55
31
|
export const INSTANCE_PATH = "/__instance";
|
|
56
32
|
const CHALLENGE = /^[0-9a-f]{32,128}$/;
|
|
57
33
|
const LINE_CAP = 4096;
|
|
58
|
-
/** The record as stored: none, one this build can't read (never taken for none), or the record. */
|
|
59
34
|
export function readInstanceState(store) {
|
|
60
35
|
const row = store.handle.prepare("SELECT secret, pid, port, build, socket, started_at FROM console_instance WHERE id = 1").get();
|
|
61
36
|
if (row === undefined)
|
|
@@ -69,31 +44,22 @@ export function readInstance(store) {
|
|
|
69
44
|
const read = readInstanceState(store);
|
|
70
45
|
return read.state === "ok" ? read.record : null;
|
|
71
46
|
}
|
|
72
|
-
/** v147: the key epoch the running console recorded with its claim (easy-start C2), or null: none recorded. */
|
|
73
47
|
export function instanceKeyEpoch(store) {
|
|
74
48
|
const row = store.handle.prepare("SELECT key_epoch FROM console_instance WHERE id = 1").get();
|
|
75
49
|
return row === undefined || row["key_epoch"] == null ? null : String(row["key_epoch"]);
|
|
76
50
|
}
|
|
77
|
-
/** A stopping console forgets itself — only its own record, never a newer start's. */
|
|
78
51
|
export function clearInstance(store, secret) {
|
|
79
52
|
store.handle.prepare("DELETE FROM console_instance WHERE id = 1 AND secret = ?").run(secret);
|
|
80
53
|
}
|
|
81
54
|
export const socketProof = (secret, challenge) => createHmac("sha256", secret).update(`socket:${challenge}`).digest("hex");
|
|
82
55
|
export const httpProof = (secret, challenge, address, port) => createHmac("sha256", secret).update(`http:${challenge} ${address} ${port}`).digest("hex");
|
|
83
56
|
const PROOF = /^[0-9a-f]{64}$/;
|
|
84
|
-
/** Constant-time comparison of two proofs, each first required to be exactly 64 hex characters. */
|
|
85
57
|
const same = (a, b) => typeof a === "string" && PROOF.test(a) && PROOF.test(b) && timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
|
|
86
|
-
/** The HTTP answer: bound to the address and port THIS connection was received on, as the console saw them. */
|
|
87
58
|
export function instanceHttpAnswer(secret, challenge, local) {
|
|
88
59
|
if (challenge === null || !CHALLENGE.test(challenge) || local.address === undefined || local.port === undefined)
|
|
89
60
|
return { status: 400, body: JSON.stringify({ error: "challenge" }) };
|
|
90
61
|
return { status: 200, body: JSON.stringify({ proof: httpProof(secret, challenge, local.address, local.port) }) };
|
|
91
62
|
}
|
|
92
|
-
/**
|
|
93
|
-
* The run directory must be private to this user: a real, canonical directory owned by this user with no access for
|
|
94
|
-
* anyone else (0700), inside a canonical directory owned by this user that nobody else can write. Checked before any
|
|
95
|
-
* change is made, and before connecting or binding.
|
|
96
|
-
*/
|
|
97
63
|
export function runDirProblem(dir, uid = process.getuid?.() ?? -1, mustExist = true) {
|
|
98
64
|
const parent = dirname(dir);
|
|
99
65
|
let above;
|
|
@@ -131,12 +97,11 @@ export function runDirProblem(dir, uid = process.getuid?.() ?? -1, mustExist = t
|
|
|
131
97
|
lstatSync(join(dir, ".git"));
|
|
132
98
|
return `${dir} holds a repository, not Toolroll's sockets`;
|
|
133
99
|
}
|
|
134
|
-
catch {
|
|
100
|
+
catch { }
|
|
135
101
|
if ((info.mode & 0o077) !== 0)
|
|
136
102
|
return `${dir} is open to other users — Toolroll uses it only when it is yours alone (chmod 700)`;
|
|
137
103
|
return null;
|
|
138
104
|
}
|
|
139
|
-
/** A socket path that binds exactly (no truncation), named as a console names its own. */
|
|
140
105
|
export function socketPathProblem(path) {
|
|
141
106
|
if (!SOCKET_NAME.test(basename(path)))
|
|
142
107
|
return `${path} isn't a console socket`;
|
|
@@ -144,10 +109,6 @@ export function socketPathProblem(path) {
|
|
|
144
109
|
return `${path} is too long for a socket here`;
|
|
145
110
|
return null;
|
|
146
111
|
}
|
|
147
|
-
/**
|
|
148
|
-
* `up`: the run directory, made 0700 if it isn't there. An existing one is used only as it is (never chmodded): one
|
|
149
|
-
* that isn't private to this user is refused. Everything is checked before anything is created.
|
|
150
|
-
*/
|
|
151
112
|
export function prepareRunDir(dir, uid = process.getuid?.() ?? -1) {
|
|
152
113
|
const before = runDirProblem(dir, uid, false);
|
|
153
114
|
if (before !== null)
|
|
@@ -161,7 +122,6 @@ export function prepareRunDir(dir, uid = process.getuid?.() ?? -1) {
|
|
|
161
122
|
}
|
|
162
123
|
return runDirProblem(dir, uid, true);
|
|
163
124
|
}
|
|
164
|
-
/** Ask a socket one question; null when nobody is listening (or it said nothing usable in time). */
|
|
165
125
|
export function askSocket(socketPath, request, timeoutMs = 2_000, connect = path => createConnection(path)) {
|
|
166
126
|
return new Promise(resolve => {
|
|
167
127
|
let settled = false, buffer = "";
|
|
@@ -190,18 +150,6 @@ export function askSocket(socketPath, request, timeoutMs = 2_000, connect = path
|
|
|
190
150
|
socket.on("end", () => done({ none: "no-answer" }));
|
|
191
151
|
});
|
|
192
152
|
}
|
|
193
|
-
/**
|
|
194
|
-
* The console's discovery socket: one line in, one line out. `hello` (with a challenge) answers the public facts and
|
|
195
|
-
* the socket proof; every other verb is refused. It reads nothing else and changes nothing. Bound under a fresh name
|
|
196
|
-
* no other process has, so it never clears or replaces anything; its own listener removes it on close.
|
|
197
|
-
*
|
|
198
|
-
* Easy start D: the one other verb is `link`, and only when the console passes `link`. The console answers with a fresh
|
|
199
|
-
* challenge of its own; the asker must answer it with HMAC(secret, "link:" + challenge) — the secret is in the database
|
|
200
|
-
* (behind the agent fence), so only a process that read it can — and then gets one local owner's one-time sign-in path.
|
|
201
|
-
* Each challenge is spent by the first answer on its own connection, right or wrong; the "link:" domain keeps a hello or
|
|
202
|
-
* HTTP proof from ever counting here. The request names no account: what the link signs in as is the console's own
|
|
203
|
-
* decision (`link` returns null unless local mode is on).
|
|
204
|
-
*/
|
|
205
153
|
export async function openInstanceSocket(databaseFile, facts, secret, link) {
|
|
206
154
|
const dir = instanceRunDir(databaseFile);
|
|
207
155
|
const problem = prepareRunDir(dir);
|
|
@@ -213,7 +161,6 @@ export async function openInstanceSocket(databaseFile, facts, secret, link) {
|
|
|
213
161
|
return { ok: false, problem: pathProblem };
|
|
214
162
|
const server = createServer(socket => {
|
|
215
163
|
let buffer = "";
|
|
216
|
-
// The link challenge this connection was given, until its one answer arrives.
|
|
217
164
|
let challenged = null;
|
|
218
165
|
let done = false;
|
|
219
166
|
socket.setEncoding("utf8");
|
|
@@ -230,7 +177,6 @@ export async function openInstanceSocket(databaseFile, facts, secret, link) {
|
|
|
230
177
|
const field = (key) => asked !== null && typeof asked === "object" && !Array.isArray(asked) ? asked[key] : undefined;
|
|
231
178
|
const key = secret();
|
|
232
179
|
if (challenged !== null) {
|
|
233
|
-
// The one answer to this connection's challenge: spent now, whatever it says.
|
|
234
180
|
const expected = key === null ? null : linkProof(key, challenged);
|
|
235
181
|
challenged = null;
|
|
236
182
|
if (expected === null || field("verb") !== "link-proof" || !same(field("proof"), expected))
|
|
@@ -269,20 +215,13 @@ export async function openInstanceSocket(databaseFile, facts, secret, link) {
|
|
|
269
215
|
}
|
|
270
216
|
});
|
|
271
217
|
});
|
|
272
|
-
// A Unix bind never replaces an existing path (EADDRINUSE).
|
|
273
218
|
const listening = await new Promise(resolve => { server.once("error", () => resolve(false)); server.listen(socketPath, () => resolve(true)); });
|
|
274
219
|
if (!listening)
|
|
275
220
|
return { ok: false, problem: `couldn't listen on ${socketPath}` };
|
|
276
221
|
return { ok: true, name, close: () => { server.close(); } };
|
|
277
222
|
}
|
|
278
|
-
/** The `link` verb's answer to the console's challenge: bound to this verb, so no other proof ever counts for it. */
|
|
279
223
|
export const linkProof = (secret, challenge) => createHmac("sha256", secret).update(`link:${challenge}`).digest("hex");
|
|
280
224
|
const LINK_PATH = /^\/login\/once\/[A-Za-z0-9_-]{16,128}$/;
|
|
281
|
-
/**
|
|
282
|
-
* Ask the console on `socketPath` for a local owner's one-time sign-in path with the record's secret: `link`, the
|
|
283
|
-
* console's challenge, then the proof. Null when it gives none (local mode off, a wrong or late answer, anything
|
|
284
|
-
* malformed). The caller proves the console live first (proveLiveConsole) and opens the path on its proved address.
|
|
285
|
-
*/
|
|
286
225
|
export function askLink(socketPath, secret, timeoutMs = 5_000, connect = path => createConnection(path)) {
|
|
287
226
|
return new Promise(resolve => {
|
|
288
227
|
let settled = false, buffer = "", sentProof = false;
|
|
@@ -324,11 +263,6 @@ export function askLink(socketPath, secret, timeoutMs = 5_000, connect = path =>
|
|
|
324
263
|
socket.on("end", () => done(null));
|
|
325
264
|
});
|
|
326
265
|
}
|
|
327
|
-
/**
|
|
328
|
-
* A local owner's one-time sign-in address from this installation's live console (easy start D, `toolroll open`): the
|
|
329
|
-
* console is proved live on both channels first, then asked over its socket with the record's secret. The address is
|
|
330
|
-
* always the proved console's own; null when there is no proved console or it gives no link.
|
|
331
|
-
*/
|
|
332
266
|
export async function requestLocalLink(databaseFile, store, build, seams = {}) {
|
|
333
267
|
const proof = await proveLiveConsole(databaseFile, store, build, seams);
|
|
334
268
|
if (!proof.ok)
|
|
@@ -341,11 +275,6 @@ export async function requestLocalLink(databaseFile, store, build, seams = {}) {
|
|
|
341
275
|
return { ok: false, message: "the console gave no sign-in link (local mode is off, or it is still starting)" };
|
|
342
276
|
return { ok: true, url: new URL(path, proof.url).toString(), console: proof.url };
|
|
343
277
|
}
|
|
344
|
-
/**
|
|
345
|
-
* A record's console: "live" (its socket answers a fresh challenge with the record's secret and pid), "gone" (nobody
|
|
346
|
-
* is listening on its socket, or the socket isn't there), or "unknown" (anything else: slow, malformed, a wrong proof).
|
|
347
|
-
* Only "gone" lets another start take the record.
|
|
348
|
-
*/
|
|
349
278
|
export async function recordLiveness(databaseFile, record, ask = askSocket) {
|
|
350
279
|
const socketPath = join(instanceRunDir(databaseFile), record.socket);
|
|
351
280
|
if (socketPathProblem(socketPath) !== null)
|
|
@@ -356,16 +285,9 @@ export async function recordLiveness(databaseFile, record, ask = askSocket) {
|
|
|
356
285
|
return asked.none === "no-listener" ? "gone" : "unknown";
|
|
357
286
|
return asked.answer["pid"] === record.pid && same(asked.answer["proof"], socketProof(record.secret, challenge)) ? "live" : "unknown";
|
|
358
287
|
}
|
|
359
|
-
/**
|
|
360
|
-
* `up` claims the record for its socket — unless a live console already holds it (another start on the same
|
|
361
|
-
* database, by any spelling of its path). The write is a compare-and-set on the record it checked: two starts racing
|
|
362
|
-
* can't both win. Null: not claimed (this console runs, but `toolroll` won't attach to it).
|
|
363
|
-
*/
|
|
364
288
|
export async function claimInstance(store, databaseFile, facts, now, liveness = record => recordLiveness(databaseFile, record)) {
|
|
365
289
|
const rawSecret = () => { const row = store.handle.prepare("SELECT secret FROM console_instance WHERE id = 1").get(); return row === undefined ? null : String(row["secret"]); };
|
|
366
290
|
const checked = rawSecret();
|
|
367
|
-
// Taken only from nobody, or from a console confirmed gone: never on a check that merely failed, and never over a
|
|
368
|
-
// record this build can't read.
|
|
369
291
|
const current = readInstanceState(store);
|
|
370
292
|
if (current.state === "invalid")
|
|
371
293
|
return null;
|
|
@@ -373,24 +295,15 @@ export async function claimInstance(store, databaseFile, facts, now, liveness =
|
|
|
373
295
|
return null;
|
|
374
296
|
const secret = randomBytes(32).toString("hex");
|
|
375
297
|
return store.transact(() => {
|
|
376
|
-
// Exactly the record that was checked (or none): anything else is another start's newer claim.
|
|
377
298
|
if (rawSecret() !== checked)
|
|
378
299
|
return null;
|
|
379
|
-
// v147: the start's key epoch (easy-start C2) is recorded with its claim; a claim without one records none.
|
|
380
300
|
store.handle.prepare("INSERT INTO console_instance (id, secret, pid, port, build, socket, started_at, key_epoch) VALUES (1, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT (id) DO UPDATE SET secret = excluded.secret, pid = excluded.pid, port = excluded.port, build = excluded.build, socket = excluded.socket, started_at = excluded.started_at, key_epoch = excluded.key_epoch")
|
|
381
301
|
.run(secret, facts.pid, facts.port, facts.build, facts.socket, now.toISOString(), facts.keyEpoch ?? null);
|
|
382
302
|
return secret;
|
|
383
303
|
});
|
|
384
304
|
}
|
|
385
|
-
/**
|
|
386
|
-
* Prove the console this installation's database names is live, on both channels, before anything is shown or
|
|
387
|
-
* opened. "none": no console runs (no record, or nobody on the socket); "refused": something answers that can't
|
|
388
|
-
* prove it is the console (or a different build) — the person restarts it.
|
|
389
|
-
*/
|
|
390
305
|
export async function proveLiveConsole(databaseFile, store, build, seams = {}) {
|
|
391
306
|
const restart = "stop it and run `toolroll up` again";
|
|
392
|
-
// No record: nothing is running here (a console that couldn't claim one isn't offered). One this build can't read
|
|
393
|
-
// isn't "nothing": it is refused.
|
|
394
307
|
const read = readInstanceState(store);
|
|
395
308
|
if (read.state === "none")
|
|
396
309
|
return { ok: false, state: "none", message: "no console is running" };
|
|
@@ -408,7 +321,6 @@ export async function proveLiveConsole(databaseFile, store, build, seams = {}) {
|
|
|
408
321
|
return { ok: false, state: "refused", message: `the console's socket can't be trusted: ${socketPath} isn't this user's socket` };
|
|
409
322
|
}
|
|
410
323
|
catch (error) {
|
|
411
|
-
// Only "not there" means nothing is running; a socket the system won't show can't be checked.
|
|
412
324
|
if (error.code === "ENOENT")
|
|
413
325
|
return { ok: false, state: "none", message: "no console is running" };
|
|
414
326
|
return { ok: false, state: "refused", message: `the console's socket can't be checked — ${restart}` };
|
|
@@ -417,7 +329,6 @@ export async function proveLiveConsole(databaseFile, store, build, seams = {}) {
|
|
|
417
329
|
const first = challenge();
|
|
418
330
|
const asked = await (seams.ask ?? askSocket)(socketPath, { verb: "hello", challenge: first });
|
|
419
331
|
if ("none" in asked) {
|
|
420
|
-
// Stale (a console that died): nobody is listening, so nothing is running. Discovery removes nothing.
|
|
421
332
|
if (asked.none === "no-listener")
|
|
422
333
|
return { ok: false, state: "none", message: "no console is running" };
|
|
423
334
|
return { ok: false, state: "refused", message: `the console's socket didn't answer — ${restart}` };
|
package/dist/container-state.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Read-only kernel evidence. Recorded names never authorize signals. */
|
|
2
1
|
import { spawnSync } from "node:child_process";
|
|
3
2
|
import { fileURLToPath } from "node:url";
|
|
4
3
|
import { readFileSync, readlinkSync, realpathSync, statfsSync, statSync } from "node:fs";
|
|
@@ -36,9 +35,6 @@ export function cgroupEmptiness(container, identity) {
|
|
|
36
35
|
return "unknown";
|
|
37
36
|
}
|
|
38
37
|
catch (error) {
|
|
39
|
-
// Only the original, still-mounted parent may prove removal. Linux
|
|
40
|
-
// refuses rmdir while a cgroup has members; an unmounted hierarchy,
|
|
41
|
-
// another namespace, a replaced directory or an ordinary file cannot.
|
|
42
38
|
return error.code === "ENOENT" ? "empty" : "unknown";
|
|
43
39
|
}
|
|
44
40
|
return parseCgroupEvents(readFileSync(join(container, "cgroup.events"), "utf8"));
|
package/dist/containment.js
CHANGED
|
@@ -1,36 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OS process containment (docs/PROCESS_CONTAINMENT_PLAN.md).
|
|
3
|
-
*
|
|
4
|
-
* The stop contract before this module was OBSERVATIONAL: a provider's
|
|
5
|
-
* tree is scanned every 500 ms, and a double fork can reparent between
|
|
6
|
-
* scans. This module adds an OS boundary where the OS has one, and says
|
|
7
|
-
* exactly what it has where it has none:
|
|
8
|
-
*
|
|
9
|
-
* linux a delegated cgroup v2 directory per spawn. The target is
|
|
10
|
-
* placed in it BEFORE it executes (the `sh` prelude below writes
|
|
11
|
-
* its own pid, then execs the target with argv verbatim), so a
|
|
12
|
-
* setsid/double-fork helper is born inside and dies with
|
|
13
|
-
* `cgroup.kill`. Emptiness is the kernel's own `cgroup.events`
|
|
14
|
-
* populated flag — never a transport exit. A detached janitor
|
|
15
|
-
* kills the cgroup when this worker dies.
|
|
16
|
-
* win32 a Job Object with kill-on-close and no breakaway, owned by a
|
|
17
|
-
* PowerShell helper OUTSIDE the job that creates the target
|
|
18
|
-
* suspended, assigns it, then resumes it. The helper's death —
|
|
19
|
-
* including this worker's death, which closes its stdin — closes
|
|
20
|
-
* the handle and the job kills everything in it.
|
|
21
|
-
* darwin nothing. There is no supported cgroup/Job Object equivalent;
|
|
22
|
-
* NOTE_TRACK/NOTE_CHILD have been unsupported since 10.5 and
|
|
23
|
-
* launchd's AbandonProcessGroup only covers a process group. The
|
|
24
|
-
* observational mode stays, is reported as exactly that, and a
|
|
25
|
-
* REQUIRED policy refuses before any target executes.
|
|
26
|
-
*
|
|
27
|
-
* Three policies: `observed` (the behaviour every existing installation
|
|
28
|
-
* has), `preferred` (native when this machine can, observed — and said
|
|
29
|
-
* so — when it cannot), `required` (native or a refusal; never a silent
|
|
30
|
-
* downgrade). The policy is decided ONCE per controller process from the
|
|
31
|
-
* operator's flag or environment and pinned; nothing a child supplies and
|
|
32
|
-
* no corrupt value can weaken a pinned requirement.
|
|
33
|
-
*/
|
|
34
1
|
import { spawn } from "node:child_process";
|
|
35
2
|
import { randomBytes } from "node:crypto";
|
|
36
3
|
import { existsSync, mkdirSync, readFileSync, rmdirSync, writeFileSync } from "node:fs";
|
|
@@ -41,14 +8,7 @@ import { fileURLToPath } from "node:url";
|
|
|
41
8
|
import { envValue } from "./names.js";
|
|
42
9
|
import { sleep } from "./sleep.js";
|
|
43
10
|
export const CONTAINMENT_POLICIES = ["observed", "preferred", "required"];
|
|
44
|
-
/** The environment name the controller reads when no flag names a policy. */
|
|
45
11
|
export const CONTAINMENT_ENV = "TOOLROLL_CONTAINMENT";
|
|
46
|
-
/**
|
|
47
|
-
* Parse an operator's policy word. Absent means `observed` — every
|
|
48
|
-
* existing installation keeps its behaviour. Anything present must be
|
|
49
|
-
* one of the three words exactly: a corrupt value is a refusal, never a
|
|
50
|
-
* quiet fall back to observed (which would turn a requirement off).
|
|
51
|
-
*/
|
|
52
12
|
export function parseContainmentPolicy(raw) {
|
|
53
13
|
if (raw === undefined || raw === null)
|
|
54
14
|
return { ok: true, policy: "observed", source: "default" };
|
|
@@ -62,7 +22,6 @@ export function parseContainmentPolicy(raw) {
|
|
|
62
22
|
};
|
|
63
23
|
}
|
|
64
24
|
const DARWIN_DETAIL = "macOS has no supported cgroup or Job Object equivalent (kqueue NOTE_TRACK/NOTE_CHILD have been unsupported since 10.5; launchd AbandonProcessGroup covers only a process group) — containment stays observational here; for native containment run this runner on a Linux VM or Linux runner with a delegated cgroup v2 (or on Windows)";
|
|
65
|
-
/** The cgroup path of this process from /proc/self/cgroup (`0::/path`). */
|
|
66
25
|
export function ownCgroupPath(selfCgroup) {
|
|
67
26
|
for (const line of selfCgroup.split("\n")) {
|
|
68
27
|
const match = /^0::(\/.*)$/.exec(line.trim());
|
|
@@ -71,14 +30,6 @@ export function ownCgroupPath(selfCgroup) {
|
|
|
71
30
|
}
|
|
72
31
|
return null;
|
|
73
32
|
}
|
|
74
|
-
/**
|
|
75
|
-
* What this machine can do, established by DOING it: on Linux, a child
|
|
76
|
-
* cgroup is created and removed inside this process's own cgroup; a
|
|
77
|
-
* mount that is not v2, a cgroup that is not delegated to this user, or
|
|
78
|
-
* an unreadable /proc all answer unavailable with the reason. Nothing
|
|
79
|
-
* here can be overridden by an environment variable into a claim the OS
|
|
80
|
-
* did not make.
|
|
81
|
-
*/
|
|
82
33
|
export function probeContainmentCapability(options = {}) {
|
|
83
34
|
const platform = options.platform ?? process.platform;
|
|
84
35
|
if (platform === "linux")
|
|
@@ -126,8 +77,6 @@ function probeCgroup2(options) {
|
|
|
126
77
|
rmdirSync(probe);
|
|
127
78
|
}
|
|
128
79
|
catch {
|
|
129
|
-
// A probe cgroup that cannot be removed is empty and harmless; the
|
|
130
|
-
// capability is still real. It is named so a person can remove it.
|
|
131
80
|
}
|
|
132
81
|
return {
|
|
133
82
|
platform,
|
|
@@ -165,7 +114,6 @@ function findPowershell() {
|
|
|
165
114
|
return candidate;
|
|
166
115
|
return null;
|
|
167
116
|
}
|
|
168
|
-
/** The truthful composition of what was asked and what the OS offers. */
|
|
169
117
|
export function effectiveContainment(policy, capability) {
|
|
170
118
|
if (policy === "observed")
|
|
171
119
|
return { policy, capability, mode: "observed", downgraded: false, refusal: null };
|
|
@@ -181,7 +129,6 @@ export function effectiveContainment(policy, capability) {
|
|
|
181
129
|
refusal: `native process containment is required but unavailable on this ${capability.platform} runner: ${capability.detail}. No provider, setup or check process runs until containment is available or the policy is set to observed/preferred explicitly`,
|
|
182
130
|
};
|
|
183
131
|
}
|
|
184
|
-
/** One-line status words for `daemon status`, `up`, and the certificate. */
|
|
185
132
|
export function describeContainment(effective) {
|
|
186
133
|
const backend = effective.capability.backend ?? "none";
|
|
187
134
|
if (effective.refusal !== null)
|
|
@@ -192,16 +139,11 @@ export function describeContainment(effective) {
|
|
|
192
139
|
return `containment: observed (preferred native, ${backend} unavailable) — ${effective.capability.detail}`;
|
|
193
140
|
return `containment: observed (${effective.policy}) — ${effective.capability.detail}`;
|
|
194
141
|
}
|
|
195
|
-
/** The one sentence a person reads at start when agents on Linux run
|
|
196
|
-
* without native containment that the machine could offer once set up;
|
|
197
|
-
* null when there is nothing a person needs to read. The exact
|
|
198
|
-
* `describeContainment` line stays in --verbose and in a service log. */
|
|
199
142
|
export function containmentNotice(effective) {
|
|
200
143
|
if (effective.refusal !== null || effective.mode !== "observed" || effective.capability.platform !== "linux" || effective.capability.available)
|
|
201
144
|
return null;
|
|
202
145
|
return "Agents run without Linux process containment on this machine (it needs a delegated cgroup). That's fine for trying Toolroll; see docs/guide/linux.md to turn it on.";
|
|
203
146
|
}
|
|
204
|
-
/** The status envelope's shape: no paths a person did not already know, no secrets. */
|
|
205
147
|
export function containmentStatus(effective) {
|
|
206
148
|
return {
|
|
207
149
|
policy: effective.policy,
|
|
@@ -213,13 +155,7 @@ export function containmentStatus(effective) {
|
|
|
213
155
|
detail: effective.capability.detail,
|
|
214
156
|
};
|
|
215
157
|
}
|
|
216
|
-
// ---- the pinned policy --------------------------------------------------------
|
|
217
158
|
let pinned = null;
|
|
218
|
-
/**
|
|
219
|
-
* Pin this process's containment ONCE, from the operator's own word. A
|
|
220
|
-
* second pin may only tighten: once `required` stands nothing pins it
|
|
221
|
-
* weaker — the only way down is a new process started with a new word.
|
|
222
|
-
*/
|
|
223
159
|
export function pinContainment(effective) {
|
|
224
160
|
if (pinned !== null && rank(effective.policy) < rank(pinned.policy)) {
|
|
225
161
|
throw new Error(`containment is pinned at ${pinned.policy} for this process; ${effective.policy} would weaken it`);
|
|
@@ -230,37 +166,24 @@ export function pinContainment(effective) {
|
|
|
230
166
|
function rank(policy) {
|
|
231
167
|
return policy === "required" ? 2 : policy === "preferred" ? 1 : 0;
|
|
232
168
|
}
|
|
233
|
-
/**
|
|
234
|
-
* Resolve the policy from a flag word, then the environment, then the
|
|
235
|
-
* default, and pin it. A corrupt word is a refusal to start, never a
|
|
236
|
-
* default: the caller reports `problem` and exits.
|
|
237
|
-
*/
|
|
238
169
|
export function resolveContainment(flagWord, env = process.env) {
|
|
239
170
|
const parsed = parseContainmentPolicy(flagWord ?? envValue(env, "CONTAINMENT"));
|
|
240
171
|
if (!parsed.ok)
|
|
241
172
|
return parsed;
|
|
242
173
|
return { ok: true, effective: pinContainment(effectiveContainment(parsed.policy, probeContainmentCapability())) };
|
|
243
174
|
}
|
|
244
|
-
/** What every containable spawn consults. Unpinned = observed, exactly as before this module. */
|
|
245
175
|
export function currentContainment() {
|
|
246
176
|
if (pinned === null)
|
|
247
177
|
pinned = effectiveContainment("observed", probeContainmentCapability());
|
|
248
178
|
return pinned;
|
|
249
179
|
}
|
|
250
|
-
/** Tests only. */
|
|
251
180
|
export function resetContainmentForTests() {
|
|
252
181
|
pinned = null;
|
|
253
182
|
}
|
|
254
183
|
let factoryOverride = null;
|
|
255
|
-
/** Tests: substitute the OS object (a scripted or file-backed stand-in). */
|
|
256
184
|
export function overrideContainerFactoryForTests(factory) {
|
|
257
185
|
factoryOverride = factory;
|
|
258
186
|
}
|
|
259
|
-
/**
|
|
260
|
-
* Make the OS object for one spawn, or say why not. `null` when the
|
|
261
|
-
* effective mode is observed; a `refused` when native containment was
|
|
262
|
-
* demanded and this spawn cannot have it — the caller must not spawn.
|
|
263
|
-
*/
|
|
264
187
|
export function createContainer(effective, label) {
|
|
265
188
|
if (effective.refusal !== null)
|
|
266
189
|
return { refused: effective.refusal };
|
|
@@ -279,13 +202,7 @@ export function createContainer(effective, label) {
|
|
|
279
202
|
return { refused: `native containment could not be established for this spawn (${error instanceof Error ? error.message : String(error)}) — nothing ran` };
|
|
280
203
|
}
|
|
281
204
|
}
|
|
282
|
-
/**
|
|
283
|
-
* The cgroup2 prelude: join, confirm on fd 3, close it, exec the target
|
|
284
|
-
* with argv exactly as given (positional parameters, never re-parsed).
|
|
285
|
-
* A join that fails exits 126 before the target can run.
|
|
286
|
-
*/
|
|
287
205
|
export const CGROUP2_PRELUDE = 'echo "$$" > "$1/cgroup.procs" || exit 126\nprintf "attached\\n" >&3 || exit 126\nIFS= read -r permit <&3 || exit 126\n[ "$permit" = go ] || exit 126\nexec 3>&-\nshift\nexec "$@"';
|
|
288
|
-
/** The janitor: waits for this worker's pipe to close, then kills and removes the cgroup. */
|
|
289
206
|
export const CGROUP2_JANITOR = [
|
|
290
207
|
'd="$1"',
|
|
291
208
|
'printf "ready\\n"',
|
|
@@ -301,7 +218,6 @@ export const CGROUP2_JANITOR = [
|
|
|
301
218
|
export function safeContainerLabel(label) {
|
|
302
219
|
return label.replace(/[^A-Za-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40) || "run";
|
|
303
220
|
}
|
|
304
|
-
/** A cgroup v2 leaf under the delegated root. Exported for the native test's direct use. */
|
|
305
221
|
export function cgroup2Container(capability, label, mountOverride) {
|
|
306
222
|
const root = mountOverride ?? capability.cgroupRoot;
|
|
307
223
|
if (root === undefined)
|
|
@@ -311,7 +227,6 @@ export function cgroup2Container(capability, label, mountOverride) {
|
|
|
311
227
|
let identity;
|
|
312
228
|
try {
|
|
313
229
|
identity = captureCgroupIdentity(dir);
|
|
314
|
-
// Exercise the exact kernel operation while the object is still empty.
|
|
315
230
|
writeFileSync(join(dir, "cgroup.kill"), "1");
|
|
316
231
|
}
|
|
317
232
|
catch (error) {
|
|
@@ -354,7 +269,6 @@ export function cgroup2Container(capability, label, mountOverride) {
|
|
|
354
269
|
id: dir,
|
|
355
270
|
identity,
|
|
356
271
|
limit({ memoryBytes, pids }) {
|
|
357
|
-
// The controllers exist here only if the delegated parent enabled them for its children.
|
|
358
272
|
try {
|
|
359
273
|
writeFileSync(join(dir, "memory.max"), String(memoryBytes));
|
|
360
274
|
writeFileSync(join(dir, "pids.max"), String(pids));
|
|
@@ -404,8 +318,6 @@ export function cgroup2Container(capability, label, mountOverride) {
|
|
|
404
318
|
settle({ ok: false, detail: "containment cleanup guardian unavailable" });
|
|
405
319
|
return;
|
|
406
320
|
}
|
|
407
|
-
// onSpawn already durably recorded custody. EOF before this
|
|
408
|
-
// authorization leaves the target unexecuted inside the cgroup.
|
|
409
321
|
channel.write("go\n", error => settle(error ? { ok: false, detail: String(error) } : { ok: true }));
|
|
410
322
|
});
|
|
411
323
|
});
|
|
@@ -426,23 +338,14 @@ export function cgroup2Container(capability, label, mountOverride) {
|
|
|
426
338
|
try {
|
|
427
339
|
rmdirSync(dir);
|
|
428
340
|
}
|
|
429
|
-
catch {
|
|
341
|
+
catch { }
|
|
430
342
|
try {
|
|
431
343
|
janitor?.stdin?.end();
|
|
432
344
|
}
|
|
433
|
-
catch {
|
|
345
|
+
catch { }
|
|
434
346
|
},
|
|
435
347
|
};
|
|
436
348
|
}
|
|
437
|
-
/**
|
|
438
|
-
* A Windows Job Object owned by a PowerShell helper outside the job. The
|
|
439
|
-
* helper connects to a named pipe this process listens on and reports
|
|
440
|
-
* `attached` only after CreateProcess(CREATE_SUSPENDED) + AssignProcess
|
|
441
|
-
* ToJobObject + ResumeThread; `failed <detail>` means the target never
|
|
442
|
-
* ran. `kill` asks for TerminateJobObject over the same pipe and waits
|
|
443
|
-
* for the helper's `empty` reply. Physical Windows is where this runs;
|
|
444
|
-
* the CI windows job exercises it.
|
|
445
|
-
*/
|
|
446
349
|
export function jobObjectContainer(capability, label) {
|
|
447
350
|
if (capability.helper === undefined || capability.powershell === undefined)
|
|
448
351
|
throw new Error("the Job Object capability names no helper");
|
|
@@ -489,9 +392,6 @@ export function jobObjectContainer(capability, label) {
|
|
|
489
392
|
state = "attached";
|
|
490
393
|
else if (line === "empty") {
|
|
491
394
|
state = "empty";
|
|
492
|
-
// The helper may have a pending control read. Close now, on its
|
|
493
|
-
// kernel empty proof, so .NET disposal never waits for an EOF that
|
|
494
|
-
// transport `close` would otherwise delay until after helper exit.
|
|
495
395
|
socket.destroy();
|
|
496
396
|
}
|
|
497
397
|
else if (line.startsWith("failed "))
|
|
@@ -536,7 +436,6 @@ export function jobObjectContainer(capability, label) {
|
|
|
536
436
|
args: ["-NoProfile", "-NonInteractive", "-ExecutionPolicy", "Bypass", "-File", capability.helper, "-Pipe", pipe, "-Encoded", Buffer.from(JSON.stringify([file, ...args]), "utf8").toString("base64"), "-JobName", id, ...(memoryLimit > 0 ? ["-MemoryLimit", String(memoryLimit)] : [])],
|
|
537
437
|
extraStdio: [],
|
|
538
438
|
async attach(child) {
|
|
539
|
-
// Called only after the durable onSpawn callback succeeded.
|
|
540
439
|
helperChild = child;
|
|
541
440
|
authorized = true;
|
|
542
441
|
authorize();
|
|
@@ -561,8 +460,6 @@ export function jobObjectContainer(capability, label) {
|
|
|
561
460
|
}
|
|
562
461
|
if (await waitEmpty(timeoutMs))
|
|
563
462
|
return true;
|
|
564
|
-
// A nonresponsive helper is still our own ChildProcess. Closing its
|
|
565
|
-
// actual handle triggers KILL_ON_JOB_CLOSE; saved IDs remain query-only.
|
|
566
463
|
if (helperChild && helperChild.exitCode === null && helperChild.signalCode === null)
|
|
567
464
|
helperChild.kill("SIGKILL");
|
|
568
465
|
state = "lost";
|
package/dist/contract-changes.js
CHANGED
|
@@ -4,12 +4,6 @@ const trimmed = (text) => {
|
|
|
4
4
|
const t = text.trim();
|
|
5
5
|
return t === "" ? null : t;
|
|
6
6
|
};
|
|
7
|
-
/**
|
|
8
|
-
* Every addition, change, and removal between the filed contract and a
|
|
9
|
-
* proposed one. Whitespace at the ends and touch/evidence order do not
|
|
10
|
-
* count (the scope digest ignores them too); everything else does,
|
|
11
|
-
* including the advisory `how`, because the operator wrote it.
|
|
12
|
-
*/
|
|
13
7
|
export function contractChangesOf(filed, proposed) {
|
|
14
8
|
const changes = [];
|
|
15
9
|
if (filed.goal.trim() !== proposed.goal.trim()) {
|
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The acceptance rubric's vocabulary and limits: the evidence kinds a criterion may require, and how many criteria
|
|
3
|
-
* and bytes a rubric may hold. A leaf with no imports but TEXT_LIMITS, because the plan contract (src/contracts/plan.ts)
|
|
4
|
-
* reads these through scope.ts while scope.ts reads the plan contract's criterion: kept here, both load in either order.
|
|
5
|
-
*/
|
|
6
1
|
import { TEXT_LIMITS } from "../text-limits.js";
|
|
7
2
|
export const EVIDENCE_KINDS = ["check", "screenshot", "changed-path", "manual-review"];
|
|
8
3
|
export const ACCEPTANCE_LIMITS = {
|
|
9
4
|
criteria: 12,
|
|
10
5
|
id: TEXT_LIMITS.acceptanceIdBytes,
|
|
11
|
-
// A statement is one testable outcome; three hundred bytes forced people to
|
|
12
|
-
// drop the qualifying clause that made it testable.
|
|
13
6
|
statement: TEXT_LIMITS.acceptanceStatementBytes,
|
|
14
7
|
how: TEXT_LIMITS.acceptanceHowBytes,
|
|
15
8
|
evidenceKinds: EVIDENCE_KINDS.length,
|