toolroll 0.9.103 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +27 -27
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +117 -103
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +3 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +2 -16
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +168 -0
- package/dist/local-owner.js +15 -80
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +2 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +280 -2304
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +3 -18
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +11 -30
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +6 -74
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +26 -103
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +9 -28
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +88 -566
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +29 -564
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +9 -86
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +17 -497
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +8 -133
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +12 -227
- package/dist/server/tasks.js +37 -531
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +8 -73
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +66 -19
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +91 -40
- package/dist/tui.js +54 -54
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +5 -4
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -318
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1972
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -539
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -41
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner.d.ts +0 -124
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -52
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -156
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -35
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1067
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -80
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -59
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -754
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -774
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -342
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -83
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -30
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -144
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/setup-guide.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Read-only suggestions for the shared desktop and browser setup flow. */
|
|
2
1
|
import { withAcp } from "./acp-agents.js";
|
|
3
2
|
import { createHash } from "node:crypto";
|
|
4
3
|
import { existsSync, lstatSync, readFileSync } from "node:fs";
|
|
@@ -14,15 +13,12 @@ export const ASSISTANTS = withAcp({
|
|
|
14
13
|
openrouter: { name: "OpenRouter", description: "Use a model from your OpenRouter account." },
|
|
15
14
|
}, agent => ({ name: agent.name, description: `Use ${agent.name} for builds, once it's checked on this computer.` }));
|
|
16
15
|
export function modelChoices(provider, configured, home = homedir()) {
|
|
17
|
-
// Aliases documented at https://code.claude.com/docs/en/model-config.
|
|
18
16
|
let choices = provider === "claude"
|
|
19
|
-
// Exact ids first: Sonnet 5.5 builds routine tasks under "Sized by job" (Settings → Models); the short names float.
|
|
20
17
|
? [{ value: "claude-sonnet-5-5", label: "Sonnet 5.5 — routine tasks" }, { value: "claude-opus-5-5", label: "Opus 5.5 — large or risky tasks" },
|
|
21
18
|
{ value: "claude-haiku-5-5", label: "Haiku 5.5 — small tasks" }, { value: "sonnet", label: "Sonnet (floating) — moves to the newest version" },
|
|
22
19
|
{ value: "opus", label: "Opus (floating) — moves to the newest version" }, { value: "haiku", label: "Haiku (floating) — moves to the newest version" }]
|
|
23
20
|
: [];
|
|
24
21
|
if (provider === "codex") {
|
|
25
|
-
// Use the local CLI's own catalog, including account-specific availability.
|
|
26
22
|
try {
|
|
27
23
|
const path = join(home, ".codex", "models_cache.json");
|
|
28
24
|
if (lstatSync(path).size < 2_000_000) {
|
|
@@ -31,14 +27,13 @@ export function modelChoices(provider, configured, home = homedir()) {
|
|
|
31
27
|
.slice(0, 30).map(one => ({ value: one.slug, label: typeof one.display_name === "string" ? one.display_name.slice(0, 80) : one.slug }));
|
|
32
28
|
}
|
|
33
29
|
}
|
|
34
|
-
catch {
|
|
30
|
+
catch { }
|
|
35
31
|
}
|
|
36
32
|
if (configured && !choices.some(one => one.value === configured))
|
|
37
33
|
choices.unshift({ value: configured, label: `${configured} — current choice` });
|
|
38
34
|
return choices;
|
|
39
35
|
}
|
|
40
36
|
export function detectPreparation(repo) {
|
|
41
|
-
// In the console, a folder that hasn't answered a look lately is not read on its thread (folder-gate.ts).
|
|
42
37
|
if (!folderAnswers(repo))
|
|
43
38
|
return null;
|
|
44
39
|
const has = (file) => existsSync(join(repo, file));
|
|
@@ -61,7 +56,6 @@ export function detectPreparation(repo) {
|
|
|
61
56
|
return { command: "go mod download", label: "Download Go dependencies", evidence: "go.mod" };
|
|
62
57
|
return null;
|
|
63
58
|
}
|
|
64
|
-
/** Browser installation may write only this known file inside its project. */
|
|
65
59
|
export function previewProjectInstructions(repo) {
|
|
66
60
|
if (!folderAnswers(repo))
|
|
67
61
|
return { ok: false, message: "This project folder didn't answer. Try again in a moment." };
|
|
@@ -90,8 +84,6 @@ export function previewProjectInstructions(repo) {
|
|
|
90
84
|
const content = skillContent();
|
|
91
85
|
const current = existsSync(plan.skillPath) ? readFileSync(plan.skillPath, "utf8") : null;
|
|
92
86
|
const fingerprint = createHash("sha256").update(JSON.stringify({ repo, current, content })).digest("hex");
|
|
93
|
-
// Installed means the CURRENT instructions are in place: a stale copy, or one only in the folder from before the
|
|
94
|
-
// rename, still offers Review so applyInstall can bring it up to date (the first-run checklist counts either).
|
|
95
87
|
return { ok: true, plan, content, fingerprint, installed: current === content };
|
|
96
88
|
}
|
|
97
89
|
export function addProjectInstructions(repo, fingerprint) {
|
package/dist/shared-deps.js
CHANGED
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared dependencies: one installed node_modules per (project, lockfile, setup, node) under the state folder
|
|
3
|
-
* (`deps/<key>`), linked into each new checkout instead of a fresh `npm ci` there. Measured Oct 2: a checkout of
|
|
4
|
-
* Toolroll is 20,500 files and 18,066 of them were its own node_modules; forty checkouts created and deleted ~800k
|
|
5
|
-
* files, most of the churn behind a bloated fseventsd, and each install cost time.
|
|
6
|
-
*
|
|
7
|
-
* The first checkout with a new key runs the approved setup itself; its node_modules then moves (one rename, same
|
|
8
|
-
* volume) into `deps/<key>`, is made read-only, and is linked back. Later checkouts link it: symlinks, else an
|
|
9
|
-
* APFS/reflink clone, else the plain setup as before. A linked node_modules is a real folder holding one symlink per
|
|
10
|
-
* top-level entry (a few hundred files, not tens of thousands), so caches tools write there stay the checkout's own.
|
|
11
|
-
* Only a setup that installs and does nothing else is shared (`npm ci`, `npm install`): skipping any other command
|
|
12
|
-
* would skip its other effects.
|
|
13
|
-
*
|
|
14
|
-
* The link is read-only to the build. A checkout whose package.json or lockfile no longer matches the copy it links
|
|
15
|
-
* gets its own install (the link goes, the approved setup runs there) and the shared copy is never touched; a copy
|
|
16
|
-
* whose installed tree changed anyway is retired, never linked again. `toolroll storage clean` removes a copy no
|
|
17
|
-
* checkout links or matches; the plane's daily storage sweep removes one no checkout has used for a week.
|
|
18
|
-
*/
|
|
19
1
|
import { createHash, randomBytes } from "node:crypto";
|
|
20
2
|
import { execFile, spawnSync } from "node:child_process";
|
|
21
3
|
import { rm } from "node:fs/promises";
|
|
@@ -26,28 +8,17 @@ import { QUARANTINE_NOTE, quarantine, quarantineEntries, claimQuarantine, releas
|
|
|
26
8
|
export const DEPS_FOLDER = "deps";
|
|
27
9
|
const READY = "ready.json";
|
|
28
10
|
const RETIRED = "retired";
|
|
29
|
-
/** In a linked node_modules: the shared copy it links. */
|
|
30
11
|
const LINK_NOTE = ".toolroll-shared";
|
|
31
12
|
const NODE_MODULES = "node_modules";
|
|
32
|
-
/** A copy linked or made this recently is never removed by a clean-up: a lease may be about to link it. */
|
|
33
13
|
export const SHARED_GRACE_MS = 60 * 60_000;
|
|
34
|
-
/** The daily storage sweep removes a copy no checkout uses and none has linked for this long. */
|
|
35
14
|
export const SHARED_UNUSED_MS = 7 * 24 * 60 * 60_000;
|
|
36
|
-
/** A half-made copy (a crash mid-promotion) is debris after this long. */
|
|
37
15
|
const PARTIAL_STALE_MS = 24 * 60 * 60_000;
|
|
38
16
|
export function sharedDepsRoot(databaseFile) {
|
|
39
17
|
return join(dirname(databaseFile), DEPS_FOLDER);
|
|
40
18
|
}
|
|
41
|
-
/** A setup whose whole effect is node_modules: `npm ci` or `npm install`, with plain flags only. */
|
|
42
19
|
export function installsOnly(command) {
|
|
43
20
|
return /^\s*npm\s+(?:ci|install|i)(?:\s+--?[A-Za-z][\w-]*(?:=[\w.@/:+-]+)?)*\s*$/.test(command);
|
|
44
21
|
}
|
|
45
|
-
/**
|
|
46
|
-
* The checkout's dependency identity: its npm lockfile and package.json, hashed together without the root
|
|
47
|
-
* package's own version, as in release-check.mjs versionOnly(). null when either JSON file is invalid, there is no
|
|
48
|
-
* lockfile, or the lockfile links local folders (workspaces, `file:`), whose links would point into the shared
|
|
49
|
-
* folder instead of the checkout.
|
|
50
|
-
*/
|
|
51
22
|
export function lockDigest(checkout) {
|
|
52
23
|
return dependencyInputs(checkout)?.digest ?? null;
|
|
53
24
|
}
|
|
@@ -84,8 +55,6 @@ function dependencyInputs(checkout) {
|
|
|
84
55
|
return null;
|
|
85
56
|
}
|
|
86
57
|
}
|
|
87
|
-
/** Replace only root version values, preserving every other byte for comparison with a pre-normalization hash.
|
|
88
|
-
* The caller already parsed the JSON. Token offsets let compact and indented files keep their original layout. */
|
|
89
58
|
function withRootVersion(text, version, isLock) {
|
|
90
59
|
const tokens = [...text.matchAll(/"(?:[^"\\]|\\.)*"|[{}[\]:,]|[^\s{}[\]:,]+/g)];
|
|
91
60
|
let cursor = 0;
|
|
@@ -95,7 +64,7 @@ function withRootVersion(text, version, isLock) {
|
|
|
95
64
|
if (start[0] === "{") {
|
|
96
65
|
while (tokens[cursor][0] !== "}") {
|
|
97
66
|
const key = JSON.parse(tokens[cursor++][0]);
|
|
98
|
-
cursor++;
|
|
67
|
+
cursor++;
|
|
99
68
|
value([...path, key]);
|
|
100
69
|
if (tokens[cursor][0] === ",")
|
|
101
70
|
cursor++;
|
|
@@ -122,8 +91,6 @@ function withRootVersion(text, version, isLock) {
|
|
|
122
91
|
text = text.slice(0, edit.start) + JSON.stringify(version) + text.slice(edit.end);
|
|
123
92
|
return text;
|
|
124
93
|
}
|
|
125
|
-
/** Old copies did not save the manifests. npm's hidden lock records their root version; reconstruct only those
|
|
126
|
-
* version fields and require the exact old raw digest. Never infer equality from the installed packages alone. */
|
|
127
94
|
function matchesInputs(dir, ready, inputs) {
|
|
128
95
|
if (ready.lock === inputs.digest || ready.lock === digestPair(inputs.lock, inputs.manifest))
|
|
129
96
|
return true;
|
|
@@ -136,7 +103,6 @@ function matchesInputs(dir, ready, inputs) {
|
|
|
136
103
|
}
|
|
137
104
|
}
|
|
138
105
|
const nodeSeen = new Map();
|
|
139
|
-
/** The node a setup on this PATH would install with: version, platform and architecture (native modules differ). */
|
|
140
106
|
export function nodeIdentity(path = process.env["PATH"] ?? "") {
|
|
141
107
|
if (nodeSeen.has(path))
|
|
142
108
|
return nodeSeen.get(path);
|
|
@@ -150,7 +116,6 @@ export function nodeIdentity(path = process.env["PATH"] ?? "") {
|
|
|
150
116
|
export function depsKey(repo, setupDigest, lock, node) {
|
|
151
117
|
return createHash("sha256").update([repo, setupDigest, lock, node].join("\u0000"), "utf8").digest("hex").slice(0, 24);
|
|
152
118
|
}
|
|
153
|
-
/** What a checkout would share: its key and the facts behind it, or null when it can't share. */
|
|
154
119
|
export function sharingFor(args) {
|
|
155
120
|
if (!installsOnly(args.setup.command))
|
|
156
121
|
return null;
|
|
@@ -167,8 +132,7 @@ export function sharingFor(args) {
|
|
|
167
132
|
try {
|
|
168
133
|
names = readdirSync(args.root).filter(name => /^[0-9a-f]{24}$/.test(name));
|
|
169
134
|
}
|
|
170
|
-
catch {
|
|
171
|
-
// Keep a currently linked copy first. Reusing its old directory preserves every existing checkout's links.
|
|
135
|
+
catch { }
|
|
172
136
|
for (const name of new Set([linkedKey(args.worktree, args.root), key, ...names])) {
|
|
173
137
|
if (name === null)
|
|
174
138
|
continue;
|
|
@@ -190,7 +154,6 @@ function readReady(dir) {
|
|
|
190
154
|
return null;
|
|
191
155
|
}
|
|
192
156
|
}
|
|
193
|
-
/** npm's record of what it installed: changes when anything installs or removes a package in the tree. */
|
|
194
157
|
function treeDigest(nodeModules) {
|
|
195
158
|
try {
|
|
196
159
|
return createHash("sha256").update(readFileSync(join(nodeModules, ".package-lock.json"))).digest("hex");
|
|
@@ -199,7 +162,6 @@ function treeDigest(nodeModules) {
|
|
|
199
162
|
return null;
|
|
200
163
|
}
|
|
201
164
|
}
|
|
202
|
-
/** The shared node_modules for a key, when one is ready and unchanged since it was made. A changed one is retired. */
|
|
203
165
|
export function readyCopy(root, key) {
|
|
204
166
|
if (!/^[0-9a-f]{24}$/.test(key))
|
|
205
167
|
return null;
|
|
@@ -215,21 +177,12 @@ export function readyCopy(root, key) {
|
|
|
215
177
|
}
|
|
216
178
|
return join(dir, NODE_MODULES);
|
|
217
179
|
}
|
|
218
|
-
/**
|
|
219
|
-
* Take a changed copy out of use. It stays where it is, so a checkout still linking it keeps working; no new
|
|
220
|
-
* checkout links it, and a clean-up removes it once nothing links it.
|
|
221
|
-
*/
|
|
222
180
|
function retire(dir) {
|
|
223
181
|
try {
|
|
224
182
|
writeFileSync(join(dir, RETIRED), `${new Date().toISOString()}\n`, "utf8");
|
|
225
183
|
}
|
|
226
|
-
catch {
|
|
184
|
+
catch { }
|
|
227
185
|
}
|
|
228
|
-
/**
|
|
229
|
-
* The shared copy a checkout's node_modules links, or null (none, or its own install). A linked node_modules is a
|
|
230
|
-
* small real folder: one link per top-level entry of the shared copy and a note naming it. Tools that write a cache
|
|
231
|
-
* there (`node_modules/.vite`, `.cache`) write into the checkout's own folder, never the shared copy.
|
|
232
|
-
*/
|
|
233
186
|
export function linkedKey(worktree, root) {
|
|
234
187
|
let target;
|
|
235
188
|
try {
|
|
@@ -244,11 +197,9 @@ export function linkedKey(worktree, root) {
|
|
|
244
197
|
const [key, folder, ...rest] = inside.split(/[\\/]/);
|
|
245
198
|
return key !== undefined && folder === NODE_MODULES && rest.length === 0 ? key : null;
|
|
246
199
|
}
|
|
247
|
-
/** Remove a checkout's linked node_modules (its links and caches, never what they point to). True when there was one. */
|
|
248
200
|
export function detachShared(worktree, root) {
|
|
249
201
|
if (linkedKey(worktree, root) === null)
|
|
250
202
|
return false;
|
|
251
|
-
// rm removes a link itself; it never follows one into the shared copy.
|
|
252
203
|
rmSync(join(worktree, NODE_MODULES), { recursive: true, force: true });
|
|
253
204
|
return true;
|
|
254
205
|
}
|
|
@@ -257,10 +208,6 @@ function writable(path, on) {
|
|
|
257
208
|
return;
|
|
258
209
|
spawnSync("chmod", ["-R", on ? "u+w" : "a-w", path], { timeout: 120_000 });
|
|
259
210
|
}
|
|
260
|
-
/**
|
|
261
|
-
* Put a shared copy into a checkout that has no node_modules: links (a junction per folder on Windows), else a
|
|
262
|
-
* copy-on-write clone the build owns. null: neither worked, and the caller runs the plain setup.
|
|
263
|
-
*/
|
|
264
211
|
export function linkInto(worktree, shared) {
|
|
265
212
|
const at = join(worktree, NODE_MODULES);
|
|
266
213
|
if (existsSync(at) || isLink(at))
|
|
@@ -270,8 +217,6 @@ export function linkInto(worktree, shared) {
|
|
|
270
217
|
return null;
|
|
271
218
|
try {
|
|
272
219
|
mkdirSync(at);
|
|
273
|
-
// Publish intent before reading the copy. A sweep that renames it mid-link sees this user and restores it;
|
|
274
|
-
// if the sweep won before the intent, the final ready check fails and no broken link is handed to a run.
|
|
275
220
|
writeFileSync(join(at, LINK_NOTE), `${shared}\n`, "utf8");
|
|
276
221
|
touch(dirname(shared));
|
|
277
222
|
for (const entry of readdirSync(shared, { withFileTypes: true })) {
|
|
@@ -300,7 +245,7 @@ export function linkInto(worktree, shared) {
|
|
|
300
245
|
writable(at, true);
|
|
301
246
|
rmSync(at, { recursive: true, force: true });
|
|
302
247
|
}
|
|
303
|
-
catch {
|
|
248
|
+
catch { }
|
|
304
249
|
return null;
|
|
305
250
|
}
|
|
306
251
|
function isLink(path) {
|
|
@@ -316,13 +261,8 @@ function touch(dir) {
|
|
|
316
261
|
try {
|
|
317
262
|
utimesSync(join(dir, READY), now, now);
|
|
318
263
|
}
|
|
319
|
-
catch {
|
|
264
|
+
catch { }
|
|
320
265
|
}
|
|
321
|
-
/**
|
|
322
|
-
* After the approved setup succeeded in a checkout with no copy for its key: move its node_modules into
|
|
323
|
-
* `deps/<key>` (one rename), make it read-only and link it back. Returns how the checkout now has it, or null when it
|
|
324
|
-
* kept its own install (a different volume, a setup that rewrote the lockfile, a race lost cleanly).
|
|
325
|
-
*/
|
|
326
266
|
export function promoteInstall(args) {
|
|
327
267
|
const own = join(args.worktree, NODE_MODULES);
|
|
328
268
|
try {
|
|
@@ -337,7 +277,6 @@ export function promoteInstall(args) {
|
|
|
337
277
|
const partial = join(args.root, `${args.key}.partial-${process.pid}-${randomBytes(4).toString("hex")}`);
|
|
338
278
|
try {
|
|
339
279
|
mkdirSync(partial, { recursive: true });
|
|
340
|
-
// Spotlight leaves shared installs alone (never-index.ts).
|
|
341
280
|
markNeverIndex(args.root);
|
|
342
281
|
renameSync(own, join(partial, NODE_MODULES));
|
|
343
282
|
}
|
|
@@ -354,28 +293,25 @@ export function promoteInstall(args) {
|
|
|
354
293
|
shared = join(args.root, args.key, NODE_MODULES);
|
|
355
294
|
}
|
|
356
295
|
catch {
|
|
357
|
-
// Another checkout made this copy first: use theirs.
|
|
358
296
|
shared = readyCopy(args.root, args.key);
|
|
359
297
|
}
|
|
360
298
|
const linked = shared === null ? null : linkInto(args.worktree, shared);
|
|
361
299
|
if (linked === null && !existsSync(partial) && shared === join(args.root, args.key, NODE_MODULES) && !existsSync(own)) {
|
|
362
|
-
// Ours became the shared copy but couldn't be linked: it goes back to being this checkout's own install.
|
|
363
300
|
writable(shared, true);
|
|
364
301
|
try {
|
|
365
302
|
renameSync(shared, own);
|
|
366
303
|
rmSync(join(args.root, args.key), { recursive: true, force: true });
|
|
367
304
|
}
|
|
368
|
-
catch {
|
|
305
|
+
catch { }
|
|
369
306
|
return null;
|
|
370
307
|
}
|
|
371
308
|
if (existsSync(partial)) {
|
|
372
|
-
// Lost the race: ours goes back if nothing else could be linked, else it's removed.
|
|
373
309
|
if (linked === null && !existsSync(own)) {
|
|
374
310
|
writable(join(partial, NODE_MODULES), true);
|
|
375
311
|
try {
|
|
376
312
|
renameSync(join(partial, NODE_MODULES), own);
|
|
377
313
|
}
|
|
378
|
-
catch {
|
|
314
|
+
catch { }
|
|
379
315
|
}
|
|
380
316
|
removeTree(partial);
|
|
381
317
|
}
|
|
@@ -385,7 +321,6 @@ function removeTree(path) {
|
|
|
385
321
|
writable(path, true);
|
|
386
322
|
rmSync(path, { recursive: true, force: true });
|
|
387
323
|
}
|
|
388
|
-
/** Every shared copy on disk, newest first. */
|
|
389
324
|
export function sharedCopies(root) {
|
|
390
325
|
let names = [];
|
|
391
326
|
try {
|
|
@@ -405,12 +340,11 @@ export function sharedCopies(root) {
|
|
|
405
340
|
try {
|
|
406
341
|
usedAt = statSync(join(root, name, READY)).mtime.toISOString();
|
|
407
342
|
}
|
|
408
|
-
catch {
|
|
343
|
+
catch { }
|
|
409
344
|
copies.push({ key: name, dir: join(root, name), repo: ready.repo, lock: ready.lock, node: ready.node, createdAt: ready.createdAt, usedAt, retired: existsSync(join(root, name, RETIRED)) });
|
|
410
345
|
}
|
|
411
346
|
return copies.sort((a, b) => b.usedAt.localeCompare(a.usedAt));
|
|
412
347
|
}
|
|
413
|
-
/** Which checkouts use each copy: those linking it, and those whose lockfile it was installed from. */
|
|
414
348
|
export function sharedUse(root, checkouts) {
|
|
415
349
|
return useCopies(root, sharedCopies(root), checkouts);
|
|
416
350
|
}
|
|
@@ -436,7 +370,6 @@ function useCopies(root, copies, checkouts) {
|
|
|
436
370
|
}
|
|
437
371
|
return copies.map(one => ({ ...one, checkouts: [...users.get(one.key)].sort() }));
|
|
438
372
|
}
|
|
439
|
-
/** Half-made copies under deps/ (a crash mid-promotion), old enough that nothing is still making them. */
|
|
440
373
|
export function sharedDebris(root, now) {
|
|
441
374
|
let names = [];
|
|
442
375
|
try {
|
|
@@ -456,12 +389,10 @@ export function sharedDebris(root, now) {
|
|
|
456
389
|
}
|
|
457
390
|
}).map(name => join(root, name));
|
|
458
391
|
}
|
|
459
|
-
/** What `storage clean` removes: copies no checkout uses and none linked within the grace period, plus debris. */
|
|
460
392
|
export function unusedShared(root, checkouts, now) {
|
|
461
393
|
const copies = sharedUse(root, checkouts).filter(one => one.checkouts.length === 0 && now.getTime() - Date.parse(one.usedAt) > SHARED_GRACE_MS);
|
|
462
394
|
return { copies, debris: sharedDebris(root, now) };
|
|
463
395
|
}
|
|
464
|
-
/** Remove one copy or debris folder (read-only on disk, so made writable first). */
|
|
465
396
|
export function removeShared(path) {
|
|
466
397
|
if (basename(dirname(path)) !== DEPS_FOLDER)
|
|
467
398
|
return false;
|
|
@@ -473,11 +404,6 @@ export function removeShared(path) {
|
|
|
473
404
|
return false;
|
|
474
405
|
}
|
|
475
406
|
}
|
|
476
|
-
/**
|
|
477
|
-
* The daily sweep: remove each copy no checkout uses and none has linked for `unusedMs` (a week), and old debris.
|
|
478
|
-
* Right before a copy goes, who uses it, when it was last linked and whether live work uses it (`spare`,
|
|
479
|
-
* storage-sweep.ts) are read again; a copy a checkout picked up in between stays. Removal never holds the event loop.
|
|
480
|
-
*/
|
|
481
407
|
export async function pruneUnusedShared(root, checkouts, now, unusedMs = SHARED_UNUSED_MS, options = {}) {
|
|
482
408
|
const stale = (one) => one.checkouts.length === 0 && now.getTime() - Date.parse(one.usedAt) > unusedMs;
|
|
483
409
|
const removed = [];
|
|
@@ -492,7 +418,7 @@ export async function pruneUnusedShared(root, checkouts, now, unusedMs = SHARED_
|
|
|
492
418
|
try {
|
|
493
419
|
usedAt = statSync(join(trash.path, READY)).mtime.toISOString();
|
|
494
420
|
}
|
|
495
|
-
catch {
|
|
421
|
+
catch { }
|
|
496
422
|
const fresh = useCopies(root, [{ ...copy, dir: trash.path, usedAt }], checkouts())[0];
|
|
497
423
|
used ||= !stale(fresh);
|
|
498
424
|
}
|
|
@@ -547,7 +473,6 @@ export async function pruneUnusedShared(root, checkouts, now, unusedMs = SHARED_
|
|
|
547
473
|
return { removed, failed };
|
|
548
474
|
}
|
|
549
475
|
const nextTurn = () => new Promise(resolve => setImmediate(resolve));
|
|
550
|
-
/** removeShared without holding the event loop: chmod and rm run off it. */
|
|
551
476
|
async function removeSharedLater(path) {
|
|
552
477
|
if (process.platform !== "win32")
|
|
553
478
|
await new Promise(resolve => execFile("chmod", ["-R", "u+w", path], { timeout: 120_000 }, () => resolve()));
|
package/dist/sign-in-guard.js
CHANGED
|
@@ -3,26 +3,15 @@ import { createHmac, randomBytes } from "node:crypto";
|
|
|
3
3
|
import { sourceKey } from "./source-key.js";
|
|
4
4
|
export const DEFAULT_GUARD_POLICY = { failuresBeforeLock: 5, firstLockMs: 15 * 60_000, maxLockMs: 24 * 60 * 60_000, firstSlowMs: 60_000 };
|
|
5
5
|
const TRACKED = 10_000;
|
|
6
|
-
/** Default/loopback source for callers without an explicit native CLI context. */
|
|
7
6
|
export const LOCAL_SOURCE = "local";
|
|
8
|
-
/** Native CLI only: no HTTP peer or forwarded header can select this source. */
|
|
9
7
|
export const CLI_PASSWORD_SOURCE = "local-cli";
|
|
10
8
|
export const ACCOUNT_PASSWORD_TRIES = 3;
|
|
11
9
|
export const ACCOUNT_PASSWORD_WINDOW_MS = 60_000;
|
|
12
10
|
const LOCAL_PEERS = new Set(["127.0.0.1", "::1"]);
|
|
13
11
|
const passwordSource = new AsyncLocalStorage();
|
|
14
|
-
/** Run `work` with every password check inside it counted against `source`. */
|
|
15
12
|
export const withPasswordSource = (source, work) => passwordSource.run(source, work);
|
|
16
|
-
/** Where the password being checked now came from (LOCAL_SOURCE outside a request). */
|
|
17
13
|
export const currentPasswordSource = () => passwordSource.getStore() ?? LOCAL_SOURCE;
|
|
18
|
-
/** Set only after the server validates a browser session, never from submitted form fields. */
|
|
19
14
|
export const provenPasswordAccount = new AsyncLocalStorage();
|
|
20
|
-
/**
|
|
21
|
-
* Keep the first TRACKED live keys exactly; further keys share TRACKED overflow buckets. Hashes use the guard's
|
|
22
|
-
* private secret, so callers cannot choose collisions. Neither tier evicts live state. Overflow never mutates the
|
|
23
|
-
* exact tier, and cannot move into a freed exact slot until all overflow state expires: moving would reset budgets.
|
|
24
|
-
* A success may clear its exact record, but never a shared bucket (which could also hold another name's failures).
|
|
25
|
-
*/
|
|
26
15
|
class KeyedGuardState {
|
|
27
16
|
secret;
|
|
28
17
|
domain;
|
|
@@ -70,7 +59,6 @@ class KeyedGuardState {
|
|
|
70
59
|
pruneEntries(this.overflow);
|
|
71
60
|
return next;
|
|
72
61
|
}
|
|
73
|
-
/** Individual source/name records; shared overflow storage has its own fixed TRACKED-bucket bound. */
|
|
74
62
|
get size() { return this.entries.size; }
|
|
75
63
|
}
|
|
76
64
|
export class PasswordGuard {
|
|
@@ -79,7 +67,6 @@ export class PasswordGuard {
|
|
|
79
67
|
sources = new KeyedGuardState(this.secret, "source/name");
|
|
80
68
|
slowdowns = new KeyedGuardState(this.secret, "name");
|
|
81
69
|
nextPruneAt = Infinity;
|
|
82
|
-
/** Told once per lock: the account (as typed), and for how long. */
|
|
83
70
|
onLock = null;
|
|
84
71
|
constructor(policy = DEFAULT_GUARD_POLICY) {
|
|
85
72
|
this.policy = policy;
|
|
@@ -89,13 +76,11 @@ export class PasswordGuard {
|
|
|
89
76
|
const key = sourceKey(source);
|
|
90
77
|
return `${LOCAL_PEERS.has(key) ? LOCAL_SOURCE : key}\u0000${PasswordGuard.key(account)}`;
|
|
91
78
|
}
|
|
92
|
-
/** Prune by the supplied time, even below capacity; retain a lock's escalation history for a day. */
|
|
93
79
|
prune(now) {
|
|
94
80
|
if (now < this.nextPruneAt)
|
|
95
81
|
return;
|
|
96
82
|
this.nextPruneAt = Math.min(this.sources.prune(now, this.policy.maxLockMs), this.slowdowns.prune(now, this.policy.maxLockMs));
|
|
97
83
|
}
|
|
98
|
-
/** Source-local snapshot for existing callers. Authentication must use preflight to spend the shared budget. */
|
|
99
84
|
lockedFor(account, now, source = currentPasswordSource()) {
|
|
100
85
|
this.prune(now);
|
|
101
86
|
const pair = PasswordGuard.pair(account, source);
|
|
@@ -103,10 +88,8 @@ export class PasswordGuard {
|
|
|
103
88
|
if (tries === undefined)
|
|
104
89
|
return 0;
|
|
105
90
|
const slowdown = this.slowdowns.get(PasswordGuard.key(account));
|
|
106
|
-
// Legacy observation only: account existence never affects authentication or state retention.
|
|
107
91
|
return Math.max(0, tries.lockedUntil - now, slowdown?.observedAccount === true ? slowdown.until - now : 0);
|
|
108
92
|
}
|
|
109
|
-
/** Reserve one password check, or return its wait. No password derivation may precede this call. */
|
|
110
93
|
preflight(account, now, source = currentPasswordSource(), proven = false) {
|
|
111
94
|
this.prune(now);
|
|
112
95
|
const tries = this.sources.get(PasswordGuard.pair(account, source));
|
|
@@ -124,7 +107,6 @@ export class PasswordGuard {
|
|
|
124
107
|
slowdown.admissions.push(now);
|
|
125
108
|
return 0;
|
|
126
109
|
}
|
|
127
|
-
/** A wrong password; only a database lookup may establish `exists`. */
|
|
128
110
|
failed(account, now, source = currentPasswordSource(), exists = false) {
|
|
129
111
|
this.prune(now);
|
|
130
112
|
const pair = PasswordGuard.pair(account, source);
|
|
@@ -148,17 +130,14 @@ export class PasswordGuard {
|
|
|
148
130
|
if (over >= 0)
|
|
149
131
|
slowdown.until = now + Math.min(this.policy.maxLockMs, this.policy.firstSlowMs * 2 ** Math.min(over, 32));
|
|
150
132
|
}
|
|
151
|
-
/** The right password clears individually tracked state; shared overflow buckets must expire by time. */
|
|
152
133
|
succeeded(account, source = currentPasswordSource()) {
|
|
153
134
|
const pair = PasswordGuard.pair(account, source);
|
|
154
135
|
this.sources.clear(pair);
|
|
155
136
|
this.slowdowns.clear(PasswordGuard.key(account));
|
|
156
137
|
}
|
|
157
|
-
/** Individually tracked source-and-name entries (at most TRACKED), excluding fixed shared overflow buckets. */
|
|
158
138
|
get size() { return this.sources.size; }
|
|
159
139
|
}
|
|
160
140
|
const guards = new WeakMap();
|
|
161
|
-
/** The guard for one database (a store): every password check against it counts. */
|
|
162
141
|
export function passwordGuardOf(owner) {
|
|
163
142
|
let guard = guards.get(owner);
|
|
164
143
|
if (guard === undefined) {
|
|
@@ -167,11 +146,6 @@ export function passwordGuardOf(owner) {
|
|
|
167
146
|
}
|
|
168
147
|
return guard;
|
|
169
148
|
}
|
|
170
|
-
/**
|
|
171
|
-
* Wrong passwords from one address, across every account: at most `tries`
|
|
172
|
-
* in `windowMs`. What a lockout per account can't see (one address trying
|
|
173
|
-
* many names) this does.
|
|
174
|
-
*/
|
|
175
149
|
export class SourceBudget {
|
|
176
150
|
tries;
|
|
177
151
|
windowMs;
|
|
@@ -180,7 +154,6 @@ export class SourceBudget {
|
|
|
180
154
|
this.tries = tries;
|
|
181
155
|
this.windowMs = windowMs;
|
|
182
156
|
}
|
|
183
|
-
/** Milliseconds until this address may try again (0: it may). */
|
|
184
157
|
waitFor(address, now) {
|
|
185
158
|
const recent = (this.sources.get(sourceKey(address)) ?? []).filter(at => now - at < this.windowMs);
|
|
186
159
|
return recent.length < this.tries ? 0 : this.windowMs - (now - recent[0]);
|
package/dist/skills-ui.js
CHANGED
|
@@ -2,13 +2,11 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { whenUtc } from "./when-html.js";
|
|
3
3
|
import { html, joinHtml, postForm } from "./html.js";
|
|
4
4
|
import { acts, btn, chip, disclose, facts, formRow, input, note, notice, select, settingsRecord, settingsSection, textarea } from "./server/kit.js";
|
|
5
|
-
// Hidden fields as they always were: a missing value is an empty field.
|
|
6
5
|
const fields = (data) => Object.fromEntries(Object.entries(data).map(([k, v]) => [k, String(v ?? "")]));
|
|
7
6
|
export const SKILLS_CSS = `.skills{max-width:780px;min-width:0;overflow-wrap:anywhere}.skills h2{font-size:1.1rem}.skills .card{padding:18px;margin:14px 0;min-width:0}.skills form,.skills label{display:grid;gap:10px}.skills input,.skills textarea,.skills select{box-sizing:border-box;width:100%;max-width:100%;min-width:0}.skills textarea{resize:vertical;min-height:130px}.skills button{justify-self:start;white-space:nowrap;min-height:44px}.skills summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.skills pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto;font-size:.9rem}.skills .skill-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.skills .skill-heading h2{margin:0}.skills .skill-state{font-size:.85rem;flex-shrink:0}.skills .skill-source{font-size:.85rem}.skills .skill-controls{display:flex;gap:12px;flex-wrap:wrap}.skills .skill-controls form{margin:0}.skills details details{margin-top:10px}.skills [hidden]{display:none!important}.skills .skill-files{max-height:200px;overflow:auto}.skills .problem{padding:12px}@media(max-width:600px){.skills input,.skills textarea,.skills select{font-size:16px}.skills .card{padding:14px}.skills .skill-heading{align-items:flex-start}}`;
|
|
8
7
|
function source(skill) {
|
|
9
8
|
return html `<p class="skill-source">${skill.source} · ${skill.sha.slice(0, 10)}</p><p>${skill.files.length} files · ${Math.ceil(skill.files.reduce((n, f) => n + Buffer.from(f.base64, "base64").length, 0) / 1024)} KB</p><pre>${Buffer.from(skill.files.find((f) => f.path === "SKILL.md").base64, "base64").toString("utf8")}</pre><details><summary>Package files</summary><ul class="skill-files">${skill.files.map((f) => html `<li>${f.path}</li>`)}</ul></details>`;
|
|
10
9
|
}
|
|
11
|
-
/** A skill's package as the settings page shows it: where it came from, its size, its SKILL.md, its files. */
|
|
12
10
|
function sourceKit(skill) {
|
|
13
11
|
const kb = Math.ceil(skill.files.reduce((n, f) => n + Buffer.from(f.base64, "base64").length, 0) / 1024);
|
|
14
12
|
return joinHtml([
|
package/dist/skills.js
CHANGED
|
@@ -1,43 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `toolroll skills install` (M7.13) — how a repository tells its
|
|
3
|
-
* agents this queue exists.
|
|
4
|
-
*
|
|
5
|
-
* Two artifacts, both operator-invoked, previewed by default, and marked
|
|
6
|
-
* as managed so nothing here ever overwrites a file it does not own:
|
|
7
|
-
*
|
|
8
|
-
* - `.claude/skills/toolroll/SKILL.md` — the Agent Skills entry
|
|
9
|
-
* (the cross-vendor layout Claude Code, Codex, Gemini CLI, and
|
|
10
|
-
* opencode all read). Router-style: the description says when to
|
|
11
|
-
* reach for the CLI; the body carries the operating contract and
|
|
12
|
-
* defers to live `--help` for everything else, because a skill that
|
|
13
|
-
* duplicates the manual drifts from it.
|
|
14
|
-
* - a managed AGENTS.md block (CLAUDE.md-compatible), written only
|
|
15
|
-
* with --write-context, replaced only between its own markers.
|
|
16
|
-
*
|
|
17
|
-
* DESIGN's "nothing is ever installed for you" holds: this command runs
|
|
18
|
-
* when the operator runs it, shows exactly what it would write, and
|
|
19
|
-
* touches nothing without --yes.
|
|
20
|
-
*/
|
|
21
1
|
import { existsSync, lstatSync, mkdirSync, readdirSync, readFileSync, rmdirSync, unlinkSync, writeFileSync } from "node:fs";
|
|
22
2
|
import { homedir } from "node:os";
|
|
23
3
|
import { dirname, join } from "node:path";
|
|
24
4
|
import { guideNamed } from "./guides.js";
|
|
25
5
|
export const SKILL_DIR = join(".claude", "skills", "toolroll");
|
|
26
|
-
/** Where installs before the rename to Toolroll put the skill: still found, and replaced by the new one. */
|
|
27
6
|
export const LEGACY_SKILL_DIR = join(".claude", "skills", "standing-orders");
|
|
28
7
|
export const SKILL_FILE = "SKILL.md";
|
|
29
8
|
export const MANAGED_MARK = "managed by toolroll — edits outside the markers survive reinstalls";
|
|
30
9
|
const LEGACY_MANAGED_MARK = "managed by standing-orders — edits outside the markers survive reinstalls";
|
|
31
|
-
/** Frontmatter a skill of ours starts with, under either name. */
|
|
32
10
|
const OWN_HEADERS = ["---\nname: toolroll\n", "---\nname: standing-orders\n"];
|
|
33
11
|
const ownHeader = (content) => OWN_HEADERS.some(header => content.startsWith(header));
|
|
34
12
|
export const CONTEXT_BEGIN = "<!-- standing-orders:begin -->";
|
|
35
13
|
export const CONTEXT_END = "<!-- standing-orders:end -->";
|
|
36
|
-
/** The skill, complete. The description is the routing contract. The body
|
|
37
|
-
* is the binary-served `operating` guide (guides.ts) — ONE source, so the
|
|
38
|
-
* installed snapshot and `skills get operating` cannot drift apart within
|
|
39
|
-
* a version. The frontmatter prefix and the managed mark are the ownership
|
|
40
|
-
* signature planInstall checks — do not reword them. */
|
|
41
14
|
export function skillContent() {
|
|
42
15
|
const operating = guideNamed("operating");
|
|
43
16
|
if (operating === null)
|
|
@@ -53,7 +26,6 @@ ${operating.content}
|
|
|
53
26
|
<!-- end ${MANAGED_MARK} -->
|
|
54
27
|
`;
|
|
55
28
|
}
|
|
56
|
-
/** The AGENTS.md block, marker-fenced so reinstalls replace only themselves. */
|
|
57
29
|
export function contextBlock() {
|
|
58
30
|
return `${CONTEXT_BEGIN}
|
|
59
31
|
This repository's unattended work runs through the \`toolroll\` CLI
|
|
@@ -63,7 +35,8 @@ envelope per command, stable \`reason\` tokens, exit 3 means "no" not
|
|
|
63
35
|
\`held\`, \`fenced\`, \`reserved\`, \`unapproved\`, and \`external\` are
|
|
64
36
|
answers to branch on, not errors to retry. Details:
|
|
65
37
|
\`.claude/skills/toolroll/SKILL.md\`, or \`toolroll --help\`,
|
|
66
|
-
which is authoritative
|
|
38
|
+
which is authoritative (\`toolroll internals\` and
|
|
39
|
+
\`toolroll contract --commands --json\` list every command) — and \`toolroll skills get <name>\` serves
|
|
67
40
|
version-matched guides straight from the binary (\`skills list\` names
|
|
68
41
|
them). Project memory (instructions, references, lessons, decisions) lives
|
|
69
42
|
in the plane: read \`skills get knowledge\`, search it with
|
|
@@ -72,14 +45,11 @@ in the plane: read \`skills get knowledge\`, search it with
|
|
|
72
45
|
merge anything yourself.
|
|
73
46
|
${CONTEXT_END}`;
|
|
74
47
|
}
|
|
75
|
-
/** What install would do, computed without writing anything. */
|
|
76
48
|
export function planInstall(repo, writeContext) {
|
|
77
49
|
const skillPath = join(repo, SKILL_DIR, SKILL_FILE);
|
|
78
50
|
let skillAction = "create";
|
|
79
51
|
if (existsSync(skillPath)) {
|
|
80
52
|
const current = readFileSync(skillPath, "utf8");
|
|
81
|
-
// Ownership is the exact header AND the managed mark — a foreign file
|
|
82
|
-
// that merely quotes the mark somewhere is not ours (audit C-10).
|
|
83
53
|
const ours = ownHeader(current) && (current.includes(MANAGED_MARK) || current.includes(LEGACY_MANAGED_MARK));
|
|
84
54
|
skillAction = ours ? "replace" : "refuse-foreign";
|
|
85
55
|
}
|
|
@@ -97,7 +67,6 @@ export function planInstall(repo, writeContext) {
|
|
|
97
67
|
}
|
|
98
68
|
return { skillPath, skillAction, legacySkillPath, contextPath, contextAction };
|
|
99
69
|
}
|
|
100
|
-
/** Apply the plan. Refuses a foreign skill file rather than eating it. */
|
|
101
70
|
export function applyInstall(repo, writeContext) {
|
|
102
71
|
const plan = planInstall(repo, writeContext);
|
|
103
72
|
if (plan.skillAction === "refuse-foreign") {
|
|
@@ -107,15 +76,10 @@ export function applyInstall(repo, writeContext) {
|
|
|
107
76
|
message: `${plan.skillPath} exists and was not written by this installer — refusing to overwrite a file that is not mine`,
|
|
108
77
|
};
|
|
109
78
|
}
|
|
110
|
-
// EVERY validation happens before EITHER file is touched — "nothing was
|
|
111
|
-
// written" must be true when it is said (arc-5 review, finding 6; the
|
|
112
|
-
// old order wrote the skill first and then refused on damaged markers).
|
|
113
79
|
let contextNext = null;
|
|
114
80
|
if (plan.contextPath !== null && plan.contextAction !== "create") {
|
|
115
81
|
const current = readFileSync(plan.contextPath, "utf8");
|
|
116
82
|
if (plan.contextAction === "replace") {
|
|
117
|
-
// Exactly one well-ordered pair, or a typed refusal — a half block
|
|
118
|
-
// must never produce a silent false success (audit C-10).
|
|
119
83
|
const begins = current.split(CONTEXT_BEGIN).length - 1;
|
|
120
84
|
const ends = current.split(CONTEXT_END).length - 1;
|
|
121
85
|
const begin = current.indexOf(CONTEXT_BEGIN);
|
|
@@ -130,7 +94,6 @@ export function applyInstall(repo, writeContext) {
|
|
|
130
94
|
contextNext = current.slice(0, begin) + contextBlock() + current.slice(end + CONTEXT_END.length);
|
|
131
95
|
}
|
|
132
96
|
else {
|
|
133
|
-
// insert: append after existing content, never rewriting a word of it.
|
|
134
97
|
contextNext = `${current.replace(/\n*$/, "\n\n")}${contextBlock()}\n`;
|
|
135
98
|
}
|
|
136
99
|
}
|
|
@@ -146,31 +109,21 @@ export function applyInstall(repo, writeContext) {
|
|
|
146
109
|
}
|
|
147
110
|
return { ok: true, plan, wrote };
|
|
148
111
|
}
|
|
149
|
-
/**
|
|
150
|
-
* The user-level Claude Code skill is separate from the repository-local
|
|
151
|
-
* skill above. The former teaches one Claude Code installation how to use
|
|
152
|
-
* this exact Toolroll binary; the latter remains part of the shared
|
|
153
|
-
* project setup flow.
|
|
154
|
-
*/
|
|
155
112
|
export const CLAUDE_CODE_MANAGED_MARK = "<!-- standing-orders:claude-code-skill:v1 -->";
|
|
156
113
|
export const CLAUDE_CODE_GUIDES = ["console", "operating", "runner", "release"];
|
|
157
|
-
/** The thin user-level skill `toolroll onboard` writes (agent-onboard.ts). */
|
|
158
114
|
export const OPERATOR_SKILL_MARK = "<!-- toolroll:operator-skill:v1";
|
|
159
115
|
export function defaultClaudeCodeSkillDir(home = homedir()) {
|
|
160
116
|
return join(home, ".claude", "skills", "toolroll");
|
|
161
117
|
}
|
|
162
|
-
/** Where installs before the rename put the Claude Code skill. */
|
|
163
118
|
export function legacyClaudeCodeSkillDir(home = homedir()) {
|
|
164
119
|
return join(home, ".claude", "skills", "standing-orders");
|
|
165
120
|
}
|
|
166
|
-
/** A regular file (not a link) whose text says it is ours. */
|
|
167
121
|
function isOwnFile(path, ours) {
|
|
168
122
|
if (!existsSync(path))
|
|
169
123
|
return false;
|
|
170
124
|
const entry = lstatSync(path);
|
|
171
125
|
return !entry.isSymbolicLink() && entry.isFile() && entry.size <= 2_000_000 && ours(readFileSync(path, "utf8"));
|
|
172
126
|
}
|
|
173
|
-
/** A folder that is itself, not a link to somewhere else. */
|
|
174
127
|
function realFolder(path) {
|
|
175
128
|
try {
|
|
176
129
|
const entry = lstatSync(path);
|
|
@@ -180,7 +133,6 @@ function realFolder(path) {
|
|
|
180
133
|
return false;
|
|
181
134
|
}
|
|
182
135
|
}
|
|
183
|
-
/** Remove files of ours, then their folder only if nothing else is left in it. */
|
|
184
136
|
function removeOwn(paths) {
|
|
185
137
|
for (const path of paths)
|
|
186
138
|
unlinkSync(path);
|
|
@@ -189,7 +141,6 @@ function removeOwn(paths) {
|
|
|
189
141
|
if (readdirSync(folder).length === 0)
|
|
190
142
|
rmdirSync(folder);
|
|
191
143
|
}
|
|
192
|
-
/** SKILL.md links to the full guides instead of copying their detail. */
|
|
193
144
|
export function claudeCodeSkillContent() {
|
|
194
145
|
return `---
|
|
195
146
|
name: toolroll
|
|
@@ -208,7 +159,6 @@ Use the installed \`toolroll\` command. Its live help is authoritative.
|
|
|
208
159
|
- [Release guide](release.md) — releasing Toolroll itself with \`toolroll release <branch>\`.
|
|
209
160
|
`;
|
|
210
161
|
}
|
|
211
|
-
/** One linked file, generated from the guide embedded in this binary. */
|
|
212
162
|
export function claudeCodeGuideContent(name) {
|
|
213
163
|
const guide = guideNamed(name);
|
|
214
164
|
if (guide === null)
|
|
@@ -231,7 +181,6 @@ function isClaudeCodeManaged(name, content) {
|
|
|
231
181
|
}
|
|
232
182
|
return content.startsWith(`${CLAUDE_CODE_MANAGED_MARK}\n\n`);
|
|
233
183
|
}
|
|
234
|
-
/** Compute the complete write set without changing the filesystem. */
|
|
235
184
|
export function planClaudeCodeInstall(directory = defaultClaudeCodeSkillDir(), legacyDirectory = directory === defaultClaudeCodeSkillDir() ? legacyClaudeCodeSkillDir() : null) {
|
|
236
185
|
let directoryAction = "create";
|
|
237
186
|
if (existsSync(directory)) {
|
|
@@ -257,7 +206,6 @@ export function planClaudeCodeInstall(directory = defaultClaudeCodeSkillDir(), l
|
|
|
257
206
|
: claudeCodeFiles(legacyDirectory).filter(({ name, path }) => isOwnFile(path, content => isClaudeCodeManaged(name, content))).map(({ path }) => path);
|
|
258
207
|
return { directory, directoryAction, files, legacyFiles };
|
|
259
208
|
}
|
|
260
|
-
/** Refresh every managed file, after validating the whole set first. */
|
|
261
209
|
export function applyClaudeCodeInstall(directory = defaultClaudeCodeSkillDir(), legacyDirectory = directory === defaultClaudeCodeSkillDir() ? legacyClaudeCodeSkillDir() : null) {
|
|
262
210
|
const plan = planClaudeCodeInstall(directory, legacyDirectory);
|
|
263
211
|
const refused = plan.files.find(file => file.action === "refuse-foreign");
|