toolroll 0.9.104 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -5
- package/README.md +18 -20
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +17 -139
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +1 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +0 -17
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +0 -53
- package/dist/local-owner.js +2 -93
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +0 -20
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +0 -100
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +0 -25
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +4 -567
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +21 -555
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +1 -88
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +13 -493
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +6 -135
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +9 -227
- package/dist/server/tasks.js +5 -539
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +0 -75
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +17 -28
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +16 -36
- package/dist/tui.js +1 -1
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +4 -3
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -350
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1985
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -540
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -43
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -61
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -170
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -39
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1098
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -81
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -60
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -343
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -108
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -48
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -202
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/memory-tidy.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tidying project memory (docs/plans/learning-loops.md, "Tidy-up pass"): proposals to retire, merge or settle entries,
|
|
3
|
-
* with explicit restore. Proposes; never changes. Nothing happens until a person accepts, and every accept re-reads every
|
|
4
|
-
* affected item in one transaction: any difference and the proposal goes stale.
|
|
5
|
-
*
|
|
6
|
-
* - The scheduled pass (a quiet project, at most weekly, 10 entries or more) is deterministic: it takes no analyzer.
|
|
7
|
-
* A model is asked for contradictions only on a person's request (`proposeTidy` with an analyzer, D4).
|
|
8
|
-
* - The successor chain of a decision is every decision reachable through ordinary supersession and not-undone merges,
|
|
9
|
-
* and its active tail the active ones in it. Restoring past an active tail, or undoing a merge built on, is refused
|
|
10
|
-
* until a person reviews the expanded change: a proposal that names every affected item and says what happens to the
|
|
11
|
-
* tail. Accepting compare-and-sets each one.
|
|
12
|
-
* - Contradictions and a note that keeps failing have no default: a person's choice is required.
|
|
13
|
-
*
|
|
14
|
-
* The only writer of `memory_tidy_proposal` and `decision_merge`. Decisions change only through project-memory.ts, which
|
|
15
|
-
* keeps their revisions and history. A policy path (release-auto.ts EVAL_POLICY). The lead has no tool for any of this.
|
|
16
|
-
*/
|
|
17
1
|
import { createHash } from "node:crypto";
|
|
18
2
|
import { lessonNoteOf, noteAfterwards, watchNote } from "./lesson-notes.js";
|
|
19
3
|
import { currentLocalOwner } from "./local-owner.js";
|
|
@@ -27,7 +11,6 @@ const DAY_MS = 86_400_000;
|
|
|
27
11
|
export const UNUSED_DAYS = 60, UNUSED_RUNS = 20, FAILING_NOTE = 3, TIDY_MIN_ENTRIES = 10;
|
|
28
12
|
export const TIDY_EVERY_MS = 7 * DAY_MS, TIDY_QUIET_MS = DAY_MS;
|
|
29
13
|
const MAX_MODEL_PAIRS = 5;
|
|
30
|
-
/** What a stale proposal says. */
|
|
31
14
|
export const TIDY_STALE = "Changed since proposed. Run Clean up again.";
|
|
32
15
|
const sha = (text) => createHash("sha256").update(text).digest("hex");
|
|
33
16
|
function proposalOf(store, row) {
|
|
@@ -45,7 +28,6 @@ function proposalOf(store, row) {
|
|
|
45
28
|
export function listTidy(store, repo, status = "pending") {
|
|
46
29
|
return store.handle.prepare("SELECT * FROM memory_tidy_proposal WHERE repo = ? AND (? = 'all' OR status = ?) ORDER BY id DESC LIMIT 100").all(repo, status, status).map(row => proposalOf(store, row));
|
|
47
30
|
}
|
|
48
|
-
// ---- current items -------------------------------------------------------------------------------------------------
|
|
49
31
|
function decisionItem(store, repo, id) {
|
|
50
32
|
const row = store.handle.prepare("SELECT revision, status, sha FROM project_decision WHERE id = ? AND repo = ?").get(id, repo);
|
|
51
33
|
return row === undefined ? null : { kind: "decision", id, revision: Number(row["revision"]), status: String(row["status"]), sha: String(row["sha"]) };
|
|
@@ -66,7 +48,6 @@ function lessonItem(store, repo, id) {
|
|
|
66
48
|
const row = store.handle.prepare("SELECT version, sha FROM project_lesson WHERE id = ? AND repo = ?").get(id, repo);
|
|
67
49
|
return row === undefined ? null : { kind: "lesson", id, version: Number(row["version"]), sha: String(row["sha"]) };
|
|
68
50
|
}
|
|
69
|
-
/** Whether an item reads now exactly as it was bound. */
|
|
70
51
|
function itemStands(store, repo, item) {
|
|
71
52
|
if (item.kind === "decision") {
|
|
72
53
|
const now = decisionItem(store, repo, item.id);
|
|
@@ -80,17 +61,14 @@ function itemStands(store, repo, item) {
|
|
|
80
61
|
return ref !== undefined && saved.revision === item.revision && referenceSha(ref) === item.sha;
|
|
81
62
|
}
|
|
82
63
|
const itemKey = (item) => `${item.kind}:${item.id}`;
|
|
83
|
-
// ---- finding -------------------------------------------------------------------------------------------------------
|
|
84
64
|
const normal = (text) => text.toLowerCase().replace(/[^\p{L}\p{N}]+/gu, " ").trim();
|
|
85
65
|
const dayWords = (iso) => iso.slice(0, 10);
|
|
86
|
-
/** Everything the deterministic pass would propose now. Reads only. */
|
|
87
66
|
function deterministicDrafts(store, repo, now) {
|
|
88
67
|
const drafts = [];
|
|
89
68
|
const cutoff = new Date(now.getTime() - UNUSED_DAYS * DAY_MS).toISOString();
|
|
90
69
|
const use = memoryUseOf(store, repo);
|
|
91
70
|
const runs = Number(store.handle.prepare("SELECT COUNT(DISTINCT run) AS n FROM memory_use WHERE repo = ? AND included_at >= ?").get(repo, cutoff)?.["n"] ?? 0);
|
|
92
71
|
const active = store.handle.prepare("SELECT id, claim, decided_at, source_ref FROM project_decision WHERE repo = ? AND status = 'active' ORDER BY id").all(repo);
|
|
93
|
-
/** Unused: a time older than the window, or never given to a run and older than the window. A row with no time is unknown, so no proposal. */
|
|
94
72
|
const unused = (key, since) => {
|
|
95
73
|
const one = use.get(key);
|
|
96
74
|
if (one === undefined)
|
|
@@ -138,7 +116,6 @@ function deterministicDrafts(store, repo, now) {
|
|
|
138
116
|
}
|
|
139
117
|
return drafts;
|
|
140
118
|
}
|
|
141
|
-
/** Save drafts that aren't waiting already and weren't rejected in this same state. */
|
|
142
119
|
function saveDrafts(store, repo, drafts, now) {
|
|
143
120
|
return store.transact(() => {
|
|
144
121
|
const seen = store.handle.prepare("SELECT kind, status, items_json FROM memory_tidy_proposal WHERE repo = ? AND status IN ('pending','rejected')").all(repo);
|
|
@@ -159,10 +136,6 @@ function saveDrafts(store, repo, drafts, now) {
|
|
|
159
136
|
return made;
|
|
160
137
|
});
|
|
161
138
|
}
|
|
162
|
-
/**
|
|
163
|
-
* The scheduled pass: deterministic, no analyzer in reach. Runs when the project has been quiet for a day, at most
|
|
164
|
-
* weekly, with at least 10 entries. Proposes only.
|
|
165
|
-
*/
|
|
166
139
|
export function scheduledTidy(store, repo, now) {
|
|
167
140
|
const key = `memory-tidy:${sha(repo).slice(0, 32)}`;
|
|
168
141
|
if (now.getTime() - store.serviceCursor(key) < TIDY_EVERY_MS)
|
|
@@ -179,7 +152,6 @@ export function scheduledTidy(store, repo, now) {
|
|
|
179
152
|
}
|
|
180
153
|
export const CONTRADICTION_SCHEMA = { type: "object", additionalProperties: false, required: ["contradictions"], properties: { contradictions: { type: "array", items: { type: "object", additionalProperties: false, required: ["a", "b", "why"], properties: { a: { type: "integer" }, b: { type: "integer" }, why: { type: "string" } } } } } };
|
|
181
154
|
const CONTRADICTION_PROMPT = `You read a project's settled decisions. Find pairs that can't both hold. Say nothing about style or overlap. Refer to decisions only by id. Return one JSON object and nothing else, matching this JSON Schema: ${JSON.stringify(CONTRADICTION_SCHEMA)}`;
|
|
182
|
-
/** Read a model's pairs: ids of active decisions only, a clean reason, each pair once. Everything else is dropped. */
|
|
183
155
|
export function parseContradictions(text, active) {
|
|
184
156
|
const start = text.indexOf("{"), end = text.lastIndexOf("}");
|
|
185
157
|
if (start < 0 || end <= start)
|
|
@@ -199,7 +171,6 @@ export function parseContradictions(text, active) {
|
|
|
199
171
|
const { a, b, why } = (one ?? {});
|
|
200
172
|
if (typeof a !== "number" || typeof b !== "number" || a === b || !known.has(a) || !known.has(b) || typeof why !== "string")
|
|
201
173
|
continue;
|
|
202
|
-
// eslint-disable-next-line no-control-regex
|
|
203
174
|
const reason = why.replace(/[\u0000-\u001f\u007f]+/g, " ").trim().slice(0, 300);
|
|
204
175
|
const key = [a, b].sort((x, y) => x - y).join(",");
|
|
205
176
|
if (reason === "" || scanForSecrets(reason).length > 0 || seen.has(key))
|
|
@@ -211,7 +182,6 @@ export function parseContradictions(text, active) {
|
|
|
211
182
|
}
|
|
212
183
|
return pairs;
|
|
213
184
|
}
|
|
214
|
-
/** Clean up, on a person's request: the deterministic pass with no quiet gate, and contradictions when an analyzer is given. */
|
|
215
185
|
export async function proposeTidy(store, args, now) {
|
|
216
186
|
refuseLeadMemoryWrite();
|
|
217
187
|
if (!store.accountCanAccess(args.actor, args.repo) || store.accountOf(args.actor)?.role !== "approver")
|
|
@@ -233,8 +203,6 @@ export async function proposeTidy(store, args, now) {
|
|
|
233
203
|
}
|
|
234
204
|
return { made: saveDrafts(store, args.repo, drafts, now), problem };
|
|
235
205
|
}
|
|
236
|
-
// ---- chains --------------------------------------------------------------------------------------------------------
|
|
237
|
-
/** Every decision reachable from `id` through ordinary supersession and not-undone merges, transitively (never `id`). */
|
|
238
206
|
export function successorChain(store, repo, id) {
|
|
239
207
|
const seen = new Set([id]), order = [], queue = [id];
|
|
240
208
|
while (queue.length > 0) {
|
|
@@ -251,13 +219,9 @@ export function successorChain(store, repo, id) {
|
|
|
251
219
|
return order;
|
|
252
220
|
}
|
|
253
221
|
const statusOf = (store, repo, id) => { const item = decisionItem(store, repo, id); return item === null || item.kind !== "decision" ? null : item.status; };
|
|
254
|
-
/** The active decisions in `id`'s chain. */
|
|
255
222
|
export function activeTail(store, repo, id) {
|
|
256
223
|
return successorChain(store, repo, id).filter(one => statusOf(store, repo, one) === "active");
|
|
257
224
|
}
|
|
258
|
-
// ---- who, and the writes -------------------------------------------------------------------------------------------
|
|
259
|
-
/** A person who may change this project's memory, re-read inside the write. Lead and remote refused; revoked or lost
|
|
260
|
-
* access refused; the laptop's local owner only in its own act; the proof must be a person's. */
|
|
261
225
|
function proveMemoryPerson(store, repo, actor, proof) {
|
|
262
226
|
refuseLeadMemoryWrite();
|
|
263
227
|
if (!store.accountCanAccess(actor, repo) || store.accountOf(actor)?.role !== "approver")
|
|
@@ -276,7 +240,6 @@ const needDecision = (store, repo, actor, id) => {
|
|
|
276
240
|
throw Error("That decision is unavailable.");
|
|
277
241
|
return found;
|
|
278
242
|
};
|
|
279
|
-
/** Back to active: its note, if it had one, is tracked again. */
|
|
280
243
|
function bringBack(store, repo, actor, id, action, reason, now) {
|
|
281
244
|
const back = reactivateDecision(store, repo, actor, id, action, reason, now);
|
|
282
245
|
const note = /^lesson-note:(\d+)$/.exec(back.sourceRef ?? "");
|
|
@@ -286,7 +249,6 @@ function bringBack(store, repo, actor, id, action, reason, now) {
|
|
|
286
249
|
watchNote(store, { repo, proposal: facts.proposal, identities: facts.identities, decisionRevision: back.revision, now });
|
|
287
250
|
}
|
|
288
251
|
}
|
|
289
|
-
/** One new decision from several; each old one superseded with a "merged into" history row; every member listed. */
|
|
290
252
|
export function mergeDecisions(store, args, now) {
|
|
291
253
|
if (new Set(args.ids).size < 2)
|
|
292
254
|
throw Error("Choose at least two decisions to merge.");
|
|
@@ -305,10 +267,6 @@ export function mergeDecisions(store, args, now) {
|
|
|
305
267
|
return made;
|
|
306
268
|
});
|
|
307
269
|
}
|
|
308
|
-
/**
|
|
309
|
-
* Restore a retired or superseded decision. With no active tail it goes straight back to active. With one, nothing
|
|
310
|
-
* changes: a proposal names every affected item, and a person chooses what happens to the tail.
|
|
311
|
-
*/
|
|
312
270
|
export function restoreDecision(store, args, now) {
|
|
313
271
|
return store.transact(() => {
|
|
314
272
|
proveMemoryPerson(store, args.repo, args.actor, args.proof);
|
|
@@ -340,11 +298,6 @@ function finishUnmerge(store, repo, actor, rows, now) {
|
|
|
340
298
|
bringBack(store, repo, actor, row.predecessor, "unmerged", `Unmerged from decision ${successor}.`, now);
|
|
341
299
|
store.handle.prepare("UPDATE decision_merge SET undone_at = ?, undone_by = ? WHERE merge = ? AND undone_at IS NULL").run(now.toISOString(), actor, rows[0].merge);
|
|
342
300
|
}
|
|
343
|
-
/**
|
|
344
|
-
* Undo a merge. Direct only while its successor is active, at the revision recorded at the merge, and not merged on.
|
|
345
|
-
* Otherwise nothing changes: a proposal names every affected item, the later merge included. A merge already undone is
|
|
346
|
-
* refused and changes nothing.
|
|
347
|
-
*/
|
|
348
301
|
export function unmergeDecisions(store, args, now) {
|
|
349
302
|
return store.transact(() => {
|
|
350
303
|
proveMemoryPerson(store, args.repo, args.actor, args.proof);
|
|
@@ -372,7 +325,6 @@ export function unmergeDecisions(store, args, now) {
|
|
|
372
325
|
return { restored: false, proposal: Number(inserted.lastInsertRowid), items };
|
|
373
326
|
});
|
|
374
327
|
}
|
|
375
|
-
/** A disabled lesson back in use (re-checks its support, bound to its version and sha). */
|
|
376
328
|
export function restoreLesson(store, root, args, now) {
|
|
377
329
|
store.transact(() => {
|
|
378
330
|
proveMemoryPerson(store, args.repo, args.actor, args.proof);
|
|
@@ -383,7 +335,6 @@ export function restoreLesson(store, root, args, now) {
|
|
|
383
335
|
changeLearning(store, root, { repo: args.repo, actor: args.actor, identity: learningIdentity(args.repo), revision: Number(policy?.["revision"] ?? 0), action: "readopt", lesson: args.id, version: item.version, sha: item.sha }, now);
|
|
384
336
|
});
|
|
385
337
|
}
|
|
386
|
-
/** A reference back from history, as a new knowledge revision bound to the current one. */
|
|
387
338
|
export function restoreReference(store, args, now) {
|
|
388
339
|
store.transact(() => {
|
|
389
340
|
proveMemoryPerson(store, args.repo, args.actor, args.proof);
|
|
@@ -467,10 +418,6 @@ function applyTidy(store, root, proposal, args, proof, now) {
|
|
|
467
418
|
}
|
|
468
419
|
}
|
|
469
420
|
}
|
|
470
|
-
/**
|
|
471
|
-
* Accept or reject one proposal: the one writer of a proposal's outcome. In one transaction, a person's standing, the
|
|
472
|
-
* proposal's state and every bound item are re-read; any difference marks it stale and changes nothing.
|
|
473
|
-
*/
|
|
474
421
|
export function decideTidy(store, root, args, now) {
|
|
475
422
|
refuseLeadMemoryWrite();
|
|
476
423
|
const outcome = store.transact(() => {
|
|
@@ -499,7 +446,6 @@ export function decideTidy(store, root, args, now) {
|
|
|
499
446
|
throw Error(TIDY_STALE);
|
|
500
447
|
return outcome;
|
|
501
448
|
}
|
|
502
|
-
/** Merges that can still be undone, for the page. */
|
|
503
449
|
export function undoableMerges(store, repo) {
|
|
504
450
|
const rows = store.handle.prepare("SELECT m.merge, m.successor, m.predecessor FROM decision_merge m JOIN project_decision d ON d.id = m.successor WHERE d.repo = ? AND m.undone_at IS NULL ORDER BY m.merge DESC LIMIT 200").all(repo);
|
|
505
451
|
const merges = new Map();
|
|
@@ -510,7 +456,6 @@ export function undoableMerges(store, repo) {
|
|
|
510
456
|
}
|
|
511
457
|
return [...merges.values()];
|
|
512
458
|
}
|
|
513
|
-
/** Lessons that were disabled and can be used again, for the page. */
|
|
514
459
|
export function disabledLessons(store, repo) {
|
|
515
460
|
return store.handle.prepare("SELECT id, payload FROM project_lesson WHERE repo = ? AND status = 'disabled' ORDER BY id DESC LIMIT 50").all(repo).flatMap(row => {
|
|
516
461
|
try {
|
package/dist/memory-use.js
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* "Last included in a run" (docs/plans/learning-loops.md): one `memory_use` row per lesson, reference and decision in a
|
|
3
|
-
* run's frozen context, written in the transaction that freezes it. The only writer of `memory_use`; release-auto's
|
|
4
|
-
* learning scan (eval-hooks.ts learningWriteProblem) needs a person for any other. A policy path (release-auto.ts
|
|
5
|
-
* EVAL_POLICY).
|
|
6
|
-
*
|
|
7
|
-
* Usage, never benefit: nothing here says a run did better for having an item, and nothing reads it for authority. Old
|
|
8
|
-
* snapshots are backfilled from their own sha-verified bytes and nothing is inferred: a knowledge snapshot from before
|
|
9
|
-
* `capturedAt` has no time and no version, so its rows say so. Lead chat contexts aren't snapshotted and aren't counted.
|
|
10
|
-
*/
|
|
11
1
|
import { createHash } from "node:crypto";
|
|
12
2
|
import { readKnowledgeSelection } from "./contracts/project-knowledge.js";
|
|
13
3
|
const sha = (text) => createHash("sha256").update(text).digest("hex");
|
|
14
|
-
/** A run's role as a phase of the work. */
|
|
15
4
|
export const phaseOfRole = (role) => role === "planner" ? "plan" : role === "reviewer" ? "review" : "build";
|
|
16
5
|
function insertUse(store, row) {
|
|
17
6
|
store.handle.prepare(`INSERT INTO memory_use (run, repo, kind, item, version, phase, included_at) VALUES (?, ?, ?, ?, ?, ?, ?) ON CONFLICT (run, kind, item) DO NOTHING`)
|
|
18
7
|
.run(row.run, row.repo, row.kind, row.item, row.version, row.phase, row.at);
|
|
19
8
|
}
|
|
20
|
-
/** Every reference and decision in a run's frozen knowledge. Called in the transaction that freezes it; advisory, so a
|
|
21
|
-
* failure leaves the run's context exactly as it was. */
|
|
22
9
|
export function recordKnowledgeUse(store, input) {
|
|
23
10
|
const { selection } = input, phase = phaseOfRole(input.role), at = selection.capturedAt ?? null;
|
|
24
11
|
try {
|
|
@@ -29,9 +16,8 @@ export function recordKnowledgeUse(store, input) {
|
|
|
29
16
|
insertUse(store, { run: input.run, repo: input.repo, kind: "decision", item: String(one.id), version: one.revision ?? null, phase, at });
|
|
30
17
|
});
|
|
31
18
|
}
|
|
32
|
-
catch {
|
|
19
|
+
catch { }
|
|
33
20
|
}
|
|
34
|
-
/** The lessons in a run's frozen learning payload (its last line is the record). */
|
|
35
21
|
function lessonsOf(payload) {
|
|
36
22
|
try {
|
|
37
23
|
const record = JSON.parse(payload.trim().split("\n").at(-1));
|
|
@@ -44,7 +30,6 @@ function lessonsOf(payload) {
|
|
|
44
30
|
return null;
|
|
45
31
|
}
|
|
46
32
|
}
|
|
47
|
-
/** Every lesson in a run's frozen learning context. As recordKnowledgeUse. */
|
|
48
33
|
export function recordLessonUse(store, input) {
|
|
49
34
|
const read = lessonsOf(input.payload);
|
|
50
35
|
if (read === null)
|
|
@@ -53,14 +38,9 @@ export function recordLessonUse(store, input) {
|
|
|
53
38
|
store.savepoint(() => { for (const one of read.lessons)
|
|
54
39
|
insertUse(store, { run: input.run, repo: input.repo, kind: "lesson", item: String(one.id), version: one.version, phase: read.phase, at: input.at }); });
|
|
55
40
|
}
|
|
56
|
-
catch {
|
|
41
|
+
catch { }
|
|
57
42
|
}
|
|
58
43
|
const CURSOR_LESSONS = "memory-use:backfill-lessons", CURSOR_KNOWLEDGE = "memory-use:backfill-knowledge";
|
|
59
|
-
/**
|
|
60
|
-
* Backfill from snapshots older than this feature, a bounded batch at a time (the watch loop's learning pass): each
|
|
61
|
-
* snapshot's sha is verified first. Lesson rows take the snapshot's own time and version; knowledge rows from a snapshot
|
|
62
|
-
* with no `capturedAt` have no version and no time. Returns how many snapshots were read.
|
|
63
|
-
*/
|
|
64
44
|
export function backfillMemoryUse(store, now, limit = 200) {
|
|
65
45
|
const lessonFrom = store.serviceCursor(CURSOR_LESSONS), knowledgeFrom = store.serviceCursor(CURSOR_KNOWLEDGE);
|
|
66
46
|
const lessons = store.handle.prepare("SELECT run, repo, payload, sha, created_at FROM learning_snapshot WHERE run > ? ORDER BY run LIMIT ?").all(lessonFrom, limit);
|
|
@@ -93,14 +73,12 @@ export function backfillMemoryUse(store, now, limit = 200) {
|
|
|
93
73
|
});
|
|
94
74
|
return lessons.length + knowledge.length;
|
|
95
75
|
}
|
|
96
|
-
/** A project's usage, by `<kind>:<item>`: its newest run, that run's time and how many runs had it. */
|
|
97
76
|
export function memoryUseOf(store, repo) {
|
|
98
77
|
const rows = store.handle.prepare(`SELECT u.kind, u.item, u.run AS last_run, u.included_at, t.runs FROM memory_use u
|
|
99
78
|
JOIN (SELECT kind, item, MAX(run) AS last_run, COUNT(*) AS runs FROM memory_use WHERE repo = ? GROUP BY kind, item) t ON t.kind = u.kind AND t.item = u.item AND t.last_run = u.run WHERE u.repo = ?`).all(repo, repo);
|
|
100
79
|
return new Map(rows.map(row => [`${String(row["kind"])}:${String(row["item"])}`, { lastRun: Number(row["last_run"]), lastAt: row["included_at"] == null ? null : String(row["included_at"]), runs: Number(row["runs"]) }]));
|
|
101
80
|
}
|
|
102
81
|
const DAY = new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric", timeZone: "UTC" });
|
|
103
|
-
/** "Last included in a run: #4410, Nov 3 · 41 runs"; "#2210 (time not recorded)" for a backfilled row; "Not included yet". */
|
|
104
82
|
export function lastIncludedWords(use) {
|
|
105
83
|
if (use === undefined)
|
|
106
84
|
return "Not included yet";
|
package/dist/merge-checklist.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
/** "Can I merge?" (docs/plans/plain-toolroll.md P1.6): one checklist per task, read from the records the task page,
|
|
2
|
-
* the result page and the pull request row already read, with nothing recomputed and nothing checked live. Each row
|
|
3
|
-
* says one fact about the task's current result; a blocker carries one existing act the person can take: Run checks,
|
|
4
|
-
* Retry, or Ask the agent to fix (Send back with a note naming the blocker). Nothing here acts: it is a read, and every
|
|
5
|
-
* act it names is the person's own post through its usual door.
|
|
6
|
-
*
|
|
7
|
-
* Rows Toolroll keeps no record of (up to date with main; conflicts outside a batch check) say so, rather than guess:
|
|
8
|
-
* GitHub shows them on the pull request. */
|
|
9
1
|
import { assignmentOf } from "./assignment.js";
|
|
10
2
|
import { pullRequestFollowOf, pullRequestViewOf, publishingOf } from "./pull-request-flow.js";
|
|
11
3
|
import { releaseCiHoldOf, releaseCiRunningOf } from "./release-ci-hold.js";
|
|
12
4
|
import { isRevisionFeedback } from "./result-review.js";
|
|
13
5
|
import { approvalOf, deployGateScope } from "./scope.js";
|
|
14
6
|
import { shipChecksForTask } from "./store.js";
|
|
15
|
-
import { approvedCheckStateOf } from "./task-status.js";
|
|
7
|
+
import { approvedCheckStateOf, requirementWordOf } from "./task-status.js";
|
|
8
|
+
import { projectCheckSet } from "./check-levels.js";
|
|
9
|
+
import { projectName } from "./project.js";
|
|
16
10
|
export const CHECKLIST_KEYS = ["plan", "build", "checks", "requirements", "pull-request", "pr-ci", "up-to-date", "conflicts", "comments", "release"];
|
|
17
11
|
export const CHECKLIST_LABELS = {
|
|
18
12
|
plan: "Plan approved",
|
|
@@ -26,19 +20,17 @@ export const CHECKLIST_LABELS = {
|
|
|
26
20
|
comments: "Review comments answered",
|
|
27
21
|
release: "Release check passed",
|
|
28
22
|
};
|
|
29
|
-
/** The one sentence for a row Toolroll keeps no record of. */
|
|
30
23
|
export const NOT_RECORDED = "Toolroll doesn't record this. The pull request on GitHub shows it.";
|
|
31
|
-
|
|
24
|
+
export const NOT_RECORDED_LOCAL = "Toolroll doesn't record this. Your repository shows it.";
|
|
32
25
|
export const CHECKLIST_ACT_LABELS = { "run-checks": "Run checks", retry: "Retry", fix: "Ask the agent to fix" };
|
|
33
26
|
const short = (sha) => sha == null ? "this commit" : sha.slice(0, 7);
|
|
34
|
-
|
|
27
|
+
export const noCheckSetWords = (repo) => `No check is set for ${projectName(repo)}. Set one in Settings → Projects → ${projectName(repo)} → Checks.`;
|
|
35
28
|
export function mergeChecklistOf(store, taskId, now, access, root) {
|
|
36
29
|
const assignment = assignmentOf(store, taskId, now, access, root);
|
|
37
30
|
if (assignment === null)
|
|
38
31
|
return null;
|
|
39
32
|
return checklistFromAssignment(store, taskId, assignment);
|
|
40
33
|
}
|
|
41
|
-
/** The checklist from an assignment snapshot already read (the task page reads one). */
|
|
42
34
|
export function checklistFromAssignment(store, taskId, assignment) {
|
|
43
35
|
const active = assignment.activeTaskId;
|
|
44
36
|
const scope = store.getScope(active);
|
|
@@ -48,14 +40,12 @@ export function checklistFromAssignment(store, taskId, assignment) {
|
|
|
48
40
|
const head = receipt?.head ?? null;
|
|
49
41
|
const rows = [];
|
|
50
42
|
const row = (key, mark, say, act = null) => rows.push({ key, label: CHECKLIST_LABELS[key], mark, say, act });
|
|
51
|
-
// Plan approved: the approval as dispatch reads it.
|
|
52
43
|
if (scope === null)
|
|
53
44
|
row("plan", "no", "There's no plan yet.");
|
|
54
45
|
else if (approvalOf(scope).approved)
|
|
55
46
|
row("plan", "yes", scope.approvedBy == null ? "Approved." : `Approved by ${scope.approvedBy}.`);
|
|
56
47
|
else
|
|
57
48
|
row("plan", "no", "The plan waits for your approval.");
|
|
58
|
-
// Build finished: a result is recorded; a failed task retries.
|
|
59
49
|
if (task?.state === "failed")
|
|
60
50
|
row("build", "no", "The last build failed.", { kind: "retry", taskId: active });
|
|
61
51
|
else if (receipt !== null)
|
|
@@ -64,7 +54,6 @@ export function checklistFromAssignment(store, taskId, assignment) {
|
|
|
64
54
|
row("build", "waiting", "Building now.");
|
|
65
55
|
else
|
|
66
56
|
row("build", "waiting", "Nothing is built yet.");
|
|
67
|
-
// Project checks on this commit: the approved check as the Checks row reads it.
|
|
68
57
|
const check = receipt === null ? null : approvedCheckStateOf(receipt.checks);
|
|
69
58
|
if (receipt === null || check === null)
|
|
70
59
|
row("checks", "waiting", "Waits for a build.");
|
|
@@ -76,9 +65,11 @@ export function checklistFromAssignment(store, taskId, assignment) {
|
|
|
76
65
|
row("checks", "waiting", "Running now.");
|
|
77
66
|
else if (check === "off")
|
|
78
67
|
row("checks", "waiting", "Checks are off for this project; they run at release.");
|
|
68
|
+
else if (check === "not-run" && assignment.repo !== null && !projectCheckSet(store, assignment.repo)) {
|
|
69
|
+
row("checks", "no", noCheckSetWords(assignment.repo));
|
|
70
|
+
}
|
|
79
71
|
else
|
|
80
72
|
row("checks", "no", check === "unreadable" ? "The check result couldn't be read." : "No check ran on this commit.", { kind: "run-checks", run: receipt.runId });
|
|
81
|
-
// Requirements: the result's own blockers, as Accept reads them.
|
|
82
73
|
const criteria = assignment.readiness?.blockers.filter(one => one.key === "criteria" || one.key === "high") ?? [];
|
|
83
74
|
if (receipt === null)
|
|
84
75
|
row("requirements", "waiting", "Waits for a build.");
|
|
@@ -86,9 +77,14 @@ export function checklistFromAssignment(store, taskId, assignment) {
|
|
|
86
77
|
row("requirements", "no", criteria[0].message, { kind: "fix", run: receipt.runId, note: criteria.map(one => one.message).join("\n") });
|
|
87
78
|
else if (assignment.readiness?.verdict === "refuted")
|
|
88
79
|
row("requirements", "no", "The result doesn't match its plan.", { kind: "fix", run: receipt.runId, note: "The result doesn't match its plan. Fix it so it does." });
|
|
89
|
-
else
|
|
90
|
-
|
|
91
|
-
|
|
80
|
+
else {
|
|
81
|
+
const yours = receipt.proofAcceptance !== null ? 0
|
|
82
|
+
: (receipt.proof?.matrix ?? []).filter(one => requirementWordOf(one, receipt.proof?.verdict ?? null) === "You check").length;
|
|
83
|
+
if (yours > 0)
|
|
84
|
+
row("requirements", "waiting", `You check ${yours} requirement${yours === 1 ? "" : "s"}.`);
|
|
85
|
+
else
|
|
86
|
+
row("requirements", "yes", "Every requirement is met.");
|
|
87
|
+
}
|
|
92
88
|
const view = run === null ? null : pullRequestViewOf(store, run);
|
|
93
89
|
const publishing = publishingOf(store, assignment.repo);
|
|
94
90
|
let merged = false;
|
|
@@ -123,7 +119,6 @@ export function checklistFromAssignment(store, taskId, assignment) {
|
|
|
123
119
|
else if (view.state === "failing") {
|
|
124
120
|
const failing = ship?.checks.filter(one => one.state === "failed").map(one => one.workflow === null ? one.name : `${one.workflow} / ${one.name}`) ?? [];
|
|
125
121
|
const said = `Failed on ${short(publication?.headSha)}${failing.length === 0 ? "" : `: ${failing.slice(0, 3).join(", ")}${failing.length > 3 ? ", …" : ""}`}.`;
|
|
126
|
-
// A revision Toolroll already filed with the failure is the fix under way: no second one from here.
|
|
127
122
|
if (view.revisionTask !== null)
|
|
128
123
|
row("pr-ci", "no", `${said} Revision ${view.revisionTask} was filed with the failure.`);
|
|
129
124
|
else
|
|
@@ -136,15 +131,14 @@ export function checklistFromAssignment(store, taskId, assignment) {
|
|
|
136
131
|
else
|
|
137
132
|
row("pr-ci", view.state === "failed" || view.state === "closed" ? "skip" : "waiting", view.state === "failed" || view.state === "closed" ? "No open pull request." : "No CI has reported yet.");
|
|
138
133
|
}
|
|
139
|
-
|
|
140
|
-
row("up-to-date", merged ? "yes" : "unknown", merged ? "Merged." :
|
|
134
|
+
const notRecorded = publishing.on ? NOT_RECORDED : NOT_RECORDED_LOCAL;
|
|
135
|
+
row("up-to-date", merged ? "yes" : "unknown", merged ? "Merged." : notRecorded);
|
|
141
136
|
if (merged)
|
|
142
137
|
row("conflicts", "yes", "Merged.");
|
|
143
138
|
else if (receipt?.checks.batch?.state === "conflict")
|
|
144
139
|
row("conflicts", "no", "It conflicted with another result in its batch check.", { kind: "fix", run: receipt.runId, note: "It conflicts with another change. Rebase it on main and resolve the conflict." });
|
|
145
140
|
else
|
|
146
|
-
row("conflicts", "unknown",
|
|
147
|
-
// Review comments: the saved notes and pull request review comments not yet sent back.
|
|
141
|
+
row("conflicts", "unknown", notRecorded);
|
|
148
142
|
const notes = run === null ? [] : store.liveDiffComments(run).filter(one => isRevisionFeedback(one));
|
|
149
143
|
if (run === null)
|
|
150
144
|
row("comments", "waiting", "Waits for a build.");
|
|
@@ -152,7 +146,6 @@ export function checklistFromAssignment(store, taskId, assignment) {
|
|
|
152
146
|
row("comments", "yes", "None open.");
|
|
153
147
|
else
|
|
154
148
|
row("comments", "no", `${notes.length} note${notes.length === 1 ? "" : "s"} not sent back yet.`, { kind: "fix", run, note: "" });
|
|
155
|
-
// A release: its own check, as the release card reads it.
|
|
156
149
|
if (scope !== null && deployGateScope(scope)) {
|
|
157
150
|
if (releaseCiHoldOf(store, active) !== null || releaseCiRunningOf(store, active) !== null)
|
|
158
151
|
row("release", "waiting", "GitHub's checks are still running.");
|
|
@@ -171,12 +164,11 @@ export function checklistFromAssignment(store, taskId, assignment) {
|
|
|
171
164
|
const sentence = answer === "merged" ? "Already merged."
|
|
172
165
|
: answer === "no" ? `Not yet: ${first.label.toLowerCase()} — ${first.say}`
|
|
173
166
|
: answer === "not-yet" ? `Not yet: ${rows.find(one => one.mark === "waiting").label.toLowerCase()} — ${rows.find(one => one.mark === "waiting").say}`
|
|
174
|
-
: `Yes, as far as Toolroll records.${unknown.length === 0 ? "" : ` Check ${unknown.join(" and ")} on GitHub.`}`;
|
|
167
|
+
: `Yes, as far as Toolroll records.${unknown.length === 0 ? "" : ` Check ${unknown.join(" and ")} ${publishing.on ? "on GitHub" : "in your repository"}.`}`;
|
|
175
168
|
return { taskId, activeTaskId: active, run, head, answer, sentence, rows };
|
|
176
169
|
}
|
|
177
|
-
/** The checklist as plain lines (the CLI, the lead, the TUI): the answer, then one line per row that applies. */
|
|
178
170
|
export function checklistLines(list) {
|
|
179
171
|
const MARK = { yes: "✓", no: "✗", waiting: "…", unknown: "?", skip: "–" };
|
|
180
172
|
return [`Can I merge ${list.activeTaskId}? ${list.sentence}`,
|
|
181
|
-
...list.rows.filter(one => one.mark !== "skip").map(one => ` ${MARK[one.mark]} ${one.label}: ${one.say}${one.act === null ? "" : `
|
|
173
|
+
...list.rows.filter(one => one.mark !== "skip").map(one => ` ${MARK[one.mark]} ${one.label}: ${one.say}${one.act === null ? "" : ` Next: ${CHECKLIST_ACT_LABELS[one.act.kind]}, on the task's page.`}`)];
|
|
182
174
|
}
|
package/dist/metrics.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `/metrics` (v104): Toolroll in the Prometheus text format, for the
|
|
3
|
-
* dashboards and alerts a company already runs. Labels are small, fixed
|
|
4
|
-
* sets (state, role, outcome, provider, project, destination), never a task
|
|
5
|
-
* id, a person or a path, so a scrape stays cheap and says nothing private.
|
|
6
|
-
*/
|
|
7
1
|
import { createHash } from "node:crypto";
|
|
8
2
|
import { basename } from "node:path";
|
|
9
3
|
import { LATENCY_BUCKETS, QUEUE_BUCKETS, STREAM_FAMILIES } from "./server-telemetry.js";
|
|
@@ -12,7 +6,6 @@ const line = (name, sample) => {
|
|
|
12
6
|
const labels = Object.entries(sample.labels ?? {});
|
|
13
7
|
return `${name}${labels.length === 0 ? "" : `{${labels.map(([key, value]) => `${key}="${label(value)}"`).join(",")}}`} ${Number.isFinite(sample.value) ? sample.value : 0}`;
|
|
14
8
|
};
|
|
15
|
-
/** `repos`: the projects this console serves (null: all); task, run and worker figures count only theirs. */
|
|
16
9
|
export function prometheusMetrics(store, now, repos = null, destinations) {
|
|
17
10
|
const db = store.handle;
|
|
18
11
|
const inProjects = (column) => repos === null ? "1 = 1" : repos.length === 0 ? "1 = 0" : `${column} IN (${repos.map(() => "?").join(",")})`;
|
|
@@ -20,7 +13,6 @@ export function prometheusMetrics(store, now, repos = null, destinations) {
|
|
|
20
13
|
const rows = (sql, ...args) => db.prepare(sql).all(...args);
|
|
21
14
|
const metrics = [];
|
|
22
15
|
const add = (name, help, type, samples) => metrics.push({ name, help, type, samples });
|
|
23
|
-
// A project's label is its folder name, told apart by a short digest when two share one.
|
|
24
16
|
const names = new Map();
|
|
25
17
|
for (const repo of rows(`SELECT DISTINCT repo FROM watch_lease WHERE ${inProjects("repo")}`, ...scoped).map(row => String(row["repo"])))
|
|
26
18
|
names.set(basename(repo), (names.get(basename(repo)) ?? 0) + 1);
|
|
@@ -46,7 +38,6 @@ export function prometheusMetrics(store, now, repos = null, destinations) {
|
|
|
46
38
|
add("toolroll_ledger_chain_ok", "1 when the action ledger's chain verifies, 0 when it's broken.", "gauge", [{ value: chain.ok ? 1 : 0 }]);
|
|
47
39
|
add("toolroll_ledger_checked_timestamp_seconds", "When the whole chain was last walked.", "gauge", chain.checkedAt === null ? [] : [{ value: Math.floor(Date.parse(chain.checkedAt) / 1000) }]);
|
|
48
40
|
const head = store.ledgerHeadId();
|
|
49
|
-
// Only destinations set up now, each for its current address (`destinations`: sink → target; all when not given).
|
|
50
41
|
const status = store.monitoringStatus().filter(one => destinations === undefined || destinations.get(one.sink) === one.target);
|
|
51
42
|
add("toolroll_monitoring_lag_entries", "Ledger entries a monitoring destination hasn't been sent yet.", "gauge", status.map(one => ({ labels: { destination: one.sink }, value: Math.max(0, head - one.through) })));
|
|
52
43
|
add("toolroll_monitoring_failures", "Failed deliveries in a row, by destination.", "gauge", status.map(one => ({ labels: { destination: one.sink }, value: one.failures })));
|
|
@@ -55,7 +46,6 @@ export function prometheusMetrics(store, now, repos = null, destinations) {
|
|
|
55
46
|
add("toolroll_checkouts", "Build checkouts on disk, by state.", "gauge", rows(`SELECT CASE WHEN runner IS NOT NULL AND released_at IS NULL THEN 'leased' ELSE 'released' END AS state, COUNT(*) AS n FROM worktree WHERE ${inProjects("repo")} GROUP BY 1`, ...scoped).map(row => ({ labels: { state: String(row["state"]) }, value: Number(row["n"]) })));
|
|
56
47
|
return `${metrics.map(metric => [`# HELP ${metric.name} ${metric.help}`, `# TYPE ${metric.name} ${metric.type}`, ...metric.samples.map(sample => line(metric.name, sample))].join("\n")).join("\n")}\n${performanceMetrics(store.telemetry)}`;
|
|
57
48
|
}
|
|
58
|
-
/** Performance labels are fixed vocabularies only, independent of the store's project labels. */
|
|
59
49
|
export function performanceMetrics(telemetry) {
|
|
60
50
|
const out = [];
|
|
61
51
|
const header = (name, help, type) => out.push(`# HELP ${name} ${help}`, `# TYPE ${name} ${type}`);
|
package/dist/mobile-viewport.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/** Presentation only: no fields are read, no requests are sent, and no
|
|
2
|
-
* keyboard events are captured. A focused input alone is NOT a keyboard.
|
|
3
|
-
*
|
|
4
|
-
* It publishes the visible area (--viewport-height, --viewport-top): a phone's
|
|
5
|
-
* keyboard shrinks only the visual viewport on iOS (100dvh never moves), so a
|
|
6
|
-
* full-height app shell sized to it is what keeps the composer above the keys. */
|
|
7
1
|
export const MOBILE_VIEWPORT_SCRIPT = String.raw `
|
|
8
2
|
(function(){
|
|
9
3
|
var root=document.documentElement,viewport=window.visualViewport;
|
package/dist/model-catalog.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The live model and tool catalog. OpenRouter's public list (no key, nothing
|
|
3
|
-
* about the person sent) names what Anthropic, OpenAI and Google currently
|
|
4
|
-
* ship and what each costs; the Codex CLI's own cache names what this
|
|
5
|
-
* account may run; `--version` and the npm registry say whether the
|
|
6
|
-
* installed CLIs are current. Everything lands in orders.db so pickers,
|
|
7
|
-
* spend pins and "new model" notices read one saved snapshot.
|
|
8
|
-
*/
|
|
9
1
|
import { isAcpProvider } from "./acp-agents.js";
|
|
10
2
|
import { execFile } from "node:child_process";
|
|
11
3
|
import { accessSync, constants, lstatSync, readFileSync, realpathSync } from "node:fs";
|
|
@@ -54,11 +46,9 @@ export const RUNTIME_TOOLS = {
|
|
|
54
46
|
gemini: { name: "Gemini CLI", command: "gemini", pkg: "@google/gemini-cli" },
|
|
55
47
|
};
|
|
56
48
|
export const WATCH_EVERY_MS = 6 * 3_600_000;
|
|
57
|
-
/** A model counts as new for two weeks after its release. */
|
|
58
49
|
const NEW_FOR_MS = 14 * 86_400_000;
|
|
59
50
|
const FAMILIES = ["opus", "sonnet", "haiku", "fable"];
|
|
60
51
|
const ALIAS_WORDS = { opus: "complex tasks", sonnet: "everyday coding", haiku: "smaller tasks" };
|
|
61
|
-
/** The current Claude models by exact id, offered even before the first catalog check has run. */
|
|
62
52
|
export const CLAUDE_EXACT = Object.freeze([
|
|
63
53
|
{ value: "claude-opus-5-5", label: "Claude Opus 5.5" },
|
|
64
54
|
{ value: "claude-sonnet-5-5", label: "Claude Sonnet 5.5" },
|
|
@@ -66,7 +56,6 @@ export const CLAUDE_EXACT = Object.freeze([
|
|
|
66
56
|
]);
|
|
67
57
|
const title = (word) => word.charAt(0).toUpperCase() + word.slice(1);
|
|
68
58
|
const stripVendor = (name) => name.replace(/^(Anthropic|OpenAI|Google): /, "");
|
|
69
|
-
/** `anthropic/claude-opus-5.5` → `claude-opus-5-5`, the name the Claude CLI and API use. */
|
|
70
59
|
export function claudeIdOf(openrouterId) {
|
|
71
60
|
const hit = /^anthropic\/(claude-(?:opus|sonnet|haiku|fable)-[0-9][0-9.]*)$/.exec(openrouterId);
|
|
72
61
|
return hit === null ? null : hit[1].replaceAll(".", "-");
|
|
@@ -75,7 +64,6 @@ function geminiIdOf(openrouterId) {
|
|
|
75
64
|
const hit = /^google\/(gemini-[0-9][0-9a-z.-]*)$/.exec(openrouterId);
|
|
76
65
|
return hit === null || /image|tts|audio|embed/.test(hit[1]) ? null : hit[1];
|
|
77
66
|
}
|
|
78
|
-
/** The Codex CLI's own list — account-specific, maintained by the CLI. */
|
|
79
67
|
export function codexCatalog(home = homedir()) {
|
|
80
68
|
try {
|
|
81
69
|
const path = join(home, ".codex", "models_cache.json");
|
|
@@ -91,7 +79,6 @@ export function codexCatalog(home = homedir()) {
|
|
|
91
79
|
return [];
|
|
92
80
|
}
|
|
93
81
|
}
|
|
94
|
-
/** Pure: the catalog rows each source should hold after a fetch. */
|
|
95
82
|
export function catalogRows(openrouter, codex) {
|
|
96
83
|
const released = (model) => model.created === null ? null : new Date(model.created * 1000).toISOString();
|
|
97
84
|
const base = (model) => ({ inputUsd: model.input, outputUsd: model.output, context: model.context, tools: model.tools, releasedAt: released(model) });
|
|
@@ -121,8 +108,6 @@ const readRow = (row) => ({
|
|
|
121
108
|
context: row["context"] == null ? null : Number(row["context"]), tools: Number(row["tools"]) === 1,
|
|
122
109
|
releasedAt: row["released_at"] == null ? null : String(row["released_at"]), firstSeenAt: String(row["first_seen_at"]),
|
|
123
110
|
});
|
|
124
|
-
/** Upsert a fetch. Returns models first seen now, except on a source's first
|
|
125
|
-
* fetch (the baseline would otherwise announce every model at once). */
|
|
126
111
|
export function recordCatalog(store, rows, now) {
|
|
127
112
|
const stamp = now.toISOString();
|
|
128
113
|
return store.transact(() => {
|
|
@@ -139,8 +124,6 @@ export function recordCatalog(store, rows, now) {
|
|
|
139
124
|
if (fresh && had.has(row.source))
|
|
140
125
|
added.push({ ...row, firstSeenAt: stamp });
|
|
141
126
|
}
|
|
142
|
-
// A model the source no longer lists stops being offered; its row stays
|
|
143
|
-
// so a saved choice can still be named.
|
|
144
127
|
return added;
|
|
145
128
|
});
|
|
146
129
|
}
|
|
@@ -155,7 +138,6 @@ export function seenModel(store, source, id) {
|
|
|
155
138
|
export function isNewModel(model, now) {
|
|
156
139
|
return model.releasedAt !== null && now.getTime() - Date.parse(model.releasedAt) < NEW_FOR_MS;
|
|
157
140
|
}
|
|
158
|
-
/** What the Claude CLI's short name currently runs: the newest of its family. */
|
|
159
141
|
export function aliasTarget(store, alias) {
|
|
160
142
|
if (!FAMILIES.includes(alias))
|
|
161
143
|
return null;
|
|
@@ -171,7 +153,6 @@ export function dollars(amount) {
|
|
|
171
153
|
export function priceWords(model) {
|
|
172
154
|
return model.inputUsd === null && model.outputUsd === null ? "price not listed" : `${dollars(model.inputUsd)} / ${dollars(model.outputUsd)} per 1M tokens`;
|
|
173
155
|
}
|
|
174
|
-
/** The friendly name for a saved provider + model, e.g. "opus" → "Claude Opus 5.5". */
|
|
175
156
|
export function modelWords(store, provider, model) {
|
|
176
157
|
if (model === null || model === "" || model === "default")
|
|
177
158
|
return "its default model";
|
|
@@ -184,16 +165,13 @@ export function modelWords(store, provider, model) {
|
|
|
184
165
|
const source = provider === "codex" || provider === "codex-subscription" ? "codex" : provider === "gemini" ? "gemini" : provider === "openrouter" || provider === "openrouter-api" ? "openrouter" : null;
|
|
185
166
|
return source === null ? model : seenModel(store, source, model)?.name ?? model;
|
|
186
167
|
}
|
|
187
|
-
/** Every model a provider can run, newest first, with prices. */
|
|
188
168
|
export function modelOptions(store, provider, now, home = homedir()) {
|
|
189
169
|
const option = (model) => ({ value: model.id, label: `${model.name} · ${priceWords(model)}${isNewModel(model, now) ? " · New" : ""}`, isNew: isNewModel(model, now) });
|
|
190
170
|
if (provider === "claude") {
|
|
191
|
-
// Exact ids first (Settings → Models presets write only these); the short names float to the newest version.
|
|
192
171
|
const seen = seenModels(store, "claude").slice(0, 20);
|
|
193
172
|
const builtIn = CLAUDE_EXACT.filter(one => !seen.some(model => model.id === one.value)).map(one => ({ ...one, isNew: false }));
|
|
194
173
|
const aliases = ["sonnet", "opus", "haiku"].map(alias => {
|
|
195
174
|
const target = aliasTarget(store, alias);
|
|
196
|
-
// Short enough that a phone's select still shows which model it means.
|
|
197
175
|
return { value: alias, label: target === null ? `${title(alias)} (floating) — ${ALIAS_WORDS[alias]}` : `${title(alias)} (floating) · now ${target.name.replace(/^Claude /, "")}`, isNew: false };
|
|
198
176
|
});
|
|
199
177
|
return [...seen.map(option), ...builtIn, ...aliases];
|
|
@@ -207,22 +185,17 @@ export function modelOptions(store, provider, now, home = homedir()) {
|
|
|
207
185
|
}
|
|
208
186
|
if (provider === "gemini")
|
|
209
187
|
return seenModels(store, "gemini").slice(0, 20).map(option);
|
|
210
|
-
// An ACP agent offers only the models its check recorded, on the runner that checked it — read there, never guessed.
|
|
211
188
|
if (isAcpProvider(provider))
|
|
212
189
|
return [];
|
|
213
190
|
return seenModels(store, "openrouter").filter(model => model.tools).sort((a, b) => a.name.localeCompare(b.name)).map(option);
|
|
214
191
|
}
|
|
215
|
-
/** Chat reserves worst-case spend: price per token in whole micro-dollars,
|
|
216
|
-
* rounded UP from the live list price. null = no live price. */
|
|
217
192
|
export function livePin(store, chatProvider, model) {
|
|
218
193
|
const seen = chatProvider === "anthropic-api" ? seenModel(store, "claude", model) : chatProvider === "openrouter-api" ? seenModel(store, "openrouter", model) : null;
|
|
219
194
|
if (seen === null || seen.inputUsd === null || seen.outputUsd === null)
|
|
220
195
|
return null;
|
|
221
|
-
// USD per million tokens is micro-dollars per token.
|
|
222
196
|
const pin = (usd) => usd === 0 ? 0 : Math.ceil(usd - 1e-9);
|
|
223
197
|
return { inMicrousd: pin(seen.inputUsd), outMicrousd: pin(seen.outputUsd) };
|
|
224
198
|
}
|
|
225
|
-
// ---------------------------------------------------------------- runtimes
|
|
226
199
|
export function compareVersions(a, b) {
|
|
227
200
|
const parts = (v) => v.split(/[.-]/).slice(0, 3).map(part => Number.parseInt(part, 10) || 0);
|
|
228
201
|
const [x, y] = [parts(a), parts(b)];
|
|
@@ -247,11 +220,10 @@ function onPath(command, path) {
|
|
|
247
220
|
accessSync(candidate, constants.X_OK);
|
|
248
221
|
return realpathSync(candidate);
|
|
249
222
|
}
|
|
250
|
-
catch {
|
|
223
|
+
catch { }
|
|
251
224
|
}
|
|
252
225
|
return null;
|
|
253
226
|
}
|
|
254
|
-
/** How this copy was installed decides the one safe update command. */
|
|
255
227
|
export function updateCommandFor(tool, resolved) {
|
|
256
228
|
const pkg = RUNTIME_TOOLS[tool].pkg;
|
|
257
229
|
if (tool === "claude" && /\/\.local\/share\/claude\/versions\//.test(resolved))
|
|
@@ -319,7 +291,6 @@ export async function checkRuntimes(store, now, seams = {}) {
|
|
|
319
291
|
}
|
|
320
292
|
return runtimeStates(store);
|
|
321
293
|
}
|
|
322
|
-
/** Update one CLI, only while nothing is running, then read its version again. */
|
|
323
294
|
export async function updateRuntime(store, tool, by, now, seams = {}) {
|
|
324
295
|
const state = runtimeStates(store).find(one => one.tool === tool);
|
|
325
296
|
if (state === undefined)
|
|
@@ -352,8 +323,6 @@ export function setWatch(store, enabled, by, now) {
|
|
|
352
323
|
store.handle.prepare(`INSERT INTO model_watch (id, enabled, changed_by, changed_at) VALUES (1, ?, ?, ?)
|
|
353
324
|
ON CONFLICT(id) DO UPDATE SET enabled = excluded.enabled, changed_by = excluded.changed_by, changed_at = excluded.changed_at`).run(enabled ? 1 : 0, by, now.toISOString());
|
|
354
325
|
}
|
|
355
|
-
/** One full check: the catalog, the CLIs, and a notice for each new model or
|
|
356
|
-
* newly available update. Idempotent per model and per released version. */
|
|
357
326
|
export async function checkModels(store, now, seams = {}) {
|
|
358
327
|
const fetched = await fetchOpenRouterModels(null, seams.fetcher ?? fetch);
|
|
359
328
|
let added = [];
|
|
@@ -379,7 +348,6 @@ export async function checkModels(store, now, seams = {}) {
|
|
|
379
348
|
}
|
|
380
349
|
return { ok: fetched.ok, added, runtimes, problem };
|
|
381
350
|
}
|
|
382
|
-
/** The background pass: runs only when the person turned checks on. */
|
|
383
351
|
export async function modelWatchPass(store, now, seams = {}) {
|
|
384
352
|
const state = watchState(store);
|
|
385
353
|
if (!state.enabled)
|