toolroll 0.9.103 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +27 -27
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +117 -103
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +3 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +2 -16
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +168 -0
- package/dist/local-owner.js +15 -80
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +2 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +280 -2304
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +3 -18
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +11 -30
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +6 -74
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +26 -103
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +9 -28
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +88 -566
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +29 -564
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +9 -86
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +17 -497
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +8 -133
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +12 -227
- package/dist/server/tasks.js +37 -531
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +8 -73
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +66 -19
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +91 -40
- package/dist/tui.js +54 -54
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +5 -4
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -318
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1972
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -539
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -41
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner.d.ts +0 -124
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -52
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -156
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -35
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1067
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -80
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -59
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -754
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -774
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -342
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -83
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -30
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -144
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/project-tools.js
CHANGED
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Project tools (v80): the MCP servers one project's builds may use.
|
|
3
|
-
*
|
|
4
|
-
* A project's list REPLACES everything else a build could load: the
|
|
5
|
-
* operator's global Claude and Codex MCP servers, plugins' servers and a
|
|
6
|
-
* repository's own `.mcp.json` are all shut out, and each build gets
|
|
7
|
-
* exactly the servers its project lists — sealed at approval, so a tool
|
|
8
|
-
* added later reaches only work approved after it, while a tool removed
|
|
9
|
-
* leaves every build at once. Reviewers and the lead chat never get tools.
|
|
10
|
-
*
|
|
11
|
-
* Secret values (API keys, tokens, any env value) never enter the
|
|
12
|
-
* database, a chat, a card or a log: they live in the operating system's
|
|
13
|
-
* keychain (tool-secret-store.ts) or, where there is none, in one 0600 file
|
|
14
|
-
* per tool in `tool-secrets` beside the database (files kept before under
|
|
15
|
-
* ~/.toolroll/tool-secrets/, or an older name's, move in on first use).
|
|
16
|
-
* They are written only from the console's password-gated screen, read when a
|
|
17
|
-
* run starts, and reach only that run's tool broker (tool-broker.ts), which
|
|
18
|
-
* gives them to the project's server processes and sign-in headers — never to
|
|
19
|
-
* the agent. A tool connected by signing in gives a run only an access token
|
|
20
|
-
* of its own (oauth-run-token.ts).
|
|
21
|
-
*/
|
|
22
1
|
import { prepareProtectedStorage, storageRefusalOf } from "./protected-storage.js";
|
|
23
2
|
import { inReadOnlyRequest } from "./read-only-request.js";
|
|
24
3
|
import { toolRefusal } from "./policy.js";
|
|
@@ -41,16 +20,12 @@ import { SecretStoreError, destroyOwnFile, prepareSecretFolder, registerSecretFo
|
|
|
41
20
|
import { ACCESS, GRANTED, REFRESH, mintRunToken, mintsRunTokens, oneAtATime, runScope, scopeList, signedIn } from "./oauth-run-token.js";
|
|
42
21
|
import { HEADER_NAME, SECRET_NAME, TOOL_NAME as NAME, TOOL_SPEC_LIMITS as LIMITS, readToolSpec } from "./contracts/integration-metadata.js";
|
|
43
22
|
import { canonicalJson } from "./canonical-json.js";
|
|
44
|
-
/** Env names a tool may never claim: the process's own plumbing, every
|
|
45
|
-
* provider credential, and anything that changes how a program or its
|
|
46
|
-
* interpreter loads (a secret's value must stay data, never code). */
|
|
47
23
|
const RESERVED_ENV_NAMES = new Set(["PATH", "HOME", "USER", "LOGNAME", "SHELL", "LANG", "TMPDIR", "TERM", "PWD", "IFS", "ENV", "BASH_ENV", "PS4", "PROMPT_COMMAND",
|
|
48
24
|
"NODE_OPTIONS", "NODE_PATH", "NODE_EXTRA_CA_CERTS", "NPM_CONFIG_PREFIX", "NPM_CONFIG_USERCONFIG", "GCONV_PATH", "SSL_CERT_FILE", "SSL_CERT_DIR",
|
|
49
25
|
"JAVA_TOOL_OPTIONS", "_JAVA_OPTIONS", "JDK_JAVA_OPTIONS", "DOTNET_STARTUP_HOOKS",
|
|
50
26
|
"ANTHROPIC_API_KEY", "OPENAI_API_KEY", "OPENROUTER_API_KEY", "GEMINI_API_KEY", "GOOGLE_API_KEY", "CODEX_HOME", "CLAUDE_CONFIG_DIR", "MCP_TIMEOUT"]);
|
|
51
27
|
const RESERVED_ENV_PREFIX = /^(LD_|DYLD_|PYTHON|PERL5|PERLLIB|RUBY|GIT_|NODE_|NPM_CONFIG_|BUN_|DENO_|UV_|PIP_|LC_|XDG_|CLAUDE_|CODEX_|ANTHROPIC_|OPENAI_)/;
|
|
52
28
|
const RESERVED_ENV = { has: (name) => RESERVED_ENV_NAMES.has(name) || RESERVED_ENV_PREFIX.test(name) };
|
|
53
|
-
/** Common servers, pinned to exact versions: the lead suggests from here first. */
|
|
54
29
|
export const TOOL_CATALOG = [
|
|
55
30
|
{ label: "Playwright", name: "playwright", transport: "stdio", command: "npx", args: ["-y", "@playwright/mcp@0.0.82", "--headless"], url: null, secrets: [], bearer: null, headerSecrets: {},
|
|
56
31
|
about: "Drives a real browser to open pages, click through them and take screenshots." },
|
|
@@ -66,7 +41,6 @@ export const TOOL_CATALOG = [
|
|
|
66
41
|
about: "Reads Sentry issues and errors." },
|
|
67
42
|
{ label: "Supabase (read-only)", name: "supabase", transport: "stdio", command: "npx", args: ["-y", "@supabase/mcp-server-supabase@0.13.0", "--read-only"], url: null, secrets: [{ name: "SUPABASE_ACCESS_TOKEN", optional: false }], bearer: null, headerSecrets: {},
|
|
68
43
|
about: "Reads Supabase tables and schema, without changing anything." },
|
|
69
|
-
// Figma's Dev Mode server, run by its desktop app on this computer and signed in as the app is: no key.
|
|
70
44
|
{ label: "Figma (desktop app)", name: "figma-desktop", transport: "http", command: null, args: [], url: "http://127.0.0.1:3845/mcp", secrets: [], bearer: null, headerSecrets: {},
|
|
71
45
|
about: "Code, images, variables and metadata from what you select in the Figma desktop app." },
|
|
72
46
|
];
|
|
@@ -75,7 +49,6 @@ export const LOCAL_APPS = [
|
|
|
75
49
|
offline: "The Figma desktop app isn't running, or its Dev Mode MCP server is off. Open Figma and turn the server on in Preferences.",
|
|
76
50
|
reads: ["code", "image", "screenshot", "variable", "defs", "metadata", "design", "context", "connect", "map", "figjam"] },
|
|
77
51
|
];
|
|
78
|
-
/** The local app a project's tool is, when it is one exactly as listed (same name and address). */
|
|
79
52
|
export function localAppOf(spec) {
|
|
80
53
|
const app = LOCAL_APPS.find(one => one.tool === spec.name);
|
|
81
54
|
return app !== undefined && spec.url !== null && spec.url === catalogTool(app.tool)?.url ? app : null;
|
|
@@ -83,7 +56,6 @@ export function localAppOf(spec) {
|
|
|
83
56
|
export function catalogTool(id) {
|
|
84
57
|
return TOOL_CATALOG.find(one => one.name === id) ?? null;
|
|
85
58
|
}
|
|
86
|
-
/** What a build is held to: how the server starts and which secrets it names — never their values or its description. */
|
|
87
59
|
export function toolDigest(spec) {
|
|
88
60
|
const { about: _about, ...terms } = spec;
|
|
89
61
|
return createHash("sha256").update(`standing-orders:tool:v1:${canonicalJson(terms)}`, "utf8").digest("hex").slice(0, 32);
|
|
@@ -95,10 +67,6 @@ const str = (value, cap, what) => {
|
|
|
95
67
|
throw new Error(`${what} cannot contain control characters.`);
|
|
96
68
|
return value.trim();
|
|
97
69
|
};
|
|
98
|
-
/**
|
|
99
|
-
* A tool definition from any source (catalog, console form, the lead, an import, a saved row), checked whole and made
|
|
100
|
-
* the spec its schema (src/contracts/integration-metadata.ts) says. Throws in plain words.
|
|
101
|
-
*/
|
|
102
70
|
export function validateToolSpec(input) {
|
|
103
71
|
const name = str(input["name"], LIMITS.name, "A short name").toLowerCase();
|
|
104
72
|
if (!NAME.test(name))
|
|
@@ -162,7 +130,6 @@ export function validateToolSpec(input) {
|
|
|
162
130
|
: TOOL_CATALOG.find(one => one.name === name)?.about
|
|
163
131
|
?? (transport === "http" ? `Tools from ${new URL(url).hostname}.` : `Tools from ${programName(command, args)}.`);
|
|
164
132
|
const spec = { name, transport, command, args, url, secrets, bearer, headerSecrets, about };
|
|
165
|
-
// Values belong in the secret store; a key typed into a command, argument or address is refused.
|
|
166
133
|
if (scanForSecrets([command ?? "", ...args, url ?? "", about].join("\n")).length > 0)
|
|
167
134
|
throw new Error("That looks like a key or token in the tool's settings. Name it as a secret instead; its value is set on the secure Tools screen.");
|
|
168
135
|
const checked = readToolSpec(spec);
|
|
@@ -170,57 +137,38 @@ export function validateToolSpec(input) {
|
|
|
170
137
|
throw new Error(`That tool is not valid: ${checked.issues.map(issue => issue.line).join("; ")}`);
|
|
171
138
|
return checked.value;
|
|
172
139
|
}
|
|
173
|
-
/** What a local tool is, in a word: the package a runner like npx starts, else the program's own name. */
|
|
174
140
|
function programName(command, args) {
|
|
175
141
|
const base = command.split(/[\\/]/).pop() ?? command;
|
|
176
142
|
const runner = ["npx", "bunx", "uvx", "pnpx", "pipx"].includes(base);
|
|
177
143
|
const target = runner ? args.find(arg => !arg.startsWith("-")) : undefined;
|
|
178
144
|
return target === undefined ? base : target.replace(/@[^@/]*$/, "") || target;
|
|
179
145
|
}
|
|
180
|
-
/** How the tool starts, in one line a person can check. Never a secret value. */
|
|
181
146
|
export function toolCommandLine(spec) {
|
|
182
147
|
if (spec.transport === "http")
|
|
183
148
|
return `${spec.url}${spec.bearer === null ? "" : ` (signs in with ${spec.bearer})`}`;
|
|
184
149
|
return [spec.command, ...spec.args].map(part => /^[A-Za-z0-9@%+=:,./_-]+$/.test(part ?? "") ? part : JSON.stringify(part)).join(" ");
|
|
185
150
|
}
|
|
186
|
-
// ---- secrets -----------------------------------------------------------------
|
|
187
|
-
/**
|
|
188
|
-
* Where tool secrets were kept before (an existing ~/.toolroll/tool-secrets, or an older name's), read once when
|
|
189
|
-
* Toolroll starts so their files move in on first use. Never where new secrets go.
|
|
190
|
-
*/
|
|
191
151
|
export function legacyToolSecretsDir(home = homedir()) {
|
|
192
152
|
const found = namedPath(home, ["tool-secrets"], { dot: true });
|
|
193
153
|
return existsSync(found) ? found : null;
|
|
194
154
|
}
|
|
195
|
-
/** Commands that can start builds or serve the console: Toolroll's folder for secrets is made before any build runs. */
|
|
196
155
|
export const SECRETS_FIRST = new Set(["serve", "up", "daemon", "watch", "worker", "tick", "build", "run", "reconcile", "bridge"]);
|
|
197
|
-
/**
|
|
198
|
-
* Toolroll's folder for the secrets it holds, beside `databaseFile`, checked against the sealing key the database
|
|
199
|
-
* recorded: made now when `eager` (a command that can start builds), else the first time a secret is used.
|
|
200
|
-
* A folder that can't be used is said in Settings and `toolroll integrations`; every secret is refused until then.
|
|
201
|
-
*/
|
|
202
156
|
export function startToolSecrets(store, databaseFile, clock, options) {
|
|
203
157
|
const anchor = { read: () => store.toolSecretKeyDigest(), swap: (expected, next) => store.swapToolSecretKeyDigest(expected, next, clock()) };
|
|
204
|
-
// The old folder is found once, at the first start of a command that can start builds (so before any build ran), then
|
|
205
|
-
// read from the record.
|
|
206
158
|
const state = dirname(databaseFile), legacy = store.toolSecretLegacyDir(() => legacyToolSecretsDir(), clock(), { record: options.eager });
|
|
207
159
|
if (options.eager)
|
|
208
160
|
prepareSecretFolder(state, anchor, { standing: true, legacy });
|
|
209
161
|
else
|
|
210
162
|
registerSecretFolder(state, anchor, { legacy });
|
|
211
163
|
}
|
|
212
|
-
/** Toolroll's folder for secrets (tool-secret-store.ts): beside the database Toolroll started with, or a test's `state`. */
|
|
213
164
|
export function toolSecretsDir(state) {
|
|
214
165
|
return secretFolder(state).dir;
|
|
215
166
|
}
|
|
216
167
|
const repoHash = (repo) => createHash("sha256").update(repo).digest("hex").slice(0, 16);
|
|
217
168
|
const toolName = (tool) => { if (!NAME.test(tool))
|
|
218
169
|
throw new Error("Choose a tool by its name."); return tool; };
|
|
219
|
-
/** A tool's own file in the folder: its secrets where there's no keychain, or the names of those set. */
|
|
220
170
|
const toolFile = (folder, repo, tool, suffix, make = false) => pathIn(folder.dir, [repoHash(repo), `${toolName(tool)}${suffix}`], { make });
|
|
221
|
-
/** The same tool's file where secrets were kept before Toolroll's folder; null when there was none. */
|
|
222
171
|
const legacyFile = (folder, repo, tool) => folder.legacy === null ? null : pathIn(folder.legacy, [repoHash(repo), `${toolName(tool)}.json`]);
|
|
223
|
-
/** A tool's keychain item: this Toolroll's folder and the project, hashed, and the tool's name. Never a secret. */
|
|
224
172
|
const secretItem = (folder, repo, tool) => ({ service: serviceOf(folder), account: `${repoHash(repo)}.${toolName(tool)}` });
|
|
225
173
|
const secretValues = (parsed) => parsed === null || typeof parsed !== "object" || Array.isArray(parsed) ? {}
|
|
226
174
|
: Object.fromEntries(Object.entries(parsed).filter((entry) => SECRET_NAME.test(entry[0]) && typeof entry[1] === "string"));
|
|
@@ -232,12 +180,10 @@ const parsedValues = (text) => {
|
|
|
232
180
|
throw new SecretStoreError("A tool's stored secrets are damaged.");
|
|
233
181
|
}
|
|
234
182
|
};
|
|
235
|
-
/** A secrets file (owner-only, never through a link); null when there is none. */
|
|
236
183
|
function readSecretFile(file) {
|
|
237
184
|
const text = readOwnFile(file);
|
|
238
185
|
return text === null ? null : parsedValues(text);
|
|
239
186
|
}
|
|
240
|
-
/** What the current store holds for a tool: its keychain item, or (no keychain) its file in Toolroll's folder; null when nothing. */
|
|
241
187
|
function readStored(backend, folder, repo, tool) {
|
|
242
188
|
if (backend === null)
|
|
243
189
|
return readSecretFile(toolFile(folder, repo, tool, ".json"));
|
|
@@ -260,9 +206,7 @@ function writeStored(backend, folder, repo, tool, values, options = {}) {
|
|
|
260
206
|
writeOwnFile(file, JSON.stringify(values));
|
|
261
207
|
return "ok";
|
|
262
208
|
}
|
|
263
|
-
/** One change to a tool's secrets at a time, across Toolroll's processes, re-entrant within one. */
|
|
264
209
|
const withToolLock = (folder, repo, tool, work) => withSecretLock(folder, `${repoHash(repo)}.${toolName(tool)}`, work);
|
|
265
|
-
/** The names of a tool's secrets that have a value, kept beside them so a page never reads a value to say so. */
|
|
266
210
|
function writeNames(folder, repo, tool, names) {
|
|
267
211
|
const file = toolFile(folder, repo, tool, ".names.json", true);
|
|
268
212
|
if (names.length === 0)
|
|
@@ -270,19 +214,12 @@ function writeNames(folder, repo, tool, names) {
|
|
|
270
214
|
else
|
|
271
215
|
writeOwnFile(file, JSON.stringify([...names].sort()));
|
|
272
216
|
}
|
|
273
|
-
/**
|
|
274
|
-
* A tool's secrets moved into the current store from where they were kept before — the old home folder, or (now that
|
|
275
|
-
* there is a keychain) its file in Toolroll's folder — the first time they are used: stored, read back and compared,
|
|
276
|
-
* and only then is the file destroyed. What the store already holds (an earlier move, or a change since) wins over
|
|
277
|
-
* the file. A failure leaves the file as it was, and says so.
|
|
278
|
-
*/
|
|
279
217
|
function moveIn(backend, folder, repo, tool) {
|
|
280
218
|
const sources = [legacyFile(folder, repo, tool), backend === null ? null : toolFile(folder, repo, tool, ".json")].filter((one) => one !== null && existsSync(one));
|
|
281
219
|
if (sources.length === 0)
|
|
282
220
|
return;
|
|
283
221
|
withToolLock(folder, repo, tool, () => {
|
|
284
222
|
for (const file of sources) {
|
|
285
|
-
// Damaged, a link, or not plainly Toolroll's: kept as it is, and never used.
|
|
286
223
|
let values;
|
|
287
224
|
try {
|
|
288
225
|
values = readSecretFile(file);
|
|
@@ -306,7 +243,7 @@ function moveIn(backend, folder, repo, tool) {
|
|
|
306
243
|
if (backend !== null)
|
|
307
244
|
removeValue(backend, secretItem(folder, repo, tool));
|
|
308
245
|
}
|
|
309
|
-
catch {
|
|
246
|
+
catch { }
|
|
310
247
|
throw new SecretStoreError("A tool's secrets couldn't be moved to the keychain; they stay in their file until they can.");
|
|
311
248
|
}
|
|
312
249
|
}
|
|
@@ -317,11 +254,9 @@ function moveIn(backend, folder, repo, tool) {
|
|
|
317
254
|
}
|
|
318
255
|
});
|
|
319
256
|
}
|
|
320
|
-
/** A tool's secret values. Read only to test it, change it or start a run: a page reads which are set (secretsSetFor). */
|
|
321
257
|
export function readToolSecrets(repo, tool, state) {
|
|
322
258
|
const folder = secretFolder(state);
|
|
323
259
|
const backend = secretBackend();
|
|
324
|
-
// A page visit moves nothing (docs/plans/get-side-effects.md): it reads the store, else the file not yet moved in.
|
|
325
260
|
if (inReadOnlyRequest()) {
|
|
326
261
|
const stored = readStored(backend, folder, repo, tool);
|
|
327
262
|
if (stored !== null)
|
|
@@ -334,18 +269,16 @@ export function readToolSecrets(repo, tool, state) {
|
|
|
334
269
|
if (values !== null)
|
|
335
270
|
return values;
|
|
336
271
|
}
|
|
337
|
-
catch {
|
|
272
|
+
catch { }
|
|
338
273
|
}
|
|
339
274
|
return {};
|
|
340
275
|
}
|
|
341
276
|
moveIn(backend, folder, repo, tool);
|
|
342
277
|
return readStored(backend, folder, repo, tool) ?? {};
|
|
343
278
|
}
|
|
344
|
-
/** Set (or, with an empty value, clear) one secret of one tool. */
|
|
345
279
|
export function setToolSecret(repo, tool, name, value, state) {
|
|
346
280
|
setToolSecrets(repo, tool, { [name]: value }, state);
|
|
347
281
|
}
|
|
348
|
-
/** Set (or, with empty values, clear) some secrets of one tool, in one change. */
|
|
349
282
|
export function setToolSecrets(repo, tool, values, state) {
|
|
350
283
|
for (const [name, value] of Object.entries(values)) {
|
|
351
284
|
if (!SECRET_NAME.test(name) || RESERVED_ENV.has(name))
|
|
@@ -378,16 +311,10 @@ export function clearToolSecrets(repo, tool, state) {
|
|
|
378
311
|
rmSync(toolFile(folder, repo, tool, ".names.json"), { force: true });
|
|
379
312
|
});
|
|
380
313
|
}
|
|
381
|
-
/**
|
|
382
|
-
* One renewal of a sign-in at a time, across Toolroll's processes (a lock in its folder) and within one: a service
|
|
383
|
-
* that rotates its refresh token on every use would otherwise see the same one twice, and whichever answer was saved
|
|
384
|
-
* last would be the newest only by luck.
|
|
385
|
-
*/
|
|
386
314
|
export function renewingSignIn(repo, tool, state, work) {
|
|
387
315
|
const folder = secretFolder(state);
|
|
388
316
|
return oneAtATime(`${folder.root}\0${repo}\0${tool}`, () => withSecretLockAsync(folder, `${repoHash(repo)}.${toolName(tool)}.renew`, work));
|
|
389
317
|
}
|
|
390
|
-
/** Required secrets with no value yet: the tool is left out of builds until they are set. */
|
|
391
318
|
export function missingSecrets(spec, values) {
|
|
392
319
|
return spec.secrets.filter(one => !one.optional && (values[one.name] ?? "") === "").map(one => one.name);
|
|
393
320
|
}
|
|
@@ -491,12 +418,6 @@ function fromCodexEntry(raw, environment) {
|
|
|
491
418
|
}
|
|
492
419
|
return null;
|
|
493
420
|
}
|
|
494
|
-
/**
|
|
495
|
-
* The MCP servers this computer already configures for a project: the
|
|
496
|
-
* repository's `.mcp.json`, Claude's global and per-project servers, and
|
|
497
|
-
* Codex's (from `codex mcp list --json`, passed in). The first of each
|
|
498
|
-
* name wins; unusable entries are left out.
|
|
499
|
-
*/
|
|
500
421
|
export function discoverTools(repo, codexServers, home = homedir(), environment = process.env, projectConfig) {
|
|
501
422
|
const found = [];
|
|
502
423
|
const add = (one) => { if (one !== null && !found.some(other => other.spec.name === one.spec.name))
|
|
@@ -510,8 +431,6 @@ export function discoverTools(repo, codexServers, home = homedir(), environment
|
|
|
510
431
|
return null;
|
|
511
432
|
}
|
|
512
433
|
};
|
|
513
|
-
// The project's own file as given (the console reads it off its thread: folder-look.ts), else as last read there
|
|
514
|
-
// (savedProjectMcp), else read here (the CLI and the worker).
|
|
515
434
|
const project = projectConfig !== undefined ? projectConfig : savedProjectMcp.has(repo) ? savedProjectMcp.get(repo) ?? null : readJson(join(repo, ".mcp.json"));
|
|
516
435
|
for (const [name, raw] of Object.entries((project?.["mcpServers"] ?? {})))
|
|
517
436
|
add(fromClaudeEntry(name, raw, "this project's .mcp.json"));
|
|
@@ -525,23 +444,16 @@ export function discoverTools(repo, codexServers, home = homedir(), environment
|
|
|
525
444
|
add(fromCodexEntry(raw, environment));
|
|
526
445
|
return found;
|
|
527
446
|
}
|
|
528
|
-
// ---- the Test button --------------------------------------------------------------
|
|
529
447
|
const PROTOCOL = "2025-06-18";
|
|
530
448
|
const initialize = (id) => ({ jsonrpc: "2.0", id, method: "initialize", params: { protocolVersion: PROTOCOL, capabilities: {}, clientInfo: { name: "toolroll", version: "1" } } });
|
|
531
449
|
function toolNames(result) {
|
|
532
450
|
const tools = result?.tools;
|
|
533
451
|
return Array.isArray(tools) ? tools.map(one => one.name).filter((name) => typeof name === "string").slice(0, 200) : [];
|
|
534
452
|
}
|
|
535
|
-
/** Start the server once, ask for its tools, and stop it: the proof a build can use it. */
|
|
536
453
|
export async function testTool(spec, values, options) {
|
|
537
454
|
const answer = await exchange(spec, values, { method: "tools/list", params: {}, doing: "listing its tools" }, options);
|
|
538
455
|
return answer.ok ? { ok: true, tools: toolNames(answer.result) } : answer;
|
|
539
456
|
}
|
|
540
|
-
/**
|
|
541
|
-
* Start the server once and read what each of its tools does (v94): the name,
|
|
542
|
-
* its description, what input it takes, and whether it says it only reads.
|
|
543
|
-
* A subagent is offered these, each under its own rule.
|
|
544
|
-
*/
|
|
545
457
|
export async function listProjectToolActions(spec, values, options) {
|
|
546
458
|
const answer = await exchange(spec, values, { method: "tools/list", params: {}, doing: "listing its tools" }, options);
|
|
547
459
|
return answer.ok ? { ok: true, actions: toolActions(answer.result) } : answer;
|
|
@@ -558,11 +470,6 @@ export function toolActions(result) {
|
|
|
558
470
|
return [{ name: one.name, about: typeof one.description === "string" ? safeLine(one.description).slice(0, 300) : "", input, readOnly: one.annotations?.readOnlyHint === true }];
|
|
559
471
|
}).slice(0, 100);
|
|
560
472
|
}
|
|
561
|
-
/**
|
|
562
|
-
* Start the server once, call one of its tools, and stop it (v87): a flow's
|
|
563
|
-
* "Use a tool" step. The answer's text parts are kept; a tool that says it
|
|
564
|
-
* failed (isError) is an answer, not trouble reaching it.
|
|
565
|
-
*/
|
|
566
473
|
export async function callProjectTool(spec, values, name, args, options) {
|
|
567
474
|
const answer = await exchange(spec, values, { method: "tools/call", params: { name, arguments: args }, doing: `using ${name}` }, options);
|
|
568
475
|
if (!answer.ok)
|
|
@@ -574,7 +481,6 @@ export async function callProjectTool(spec, values, name, args, options) {
|
|
|
574
481
|
return { ok: true, text, isError: result.isError === true };
|
|
575
482
|
}
|
|
576
483
|
async function exchange(spec, values, request, options) {
|
|
577
|
-
// The server's fence may still be on its way (toolServerFor): an answer that isn't used is never an unhandled failure.
|
|
578
484
|
const served = Promise.resolve(options.server);
|
|
579
485
|
served.catch(() => undefined);
|
|
580
486
|
const missing = missingSecrets(spec, values);
|
|
@@ -583,7 +489,6 @@ async function exchange(spec, values, request, options) {
|
|
|
583
489
|
const timeoutMs = options.timeoutMs ?? 60_000;
|
|
584
490
|
if (spec.transport === "http")
|
|
585
491
|
return exchangeHttp(spec, values, timeoutMs, request);
|
|
586
|
-
// A local server starts only in the server fence its caller made (toolServerFor), never bare.
|
|
587
492
|
const server = await served;
|
|
588
493
|
if ("problem" in server)
|
|
589
494
|
return { ok: false, problem: server.problem };
|
|
@@ -598,7 +503,6 @@ function exchangeStdio(spec, values, timeoutMs, base, omit, request, fence) {
|
|
|
598
503
|
let child;
|
|
599
504
|
try {
|
|
600
505
|
const launch = confined(spec.command, spec.args, { ...(fence ?? {}), temp: env["TMPDIR"] });
|
|
601
|
-
// A fenced server gets no chat or vault variable (protected-storage.ts) but the tool's own secrets, set by name.
|
|
602
506
|
child = spawn(launch.file, launch.args, { env: fence === null ? { ...env, ...launch.env } : { ...Object.fromEntries(Object.entries(env).filter(([name]) => !isProtectedEnvName(name) || Object.hasOwn(values, name))), ...launch.env }, stdio: ["pipe", "pipe", "pipe"], detached: process.platform !== "win32" });
|
|
603
507
|
}
|
|
604
508
|
catch (error) {
|
|
@@ -621,14 +525,14 @@ function exchangeStdio(spec, values, timeoutMs, base, omit, request, fence) {
|
|
|
621
525
|
else
|
|
622
526
|
child.kill("SIGTERM");
|
|
623
527
|
}
|
|
624
|
-
catch {
|
|
528
|
+
catch { }
|
|
625
529
|
resolve(outcome);
|
|
626
530
|
};
|
|
627
531
|
const timer = setTimeout(() => finish({ ok: false, problem: `It did not answer within ${Math.round(timeoutMs / 1000)} seconds.` }), timeoutMs);
|
|
628
532
|
const send = (message) => { try {
|
|
629
533
|
child.stdin?.write(`${JSON.stringify(message)}\n`);
|
|
630
534
|
}
|
|
631
|
-
catch {
|
|
535
|
+
catch { } };
|
|
632
536
|
child.on("error", error => finish({ ok: false, problem: `It could not start: ${error.message}.` }));
|
|
633
537
|
child.on("exit", code => finish({ ok: false, problem: `It stopped before ${request.doing} (exit ${code ?? "signal"})${stderr.trim() === "" ? "" : `: ${safeLine(stderr)}`}.` }));
|
|
634
538
|
child.stderr?.on("data", (chunk) => { stderr = (stderr + chunk.toString("utf8")).slice(-2_000); });
|
|
@@ -706,29 +610,20 @@ async function exchangeHttp(spec, values, timeoutMs, request) {
|
|
|
706
610
|
return { ok: false, problem: error instanceof Error && error.name === "TimeoutError" ? `It did not answer within ${Math.round(timeoutMs / 1000)} seconds.` : localAppOf(spec)?.offline ?? "It could not be reached." };
|
|
707
611
|
}
|
|
708
612
|
}
|
|
709
|
-
/** One line of a server's own words, never a secret. */
|
|
710
613
|
function safeLine(text) {
|
|
711
614
|
const line = text.replace(/\s+/g, " ").trim().slice(0, 200);
|
|
712
615
|
return scanForSecrets(line).length > 0 ? "(its message was withheld: it looked like a secret)" : line;
|
|
713
616
|
}
|
|
714
617
|
const toml = (value) => `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
|
|
715
618
|
const tomlList = (values) => `[${values.map(toml).join(",")}]`;
|
|
716
|
-
/** The launch's broker, holding its tools' values; the agent gets only its address and token. */
|
|
717
619
|
function brokerFor(launch, options) {
|
|
718
620
|
return startToolBroker(launch.tools.map(tool => ({ spec: tool.spec, values: tool.values, ...(options.enabledTools?.[tool.spec.name] === undefined ? {} : { actions: options.enabledTools[tool.spec.name] }) })), options.broker);
|
|
719
621
|
}
|
|
720
|
-
/** A private 0700 folder for one launch's files, and its cleanup with the broker's. */
|
|
721
622
|
function launchFolder(broker) {
|
|
722
623
|
const dir = mkdtempSync(join(tmpdir(), "so-tools-"));
|
|
723
624
|
chmodSync(dir, 0o700);
|
|
724
625
|
return { dir, cleanup: () => { broker?.close(); rmSync(dir, { recursive: true, force: true }); } };
|
|
725
626
|
}
|
|
726
|
-
/**
|
|
727
|
-
* Claude: only these servers, in a private 0600 file removed after the run
|
|
728
|
-
* (the provider adds `--strict-mcp-config`). Each is the broker's address
|
|
729
|
-
* with this launch's token: Claude and its shell share one sandbox, so the
|
|
730
|
-
* file holds nothing a tool signs in with.
|
|
731
|
-
*/
|
|
732
627
|
export async function claudeToolArgs(launch, options = {}) {
|
|
733
628
|
const broker = launch.tools.length === 0 ? null : await brokerFor(launch, options);
|
|
734
629
|
const servers = {};
|
|
@@ -739,7 +634,6 @@ export async function claudeToolArgs(launch, options = {}) {
|
|
|
739
634
|
writeFileSync(file, JSON.stringify({ mcpServers: servers }), { mode: 0o600 });
|
|
740
635
|
return {
|
|
741
636
|
argv: ["--mcp-config", file],
|
|
742
|
-
// A first `npx` download can take longer than the default start-up wait.
|
|
743
637
|
env: launch.tools.length > 0 ? { MCP_TIMEOUT: "60000" } : {},
|
|
744
638
|
omitEnv: [],
|
|
745
639
|
cleanup,
|
|
@@ -747,21 +641,10 @@ export async function claudeToolArgs(launch, options = {}) {
|
|
|
747
641
|
...(broker === null ? {} : { serverPids: broker.pids, brokerPort: broker.port }),
|
|
748
642
|
};
|
|
749
643
|
}
|
|
750
|
-
/** Where the tool launcher lives beside this module, built. */
|
|
751
644
|
export function toolLauncherPath() {
|
|
752
645
|
return fileURLToPath(new URL("./tool-launcher.js", import.meta.url));
|
|
753
646
|
}
|
|
754
|
-
/** The secret name a launch file gives the broker's token. */
|
|
755
647
|
const BROKER_TOKEN = "TOOLROLL_TOOL_TOKEN";
|
|
756
|
-
/**
|
|
757
|
-
* Codex: each tool is named by `-c` and started through the launcher, which
|
|
758
|
-
* relays it to the launch's broker. The operator's config.toml, rules, apps,
|
|
759
|
-
* plugins and hooks are already off (the provider's
|
|
760
|
-
* CODEX_BUILD_ISOLATION_ARGV), and nothing of config.toml is carried. Codex
|
|
761
|
-
* gives its own environment to the agent's shell whatever its policy says,
|
|
762
|
-
* so nothing rides it: the launch files name the broker and its token, and
|
|
763
|
-
* the folder holding them is fenced from the agent.
|
|
764
|
-
*/
|
|
765
648
|
export async function codexToolArgs(launch, options = {}) {
|
|
766
649
|
const argv = [];
|
|
767
650
|
if (launch.tools.length === 0)
|
|
@@ -775,19 +658,14 @@ export async function codexToolArgs(launch, options = {}) {
|
|
|
775
658
|
const relay = { ...tool.spec, transport: "http", command: null, args: [], url: broker.url(tool.spec.name), secrets: [{ name: BROKER_TOKEN, optional: false }], bearer: BROKER_TOKEN, headerSecrets: {} };
|
|
776
659
|
writeFileSync(file, JSON.stringify({ spec: relay, values: { [BROKER_TOKEN]: broker.token } }), { mode: 0o600 });
|
|
777
660
|
const key = `mcp_servers.${tool.spec.name}`;
|
|
778
|
-
argv.push("-c", `${key}.command=${toml(node)}`, "-c", `${key}.args=${tomlList([launcher, file])}`, "-c", `${key}.startup_timeout_sec=60`,
|
|
779
|
-
// Adding a tool to a project is the operator's yes to its calls: an unattended build has no one to ask.
|
|
780
|
-
"-c", `${key}.default_tools_approval_mode="approve"`);
|
|
781
|
-
// A research step's server offers only its read-only actions.
|
|
661
|
+
argv.push("-c", `${key}.command=${toml(node)}`, "-c", `${key}.args=${tomlList([launcher, file])}`, "-c", `${key}.startup_timeout_sec=60`, "-c", `${key}.default_tools_approval_mode="approve"`);
|
|
782
662
|
const enabled = options.enabledTools?.[tool.spec.name];
|
|
783
663
|
if (enabled !== undefined)
|
|
784
664
|
argv.push("-c", `${key}.enabled_tools=${tomlList(enabled)}`);
|
|
785
665
|
}
|
|
786
666
|
return { argv, env: {}, omitEnv: [], cleanup, privateDir: dir, serverPids: broker.pids, brokerPort: broker.port };
|
|
787
667
|
}
|
|
788
|
-
/** Gemini: no way yet to hand it exactly these servers, so it gets none. */
|
|
789
668
|
export const GEMINI_NO_TOOLS_ARGV = ["--allowed-mcp-server-names", "standing-orders-none"];
|
|
790
|
-
/** The project's active tools with their parsed definitions and last test. */
|
|
791
669
|
export function projectToolsOf(store, repo) {
|
|
792
670
|
return store.projectTools(repo).flatMap(row => {
|
|
793
671
|
try {
|
|
@@ -806,12 +684,6 @@ export function projectToolsOf(store, repo) {
|
|
|
806
684
|
}
|
|
807
685
|
});
|
|
808
686
|
}
|
|
809
|
-
/**
|
|
810
|
-
* The exact tools one attempt launches with: the project's active tools,
|
|
811
|
-
* limited to those its approval saw (a task approved before tools were
|
|
812
|
-
* sealed gets today's list), each with every required secret set. What is
|
|
813
|
-
* left out says why, in words the task page can show.
|
|
814
|
-
*/
|
|
815
687
|
export function toolLaunchFor(store, runId, home) {
|
|
816
688
|
const run = store.getRun(runId);
|
|
817
689
|
const ref = run === null ? null : store.refById(run.taskRef);
|
|
@@ -823,7 +695,6 @@ export function toolLaunchFor(store, runId, home) {
|
|
|
823
695
|
const claimed = new Map();
|
|
824
696
|
const policy = store.orgPolicy();
|
|
825
697
|
for (const tool of projectToolsOf(store, ref.repo)) {
|
|
826
|
-
// Sprint 8: a tool the organisation policy doesn't allow is left out, and the run says why.
|
|
827
698
|
const disallowed = toolRefusal(policy, tool.name);
|
|
828
699
|
if (disallowed !== null) {
|
|
829
700
|
launch.skipped.push({ name: tool.name, reason: disallowed });
|
|
@@ -833,16 +704,12 @@ export function toolLaunchFor(store, runId, home) {
|
|
|
833
704
|
launch.skipped.push({ name: tool.name, reason: "added or changed after this task was approved; approve it again to use it" });
|
|
834
705
|
continue;
|
|
835
706
|
}
|
|
836
|
-
// A tool that declares no secret never reads the store: a store that isn't ready (a process that didn't start
|
|
837
|
-
// Toolroll's folder) or a keychain that refuses can't take a keyless tool out of the run.
|
|
838
707
|
const values = tool.spec.secrets.length === 0 ? {} : readToolSecrets(ref.repo, tool.name, home);
|
|
839
708
|
const missing = missingSecrets(tool.spec, values);
|
|
840
709
|
if (missing.length > 0) {
|
|
841
710
|
launch.skipped.push({ name: tool.name, reason: `needs ${missing.join(", ")} set on the Tools page` });
|
|
842
711
|
continue;
|
|
843
712
|
}
|
|
844
|
-
// A tool connected by signing in launches with its access token alone: its refresh token, client and the rest
|
|
845
|
-
// stay in the store, and a run that renews gets an access token of its own (prepareRunTools).
|
|
846
713
|
const kept = signedIn(tool.spec) ? { [ACCESS]: values[ACCESS] }
|
|
847
714
|
: Object.fromEntries(tool.spec.secrets.filter(one => (values[one.name] ?? "") !== "").map(one => [one.name, values[one.name]]));
|
|
848
715
|
const clash = Object.entries(kept).find(([name, value]) => claimed.has(name) && claimed.get(name) !== value);
|
|
@@ -856,13 +723,6 @@ export function toolLaunchFor(store, runId, home) {
|
|
|
856
723
|
}
|
|
857
724
|
return launch;
|
|
858
725
|
}
|
|
859
|
-
/**
|
|
860
|
-
* Why a local tool that carries secrets can't start for this launch, or null when it can. Its server's environment
|
|
861
|
-
* holds the values, and a process of the same user can read another's (KERN_PROCARGS2, /proc/<pid>/environ) unless
|
|
862
|
-
* an OS fence stops it: only the macOS sandbox around a Claude build does. Codex's filesystem policy can't deny that
|
|
863
|
-
* read (OpenRouter uses the same harness); Claude's own file rules and Linux's bubblewrap don't stop it, and on Linux
|
|
864
|
-
* hidepid hides nothing from the same user, so Linux never starts one.
|
|
865
|
-
*/
|
|
866
726
|
export function secretToolRefusal(provider, containment) {
|
|
867
727
|
if (provider === "codex" || provider === "openrouter")
|
|
868
728
|
return "This tool needs a Claude build to protect its sign-in details.";
|
|
@@ -872,15 +732,8 @@ export function secretToolRefusal(provider, containment) {
|
|
|
872
732
|
return "This build has no macOS sandbox, so it could read this tool's sign-in details. Toolroll didn't start it.";
|
|
873
733
|
return null;
|
|
874
734
|
}
|
|
875
|
-
/**
|
|
876
|
-
* One attempt's tools, ready for its provider, and recorded on the run:
|
|
877
|
-
* what it launched with and what was left out and why. The caller spawns
|
|
878
|
-
* with `argv`/`env` and calls `cleanup` when the process is done.
|
|
879
|
-
*/
|
|
880
735
|
export async function prepareRunTools(store, runId, provider, options) {
|
|
881
736
|
const launch = limitedTo(toolLaunchFor(store, runId, options.home), options.readOnly, options.withheld);
|
|
882
|
-
// A local server with secrets starts only where the build can't read its environment; the rest are left out,
|
|
883
|
-
// saying why, before the broker exists. Gemini and ACP agents start none (below).
|
|
884
737
|
const toolless = provider === "gemini" || isAcpProvider(provider);
|
|
885
738
|
const refusal = toolless ? null : secretToolRefusal(provider, options.containment);
|
|
886
739
|
if (refusal !== null) {
|
|
@@ -902,13 +755,11 @@ export async function prepareRunTools(store, runId, provider, options) {
|
|
|
902
755
|
: { argv: [], env: {}, omitEnv: [], cleanup: () => undefined };
|
|
903
756
|
}
|
|
904
757
|
catch (error) {
|
|
905
|
-
// Tokens were made for a run that won't start: each is revoked, and the run with them.
|
|
906
758
|
if (revokes.length === 0)
|
|
907
759
|
throw error;
|
|
908
760
|
await revoke();
|
|
909
761
|
throw new RunSignInError("This run's tools couldn't be prepared, so it didn't start; the sign-ins made for it were revoked.");
|
|
910
762
|
}
|
|
911
|
-
// The run's own sign-ins end with it: the broker closes first, so nothing uses a token as it is revoked.
|
|
912
763
|
const prepared = revokes.length === 0 ? launched : { ...launched, cleanup: () => { launched.cleanup(); void revoke(); } };
|
|
913
764
|
const skipped = toolless
|
|
914
765
|
? [...launch.skipped, ...launch.tools.map(one => ({ name: one.spec.name, reason: provider === "gemini" ? "Gemini builds can't use project tools yet" : "ACP agents can't use project tools yet" }))]
|
|
@@ -927,16 +778,8 @@ export async function prepareRunTools(store, runId, provider, options) {
|
|
|
927
778
|
}
|
|
928
779
|
return prepared;
|
|
929
780
|
}
|
|
930
|
-
/** A run whose sign-ins couldn't all be made and kept: it doesn't start, and every token made for it is revoked. */
|
|
931
781
|
export class RunSignInError extends Error {
|
|
932
782
|
}
|
|
933
|
-
/**
|
|
934
|
-
* Each signed-in tool's own access token for this run (oauth-run-token.ts), read and renewed here, outside the fence,
|
|
935
|
-
* one renewal at a time across Toolroll's processes. A rotated refresh token is saved before the run is let in; when
|
|
936
|
-
* it can't be, or anything else fails once a token is made, every token made for this run is revoked, the saved
|
|
937
|
-
* sign-in is left as it was, and the run doesn't start (RunSignInError). Only the new access token joins the launch.
|
|
938
|
-
* A tool that can't be signed in is left out, saying why. Returns how to revoke the run's tokens.
|
|
939
|
-
*/
|
|
940
783
|
async function signInRun(launch, options) {
|
|
941
784
|
const repo = launch.repo;
|
|
942
785
|
const revokes = [];
|
|
@@ -951,7 +794,6 @@ async function signInRun(launch, options) {
|
|
|
951
794
|
}
|
|
952
795
|
const minted = await renewingSignIn(repo, tool.spec.name, options.home, async () => {
|
|
953
796
|
const values = readToolSecrets(repo, tool.spec.name, options.home);
|
|
954
|
-
// No refresh token: the one access token the sign-in gave stays in the broker, like a key.
|
|
955
797
|
if (!mintsRunTokens(values))
|
|
956
798
|
return { ok: true, token: null };
|
|
957
799
|
const scope = runScope(scopeList(values[GRANTED]), options.readOnly);
|
|
@@ -988,7 +830,6 @@ async function signInRun(launch, options) {
|
|
|
988
830
|
launch.tools = kept;
|
|
989
831
|
return revokes;
|
|
990
832
|
}
|
|
991
|
-
/** A research step's launch: only the servers it may read, each limited to its read-only actions; the rest left out, saying why (`withheld`, when a service has its own reason). */
|
|
992
833
|
function limitedTo(launch, readOnly, withheld = {}) {
|
|
993
834
|
if (readOnly === undefined)
|
|
994
835
|
return launch;
|
|
@@ -999,7 +840,6 @@ function limitedTo(launch, readOnly, withheld = {}) {
|
|
|
999
840
|
skipped: [...launch.skipped, ...launch.tools.filter(one => !readable(one.spec.name)).map(one => ({ name: one.spec.name, reason: withheld[one.spec.name] ?? "research reads only connected services' read-only actions" }))],
|
|
1000
841
|
};
|
|
1001
842
|
}
|
|
1002
|
-
/** When a launch's tools cannot be prepared, it still gets none of anything else's: the same isolation with an empty list. */
|
|
1003
843
|
export function noToolsArgs(provider) {
|
|
1004
844
|
if (provider === "claude")
|
|
1005
845
|
return { argv: ["--mcp-config", '{"mcpServers":{}}'], env: {}, omitEnv: [], cleanup: () => undefined };
|
|
@@ -1007,7 +847,6 @@ export function noToolsArgs(provider) {
|
|
|
1007
847
|
return { argv: [...GEMINI_NO_TOOLS_ARGV], env: {}, omitEnv: [], cleanup: () => undefined };
|
|
1008
848
|
return { argv: [], env: {}, omitEnv: [], cleanup: () => undefined };
|
|
1009
849
|
}
|
|
1010
|
-
/** Add one tool (and, for an import, the values it brings) to a project's builds. */
|
|
1011
850
|
export function addToolTo(store, repo, input, source, by, now, options = {}) {
|
|
1012
851
|
let spec;
|
|
1013
852
|
try {
|
|
@@ -1030,17 +869,15 @@ export function addToolTo(store, repo, input, source, by, now, options = {}) {
|
|
|
1030
869
|
}
|
|
1031
870
|
return { ok: true, spec };
|
|
1032
871
|
}
|
|
1033
|
-
/** Take one tool away from every build now, with its stored secrets. */
|
|
1034
872
|
export function removeToolFrom(store, repo, name, by, now, home) {
|
|
1035
873
|
if (!store.removeProjectTool(repo, name, by, now))
|
|
1036
874
|
return false;
|
|
1037
875
|
try {
|
|
1038
876
|
clearToolSecrets(repo, name, home);
|
|
1039
877
|
}
|
|
1040
|
-
catch {
|
|
878
|
+
catch { }
|
|
1041
879
|
return true;
|
|
1042
880
|
}
|
|
1043
|
-
/** Test one tool of a project and keep the answer on it. */
|
|
1044
881
|
export async function testToolOf(store, repo, name, now, options = {}) {
|
|
1045
882
|
const tool = projectToolsOf(store, repo).find(one => one.name === name);
|
|
1046
883
|
if (tool === undefined)
|
|
@@ -1051,7 +888,6 @@ export async function testToolOf(store, repo, name, now, options = {}) {
|
|
|
1051
888
|
store.recordProjectToolTest(repo, name, JSON.stringify(test));
|
|
1052
889
|
return test;
|
|
1053
890
|
}
|
|
1054
|
-
/** Where a tool stands, in a few words: what a person reads first. */
|
|
1055
891
|
export function toolStanding(tool, secretsSet) {
|
|
1056
892
|
const missing = tool.spec.secrets.filter(one => !one.optional && !secretsSet.includes(one.name)).map(one => one.name);
|
|
1057
893
|
if (missing.length > 0)
|
|
@@ -1067,7 +903,6 @@ export const CREDENTIAL_MODES = {
|
|
|
1067
903
|
"held-key": { words: "Key held by Toolroll", detail: "Runs reach this tool through Toolroll, which adds the key. The key never enters a build." },
|
|
1068
904
|
"no-key": { words: "No key needed", detail: null },
|
|
1069
905
|
};
|
|
1070
|
-
/** A tool's credential mode from the names of its secrets that are set (never their values); null while a key it needs is missing. */
|
|
1071
906
|
export function credentialModeOf(spec, secretsSet) {
|
|
1072
907
|
const mode = spec.secrets.every(one => one.optional && !secretsSet.includes(one.name)) ? "no-key"
|
|
1073
908
|
: signedIn(spec) && mintsRunTokens(secretsSet) ? "run-token"
|
|
@@ -1075,7 +910,6 @@ export function credentialModeOf(spec, secretsSet) {
|
|
|
1075
910
|
: "held-key";
|
|
1076
911
|
return mode === null ? null : { mode, ...CREDENTIAL_MODES[mode] };
|
|
1077
912
|
}
|
|
1078
|
-
/** Names of a tool's secrets that have a value, never the values: in the keychain, from the names kept beside them. */
|
|
1079
913
|
export function secretsSetFor(repo, tool, state) {
|
|
1080
914
|
const folder = secretFolder(state);
|
|
1081
915
|
let names = null;
|
|
@@ -1097,11 +931,9 @@ export function secretsSetFor(repo, tool, state) {
|
|
|
1097
931
|
}
|
|
1098
932
|
return tool.secrets.filter(one => names.includes(one.name)).map(one => one.name);
|
|
1099
933
|
}
|
|
1100
|
-
/** Where this computer keeps tool secrets, in the words Settings and `toolroll integrations` share; `problem` when they can't be used. */
|
|
1101
934
|
export function toolSecretStorage() {
|
|
1102
935
|
return secretStorage();
|
|
1103
936
|
}
|
|
1104
|
-
/** A command line split into program and arguments, honouring "double" and 'single' quotes. */
|
|
1105
937
|
export function splitCommandLine(line) {
|
|
1106
938
|
const parts = [];
|
|
1107
939
|
let current = "", quote = null, started = false;
|
|
@@ -1135,13 +967,6 @@ export function splitCommandLine(line) {
|
|
|
1135
967
|
parts.push(current);
|
|
1136
968
|
return parts;
|
|
1137
969
|
}
|
|
1138
|
-
/**
|
|
1139
|
-
* The server fence for a project tool started outside a build (docs/plans/sandbox-parity.md C2): discovery, its Test
|
|
1140
|
-
* button, a flow's "Use a tool" step, a subagent's call. As the broker's servers are fenced: Toolroll's state, every
|
|
1141
|
-
* other launch's folder and the checkout pools denied, and nothing a build writes (its project's caches) read, so no
|
|
1142
|
-
* byte a build wrote can load into a process that holds the tool's secrets. Required: where this machine can't confine
|
|
1143
|
-
* it, it doesn't start unless an instance operator allowed unconfined agents.
|
|
1144
|
-
*/
|
|
1145
970
|
export async function toolServerFor(store, repo, options = {}) {
|
|
1146
971
|
const databaseFile = store.databaseFile();
|
|
1147
972
|
if (databaseFile === null || databaseFile === "" || databaseFile === ":memory:")
|
|
@@ -1154,7 +979,6 @@ export async function toolServerFor(store, repo, options = {}) {
|
|
|
1154
979
|
const poolRoots = [join(dirname(databaseFile), "worktrees"), ...store.listWorktrees().map(record => poolRootOf(record.path, record.repo))];
|
|
1155
980
|
const cache = buildCacheFolder(repo, home);
|
|
1156
981
|
const untrusted = existsSync(cache) ? [realpathSync(cache)] : [];
|
|
1157
|
-
// The storage check, awaited off this thread (protected-storage.ts): the console's Test button never waits on it.
|
|
1158
982
|
let storage;
|
|
1159
983
|
try {
|
|
1160
984
|
storage = await prepareProtectedStorage(home);
|
|
@@ -1167,6 +991,4 @@ export async function toolServerFor(store, repo, options = {}) {
|
|
|
1167
991
|
}
|
|
1168
992
|
return { fence: fenceFor("tool-server", { databaseFile, worktree: null, home, boundary: null, binding: null, runFolders: runFolders(null), poolRoots, storage, extra: untrusted }) };
|
|
1169
993
|
}
|
|
1170
|
-
/** Each project's `.mcp.json` as the console last read it off its thread (its background pass): what its pages and the
|
|
1171
|
-
* lead offer, so neither reads a project folder on the console's thread. */
|
|
1172
994
|
export const savedProjectMcp = new Map();
|