toolroll 0.9.103 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +27 -27
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +117 -103
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +3 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +2 -16
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +168 -0
- package/dist/local-owner.js +15 -80
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +2 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +280 -2304
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +3 -18
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +11 -30
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +6 -74
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +26 -103
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +9 -28
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +88 -566
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +29 -564
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +9 -86
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +17 -497
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +8 -133
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +12 -227
- package/dist/server/tasks.js +37 -531
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +8 -73
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +66 -19
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +91 -40
- package/dist/tui.js +54 -54
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +5 -4
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -318
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1972
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -539
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -41
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner.d.ts +0 -124
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -52
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -156
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -35
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1067
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -80
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -59
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -754
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -774
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -342
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -83
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -30
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -144
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/fast-start.js
CHANGED
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The fast path: file and approve in one step (docs/plans/plain-toolroll.md P2.4).
|
|
3
|
-
*
|
|
4
|
-
* For an eligible small task a person starts themselves, the New task form shows the exact terms a plan approval would
|
|
5
|
-
* seal, and pressing Build is that person's approval of exactly those terms: approve()'s own checks on the digest they
|
|
6
|
-
* saw, with the same proofs, inside the filing's transaction. Nothing is narrowed or widened. The seal is the ordinary
|
|
7
|
-
* person basis; the marker (the proof row's `fastStart`, `task_ref.fast_start_at`) only adds restrictions:
|
|
8
|
-
*
|
|
9
|
-
* - **the start window**: the first build starts within 30 minutes, or the seal is cleared in a logged transaction and
|
|
10
|
-
* the task shows the ordinary Approve plan (approval-authority.ts fastStartStandsSql, expireFastStarts);
|
|
11
|
-
* - **the Accept backstop**: a machine can't complete it, the project's grant doesn't push it until a person accepted it,
|
|
12
|
-
* and completion, publication and merge all read one verified measure of the whole change (verifiedChange).
|
|
13
|
-
*
|
|
14
|
-
* Only a person's own surfaces reach here (the browser, the terminal UI as the local owner, interactive `task new`, and
|
|
15
|
-
* a person's own tap or typed yes on a chat's Start card: docs/plans/one-step-chat.md). Every machine is refused in the
|
|
16
|
-
* writer from trusted context. `task add` never comes this way.
|
|
17
|
-
*
|
|
18
|
-
* A chat start (`via: "chat"`) runs the same rules (fastStartRules). Its words are the lead's, so it is filed as the
|
|
19
|
-
* lead's text (`proposedVia: "mate"`, quarantined), and only its person-proof step differs: chat has no password, so
|
|
20
|
-
* instead of the password field it passes only within the person's own chat approval limits (chatLimitProblem), and
|
|
21
|
-
* quarantined text is approvable in chat only on a card that showed every term whole (store.ts sealScopeApproval).
|
|
22
|
-
*/
|
|
23
1
|
import { randomBytes } from "node:crypto";
|
|
24
2
|
import { approvalPasswordField } from "./approval-password.js";
|
|
25
3
|
import { chatLimitProblem } from "./chat-terms.js";
|
|
@@ -36,12 +14,10 @@ import { classifyTask, filingSizer, heuristicSizing } from "./task-sizing.js";
|
|
|
36
14
|
import { issueImported } from "./task-source.js";
|
|
37
15
|
import { titleWithin } from "./task-text.js";
|
|
38
16
|
import { viewedGitSync } from "./teardown-git.js";
|
|
39
|
-
/** The constants, in one place, versioned together in every marker. */
|
|
40
17
|
export const FAST_START_RULE = "small-v1";
|
|
41
18
|
export const FAST_WINDOW_MS = 30 * 60_000;
|
|
42
19
|
export const FAST_MAX_FILES = 3;
|
|
43
20
|
export const FAST_MAX_LINES = 150;
|
|
44
|
-
/** How long a rendered form may still be pressed. */
|
|
45
21
|
export const FAST_PREVIEW_MS = 15 * 60_000;
|
|
46
22
|
const FAST_WORDS = {
|
|
47
23
|
setting: "Small tasks don't start right away in this project.",
|
|
@@ -63,9 +39,6 @@ const FAST_WORDS = {
|
|
|
63
39
|
limit: "This is more than your chat approval setting allows.",
|
|
64
40
|
};
|
|
65
41
|
export const fastRefusalWords = (reason) => FAST_WORDS[reason];
|
|
66
|
-
// ---- the project setting ---------------------------------------------------------------------------------------------
|
|
67
|
-
/** Small tasks start right away: a project's own choice, else on for single-approver installs and off once there's more
|
|
68
|
-
* than one approver. */
|
|
69
42
|
export function fastStartOn(store, repo) {
|
|
70
43
|
const saved = store.handle.prepare("SELECT fast_start FROM project WHERE path = ?").get(repo)?.["fast_start"];
|
|
71
44
|
if (saved === 0 || saved === 1)
|
|
@@ -73,7 +46,6 @@ export function fastStartOn(store, repo) {
|
|
|
73
46
|
const approvers = Number(store.handle.prepare("SELECT COUNT(*) AS n FROM approver WHERE revoked_at IS NULL AND role = 'approver'").get()?.["n"] ?? 0);
|
|
74
47
|
return approvers === 1;
|
|
75
48
|
}
|
|
76
|
-
/** A person's logged settings act. */
|
|
77
49
|
export function setFastStart(store, repo, on, by, now) {
|
|
78
50
|
return store.transact(() => {
|
|
79
51
|
const written = store.handle.prepare("UPDATE project SET fast_start = ? WHERE path = ?").run(on ? 1 : 0, repo);
|
|
@@ -83,17 +55,12 @@ export function setFastStart(store, repo, on, by, now) {
|
|
|
83
55
|
return true;
|
|
84
56
|
});
|
|
85
57
|
}
|
|
86
|
-
// ---- eligibility: one function, read by the form and again inside the transaction ------------------------------------
|
|
87
|
-
/** Filed this way, the plan's words are the person's words, and they inspect the result. */
|
|
88
58
|
export const fastAcceptance = (title) => [{ id: "c1", statement: title, how: null, evidence: ["manual-review"] }];
|
|
89
|
-
/** Every person surface's eligibility: the rules, then a machine is refused. */
|
|
90
59
|
export function fastStartEligible(store, input, now) {
|
|
91
60
|
if (machineActing())
|
|
92
61
|
return { ok: false, reason: "machine" };
|
|
93
62
|
return fastStartRules(store, { ...input, proof: "proof" in input ? input.proof : { password: input.password } }, now);
|
|
94
63
|
}
|
|
95
|
-
/** The rules alone, the same for every surface: only the person-proof step has two forms (FastProof). A preview reads
|
|
96
|
-
* these as any caller; Build reads them again behind the machine check (fastStartEligible). */
|
|
97
64
|
export function fastStartRules(store, input, now) {
|
|
98
65
|
const no = (reason) => ({ ok: false, reason });
|
|
99
66
|
if (!fastStartOn(store, input.repo))
|
|
@@ -101,7 +68,6 @@ export function fastStartRules(store, input, now) {
|
|
|
101
68
|
const account = store.accountOf(input.actor);
|
|
102
69
|
if (account === null || account.revokedAt !== null || account.role !== "approver" || !store.accountCanAccess(input.actor, input.repo))
|
|
103
70
|
return no("rules");
|
|
104
|
-
// The description decides "small"; the classifier can only confirm it, and silence is no.
|
|
105
71
|
if (heuristicSizing({ title: input.title, goal: input.title }).size !== "small")
|
|
106
72
|
return no("size");
|
|
107
73
|
if (input.sizing.source !== "classifier")
|
|
@@ -136,7 +102,6 @@ export function fastStartRules(store, input, now) {
|
|
|
136
102
|
return no("release");
|
|
137
103
|
if (legOf(route, "build").selection?.kind === "trial")
|
|
138
104
|
return no("trial");
|
|
139
|
-
// Anything approving would take a typed password for: escalated terms, wider check access, sandbox widenings.
|
|
140
105
|
const profile = scope.profile;
|
|
141
106
|
if (levelOfProfile(scope.profile) === "escalated" || profile["checkAccess"] !== undefined || profile["machLookup"] !== undefined)
|
|
142
107
|
return no("password");
|
|
@@ -154,8 +119,6 @@ export function fastStartRules(store, input, now) {
|
|
|
154
119
|
return no("policy");
|
|
155
120
|
return { ok: true, scope };
|
|
156
121
|
}
|
|
157
|
-
/** File the task, inside the caller's transaction, exactly as Build will. A chat start's words are the lead's: its text
|
|
158
|
-
* stays quarantined (`proposedVia: "mate"`), as every lead-written scope is. */
|
|
159
122
|
function fileIt(store, id, input, now) {
|
|
160
123
|
const filed = fileTaskProposal(store, {
|
|
161
124
|
id, title: titleWithin(input.title), repo: input.repo, goal: input.title, acceptance: fastAcceptance(input.title), planning: "skip", sizing: input.sizing,
|
|
@@ -172,8 +135,6 @@ class RolledBack extends Error {
|
|
|
172
135
|
this.answer = answer;
|
|
173
136
|
}
|
|
174
137
|
}
|
|
175
|
-
/** Run `body` in a savepoint that never commits: a preview writes nothing, at any nesting depth (a nested transact runs
|
|
176
|
-
* in place, so only the savepoint undoes the writes when a caller already holds a transaction). */
|
|
177
138
|
function dryRun(store, body) {
|
|
178
139
|
try {
|
|
179
140
|
store.transact(() => store.savepoint(() => { throw new RolledBack(body()); }));
|
|
@@ -185,22 +146,15 @@ function dryRun(store, body) {
|
|
|
185
146
|
}
|
|
186
147
|
throw new Error("unreachable");
|
|
187
148
|
}
|
|
188
|
-
/**
|
|
189
|
-
* What the form renders: the classifier asked (at most its budget), then the same proposal the plan step would seal, in a
|
|
190
|
-
* transaction that's rolled back. The filing's words and the classifier's answer are kept (fast_preview), so Build
|
|
191
|
-
* files exactly this, whatever is posted.
|
|
192
|
-
*/
|
|
193
149
|
export async function prepareFastStart(store, input, now) {
|
|
194
150
|
if (machineActing())
|
|
195
151
|
return { eligible: false, reason: "machine" };
|
|
196
|
-
// A chat start is prepared in the lead's turn (prepareChatStart), bound to it.
|
|
197
152
|
if (input.via === "chat")
|
|
198
153
|
return { eligible: false, reason: "rules" };
|
|
199
154
|
if (!fastStartOn(store, input.repo))
|
|
200
155
|
return { eligible: false, reason: "setting" };
|
|
201
156
|
if (heuristicSizing({ title: input.title, goal: input.title }).size !== "small")
|
|
202
157
|
return { eligible: false, reason: "size" };
|
|
203
|
-
// A mode that auto-approves filings comes first: its own road, its own seal.
|
|
204
158
|
const mode = store.activeMode(input.repo, now);
|
|
205
159
|
if (mode !== null && /"autoApproveFiling":true/.test(mode.termsJson))
|
|
206
160
|
return { eligible: false, reason: "mode" };
|
|
@@ -220,15 +174,10 @@ export async function prepareFastStart(store, input, now) {
|
|
|
220
174
|
.run(preview, input.actor, input.via, taskId, input.repo, input.title, input.permissionMode ?? null, JSON.stringify(sizing), read.scope.digest, now.toISOString(), new Date(now.getTime() + FAST_PREVIEW_MS).toISOString());
|
|
221
175
|
return { eligible: true, preview, digest: read.scope.digest, scope: read.scope, taskId };
|
|
222
176
|
}
|
|
223
|
-
/**
|
|
224
|
-
* Build: file and approve in one transaction. Every check is made here, on the rows written here; anything refused
|
|
225
|
-
* rolls the filing back, so a refusal leaves nothing behind.
|
|
226
|
-
*/
|
|
227
177
|
export function fastStartBuild(store, input, now) {
|
|
228
178
|
if (machineActing())
|
|
229
179
|
return { ok: false, reason: "machine", message: FAST_WORDS.machine };
|
|
230
180
|
const proof = "proof" in input ? input.proof : { password: input.password };
|
|
231
|
-
// The chat form of the proof is a chat start's alone; the form's surfaces keep the password rule.
|
|
232
181
|
if ("chat" in proof && input.via !== "chat")
|
|
233
182
|
return { ok: false, reason: "rules", message: FAST_WORDS.rules };
|
|
234
183
|
class Refused extends Error {
|
|
@@ -240,13 +189,10 @@ export function fastStartBuild(store, input, now) {
|
|
|
240
189
|
}
|
|
241
190
|
const refuse = (answer) => { throw new Refused(answer); };
|
|
242
191
|
try {
|
|
243
|
-
// A savepoint inside the transaction: a refusal undoes the filing even when the caller already holds a transaction
|
|
244
|
-
// (a nested transact runs in place, and this function catches its own refusal).
|
|
245
192
|
return store.transact(() => store.savepoint(() => {
|
|
246
193
|
const row = store.handle.prepare("SELECT * FROM fast_preview WHERE id = ? AND consumed_at IS NULL AND expires_at > ?").get(input.preview, now.toISOString());
|
|
247
194
|
if (row === undefined || row["actor"] !== input.actor || row["via"] !== input.via)
|
|
248
195
|
return refuse({ ok: false, reason: "gone", message: "This form has expired. Start again." });
|
|
249
|
-
// A chat preview without a turn, or from another turn than its card's, is nobody's card.
|
|
250
196
|
if (input.via === "chat" && (row["turn"] === null || row["turn"] === undefined || input.turn === undefined || Number(row["turn"]) !== input.turn))
|
|
251
197
|
return refuse({ ok: false, reason: "gone", message: "This card has expired. Ask again." });
|
|
252
198
|
const sizing = JSON.parse(String(row["sizing_json"]));
|
|
@@ -259,11 +205,9 @@ export function fastStartBuild(store, input, now) {
|
|
|
259
205
|
if (!eligible.ok)
|
|
260
206
|
return refuse({ ok: false, reason: eligible.reason, message: FAST_WORDS[eligible.reason] });
|
|
261
207
|
const at = now.toISOString();
|
|
262
|
-
// approve() compares the digest the person saw with the plan just filed: changed terms refuse "changed".
|
|
263
208
|
const approved = input.approveNow(taskId, input.digest, { rule: FAST_START_RULE, at });
|
|
264
209
|
if (!approved.ok && approved.reason === "changed")
|
|
265
210
|
return refuse({ ok: false, reason: "changed", message: "This changed since you read it. Read it again." });
|
|
266
|
-
// Chat has no password: a refusal there says the rule, not "takes your password".
|
|
267
211
|
if (!approved.ok)
|
|
268
212
|
return refuse(input.via === "chat" ? { ok: false, reason: "rules", message: approved.reason === "policy" ? approved.message : FAST_WORDS.rules } : { ok: false, reason: "password", message: FAST_WORDS.password });
|
|
269
213
|
store.handle.prepare("UPDATE fast_preview SET consumed_at = ? WHERE id = ?").run(at, input.preview);
|
|
@@ -278,14 +222,8 @@ export function fastStartBuild(store, input, now) {
|
|
|
278
222
|
throw error;
|
|
279
223
|
}
|
|
280
224
|
}
|
|
281
|
-
// ---- the start window ------------------------------------------------------------------------------------------------
|
|
282
|
-
/**
|
|
283
|
-
* A fast start that didn't start in time: its seal is cleared, in a logged transaction, and the task shows the ordinary
|
|
284
|
-
* Approve plan. A task with a build running or a result to read is left to that.
|
|
285
|
-
*/
|
|
286
225
|
export function expireFastStarts(store, now) {
|
|
287
226
|
const stamp = now.toISOString();
|
|
288
|
-
// Forms nobody pressed hold a person's words: they go once they can't be pressed.
|
|
289
227
|
store.handle.prepare("DELETE FROM fast_preview WHERE expires_at <= ?").run(stamp);
|
|
290
228
|
const late = store.handle.prepare(`SELECT r.id AS ref, r.external_id AS task, r.repo AS repo FROM task_ref r JOIN task t ON t.id = r.external_id
|
|
291
229
|
WHERE r.backend = ? AND r.fast_start_until IS NOT NULL AND r.fast_start_until <= ? AND t.state = 'queued'`).all(BUILT_IN, stamp);
|
|
@@ -305,11 +243,8 @@ export function expireFastStarts(store, now) {
|
|
|
305
243
|
store.bumpWake();
|
|
306
244
|
return cleared;
|
|
307
245
|
}
|
|
308
|
-
// ---- the Accept backstop ---------------------------------------------------------------------------------------------
|
|
309
|
-
/** Files a small change has no business touching, by name, wherever they sit. */
|
|
310
246
|
const HEAVY_FILE = /(?:^|\/)(?:package-lock\.json|npm-shrinkwrap\.json|yarn\.lock|pnpm-lock\.ya?ml|bun\.lockb?|Cargo\.lock|Gemfile\.lock|poetry\.lock|Pipfile\.lock|composer\.lock|go\.sum|uv\.lock|package\.json|Cargo\.toml|Gemfile|go\.mod|pyproject\.toml|requirements[^/]*\.txt|composer\.json|schema\.(?:sql|prisma|rb|graphql)|structure\.sql)$|(?:^|\/)(?:migrations?|migrate|db\/migrate)\//i;
|
|
311
247
|
const SHA = /^[0-9a-f]{40}$/;
|
|
312
|
-
/** `ls-tree -r -z`: path to mode and object, read from the commit, so a gitlink can't hide from a diff setting. */
|
|
313
248
|
function treeOf(repo, commit) {
|
|
314
249
|
const out = new Map();
|
|
315
250
|
const listed = viewedGitSync(repo, ["ls-tree", "-r", "-z", "--full-tree", commit], { timeoutMs: 30_000, maxBuffer: 64 * 1024 * 1024 });
|
|
@@ -326,11 +261,6 @@ function treeOf(repo, commit) {
|
|
|
326
261
|
}
|
|
327
262
|
return out;
|
|
328
263
|
}
|
|
329
|
-
/**
|
|
330
|
-
* The whole change a result carries, verified: every version of the task (any ancestry problem refuses), from the base in
|
|
331
|
-
* Toolroll's own records to the head on the run record, every contributing build's saved diff present, and every file
|
|
332
|
-
* countable through the hardened git. Null-like answers refuse: nothing here is ever a guess.
|
|
333
|
-
*/
|
|
334
264
|
export function verifiedChange(store, taskId, runId) {
|
|
335
265
|
const no = (problem) => ({ ok: false, problem });
|
|
336
266
|
const ancestry = store.revisionAncestryStatus(taskId);
|
|
@@ -389,7 +319,6 @@ export function verifiedChange(store, taskId, runId) {
|
|
|
389
319
|
return no("The change couldn't be read.");
|
|
390
320
|
}
|
|
391
321
|
}
|
|
392
|
-
/** Whether any version of this task started fast. An unreadable history counts: it fails closed below. */
|
|
393
322
|
export function fastStarted(store, taskId) {
|
|
394
323
|
const ancestry = store.revisionAncestryStatus(taskId);
|
|
395
324
|
if (ancestry.problem !== null) {
|
|
@@ -399,14 +328,12 @@ export function fastStarted(store, taskId) {
|
|
|
399
328
|
const chain = ancestry.chain.length === 0 ? [taskId] : ancestry.chain;
|
|
400
329
|
return store.handle.prepare(`SELECT 1 AS hit FROM task_ref WHERE backend = ? AND fast_start_at IS NOT NULL AND external_id IN (SELECT value FROM json_each(?))`).get(BUILT_IN, JSON.stringify(chain)) !== undefined;
|
|
401
330
|
}
|
|
402
|
-
/** The one sentence over every over-the-caps refusal; the road on is the approval of the expanded commit (keepGrownChange). */
|
|
403
331
|
export const GREW_WORDS = "This grew beyond a small change. Approve it to keep it.";
|
|
404
332
|
function grownApproved(store, taskId, runId) {
|
|
405
333
|
const scope = store.getScope(taskId), run = store.getRun(runId);
|
|
406
334
|
return scope !== null && run !== null && scope.candidate != null && scope.candidate === run.headRevision && scope.approvedDigest === scope.digest && run.scopeDigest === scope.digest
|
|
407
335
|
&& (scope.approvalBasis === "password" || scope.approvalBasis === "chat");
|
|
408
336
|
}
|
|
409
|
-
/** Why this exact result can't go further as a small change, or null. */
|
|
410
337
|
export function fastChangeProblem(store, taskId, runId) {
|
|
411
338
|
if (!fastStarted(store, taskId))
|
|
412
339
|
return null;
|
|
@@ -425,7 +352,6 @@ export function fastChangeProblem(store, taskId, runId) {
|
|
|
425
352
|
return GREW_WORDS;
|
|
426
353
|
return null;
|
|
427
354
|
}
|
|
428
|
-
/** Completion: a person only, and only a change the measure accepts. */
|
|
429
355
|
export function fastCompletionProblem(store, taskId, runId, person) {
|
|
430
356
|
if (!fastStarted(store, taskId))
|
|
431
357
|
return null;
|
|
@@ -433,7 +359,6 @@ export function fastCompletionProblem(store, taskId, runId, person) {
|
|
|
433
359
|
return "A person accepts this one.";
|
|
434
360
|
return fastChangeProblem(store, taskId, runId);
|
|
435
361
|
}
|
|
436
|
-
/** Publication and merge: nothing leaves until a person accepted this exact build, and the measure still accepts it. */
|
|
437
362
|
export function fastPublishProblem(store, taskId, runId) {
|
|
438
363
|
if (!fastStarted(store, taskId))
|
|
439
364
|
return null;
|
|
@@ -442,11 +367,6 @@ export function fastPublishProblem(store, taskId, runId) {
|
|
|
442
367
|
return "It waits for a person to accept it.";
|
|
443
368
|
return fastChangeProblem(store, taskId, runId);
|
|
444
369
|
}
|
|
445
|
-
/**
|
|
446
|
-
* "Approve it to keep it": a plan for the actual expanded commit, proposed the way a rerun proposes one (dispose.ts
|
|
447
|
-
* regateTask): the same terms with `candidate` set to the exact head. It seals nothing; the person approves it on the
|
|
448
|
-
* ordinary ceremony, Toolroll checks that commit out with no agent, and only that attempt's result goes further.
|
|
449
|
-
*/
|
|
450
370
|
export function keepGrownChange(store, taskId, now) {
|
|
451
371
|
if (machineActing())
|
|
452
372
|
return { ok: false, message: FAST_WORDS.machine };
|
|
@@ -465,15 +385,6 @@ export function keepGrownChange(store, taskId, now) {
|
|
|
465
385
|
return { ok: true, digest: proposed.digest };
|
|
466
386
|
});
|
|
467
387
|
}
|
|
468
|
-
/**
|
|
469
|
-
* A chat start's preview, prepared by the lead's turn loop before the Start card is drafted: the classifier asked (at
|
|
470
|
-
* most its budget), the filing dry-run, and the rules read. It refuses no machine caller, because a preview grants
|
|
471
|
-
* nothing (the lead's turn runs as the lead): Build refuses a machine (fastStartBuild), and only a person's own tap or
|
|
472
|
-
* typed yes reaches Build. The row is bound to the person, `via = 'chat'` and the turn; a preview without a turn is
|
|
473
|
-
* unusable. The person's own chat limits are read again at the tap, for the chat it comes from; here only the loosest
|
|
474
|
-
* limit that still means something applies (no full access, no cap), so a card is never drafted for terms no chat
|
|
475
|
-
* approval could allow.
|
|
476
|
-
*/
|
|
477
388
|
export async function prepareChatStart(store, input, now) {
|
|
478
389
|
if (!Number.isSafeInteger(input.turn) || input.turn < 1)
|
|
479
390
|
return { eligible: false, reason: "rules" };
|
|
@@ -501,23 +412,15 @@ export async function prepareChatStart(store, input, now) {
|
|
|
501
412
|
.run(preview, input.actor, taskId, input.repo, input.title, JSON.stringify(sizing), read.scope.digest, now.toISOString(), new Date(now.getTime() + FAST_PREVIEW_MS).toISOString(), input.turn);
|
|
502
413
|
return { eligible: true, preview, digest: read.scope.digest, scope: read.scope, taskId };
|
|
503
414
|
}
|
|
504
|
-
/** A chat start's preview, as the Start card reads it again: this person's, `via = 'chat'`, prepared in this turn,
|
|
505
|
-
* unexpired and unused. Null otherwise. */
|
|
506
415
|
export function chatStartPreview(store, preview, actor, turn, now) {
|
|
507
416
|
const row = store.handle.prepare("SELECT * FROM fast_preview WHERE id = ? AND consumed_at IS NULL AND expires_at > ?").get(preview, now.toISOString());
|
|
508
417
|
if (row === undefined || row["actor"] !== actor || row["via"] !== "chat" || row["turn"] === null || Number(row["turn"]) !== turn)
|
|
509
418
|
return null;
|
|
510
419
|
return { taskId: String(row["task_id"]), repo: String(row["repo"]), title: String(row["title"]), sizing: JSON.parse(String(row["sizing_json"])), digest: String(row["digest"]) };
|
|
511
420
|
}
|
|
512
|
-
/** A dismissed Start card's preview can't be used: consumed, in the dismissal's transaction. */
|
|
513
421
|
export function consumeChatStartPreview(store, preview, now) {
|
|
514
422
|
store.handle.prepare("UPDATE fast_preview SET consumed_at = ? WHERE id = ? AND via = 'chat' AND consumed_at IS NULL").run(now.toISOString(), preview);
|
|
515
423
|
}
|
|
516
|
-
/**
|
|
517
|
-
* A chat start's filing dry-run, for its card: the scope filing would make, read in a savepoint that is always rolled
|
|
518
|
-
* back, with the rules read on it (any proof form; the card shows the terms, the tap proves the person). The card is made
|
|
519
|
-
* from these words; the tap files again and compares.
|
|
520
|
-
*/
|
|
521
424
|
export function chatStartDryRun(store, input, now) {
|
|
522
425
|
return dryRun(store, () => {
|
|
523
426
|
const filed = fileIt(store, input.taskId, { actor: input.actor, repo: input.repo, title: input.title, via: "chat", sizing: input.sizing }, now);
|
package/dist/fast-terms.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/** A fast start's terms, the words a yes agrees to (scope.ts describeScope, the lines every plan approval reads), plus the
|
|
2
|
-
* project tools its seal will carry. The same lines on the New task form, in the terminal UI and in `task new`. The
|
|
3
|
-
* plan version and approval state rows say nothing yet: nothing is approved. */
|
|
4
1
|
import { describeScope } from "./scope.js";
|
|
5
2
|
const LABELS = { goal: "Goal", "not this": "Not this", files: "Files", budget: "Budget", network: "Network", writes: "Writes", reads: "Reads", checks: "Checks", services: "Services" };
|
|
6
3
|
export function fastTermsLines(store, scope, repo) {
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
/** Cases that may stay skipped with no CI case behind them, each with why. Product code, reviewed like it: never a file a
|
|
2
|
-
* release's commits could carry. Empty until a measured run gives a reason. */
|
|
3
1
|
export const FENCED_SKIP_EXEMPTIONS = Object.freeze([]);
|
|
4
2
|
export const unitCaseIdentity = (file, name) => `unit:${file}::${name}`;
|
|
5
|
-
/**
|
|
6
|
-
* Every case in the macOS CI's reports, by the identity the release check's own reporter gives it (test/release-reporter.ts:
|
|
7
|
-
* `suite > test`; Vitest's JSON `fullName` joins with spaces, so it can't be matched as it stands). A name twice in a file
|
|
8
|
-
* passes only if every one of them did. `root` is the checkout the reports name files under.
|
|
9
|
-
*/
|
|
10
3
|
export function macosCases(reports, root) {
|
|
11
4
|
const cases = new Map();
|
|
12
5
|
for (const report of reports) {
|
|
@@ -25,13 +18,11 @@ export function macosCases(reports, root) {
|
|
|
25
18
|
}
|
|
26
19
|
return cases;
|
|
27
20
|
}
|
|
28
|
-
/** Every case a check's report says it skipped: unit cases and journeys alike. */
|
|
29
21
|
export function skippedCases(report) {
|
|
30
22
|
const units = (report.units?.identities ?? []).filter(one => one.state === "skipped").map(one => unitCaseIdentity(one.file, one.name));
|
|
31
23
|
const journeys = report.journeys.flatMap(run => run.groups.flatMap(group => group.journeys.filter(one => one.state === "skipped").map(one => `journey:${run.script}:${run.kind}:${group.group}::${one.name}`)));
|
|
32
24
|
return [...new Set([...units, ...journeys])].sort();
|
|
33
25
|
}
|
|
34
|
-
/** Each skipped case: passed in that commit's macOS CI, reviewed as exempt, or not covered. */
|
|
35
26
|
export function skipCoverage(skipped, macos, exemptions = FENCED_SKIP_EXEMPTIONS) {
|
|
36
27
|
const reviewed = new Set(exemptions.map(one => one.identity));
|
|
37
28
|
const result = { covered: [], exempt: [], uncovered: [] };
|
|
@@ -39,14 +30,12 @@ export function skipCoverage(skipped, macos, exemptions = FENCED_SKIP_EXEMPTIONS
|
|
|
39
30
|
(macos.get(identity) === true ? result.covered : reviewed.has(identity) ? result.exempt : result.uncovered).push(identity);
|
|
40
31
|
return result;
|
|
41
32
|
}
|
|
42
|
-
/** The narrowest level a measured check fully covers. No level covered: `unsandboxed`, as today, with a person's yes. */
|
|
43
33
|
export function measuredLevel(measurements) {
|
|
44
34
|
for (const level of ["sandboxed", "sign-ins"])
|
|
45
35
|
if (measurements.some(one => one.level === level && one.passed && one.uncovered === 0))
|
|
46
36
|
return level;
|
|
47
37
|
return "unsandboxed";
|
|
48
38
|
}
|
|
49
|
-
/** Why a sandboxed check can't stand for this release, in words a person can act on. */
|
|
50
39
|
export function uncoveredWords(uncovered) {
|
|
51
40
|
const named = uncovered.slice(0, 5).map(one => one.replace(/^unit:/, "")).join("; ");
|
|
52
41
|
return `${uncovered.length} ${uncovered.length === 1 ? "case" : "cases"} skipped inside the sandbox ${uncovered.length === 1 ? "isn't" : "aren't"} covered by this commit's macOS CI (${named}${uncovered.length > 5 ? "; and more" : ""}). `
|
package/dist/findings.js
CHANGED
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Findings sent to the task that owns the code (docs/plans/fleet-follow-through.md, part 1).
|
|
3
|
-
*
|
|
4
|
-
* A finding asks the owner for an answer: accepted, with what changed, or rejected, with a reason against the code.
|
|
5
|
-
* Reading one closes nothing. It stays open, and visible, until an answer counts or a person closes it, and a reviewer
|
|
6
|
-
* and an implementer get FINDING_ROUND_LIMIT rounds before it goes to a person.
|
|
7
|
-
*
|
|
8
|
-
* Trust: summary, action, excerpt and every answer can hold model output or repository text. They are data wherever
|
|
9
|
-
* they are read: quoted with `fence` for an agent, and they decide nothing. An answer ends this finding and touches no
|
|
10
|
-
* proof, check or approval, and only a signed-in person (the caller proves it) closes one.
|
|
11
|
-
*/
|
|
12
1
|
import { z } from "zod";
|
|
13
2
|
import { fence } from "./brief-fence.js";
|
|
14
3
|
import { redactSecretLines, scanForSecrets } from "./evidence.js";
|
|
@@ -16,27 +5,22 @@ import { readingFleet } from "./fleet-schema.js";
|
|
|
16
5
|
import { buildReviewOf } from "./review-switch.js";
|
|
17
6
|
import { failedVerificationEvidence } from "./verification-evidence.js";
|
|
18
7
|
import { viewedGitSync } from "./teardown-git.js";
|
|
19
|
-
/** A first send and one more: then a person decides. */
|
|
20
8
|
export const FINDING_ROUND_LIMIT = 2;
|
|
21
9
|
export const FINDING_TEXT_LIMIT = 1_000;
|
|
22
10
|
export const FINDING_ACTION_LIMIT = 300;
|
|
23
11
|
export const FINDING_EXCERPT_LIMIT = 2_000;
|
|
24
12
|
export const ANSWER_TEXT_LIMIT = 1_000;
|
|
25
13
|
export const ANSWER_FILE_BYTES = 8 * 1024;
|
|
26
|
-
/** A review pointing this close to an answered finding, in the same file, is raising it again. */
|
|
27
14
|
const SAME_PLACE_LINES = 10;
|
|
28
15
|
export const REVIEW_ACTION = "Check this against the code. Fix it and say what changed, or reject it with a reason that names the file.";
|
|
29
16
|
export const CHECK_ACTION = "Find the cause of this failed check. Fix it and say what changed, or reject it with a reason that names the file.";
|
|
30
17
|
const SOURCE_WORDS = { "build-review": "automatic review", person: "a person", lead: "the lead, confirmed by a person", "check-failure": "the project check" };
|
|
31
18
|
export const findingSourceWords = (source) => SOURCE_WORDS[source];
|
|
32
|
-
/** Who a finding's words are from, naming the person who confirmed the lead's draft: never the person as its author. */
|
|
33
19
|
export const findingFromWords = (finding) => finding.source === "lead" ? `the lead, confirmed by ${finding.sentBy}` : SOURCE_WORDS[finding.source];
|
|
34
|
-
/** The family a task belongs to: a broken history keeps the finding on the task it named. */
|
|
35
20
|
export function familyRootOf(store, taskId) {
|
|
36
21
|
const family = store.taskFamilyOf(taskId, null, true);
|
|
37
22
|
return family === null || family.problem !== null ? taskId : family.root.id;
|
|
38
23
|
}
|
|
39
|
-
/** One line of quotable text: controls gone, secrets gone, inside its limit. */
|
|
40
24
|
export function cleanFindingText(text, limit) {
|
|
41
25
|
const redacted = redactSecretLines(text, scanForSecrets(text));
|
|
42
26
|
return redacted.replace(/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u2028\u2029\u202a-\u202e\u2066-\u2069]+/g, " ").replace(/\s+/g, " ").trim().slice(0, limit);
|
|
@@ -65,23 +49,18 @@ export function getFinding(store, id) {
|
|
|
65
49
|
return row === undefined ? null : findingOf(store, row);
|
|
66
50
|
}, null);
|
|
67
51
|
}
|
|
68
|
-
/** Every finding of a task's family, newest first. */
|
|
69
52
|
export function findingsOfTask(store, taskId) {
|
|
70
53
|
return readingFleet(() => {
|
|
71
54
|
const root = familyRootOf(store, taskId);
|
|
72
55
|
return store.handle.prepare("SELECT * FROM finding WHERE family_root = ? ORDER BY id DESC").all(root).map(row => findingOf(store, row));
|
|
73
56
|
}, []);
|
|
74
57
|
}
|
|
75
|
-
/** How many of this task's family's findings used their rounds and wait on a person; none on a database not yet migrated. */
|
|
76
58
|
export const heldFindingCount = (store, taskId) => findingsOfTask(store, taskId).filter(one => one.state === "with-person").length;
|
|
77
|
-
/** The findings still waiting on someone, across a project or everywhere. */
|
|
78
59
|
export function waitingFindings(store, repos) {
|
|
79
60
|
return readingFleet(() => store.handle.prepare("SELECT * FROM finding WHERE state IN ('open', 'with-person') ORDER BY id DESC LIMIT 500").all()
|
|
80
61
|
.map(row => findingOf(store, row)).filter(one => repos === null || (one.repo !== null && repos.includes(one.repo))), []);
|
|
81
62
|
}
|
|
82
63
|
const inReach = (store, who, repo) => who.repos.includes(repo) && store.accountCanAccess(who.name, repo);
|
|
83
|
-
/** Every project a task's family reaches, or null unless this person reaches all of them: one gate for every chat road to
|
|
84
|
-
* a family's findings and handover. A task with no project is out of reach. */
|
|
85
64
|
export function familyInReach(store, who, task) {
|
|
86
65
|
const family = store.taskFamilyOf(task, null, true);
|
|
87
66
|
const repos = (family?.versions.map(one => one.id) ?? [task]).map(id => store.lookupRef(id)?.repo ?? null);
|
|
@@ -89,8 +68,6 @@ export function familyInReach(store, who, task) {
|
|
|
89
68
|
return null;
|
|
90
69
|
return [...new Set(repos)];
|
|
91
70
|
}
|
|
92
|
-
/** The findings this person may see: a task's, only if its whole family is in reach, else those waiting in `repos`. Null
|
|
93
|
-
* for a task out of reach. A finding with no project, or one out of reach, is left out. */
|
|
94
71
|
export function findingsInReach(store, who, query) {
|
|
95
72
|
if (query.task !== undefined && familyInReach(store, who, query.task) === null)
|
|
96
73
|
return null;
|
|
@@ -98,7 +75,6 @@ export function findingsInReach(store, who, query) {
|
|
|
98
75
|
return list.filter(one => one.repo !== null && inReach(store, who, one.repo));
|
|
99
76
|
}
|
|
100
77
|
const words = (text) => text.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim().split(" ").slice(0, 12).join(" ");
|
|
101
|
-
/** The same finding, in another reviewer's words: the same file, and the same opening words or nearly the same line. */
|
|
102
78
|
export function sameFinding(a, b) {
|
|
103
79
|
if (a.file === null || a.file !== b.file)
|
|
104
80
|
return false;
|
|
@@ -106,7 +82,6 @@ export function sameFinding(a, b) {
|
|
|
106
82
|
return true;
|
|
107
83
|
return a.line !== null && b.line !== null && Math.abs(a.line - b.line) <= SAME_PLACE_LINES;
|
|
108
84
|
}
|
|
109
|
-
/** A run that is live on this task right now is the one a mailbox reaches. */
|
|
110
85
|
function liveRunOf(store, taskId, now) {
|
|
111
86
|
const ref = store.lookupRef(taskId);
|
|
112
87
|
if (ref === null)
|
|
@@ -116,7 +91,6 @@ function liveRunOf(store, taskId, now) {
|
|
|
116
91
|
return null;
|
|
117
92
|
return store.runsFor(ref.id).find(one => one.outcome === null && one.leaseId === lease)?.id ?? null;
|
|
118
93
|
}
|
|
119
|
-
/** Tell a person a finding has used its rounds: once per round, never for a put-away task (enqueueNotification). */
|
|
120
94
|
function handToPerson(store, finding, now) {
|
|
121
95
|
const taskRef = store.lookupRef(finding.taskId)?.id;
|
|
122
96
|
store.handle.prepare("UPDATE finding SET state = 'with-person' WHERE id = ?").run(finding.id);
|
|
@@ -128,7 +102,6 @@ function handToPerson(store, finding, now) {
|
|
|
128
102
|
link: `/t/${encodeURIComponent(finding.taskId)}#findings`,
|
|
129
103
|
}, now);
|
|
130
104
|
}
|
|
131
|
-
/** Send a finding, or count a repeat of one already sent as another round. The caller proves who is sending. */
|
|
132
105
|
export function sendFinding(store, input, now) {
|
|
133
106
|
const task = store.getTask(input.taskId);
|
|
134
107
|
if (task === null)
|
|
@@ -149,8 +122,6 @@ export function sendFinding(store, input, now) {
|
|
|
149
122
|
return { ok: true, id: Number(earlier["id"]), standing: "already-sent", round: Number(earlier["rounds"]) };
|
|
150
123
|
}
|
|
151
124
|
const family = store.handle.prepare("SELECT * FROM finding WHERE family_root = ? AND state <> 'closed' ORDER BY id DESC").all(root).map(row => findingOf(store, row));
|
|
152
|
-
// A review's wording drifts between rounds, so nearly the same place counts. A person's note counts only word for word:
|
|
153
|
-
// two different things to say about one function are two findings.
|
|
154
125
|
const repeat = family.find(one => input.source === "build-review" ? sameFinding(one, { file, line, summary }) : one.file === file && words(one.summary) === words(summary));
|
|
155
126
|
if (repeat !== undefined) {
|
|
156
127
|
if (repeat.state === "open")
|
|
@@ -182,7 +153,6 @@ function resendLocked(store, finding, now) {
|
|
|
182
153
|
store.bumpWake();
|
|
183
154
|
return { ok: true, id: finding.id, standing: liveRunOf(store, finding.taskId, now) === null ? "next-attempt" : "running", round };
|
|
184
155
|
}
|
|
185
|
-
/** Send an answered finding back to its owner: one more round, or to a person once the rounds are used. */
|
|
186
156
|
export function resendFinding(store, id, now) {
|
|
187
157
|
return store.transact(() => {
|
|
188
158
|
const finding = getFinding(store, id);
|
|
@@ -193,7 +163,6 @@ export function resendFinding(store, id, now) {
|
|
|
193
163
|
return resendLocked(store, finding, now);
|
|
194
164
|
});
|
|
195
165
|
}
|
|
196
|
-
/** A person's decision on a finding. The caller has proved the person. */
|
|
197
166
|
export function closeFinding(store, id, by, note, now) {
|
|
198
167
|
const words = cleanFindingText(note, FINDING_TEXT_LIMIT);
|
|
199
168
|
if (words === "")
|
|
@@ -203,7 +172,6 @@ export function closeFinding(store, id, by, note, now) {
|
|
|
203
172
|
return Number(closed.changes) === 1 ? { ok: true } : { ok: false, message: `Finding #${id} is closed already, or doesn't exist.` };
|
|
204
173
|
});
|
|
205
174
|
}
|
|
206
|
-
/** The open findings of a run's family it has not been given yet. */
|
|
207
175
|
export function undeliveredFindings(store, taskRef, runId) {
|
|
208
176
|
return readingFleet(() => {
|
|
209
177
|
const taskId = store.refById(taskRef)?.externalId;
|
|
@@ -212,12 +180,10 @@ export function undeliveredFindings(store, taskRef, runId) {
|
|
|
212
180
|
return store.handle.prepare("SELECT * FROM finding WHERE family_root = ? AND state = 'open' AND delivered_run IS NOT ? ORDER BY id").all(familyRootOf(store, taskId), runId).map(row => findingOf(store, row));
|
|
213
181
|
}, []);
|
|
214
182
|
}
|
|
215
|
-
/** Recorded only after the file reached the run, or the brief named it: a pending delivery is never counted as read. */
|
|
216
183
|
export function markFindingDelivered(store, id, runId, how, now) {
|
|
217
184
|
const marked = store.handle.prepare("UPDATE finding SET delivered_run = ?, delivered_how = ?, delivered_at = ?, read_at = NULL WHERE id = ? AND state = 'open'").run(runId, how, now.toISOString(), id);
|
|
218
185
|
return Number(marked.changes) === 1;
|
|
219
186
|
}
|
|
220
|
-
/** The findings a fresh attempt's brief quotes, recorded as reaching it. Bounded by the caller's brief. */
|
|
221
187
|
export function attachFindings(store, taskRef, runId, now) {
|
|
222
188
|
return readingFleet(() => store.transact(() => {
|
|
223
189
|
const open = undeliveredFindings(store, taskRef, runId);
|
|
@@ -226,12 +192,10 @@ export function attachFindings(store, taskRef, runId, now) {
|
|
|
226
192
|
return open;
|
|
227
193
|
}), []);
|
|
228
194
|
}
|
|
229
|
-
/** The agent moved the file to handled/: it read it. That closes nothing. */
|
|
230
195
|
export function markFindingRead(store, id, runId, now) {
|
|
231
196
|
store.handle.prepare("UPDATE finding SET read_at = ? WHERE id = ? AND delivered_run = ? AND read_at IS NULL").run(now.toISOString(), id, runId);
|
|
232
197
|
}
|
|
233
198
|
const line = z.string().min(1).max(ANSWER_TEXT_LIMIT);
|
|
234
|
-
/** An answer as an agent writes it. Its `key` proves the attempt's own folder wrote it, nothing more. */
|
|
235
199
|
export const findingAnswerSchema = z.strictObject({
|
|
236
200
|
key: z.string().min(1).max(64),
|
|
237
201
|
finding: z.number().int().min(1),
|
|
@@ -240,8 +204,6 @@ export const findingAnswerSchema = z.strictObject({
|
|
|
240
204
|
file: z.string().min(1).max(300).optional(),
|
|
241
205
|
line: z.number().int().min(1).max(10_000_000).optional(),
|
|
242
206
|
});
|
|
243
|
-
/** Save what an attempt answered. It counts only when that attempt settles (settleFindingAnswers). A finding this run
|
|
244
|
-
* was not given, or one no longer open, takes no answer. */
|
|
245
207
|
export function saveFindingAnswer(store, runId, answer, now) {
|
|
246
208
|
return store.transact(() => {
|
|
247
209
|
const finding = store.handle.prepare("SELECT rounds FROM finding WHERE id = ? AND delivered_run = ? AND state = 'open'").get(answer.finding, runId);
|
|
@@ -256,9 +218,7 @@ export function saveFindingAnswer(store, runId, answer, now) {
|
|
|
256
218
|
return Number(saved.changes) === 1;
|
|
257
219
|
});
|
|
258
220
|
}
|
|
259
|
-
/** A path as a repository names one: relative, inside, and never read as an option. */
|
|
260
221
|
const repoPath = (path) => path !== "" && !path.startsWith("/") && !path.startsWith("-") && !path.split("/").includes("..") && !/[\u0000-\u001f\u007f:]/.test(path);
|
|
261
|
-
/** Whether the file an answer names is in the code at that commit. The checkout is the agent's: the hardened git reads it. */
|
|
262
222
|
function fileAt(worktree, head, path) {
|
|
263
223
|
if (!repoPath(path) || !/^[a-f0-9]{40}$/.test(head))
|
|
264
224
|
return false;
|
|
@@ -269,11 +229,6 @@ function fileAt(worktree, head, path) {
|
|
|
269
229
|
return false;
|
|
270
230
|
}
|
|
271
231
|
}
|
|
272
|
-
/**
|
|
273
|
-
* The attempt has settled: each answer it saved counts or is refused, against what the machine saw, not what it said.
|
|
274
|
-
* Accepted needs a commit past the revision the finding was sent about. Rejected needs a file that exists at the run's
|
|
275
|
-
* commit. A refused answer leaves the finding open, and the next attempt gets it again.
|
|
276
|
-
*/
|
|
277
232
|
export function settleFindingAnswers(store, runId, worktree, now) {
|
|
278
233
|
return readingFleet(() => {
|
|
279
234
|
const run = store.getRun(runId);
|
|
@@ -323,11 +278,6 @@ export function settleFindingAnswers(store, runId, worktree, now) {
|
|
|
323
278
|
return counted;
|
|
324
279
|
}, 0);
|
|
325
280
|
}
|
|
326
|
-
/**
|
|
327
|
-
* A finished review's HIGH findings. Sent back: each becomes a finding its revision must answer. Not sent back (a family
|
|
328
|
-
* gets one automatic send-back): a HIGH that repeats an answered finding is that finding's next round, and any other
|
|
329
|
-
* stays where it is, for the person to decide. Never at the review's expense.
|
|
330
|
-
*/
|
|
331
281
|
export function recordReviewFindings(store, input, now) {
|
|
332
282
|
try {
|
|
333
283
|
store.transact(() => store.savepoint(() => {
|
|
@@ -341,19 +291,16 @@ export function recordReviewFindings(store, input, now) {
|
|
|
341
291
|
});
|
|
342
292
|
}));
|
|
343
293
|
}
|
|
344
|
-
catch {
|
|
294
|
+
catch { }
|
|
345
295
|
}
|
|
346
296
|
const BRIEF_FINDINGS = 10;
|
|
347
297
|
const BRIEF_EXCERPT = 500;
|
|
348
298
|
export const NOT_ON_TASK = "That result isn't on this task.";
|
|
349
|
-
/** Whether a run belongs to this task's family. Admission proves the task named, never a run a form or flag names beside
|
|
350
|
-
* it, so every act that takes a run checks it here: no finding's text crosses a task or a project. */
|
|
351
299
|
export function runOnTask(store, runId, taskId) {
|
|
352
300
|
const run = Number.isSafeInteger(runId) ? store.getRun(runId) : null;
|
|
353
301
|
const owner = run === null ? null : store.externalIdFor(run.taskRef);
|
|
354
302
|
return owner !== null && store.lookupRef(taskId) !== null && familyRootOf(store, owner) === familyRootOf(store, taskId);
|
|
355
303
|
}
|
|
356
|
-
/** Send one of a result's review findings: `<run>:<number>`, counted from 1 as the result lists them. */
|
|
357
304
|
export function sendReviewFinding(store, taskId, pointer, by, now) {
|
|
358
305
|
const read = reviewFindingAt(store, taskId, pointer);
|
|
359
306
|
if (!read.ok)
|
|
@@ -361,7 +308,6 @@ export function sendReviewFinding(store, taskId, pointer, by, now) {
|
|
|
361
308
|
const { finding, run } = read;
|
|
362
309
|
return sendFinding(store, { taskId, source: "build-review", by, summary: finding.scenario, file: finding.file, line: finding.line, severity: finding.severity, run, key: `review-send:${pointer}` }, now);
|
|
363
310
|
}
|
|
364
|
-
/** The review finding `<run>:<number>` names, on this task's family: what a send would quote, read once for both. */
|
|
365
311
|
export function reviewFindingAt(store, taskId, pointer) {
|
|
366
312
|
const match = /^([1-9][0-9]{0,14}):([1-9][0-9]{0,3})$/.exec(pointer);
|
|
367
313
|
if (match !== null && !runOnTask(store, Number(match[1]), taskId))
|
|
@@ -370,7 +316,6 @@ export function reviewFindingAt(store, taskId, pointer) {
|
|
|
370
316
|
const finding = view === null ? undefined : [...view.high, ...view.followUps][Number(match[2]) - 1];
|
|
371
317
|
return finding === undefined ? { ok: false, message: `That result has no review finding ${pointer}.` } : { ok: true, run: Number(match[1]), finding };
|
|
372
318
|
}
|
|
373
|
-
/** Send a result's failed check, with the end of its sealed log as the evidence. The summary is Toolroll's own words. */
|
|
374
319
|
export function sendCheckFinding(store, root, taskId, runId, by, now) {
|
|
375
320
|
const read = checkFindingAt(store, root, taskId, runId);
|
|
376
321
|
if (!read.ok)
|
|
@@ -378,7 +323,6 @@ export function sendCheckFinding(store, root, taskId, runId, by, now) {
|
|
|
378
323
|
const { summary, head, excerpt } = read;
|
|
379
324
|
return sendFinding(store, { taskId, source: "check-failure", by, summary, run: runId, revision: head, excerpt, key: `check-send:${runId}` }, now);
|
|
380
325
|
}
|
|
381
|
-
/** A failed check as a send would quote it. */
|
|
382
326
|
export function checkFindingAt(store, root, taskId, runId) {
|
|
383
327
|
if (!runOnTask(store, runId, taskId))
|
|
384
328
|
return { ok: false, message: NOT_ON_TASK };
|
|
@@ -388,7 +332,6 @@ export function checkFindingAt(store, root, taskId, runId) {
|
|
|
388
332
|
const head = store.getRun(runId)?.headRevision ?? null;
|
|
389
333
|
return { ok: true, summary: `The approved check failed on ${head?.slice(0, 7) ?? "this result"}.`, head, excerpt: failure.log.slice(-FINDING_EXCERPT_LIMIT) };
|
|
390
334
|
}
|
|
391
|
-
/** The folder an attempt's answers go in, and what the brief says about writing one. Trusted words: nothing here is quoted. */
|
|
392
335
|
export function findingAnswerRule(folder, key) {
|
|
393
336
|
return [
|
|
394
337
|
` Answer each finding by writing ${folder}/answers/<finding id>.json, with the key ${key}:`,
|
|
@@ -398,7 +341,6 @@ export function findingAnswerRule(folder, key) {
|
|
|
398
341
|
" finding is not an answer, and an unanswered one stays open.",
|
|
399
342
|
];
|
|
400
343
|
}
|
|
401
|
-
/** The findings a fresh attempt starts with, quoted as data. `answer` is the folder and key, when this attempt has one. */
|
|
402
344
|
export function findingsBriefLines(findings, answer) {
|
|
403
345
|
if (findings.length === 0)
|
|
404
346
|
return [];
|
|
@@ -419,7 +361,6 @@ export function findingsBriefLines(findings, answer) {
|
|
|
419
361
|
"",
|
|
420
362
|
];
|
|
421
363
|
}
|
|
422
|
-
/** How a finding stands, for a person, in one sentence. Text after a colon is the agent's. */
|
|
423
364
|
export function findingStandingWords(finding) {
|
|
424
365
|
const answer = finding.answer;
|
|
425
366
|
switch (finding.state) {
|
|
@@ -435,13 +376,10 @@ export function findingStandingWords(finding) {
|
|
|
435
376
|
case "closed": return `Closed by ${finding.closedBy ?? "a person"}: ${finding.closedNote ?? ""}`;
|
|
436
377
|
}
|
|
437
378
|
}
|
|
438
|
-
/** Plain lines for `task show`, `finding list` and the handover note. */
|
|
439
379
|
export function findingLine(finding) {
|
|
440
380
|
const where = finding.file === null ? "" : ` ${finding.file}${finding.line === null ? "" : `:${finding.line}`}`;
|
|
441
381
|
return `#${finding.id}${finding.severity === null ? "" : ` ${finding.severity}`}${where} — ${finding.summary}`;
|
|
442
382
|
}
|
|
443
|
-
/** The web's door to the same gate as chat (familyInReach): the projects this person reaches are those the page can
|
|
444
|
-
* see and their account may access, and every project in the task's family must be one of them. Null: out of reach. */
|
|
445
383
|
export function familyInWebReach(store, who, task, visible) {
|
|
446
384
|
const family = store.taskFamilyOf(task, null, true);
|
|
447
385
|
const repos = (family?.versions.map(one => one.id) ?? [task]).map(id => store.lookupRef(id)?.repo ?? null).filter((one) => one !== null && visible(one));
|