toolroll 0.9.104 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -5
- package/README.md +18 -20
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +17 -139
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +1 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +0 -17
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +0 -53
- package/dist/local-owner.js +2 -93
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +0 -20
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +0 -100
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +0 -25
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +4 -567
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +21 -555
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +1 -88
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +13 -493
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +6 -135
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +9 -227
- package/dist/server/tasks.js +5 -539
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +0 -75
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +17 -28
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +16 -36
- package/dist/tui.js +1 -1
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +4 -3
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -350
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1985
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -540
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -43
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -61
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -170
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -39
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1098
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -81
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -60
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -343
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -108
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -48
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -202
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Protected storage (docs/plans/chat-management.md §1.1): where the person's chat apps, browser profiles and password
|
|
3
|
-
* managers keep their sessions, denied to every launch Toolroll fences, read and write, under both fence policies and
|
|
4
|
-
* on every backend. A linked chat account is not proof of a person: whatever holds the Slack desktop's token, Telegram
|
|
5
|
-
* Desktop's `tdata` or a browser's cookies can press the bot's buttons as them. So no build, check, flow or tool server
|
|
6
|
-
* may read those, whatever its project's settings say.
|
|
7
|
-
*
|
|
8
|
-
* The list is outside HOME_CONFIGURATION (agent-fence.ts), which only version-1 fences read: `agentFence` adds these to
|
|
9
|
-
* every fence it makes, as paths no grant can reopen, and `taskBoundary` names them for both policies.
|
|
10
|
-
*
|
|
11
|
-
* Each root is denied by its name, present or not (a build can't make the folder now and swap in a link later), and by
|
|
12
|
-
* its real path (a root that is itself a link to a relocated folder). Inside each present root a bounded walk that
|
|
13
|
-
* never follows a link finds links leading outward and denies where they lead. The overrides Toolroll can know are read
|
|
14
|
-
* from the plane's own environment at each launch, never from a checkout: XDG_CONFIG_HOME and XDG_DATA_HOME (Linux),
|
|
15
|
-
* OP_CONFIG_DIR, BITWARDENCLI_APPDATA_DIR, and the profiles Firefox's (and Zen's) profiles.ini places elsewhere.
|
|
16
|
-
* Storage Toolroll doesn't know about (a browser started with its own --user-data-dir, a portable app) isn't covered.
|
|
17
|
-
*
|
|
18
|
-
* Each launch's check is its own and finishes before the launch (prepareProtectedStorage): on a Mac it runs in a child
|
|
19
|
-
* process, so a privacy prompt never holds the thread that serves the console, and a check that can't finish refuses
|
|
20
|
-
* the launch in words that say which program macOS may need to allow. No earlier walk stands in for it.
|
|
21
|
-
*
|
|
22
|
-
* The chat and vault variables (SLACK_*, TELEGRAM_*, DISCORD_*, TEAMS_*, OP_*, BW_*, BITWARDENCLI_*) are kept out of
|
|
23
|
-
* every launch's environment (`withoutProtectedEnv`, exec.ts).
|
|
24
|
-
*/
|
|
25
1
|
import { spawn } from "node:child_process";
|
|
26
2
|
import { closeSync, existsSync, fstatSync, lstatSync, openSync, constants as fsConstants, readSync, readdirSync, readlinkSync, realpathSync } from "node:fs";
|
|
27
3
|
import { homedir } from "node:os";
|
|
@@ -30,17 +6,12 @@ import { fileURLToPath } from "node:url";
|
|
|
30
6
|
const AS = "Library/Application Support";
|
|
31
7
|
const CONTAINERS = "Library/Containers";
|
|
32
8
|
const GROUPS = "Library/Group Containers";
|
|
33
|
-
/**
|
|
34
|
-
* Every listed root. Checked against a real Mac (2026-10-25): existence only, never a file's contents. The 1Password
|
|
35
|
-
* containers and the extra Chrome, Edge and other browsers' folders below were found there and added.
|
|
36
|
-
*/
|
|
37
9
|
export const PROTECTED_STORAGE = [
|
|
38
10
|
{ app: "Slack", darwin: [`${AS}/Slack`, `${CONTAINERS}/com.tinyspeck.slackmacgap`], linux: [".config/Slack", "snap/slack", ".var/app/com.slack.Slack"] },
|
|
39
11
|
{ app: "Telegram", darwin: [`${AS}/Telegram Desktop`, `${CONTAINERS}/org.telegram.desktop`, `${GROUPS}/6N38VWS5BX.ru.keepcoder.Telegram`, `${CONTAINERS}/ru.keepcoder.Telegram`],
|
|
40
12
|
linux: [".local/share/TelegramDesktop", "snap/telegram-desktop", ".var/app/org.telegram.desktop"] },
|
|
41
13
|
{ app: "Discord", darwin: [`${AS}/discord`, `${AS}/discordptb`, `${AS}/discordcanary`],
|
|
42
14
|
linux: [".config/discord", ".config/discordptb", ".config/discordcanary", "snap/discord", ".var/app/com.discordapp.Discord"] },
|
|
43
|
-
// New Teams keeps its sign-in in Microsoft's shared sign-in cache (OneAuth) too.
|
|
44
15
|
{ app: "Teams", darwin: [`${CONTAINERS}/com.microsoft.teams2`, `${GROUPS}/UBF8T346G9.com.microsoft.teams`, `${AS}/Microsoft/Teams`, `${GROUPS}/UBF8T346G9.com.microsoft.oneauth`],
|
|
45
16
|
linux: [".config/Microsoft/Microsoft Teams", ".config/teams-for-linux"] },
|
|
46
17
|
{ app: "WhatsApp", darwin: [`${CONTAINERS}/net.whatsapp.WhatsApp`, `${GROUPS}/group.net.whatsapp.WhatsApp.shared`, `${GROUPS}/group.net.whatsapp.WhatsApp.private`, `${GROUPS}/group.net.whatsapp.family`], linux: [] },
|
|
@@ -51,7 +22,6 @@ export const PROTECTED_STORAGE = [
|
|
|
51
22
|
linux: [".config/1Password", "snap/1password", ".var/app/com.onepassword.OnePassword", ".config/op", ".op"] },
|
|
52
23
|
{ app: "Bitwarden", darwin: [`${AS}/Bitwarden`, `${CONTAINERS}/com.bitwarden.desktop`, `${GROUPS}/LTZ2PFU5D6.com.bitwarden.desktop`, `${AS}/Bitwarden CLI`],
|
|
53
24
|
linux: [".config/Bitwarden", "snap/bitwarden", ".var/app/com.bitwarden.desktop", ".config/Bitwarden CLI"] },
|
|
54
|
-
// The browser extensions of both password managers live inside the browser profiles below.
|
|
55
25
|
{ app: "Chrome", darwin: [`${AS}/Google/Chrome`, `${AS}/Google/Chrome Beta`, `${AS}/Google/Chrome Canary`, `${AS}/Google/Chrome Dev`],
|
|
56
26
|
linux: [".config/google-chrome", ".config/google-chrome-beta", ".config/google-chrome-unstable", ".var/app/com.google.Chrome"] },
|
|
57
27
|
{ app: "Chromium", darwin: [`${AS}/Chromium`], linux: [".config/chromium", "snap/chromium", ".var/app/org.chromium.Chromium"] },
|
|
@@ -66,18 +36,15 @@ export const PROTECTED_STORAGE = [
|
|
|
66
36
|
{ app: "Orion", darwin: [`${AS}/Orion`], linux: [] },
|
|
67
37
|
{ app: "Safari", darwin: ["Library/Safari", `${CONTAINERS}/com.apple.Safari`, `${CONTAINERS}/com.apple.Safari.WebApp`, "Library/Cookies", "Library/HTTPStorages", "Library/WebKit"], linux: [] },
|
|
68
38
|
];
|
|
69
|
-
/** The roots whose profiles.ini may place a profile anywhere (Firefox and its forks). */
|
|
70
39
|
const PROFILE_INDEXES = {
|
|
71
40
|
darwin: [`${AS}/Firefox`, `${AS}/zen`],
|
|
72
41
|
linux: [".mozilla/firefox", "snap/firefox/common/.mozilla/firefox", ".var/app/org.mozilla.firefox/.mozilla/firefox", ".zen"],
|
|
73
42
|
};
|
|
74
|
-
/** The chat and vault variables no launch gets. */
|
|
75
43
|
export const PROTECTED_ENV_PREFIXES = ["SLACK_", "TELEGRAM_", "DISCORD_", "TEAMS_", "OP_", "BW_", "BITWARDENCLI_"];
|
|
76
44
|
export function isProtectedEnvName(name) {
|
|
77
45
|
const upper = name.toUpperCase();
|
|
78
46
|
return PROTECTED_ENV_PREFIXES.some(prefix => upper.startsWith(prefix));
|
|
79
47
|
}
|
|
80
|
-
/** `env` without a chat or vault variable. */
|
|
81
48
|
export function withoutProtectedEnv(env) {
|
|
82
49
|
const out = { ...env };
|
|
83
50
|
for (const name of Object.keys(out))
|
|
@@ -85,7 +52,6 @@ export function withoutProtectedEnv(env) {
|
|
|
85
52
|
delete out[name];
|
|
86
53
|
return out;
|
|
87
54
|
}
|
|
88
|
-
/** How far the link walk goes in each present root. */
|
|
89
55
|
export const PROTECTED_WALK = { depth: 4, entries: 5_000 };
|
|
90
56
|
const real = (path) => { try {
|
|
91
57
|
return realpathSync(path);
|
|
@@ -95,11 +61,9 @@ catch {
|
|
|
95
61
|
} };
|
|
96
62
|
const within = (child, parent) => { const rel = relative(parent, child); return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel); };
|
|
97
63
|
const platformOf = (platform) => platform === "darwin" ? "darwin" : platform === "linux" ? "linux" : null;
|
|
98
|
-
/** A path the fence can't deny without denying the machine: `/`, the home folder or a folder above it. */
|
|
99
64
|
function tooWide(path, home) {
|
|
100
65
|
return !isAbsolute(path) || path === dirname(path) || path === home || within(home, path);
|
|
101
66
|
}
|
|
102
|
-
/** The roots by name, under the (real) home folder and the overrides the plane's environment names. */
|
|
103
67
|
export function protectedStorageNames(home = homedir(), env = process.env, platform = process.platform) {
|
|
104
68
|
const os = platformOf(platform);
|
|
105
69
|
if (os === null)
|
|
@@ -131,9 +95,6 @@ export function protectedStorageNames(home = homedir(), env = process.env, platf
|
|
|
131
95
|
add(profile);
|
|
132
96
|
return [...names].sort();
|
|
133
97
|
}
|
|
134
|
-
/** The absolute `Path=` entries of a profiles.ini in `root`, read only as the plain file it is, bounded. On a Mac this
|
|
135
|
-
* runs only inside the storage check's child process (prepareProtectedStorage), where an open that waits on macOS
|
|
136
|
-
* holds up nothing else. */
|
|
137
98
|
function profilesElsewhere(root) {
|
|
138
99
|
const text = profilesIniHere(join(root, "profiles.ini"));
|
|
139
100
|
return (text ?? "").split(/\r?\n/)
|
|
@@ -169,17 +130,6 @@ function profilesIniHere(file) {
|
|
|
169
130
|
}
|
|
170
131
|
}
|
|
171
132
|
const unwalkedSaid = new Set();
|
|
172
|
-
/**
|
|
173
|
-
* The storage check, run right here: every root by name and by real path, every link inside a present root that leads
|
|
174
|
-
* outward (where it leads, by real path and as spelled), and the overrides. `unfinished` names each present root whose
|
|
175
|
-
* walk met an error other than "not there" or "not allowed": its links aren't all known. A link macOS makes in a
|
|
176
|
-
* sandboxed app's container to the same place under the home folder (its Desktop, Downloads, Fonts…) is the system's
|
|
177
|
-
* own mirror of the person's folders, not the app's data, and isn't followed (systemMirror).
|
|
178
|
-
*
|
|
179
|
-
* On a Mac a listing (or an open) inside another app's data can wait until a person answers a privacy prompt, so there
|
|
180
|
-
* this runs only in the check's own child process (prepareProtectedStorage), never on a thread that serves anything.
|
|
181
|
-
* `at` is told each root before its walk starts, so a check that runs out of time can name the app it was waiting on.
|
|
182
|
-
*/
|
|
183
133
|
export function protectedStorageHere(home = homedir(), env = process.env, platform = process.platform, say = () => { }, list = path => readdirSync(path, { withFileTypes: true }), at = () => { }) {
|
|
184
134
|
const base = real(home);
|
|
185
135
|
const names = protectedStorageNames(base, env, platform);
|
|
@@ -193,7 +143,7 @@ export function protectedStorageHere(home = homedir(), env = process.env, platfo
|
|
|
193
143
|
lstatSync(name);
|
|
194
144
|
}
|
|
195
145
|
catch {
|
|
196
|
-
continue;
|
|
146
|
+
continue;
|
|
197
147
|
}
|
|
198
148
|
const root = real(name);
|
|
199
149
|
add(root);
|
|
@@ -206,11 +156,9 @@ export function protectedStorageHere(home = homedir(), env = process.env, platfo
|
|
|
206
156
|
}
|
|
207
157
|
return { names, denies: [...out].sort(), unfinished };
|
|
208
158
|
}
|
|
209
|
-
/** Every protected path, checked right here (protectedStorageHere), for a caller that has no prepared check. */
|
|
210
159
|
export function protectedStorageDenies(home = homedir(), env = process.env, platform = process.platform, say, list) {
|
|
211
160
|
return protectedStorageHere(home, env, platform, say, list).denies;
|
|
212
161
|
}
|
|
213
|
-
/** Where the links inside a present root lead, when outside it: a walk that never follows a link, bounded. */
|
|
214
162
|
function outwardLinks(name, root, home, say, list, walked) {
|
|
215
163
|
const found = [];
|
|
216
164
|
let seen = 0;
|
|
@@ -258,19 +206,11 @@ function outwardLinks(name, root, home, say, list, walked) {
|
|
|
258
206
|
}
|
|
259
207
|
return found;
|
|
260
208
|
}
|
|
261
|
-
/** The links macOS makes in every sandboxed app's container (`Data/X` → `~/X`), as found on a real Mac (2026-10-26). */
|
|
262
209
|
const CONTAINER_MIRRORS = new Set([".CFUserTextEncoding", "Desktop", "Downloads", "Movies", "Music", "Pictures",
|
|
263
210
|
...["Audio", "Calendars", "ColorPickers", "ColorSync", "Colors", "Components", "Compositions", "Dictionaries", "Favorites", "Filters", "FontCollections", "Fonts",
|
|
264
211
|
"Input Methods", "KeyBindings", "Keyboard Layouts", "Keychains", "Mail", "PDF Services", "QuickLook", "Sounds", "Spelling", "Images/People",
|
|
265
212
|
"Application Support/AddressBook", "Application Support/iCloud", "Application Support/SyncServices",
|
|
266
213
|
"Preferences/com.apple.security.plist", "Preferences/com.apple.security_common.plist"].map(one => `Library/${one}`)]);
|
|
267
|
-
/**
|
|
268
|
-
* The system's own redirect in a sandboxed app's container, and nothing else: the root is an app container (its links
|
|
269
|
-
* under `Data/`) or a group container, directly in the home folder's Library, and the link is one macOS makes there
|
|
270
|
-
* (CONTAINER_MIRRORS, or the app's own Application Scripts folder) leading to the same place under the home folder.
|
|
271
|
-
* Any other outward link — in a browser profile, a password manager's folder, or an unknown name in a container — is
|
|
272
|
-
* where that app's data was moved, and is denied.
|
|
273
|
-
*/
|
|
274
214
|
function systemMirror(link, root, target, home) {
|
|
275
215
|
const app = dirname(root) === real(join(home, CONTAINERS)), group = dirname(root) === real(join(home, GROUPS));
|
|
276
216
|
if (!app && !group)
|
|
@@ -283,16 +223,10 @@ function systemMirror(link, root, target, home) {
|
|
|
283
223
|
const known = CONTAINER_MIRRORS.has(named) || named === `Library/Application Scripts/${root.split(sep).at(-1)}`;
|
|
284
224
|
return known && target === join(home, ...under);
|
|
285
225
|
}
|
|
286
|
-
/** The answers a walk takes as complete: the folder isn't there, or macOS refused it outright. */
|
|
287
226
|
const ANSWERED = new Set(["ENOENT", "ENOTDIR", "EPERM", "EACCES"]);
|
|
288
|
-
// ---- the check, off the thread ---------------------------------------------------------------------------------
|
|
289
|
-
/** How long the storage check may take before the launch is refused (a slow Mac finishes well inside it). */
|
|
290
227
|
export const STORAGE_LOOK_MS = 10_000;
|
|
291
|
-
/** At most this much of the check's answer is read. */
|
|
292
228
|
const LOOK_OUTPUT_MAX = 8 * 1024 * 1024;
|
|
293
|
-
/** The plane's own variables the check reads (protectedStorageNames), handed to its child as they are here. */
|
|
294
229
|
const STORAGE_ENV = ["XDG_CONFIG_HOME", "XDG_DATA_HOME", "OP_CONFIG_DIR", "BITWARDENCLI_APPDATA_DIR"];
|
|
295
|
-
/** Why a launch didn't start: the storage check couldn't finish. Its words survive every catch (storageRefusalOf). */
|
|
296
230
|
export class ProtectedStorageRefusal extends Error {
|
|
297
231
|
apps;
|
|
298
232
|
why;
|
|
@@ -304,17 +238,13 @@ export class ProtectedStorageRefusal extends Error {
|
|
|
304
238
|
this.name = "ProtectedStorageRefusal";
|
|
305
239
|
}
|
|
306
240
|
}
|
|
307
|
-
/** The storage refusal inside a caught error, when it is one. */
|
|
308
241
|
export function storageRefusalOf(error) {
|
|
309
242
|
return error instanceof ProtectedStorageRefusal ? error : null;
|
|
310
243
|
}
|
|
311
|
-
/** The apps behind these roots, by name, for the words a person reads. */
|
|
312
244
|
function appsOf(roots, home) {
|
|
313
245
|
const names = roots.map(root => PROTECTED_STORAGE.find(row => [...row.darwin, ...row.linux].some(one => real(join(home, one)) === root || join(home, one) === root))?.app ?? basename(root));
|
|
314
246
|
return [...new Set(names)];
|
|
315
247
|
}
|
|
316
|
-
/** Which program macOS must allow: the one this plane runs as. A launchd service is its program itself; a plane started
|
|
317
|
-
* from a terminal asks as that terminal app. */
|
|
318
248
|
export function storageAccessHolder(env = process.env, execPath = process.execPath, versions = process.versions) {
|
|
319
249
|
if (versions["electron"] !== undefined)
|
|
320
250
|
return "the Toolroll app";
|
|
@@ -326,7 +256,6 @@ export function storageAccessHolder(env = process.env, execPath = process.execPa
|
|
|
326
256
|
return `the terminal app Toolroll was started from (${terminal.replace(/\.app$/, "")})`;
|
|
327
257
|
return `the program Toolroll runs as (${execPath})`;
|
|
328
258
|
}
|
|
329
|
-
/** Why nothing was launched, and what the person does about it. Never says macOS is asking: that isn't known. */
|
|
330
259
|
export function storageRefusalWords(apps, why, holder) {
|
|
331
260
|
const named = apps.length === 0 ? "other apps" : apps.length === 1 ? apps[0] : `${apps.slice(0, -1).join(", ")} and ${apps.at(-1)}`;
|
|
332
261
|
const reason = why === "timed-out" ? ` (the check didn't finish within ${STORAGE_LOOK_MS / 1000} seconds)` : why === "unfinished" ? " (some of its folders couldn't be read)" : " (the check stopped with an error)";
|
|
@@ -334,19 +263,11 @@ export function storageRefusalWords(apps, why, holder) {
|
|
|
334
263
|
+ `macOS may need to let ${holder} read it: in System Settings → Privacy & Security → Full Disk Access, turn it on for ${holder}, then try again.`;
|
|
335
264
|
}
|
|
336
265
|
const inFlight = new Map();
|
|
337
|
-
/**
|
|
338
|
-
* The storage check for one launch, awaited: what it denies, from a walk that finished just now. On a Mac the whole check
|
|
339
|
-
* (finding the roots, reading profiles.ini, every walk) runs in a child process, so a listing that waits on a privacy
|
|
340
|
-
* prompt holds up only that child; the thread that asked keeps serving. A check that doesn't finish within
|
|
341
|
-
* STORAGE_LOOK_MS, fails, or leaves a present root's walk unfinished refuses the launch (ProtectedStorageRefusal): no
|
|
342
|
-
* earlier walk stands in for it, since a link can move inside a root at any time. Checks asked for at once share one child.
|
|
343
|
-
*/
|
|
344
266
|
export async function prepareProtectedStorage(home = homedir(), env = process.env, platform = process.platform, look = lookInChild, holder = storageAccessHolder(env)) {
|
|
345
267
|
const base = real(home);
|
|
346
268
|
const request = { home: base, env: Object.fromEntries(STORAGE_ENV.flatMap(name => env[name] === undefined ? [] : [[name, env[name]]])), platform };
|
|
347
269
|
let answer;
|
|
348
270
|
if (platform !== "darwin") {
|
|
349
|
-
// No privacy prompt can hold a listing here: the check runs as it is.
|
|
350
271
|
const here = protectedStorageHere(base, env, platform, line => process.stderr.write(`${line}\n`));
|
|
351
272
|
answer = { kind: "done", storage: { names: here.names, denies: here.denies }, unfinished: here.unfinished };
|
|
352
273
|
}
|
|
@@ -371,16 +292,13 @@ export async function prepareProtectedStorage(home = homedir(), env = process.en
|
|
|
371
292
|
}
|
|
372
293
|
return answer.storage;
|
|
373
294
|
}
|
|
374
|
-
/** Where the check's child script is: beside this module once built, else the built copy (a run from source). */
|
|
375
295
|
export function storageLookScript() {
|
|
376
296
|
const beside = fileURLToPath(new URL("./protected-storage-look.js", import.meta.url));
|
|
377
297
|
return existsSync(beside) ? beside : fileURLToPath(new URL("../dist/protected-storage-look.js", import.meta.url));
|
|
378
298
|
}
|
|
379
|
-
/** The default check: node (or Electron as node) runs protected-storage-look.js, killed at STORAGE_LOOK_MS. */
|
|
380
299
|
async function lookInChild(request) {
|
|
381
300
|
return readLook(await spawnLook(process.execPath, [storageLookScript(), JSON.stringify(request)], STORAGE_LOOK_MS));
|
|
382
301
|
}
|
|
383
|
-
/** A finished child's lines as the check's answer: `at\t<root>` before each walk, `done\t<answer>` once at the end. */
|
|
384
302
|
export function readLook(ran) {
|
|
385
303
|
const lines = ran.stdout.split("\n");
|
|
386
304
|
const last = [...lines].reverse().find(line => line.startsWith("at\t"));
|
|
@@ -410,7 +328,6 @@ export function readLook(ran) {
|
|
|
410
328
|
return { kind: "failed", detail: "the check's answer can't be read" };
|
|
411
329
|
}
|
|
412
330
|
}
|
|
413
|
-
/** Run a child without waiting on this thread: its output, bounded, and how it ended. Killed at `limitMs`. */
|
|
414
331
|
export function spawnLook(command, args, limitMs) {
|
|
415
332
|
return new Promise(settle => {
|
|
416
333
|
let stdout = "", over = false, timedOut = false, settled = false;
|
package/dist/provider-auth.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { PROVIDER_IDS } from "./provider.js";
|
|
2
2
|
import { withAcp } from "./acp-agents.js";
|
|
3
|
-
/** Every sign-in message's dedupe key starts here: `signin:<kind>:<provider>:<ordinal>:<person>`.
|
|
4
|
-
* Not a lifecycle (`life:`) key: those are progress chatter, and an undelivered
|
|
5
|
-
* one stays out of the attention list — this one needs a person. */
|
|
6
3
|
export const SIGN_IN_KEY_PREFIX = "signin:";
|
|
7
4
|
export const PROVIDER_AUTH_SCHEMA = `
|
|
8
5
|
CREATE TABLE IF NOT EXISTS provider_auth_pause (
|
|
@@ -33,23 +30,17 @@ const SIGN_IN = withAcp({ claude: "claude /login", codex: "codex login", gemini:
|
|
|
33
30
|
export function providerName(provider) {
|
|
34
31
|
return PROVIDER_IDS.includes(provider) ? NAMES[provider] : provider;
|
|
35
32
|
}
|
|
36
|
-
/** The plain reason: "Claude needs you to sign in again". */
|
|
37
33
|
export function signInReason(pause) {
|
|
38
34
|
const name = providerName(pause.provider);
|
|
39
35
|
return pause.authMode === "api-key" ? `${name} needs a working API key` : `${name} needs you to sign in again`;
|
|
40
36
|
}
|
|
41
|
-
/** What to run, as a command. */
|
|
42
37
|
export function signInCommand(pause) {
|
|
43
38
|
return pause.authMode === "api-key" && pause.provider !== "openrouter" ? `toolroll keys set ${pause.provider}` : SIGN_IN[pause.provider];
|
|
44
39
|
}
|
|
45
|
-
/** The same command for a chat message: the phone scrub hides anything shaped
|
|
46
|
-
* like a path (`/login` included), so a message names Claude's equivalent
|
|
47
|
-
* `claude auth login`. */
|
|
48
40
|
export function messageCommand(pause) {
|
|
49
41
|
const command = signInCommand(pause);
|
|
50
42
|
return command === "claude /login" ? "claude auth login" : command;
|
|
51
43
|
}
|
|
52
|
-
/** One line for status, ready and the console. */
|
|
53
44
|
export function signInWords(pause) {
|
|
54
45
|
return `${signInReason(pause)}. Run \`${signInCommand(pause)}\` on this computer; its tasks start again on their own once it works (or \`toolroll providers resume ${pause.provider}\`).`;
|
|
55
46
|
}
|
|
@@ -65,19 +56,10 @@ function readPause(row) {
|
|
|
65
56
|
runs: Number(row["runs"]),
|
|
66
57
|
};
|
|
67
58
|
}
|
|
68
|
-
/** The open pause for a provider, or null. */
|
|
69
59
|
export function authPauseOf(store, provider) {
|
|
70
60
|
const row = store.handle.prepare("SELECT * FROM provider_auth_pause WHERE provider = ? AND lifted_at IS NULL").get(provider);
|
|
71
61
|
return row === undefined ? null : readPause(row);
|
|
72
62
|
}
|
|
73
|
-
/**
|
|
74
|
-
* SQL: whether the pause `pause` (a provider_auth_pause alias) is on one of
|
|
75
|
-
* the task_ref `taskRef`'s current providers — its pins, its working profile,
|
|
76
|
-
* and route legs — so a task re-routed to another provider
|
|
77
|
-
* stops saying it waits on the old one. A task that names none yet (an
|
|
78
|
-
* unpinned planner, whose agent comes from configuration) keeps what the gate
|
|
79
|
-
* found.
|
|
80
|
-
*/
|
|
81
63
|
export function pauseOnTaskProviders(pause, taskRef) {
|
|
82
64
|
const providers = `SELECT r.agent_provider provider FROM task_ref r WHERE r.id = ${taskRef}
|
|
83
65
|
UNION ALL SELECT r.plan_provider FROM task_ref r WHERE r.id = ${taskRef}
|
|
@@ -88,22 +70,14 @@ export function pauseOnTaskProviders(pause, taskRef) {
|
|
|
88
70
|
return `(${pause}.provider IN (SELECT provider FROM (${providers}) WHERE provider IS NOT NULL)
|
|
89
71
|
OR NOT EXISTS (SELECT 1 FROM (${providers}) WHERE provider IS NOT NULL))`;
|
|
90
72
|
}
|
|
91
|
-
/** The open pause the dispatch gate last left this task waiting on, while it
|
|
92
|
-
* is still on one of the task's providers; or null. */
|
|
93
73
|
export function authWaitOf(store, taskRef) {
|
|
94
74
|
const row = store.handle.prepare(`SELECT p.* FROM task_ref r JOIN provider_auth_pause p ON p.id = r.auth_wait_pause
|
|
95
75
|
WHERE r.id = ? AND p.lifted_at IS NULL AND ${pauseOnTaskProviders("p", "r.id")}`).get(taskRef);
|
|
96
76
|
return row === undefined ? null : readPause(row);
|
|
97
77
|
}
|
|
98
|
-
/** Every open pause, oldest first. */
|
|
99
78
|
export function openAuthPauses(store) {
|
|
100
79
|
return store.handle.prepare("SELECT * FROM provider_auth_pause WHERE lifted_at IS NULL ORDER BY id").all().map(readPause);
|
|
101
80
|
}
|
|
102
|
-
/**
|
|
103
|
-
* Record an auth-expired run against its provider's pause, opening the
|
|
104
|
-
* incident (and its one notification) when none is open. Called inside the
|
|
105
|
-
* run's own failure transaction. Returns whether this run opened it.
|
|
106
|
-
*/
|
|
107
81
|
export function pauseForAuth(store, args) {
|
|
108
82
|
return store.transact(() => {
|
|
109
83
|
const db = store.handle;
|
|
@@ -124,12 +98,6 @@ export function pauseForAuth(store, args) {
|
|
|
124
98
|
return { opened: true, pause };
|
|
125
99
|
});
|
|
126
100
|
}
|
|
127
|
-
/**
|
|
128
|
-
* One message per instance operator, addressed to them: only someone at this
|
|
129
|
-
* computer can sign an agent back in, and a personal notification reaches that
|
|
130
|
-
* person on every channel they paired (Telegram, Slack, Discord, Teams) and in
|
|
131
|
-
* the console, whichever projects those channels follow.
|
|
132
|
-
*/
|
|
133
101
|
function notifyOperators(store, key, message, now) {
|
|
134
102
|
const operators = store.accountFacts().map(one => one.name).filter(name => store.isInstanceOperator(name));
|
|
135
103
|
for (const recipient of operators) {
|
|
@@ -145,15 +113,7 @@ function notifyOperators(store, key, message, now) {
|
|
|
145
113
|
}, now);
|
|
146
114
|
}
|
|
147
115
|
}
|
|
148
|
-
|
|
149
|
-
* Lift a provider's open pause — a run or probe on it succeeded, or a person
|
|
150
|
-
* resumed it — and send the one short "signed in again" message. Returns the
|
|
151
|
-
* number of tasks its incident sent back to the queue, or null when nothing
|
|
152
|
-
* was paused.
|
|
153
|
-
*/
|
|
154
|
-
export function liftAuthPause(store, provider, how, by, now,
|
|
155
|
-
/** For a run: when it started. A run that began before the pause opened proves nothing about the sign-in now. */
|
|
156
|
-
runStartedAt) {
|
|
116
|
+
export function liftAuthPause(store, provider, how, by, now, runStartedAt) {
|
|
157
117
|
return store.transact(() => {
|
|
158
118
|
const pause = authPauseOf(store, provider);
|
|
159
119
|
if (pause === null)
|
|
@@ -178,12 +138,6 @@ runStartedAt) {
|
|
|
178
138
|
return { resumed, pause };
|
|
179
139
|
});
|
|
180
140
|
}
|
|
181
|
-
/**
|
|
182
|
-
* What a non-spending sign-in probe said. A probe lifts the pause only after
|
|
183
|
-
* one during the same pause saw the provider signed out: a CLI that reports
|
|
184
|
-
* "logged in" while its session cannot refresh must not lift and re-open the
|
|
185
|
-
* pause over and over.
|
|
186
|
-
*/
|
|
187
141
|
export function noteSignInProbe(store, provider, state, now) {
|
|
188
142
|
const pause = authPauseOf(store, provider);
|
|
189
143
|
if (pause === null)
|
|
@@ -200,14 +154,7 @@ export function noteSignInProbe(store, provider, state, now) {
|
|
|
200
154
|
const lifted = liftAuthPause(store, provider, "probe", "sign-in check", now);
|
|
201
155
|
return lifted === null ? null : { resumed: lifted.resumed };
|
|
202
156
|
}
|
|
203
|
-
/** How often a paused provider lets one task through as a trial. */
|
|
204
157
|
export const AUTH_TRIAL_MS = 10 * 60_000;
|
|
205
|
-
/**
|
|
206
|
-
* Whether this task may go ahead as the paused provider's trial: at most one
|
|
207
|
-
* every AUTH_TRIAL_MS. A trial that works lifts the pause (its run proves the
|
|
208
|
-
* sign-in); one that fails the same way only counts against the open
|
|
209
|
-
* incident, so nobody is told twice. Null when no trial is due.
|
|
210
|
-
*/
|
|
211
158
|
export function claimAuthTrial(store, pause, now) {
|
|
212
159
|
return store.transact(() => {
|
|
213
160
|
const due = new Date(now.getTime() - AUTH_TRIAL_MS).toISOString();
|
|
@@ -219,19 +166,10 @@ export function claimAuthTrial(store, pause, now) {
|
|
|
219
166
|
return Number(claimed.changes) === 1 ? { pauseId: pause.id, takenAt, previous } : null;
|
|
220
167
|
});
|
|
221
168
|
}
|
|
222
|
-
/** Give a trial back when its task never started (its claim failed), so the next pass may take it. */
|
|
223
169
|
export function giveBackAuthTrial(store, trial) {
|
|
224
170
|
store.handle.prepare("UPDATE provider_auth_pause SET last_trial_at = ? WHERE id = ? AND last_trial_at = ? AND lifted_at IS NULL")
|
|
225
171
|
.run(trial.previous, trial.pauseId, trial.takenAt);
|
|
226
172
|
}
|
|
227
|
-
/**
|
|
228
|
-
* The sign-in gate every road that starts an agent asks before it claims
|
|
229
|
-
* anything: the tick's queue and the roads beside it.
|
|
230
|
-
* Waits when a provider is paused,
|
|
231
|
-
* unless this is the pause's one trial. A waiting task is noted on its
|
|
232
|
-
* task_ref, so the work index says exactly what the gate decided; a task let
|
|
233
|
-
* through is un-noted. A road whose claim fails after a trial calls giveBack.
|
|
234
|
-
*/
|
|
235
173
|
export function signInGate(store, providers, now, taskRef) {
|
|
236
174
|
const pause = [...new Set(providers)].map(one => authPauseOf(store, one)).find(one => one !== null) ?? null;
|
|
237
175
|
const trial = pause === null ? null : claimAuthTrial(store, pause, now);
|
|
@@ -250,9 +188,6 @@ export function signInGate(store, providers, now, taskRef) {
|
|
|
250
188
|
},
|
|
251
189
|
};
|
|
252
190
|
}
|
|
253
|
-
/** The loop beside the console: every two minutes, probe each paused
|
|
254
|
-
* provider's sign-in (no model, nothing spent) and lift the pause when it
|
|
255
|
-
* works again. Nothing is probed while nothing is paused. */
|
|
256
191
|
export function startSignInProbes(store, check, everyMs = 120_000) {
|
|
257
192
|
let stopped = false;
|
|
258
193
|
let running = false;
|
|
@@ -265,10 +200,10 @@ export function startSignInProbes(store, check, everyMs = 120_000) {
|
|
|
265
200
|
try {
|
|
266
201
|
noteSignInProbe(store, pause.provider, (await check(pause.provider, true)).state, new Date());
|
|
267
202
|
}
|
|
268
|
-
catch {
|
|
203
|
+
catch { }
|
|
269
204
|
}
|
|
270
205
|
}
|
|
271
|
-
catch {
|
|
206
|
+
catch { }
|
|
272
207
|
finally {
|
|
273
208
|
running = false;
|
|
274
209
|
}
|
|
@@ -277,7 +212,6 @@ export function startSignInProbes(store, check, everyMs = 120_000) {
|
|
|
277
212
|
timer.unref?.();
|
|
278
213
|
return () => { stopped = true; clearInterval(timer); };
|
|
279
214
|
}
|
|
280
|
-
/** The console's view of every open pause: title, command, one action. */
|
|
281
215
|
export function signInNotices(store) {
|
|
282
216
|
return openAuthPauses(store).map(pause => ({
|
|
283
217
|
provider: pause.provider,
|
package/dist/provider-capture.js
CHANGED
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What a provider said when an attempt failed, saved for a person (docs/plans/fleet-follow-through.md, part 5).
|
|
3
|
-
*
|
|
4
|
-
* Fallback between agents was removed in v115, and exhaustion.ts recognises only a dead sign-in. Telling a used-up
|
|
5
|
-
* subscription from any other failure needs a REAL response, so this saves them as they happen and nothing else. Nothing
|
|
6
|
-
* reads this table to route work: `hint` is a sort key for a person, never a recogniser, and a person's label decides
|
|
7
|
-
* nothing either. The text is the provider's, so it is data, scrubbed of secrets and bounded.
|
|
8
|
-
*/
|
|
9
1
|
import { readingFleet } from "./fleet-schema.js";
|
|
10
2
|
import { cleanFindingText } from "./findings.js";
|
|
11
3
|
export const CAPTURE_TEXT_LIMIT = 4_000;
|
|
12
|
-
/** Kept per provider, newest first. A labelled capture is never pruned: it is the evidence a person kept. */
|
|
13
4
|
const CAPTURES_KEPT = 40;
|
|
14
|
-
/** Words worth a person's look. Only ever a sort key. */
|
|
15
5
|
const LIMIT_WORDS = /\b(usage limit|rate limit|quota|credit|billing|exhaust|limit reached|too many requests|429|payment)/i;
|
|
16
|
-
/** Save one failed attempt's last words. Bookkeeping: it never costs the run anything. */
|
|
17
6
|
export function captureProviderFailure(store, input, now) {
|
|
18
7
|
try {
|
|
19
8
|
const text = cleanFindingText(input.texts.filter((one) => typeof one === "string" && one.trim() !== "").join("\n"), CAPTURE_TEXT_LIMIT);
|
|
@@ -25,14 +14,13 @@ export function captureProviderFailure(store, input, now) {
|
|
|
25
14
|
.run(input.run, repo, input.provider, input.model, input.authMode, input.exitCode, input.code === null ? null : cleanFindingText(input.code, 120), text, LIMIT_WORDS.test(`${input.code ?? ""} ${text}`) ? 1 : 0, now.toISOString());
|
|
26
15
|
store.handle.prepare(`DELETE FROM provider_capture WHERE provider = ? AND label IS NULL AND id NOT IN (SELECT id FROM provider_capture WHERE provider = ? ORDER BY id DESC LIMIT ?)`).run(input.provider, input.provider, CAPTURES_KEPT);
|
|
27
16
|
}
|
|
28
|
-
catch {
|
|
17
|
+
catch { }
|
|
29
18
|
}
|
|
30
19
|
const captureOf = (row) => ({
|
|
31
20
|
id: Number(row["id"]), run: Number(row["run"]), repo: row["repo"] === null ? null : String(row["repo"]), provider: String(row["provider"]), model: row["model"] === null ? null : String(row["model"]),
|
|
32
21
|
authMode: row["auth_mode"] === null ? null : String(row["auth_mode"]), exitCode: row["exit_code"] === null ? null : Number(row["exit_code"]), code: row["code"] === null ? null : String(row["code"]),
|
|
33
22
|
text: String(row["text"]), hint: Number(row["hint"]) === 1, label: row["label"] === null ? null : String(row["label"]), labelledBy: row["labelled_by"] === null ? null : String(row["labelled_by"]), at: String(row["at"]),
|
|
34
23
|
});
|
|
35
|
-
/** Newest first, the ones mentioning limits at the top. */
|
|
36
24
|
export function providerCaptures(store, repos, limit = 50) {
|
|
37
25
|
return readingFleet(() => store.handle.prepare("SELECT * FROM provider_capture ORDER BY hint DESC, id DESC LIMIT 500").all().map(captureOf)
|
|
38
26
|
.filter(one => repos === null || (one.repo !== null && repos.includes(one.repo))).slice(0, limit), []);
|
|
@@ -43,11 +31,9 @@ export function providerCapture(store, id) {
|
|
|
43
31
|
return row === undefined ? null : captureOf(row);
|
|
44
32
|
}, null);
|
|
45
33
|
}
|
|
46
|
-
/** A person's reading of one capture. It marks it for keeping, and nothing routes on it. */
|
|
47
34
|
export function labelProviderCapture(store, id, label, by) {
|
|
48
35
|
return Number(store.handle.prepare("UPDATE provider_capture SET label = ?, labelled_by = ? WHERE id = ?").run(label, by, id).changes) === 1;
|
|
49
36
|
}
|
|
50
|
-
/** What goes in a fixture file: the provider's response and which version of what produced it. */
|
|
51
37
|
export function captureFixture(capture) {
|
|
52
38
|
return { version: 1, provider: capture.provider, model: capture.model, authMode: capture.authMode, exitCode: capture.exitCode, code: capture.code, text: capture.text, label: capture.label, labelledBy: capture.labelledBy, capturedAt: capture.at };
|
|
53
39
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Non-spending account checks. Only normalized facts leave this module. */
|
|
2
1
|
import { homedir } from "node:os";
|
|
3
2
|
import { run } from "./exec.js";
|
|
4
3
|
import { ALL_CREDENTIAL_ENV, inspectionOf } from "./provider.js";
|
|
@@ -47,8 +46,6 @@ export function createConnectionChecker(options = {}) {
|
|
|
47
46
|
const cache = new Map();
|
|
48
47
|
const pending = new Map();
|
|
49
48
|
return async (provider, fresh = false) => {
|
|
50
|
-
// An ACP agent is never run to ask how it is signed in (nothing executes it outside the gateway): what is known
|
|
51
|
-
// of it is its conformance check, read elsewhere. Here it is simply unverified.
|
|
52
49
|
if (isAcpProvider(provider))
|
|
53
50
|
return { state: "unverified", mode: "agent-login", checkedAt: clock().toISOString() };
|
|
54
51
|
const mode = readAuthMode(provider, home);
|
|
@@ -64,7 +61,6 @@ export function createConnectionChecker(options = {}) {
|
|
|
64
61
|
return inFlight;
|
|
65
62
|
const check = (async () => {
|
|
66
63
|
if (mode === "api-key") {
|
|
67
|
-
// A saved key is tested only when asked (Check again, or just after it is saved): one small request to the provider, never a model.
|
|
68
64
|
const stored = fresh && keyFacts.set ? readProviderKey(provider, home) : null;
|
|
69
65
|
if (stored === null)
|
|
70
66
|
return { state: keyFacts.set || ambient ? "key-present" : "missing-key", mode, checkedAt: now.toISOString() };
|
|
@@ -76,8 +72,6 @@ export function createConnectionChecker(options = {}) {
|
|
|
76
72
|
if (identityProbe === null)
|
|
77
73
|
return { state: "unverified", mode, checkedAt: now.toISOString() };
|
|
78
74
|
try {
|
|
79
|
-
// Same subscription credential stripping as provider invocations.
|
|
80
|
-
// No model prompt, repository scripts, or stored API keys are used.
|
|
81
75
|
const result = await probe(facts.binary, [...identityProbe], { cwd: home, timeoutMs: 5000, maxBuffer: 32 * 1024, omitEnv: ALL_CREDENTIAL_ENV });
|
|
82
76
|
return signInFacts(provider, result, clock());
|
|
83
77
|
}
|
|
@@ -88,8 +82,6 @@ export function createConnectionChecker(options = {}) {
|
|
|
88
82
|
pending.set(key, check);
|
|
89
83
|
try {
|
|
90
84
|
const value = await check;
|
|
91
|
-
// Only cache against the same credential mode that began this check.
|
|
92
|
-
// A slow subscription probe must not overwrite a newer API-key result.
|
|
93
85
|
const currentKeyFacts = keyStatus(provider, home);
|
|
94
86
|
const currentKey = JSON.stringify([provider, readAuthMode(provider, home), currentKeyFacts.set, currentKeyFacts.updatedAt, !!(options.env ?? process.env)[PROVIDER_KEY_ENV[provider]]]);
|
|
95
87
|
if (currentKey === key)
|
package/dist/provider-home.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What a build keeps of the provider's own home, and nothing more.
|
|
3
|
-
*
|
|
4
|
-
* A build loads none of the operator's Claude settings or Codex config
|
|
5
|
-
* (provider.ts), so two things from them are carried explicitly:
|
|
6
|
-
*
|
|
7
|
-
* - A build routed with no model runs as the operator's own CLI would: the
|
|
8
|
-
* model they chose (Claude's settings.json `model`, Codex's config.toml
|
|
9
|
-
* `model`), Claude's `alwaysThinkingEnabled` and Codex's reasoning effort.
|
|
10
|
-
* Nothing else of either file (hooks, plugins, MCP servers) is read.
|
|
11
|
-
* - A Codex build gets its own CODEX_HOME for the launch: links to the
|
|
12
|
-
* operator's `auth.json` and `sessions/` (so it signs in, and a repair
|
|
13
|
-
* resumes the same thread), and no skills, AGENTS.md or anything else from
|
|
14
|
-
* theirs. Links, never copies: a refreshed sign-in lands in the real file.
|
|
15
|
-
* The folder is fenced from the agent's commands and removed after the run.
|
|
16
|
-
*/
|
|
17
1
|
import { chmodSync, existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, symlinkSync } from "node:fs";
|
|
18
2
|
import { homedir, tmpdir } from "node:os";
|
|
19
3
|
import { join } from "node:path";
|
|
@@ -25,7 +9,6 @@ export function claudeConfigDir(env = process.env, home = homedir()) {
|
|
|
25
9
|
export function codexHomeDir(env = process.env, home = homedir()) {
|
|
26
10
|
return env["CODEX_HOME"] || join(home, ".codex");
|
|
27
11
|
}
|
|
28
|
-
/** Claude's user settings: its `model` and `alwaysThinkingEnabled`, when valid. */
|
|
29
12
|
export function claudeDefaults(configDir) {
|
|
30
13
|
let settings;
|
|
31
14
|
try {
|
|
@@ -42,7 +25,6 @@ export function claudeDefaults(configDir) {
|
|
|
42
25
|
...(typeof alwaysThinkingEnabled === "boolean" ? { alwaysThinking: alwaysThinkingEnabled } : {}),
|
|
43
26
|
};
|
|
44
27
|
}
|
|
45
|
-
/** Codex's config.toml: its top-level `model` and `model_reasoning_effort`, or the selected profile's. */
|
|
46
28
|
export function codexDefaults(codexHome) {
|
|
47
29
|
let text;
|
|
48
30
|
try {
|
|
@@ -75,12 +57,6 @@ export function codexDefaults(codexHome) {
|
|
|
75
57
|
...(effort !== undefined && EFFORT.test(effort) ? { effort } : {}),
|
|
76
58
|
};
|
|
77
59
|
}
|
|
78
|
-
/**
|
|
79
|
-
* One Codex launch's CODEX_HOME: a private folder linking the operator's
|
|
80
|
-
* sign-in and sessions. A missing `auth.json` stays missing (an API-key
|
|
81
|
-
* build needs none); a missing `sessions/` is made where Codex would make
|
|
82
|
-
* it, so a resumed build finds the thread its first launch wrote.
|
|
83
|
-
*/
|
|
84
60
|
export function isolatedCodexHome(source, root = tmpdir()) {
|
|
85
61
|
const dir = mkdtempSync(join(root, "so-codex-"));
|
|
86
62
|
try {
|
|
@@ -94,6 +70,5 @@ export function isolatedCodexHome(source, root = tmpdir()) {
|
|
|
94
70
|
rmSync(dir, { recursive: true, force: true });
|
|
95
71
|
throw error;
|
|
96
72
|
}
|
|
97
|
-
// rm removes the links themselves, never what they point to.
|
|
98
73
|
return { dir, cleanup: () => rmSync(dir, { recursive: true, force: true }) };
|
|
99
74
|
}
|
package/dist/provider-limits.js
CHANGED
|
@@ -3,15 +3,11 @@ const WINDOW_NAME = /^[a-z][a-z0-9_]{0,39}$/;
|
|
|
3
3
|
const CLAUDE_MINUTES = { five_hour: 300, seven_day: 10_080, seven_day_opus: 10_080, seven_day_sonnet: 10_080 };
|
|
4
4
|
const finite = (value) => typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
5
5
|
const percent = (value) => Math.max(0, Math.min(100, Math.round(value * 10) / 10));
|
|
6
|
-
/** An epoch (seconds) as an ISO time, or null when it isn't a plausible one. */
|
|
7
6
|
const epoch = (value) => {
|
|
8
7
|
const seconds = finite(value);
|
|
9
8
|
return seconds === null || seconds < 1_000_000_000 || seconds > 10_000_000_000 ? null : new Date(seconds * 1000).toISOString();
|
|
10
9
|
};
|
|
11
10
|
export const record = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? value : null;
|
|
12
|
-
/** A Claude stream event's limits, or null when it isn't the session's own `rate_limit_event` or says nothing usable.
|
|
13
|
-
* A subagent's (parent_tool_use_id set) is never read: the session reports its own windows each turn, and a
|
|
14
|
-
* subagent-tagged reading can't be told apart from one shaped by the subagent's own traffic (stream-scope.ts). */
|
|
15
11
|
export function claudeLimitsOf(event) {
|
|
16
12
|
const body = record(event);
|
|
17
13
|
if (body === null || body["type"] !== "rate_limit_event" || !topLevelEvent(body))
|
|
@@ -31,22 +27,17 @@ export function claudeLimitsOf(event) {
|
|
|
31
27
|
windows.push({ window: name, usedPercent: percent(used * 100), windowMinutes: Object.hasOwn(CLAUDE_MINUTES, name) ? CLAUDE_MINUTES[name] : null, resetsAt: epoch(one["resetsAt"]), reached: rejected && name === current });
|
|
32
28
|
}
|
|
33
29
|
if (windows.length === 0 && current !== null && WINDOW_NAME.test(current)) {
|
|
34
|
-
// An older CLI names only the window it's in; its use is known only when it's spent.
|
|
35
30
|
const used = finite(info["utilization"]);
|
|
36
31
|
if (used !== null || rejected)
|
|
37
32
|
windows.push({ window: current, usedPercent: rejected ? 100 : percent(used * 100), windowMinutes: Object.hasOwn(CLAUDE_MINUTES, current) ? CLAUDE_MINUTES[current] : null, resetsAt: epoch(info["resetsAt"]), reached: rejected });
|
|
38
|
-
// Only this window is known: the others keep their last reading.
|
|
39
33
|
return windows.length === 0 ? null : { provider: "claude", plan: null, windows, partial: true, billing: "subscription" };
|
|
40
34
|
}
|
|
41
|
-
// A plan's windows are a plan's: this turn ran on the sign-in.
|
|
42
35
|
return windows.length === 0 ? null : { provider: "claude", plan: null, windows, billing: "subscription" };
|
|
43
36
|
}
|
|
44
|
-
/** Codex's `account/rateLimits/read` answer as a reading, or null. */
|
|
45
37
|
export function codexLimitsOf(result) {
|
|
46
38
|
const limits = record(record(result)?.["rateLimits"]);
|
|
47
39
|
if (limits === null)
|
|
48
40
|
return null;
|
|
49
|
-
// Codex names why it stopped ("rate_limit_reached", "…usage_limit_reached"), not which window: the fullest one.
|
|
50
41
|
const reachedType = typeof limits["rateLimitReachedType"] === "string" ? limits["rateLimitReachedType"] : null;
|
|
51
42
|
const windows = [];
|
|
52
43
|
for (const slot of ["primary", "secondary"]) {
|
|
@@ -63,15 +54,12 @@ export function codexLimitsOf(result) {
|
|
|
63
54
|
const plan = typeof limits["planType"] === "string" && /^[a-z0-9_-]{1,40}$/i.test(limits["planType"]) ? limits["planType"] : null;
|
|
64
55
|
return windows.length === 0 ? null : { provider: "codex", plan, windows };
|
|
65
56
|
}
|
|
66
|
-
/** Where readings go: the store, in any process that runs Claude. The latest one set wins; one that's done removes
|
|
67
|
-
* only itself, so a command that ends inside a longer one leaves the longer one's in place. Unset, readings drop. */
|
|
68
57
|
const sinks = [];
|
|
69
58
|
export function pushLimitSink(next) {
|
|
70
59
|
sinks.push(next);
|
|
71
60
|
return () => { const at = sinks.lastIndexOf(next); if (at !== -1)
|
|
72
61
|
sinks.splice(at, 1); };
|
|
73
62
|
}
|
|
74
|
-
/** A reading from a stream; never throws into the run that carried it. */
|
|
75
63
|
export function noteLimits(reading) {
|
|
76
64
|
const sink = sinks[sinks.length - 1];
|
|
77
65
|
if (reading === null || sink === undefined)
|
|
@@ -80,10 +68,8 @@ export function noteLimits(reading) {
|
|
|
80
68
|
sink(reading);
|
|
81
69
|
}
|
|
82
70
|
catch {
|
|
83
|
-
// A reading that can't be kept must not touch the turn.
|
|
84
71
|
}
|
|
85
72
|
}
|
|
86
|
-
/** A window in words: "5-hour", "Weekly", "Weekly (Opus)". */
|
|
87
73
|
export function windowLabel(window, minutes) {
|
|
88
74
|
if (window === "five_hour")
|
|
89
75
|
return "5-hour";
|