toolroll 0.9.104 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -5
- package/README.md +18 -20
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +17 -139
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +1 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +0 -17
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +0 -53
- package/dist/local-owner.js +2 -93
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +0 -20
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +0 -100
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +0 -25
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +4 -567
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +21 -555
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +1 -88
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +13 -493
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +6 -135
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +9 -227
- package/dist/server/tasks.js +5 -539
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +0 -75
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +17 -28
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +16 -36
- package/dist/tui.js +1 -1
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +4 -3
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -350
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1985
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -540
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -43
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -61
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -170
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -39
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1098
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -81
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -60
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -343
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -108
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -48
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -202
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/assignment-ui.js
CHANGED
|
@@ -4,8 +4,6 @@ import { chatResultHref } from './chat-controls.js';
|
|
|
4
4
|
import { startBuilderHref } from './needs-you.js';
|
|
5
5
|
import { statusDetailsHtml, statusWhyHtml } from './task-status.js';
|
|
6
6
|
import { html } from './html.js';
|
|
7
|
-
/** The existing verified receipt reader may discover damage after a verdict
|
|
8
|
-
* was saved. Keep the limitation visible without inventing another work stage. */
|
|
9
7
|
export function assignmentWithEvidence(assignment, resultStatus, resultRunId = assignment.receipt?.runId ?? null) {
|
|
10
8
|
if (resultStatus?.token !== 'evidence-damaged')
|
|
11
9
|
return assignment;
|
|
@@ -18,7 +16,6 @@ export function assignmentStatusOf(assignment, workStatus) {
|
|
|
18
16
|
return assignmentPresentationOf(assignment, workStatus === undefined ? {} : { workStatus }).status;
|
|
19
17
|
}
|
|
20
18
|
const taskHref = (assignment, taskId) => `/t/${encodeURIComponent(assignment.rootId)}?version=${encodeURIComponent(taskId)}`;
|
|
21
|
-
/** Navigation only. A control action still opens its existing exact ceremony. */
|
|
22
19
|
export function assignmentActionHref(assignment) {
|
|
23
20
|
const action = assignment.primaryAction;
|
|
24
21
|
if (action === null)
|
|
@@ -32,7 +29,6 @@ export function assignmentActionHref(assignment) {
|
|
|
32
29
|
return '/';
|
|
33
30
|
if (action.code === 'sign-in')
|
|
34
31
|
return '/settings/agents#providers';
|
|
35
|
-
// The confirmation sits on the task page, behind the password.
|
|
36
32
|
if (action.code === 'recheck-stopped')
|
|
37
33
|
return `/t/${encodeURIComponent(assignment.rootId)}#recheck-stopped`;
|
|
38
34
|
if (action.code === 'open-pr' && /^https:\/\/github\.com\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+\/pull\/\d+$/.test(assignment.publication?.prUrl ?? ''))
|
|
@@ -42,19 +38,16 @@ export function assignmentActionHref(assignment) {
|
|
|
42
38
|
}
|
|
43
39
|
if (runId !== null && (action.code === 'inspect-run' || action.code === 'reconcile-run'))
|
|
44
40
|
return `/r/${runId}`;
|
|
45
|
-
// The task page only repeats that no builder is connected: lead to the command that connects one.
|
|
46
41
|
if (action.code === 'start-worker')
|
|
47
42
|
return startBuilderHref(taskId);
|
|
48
43
|
const anchor = action.code === 'approve-scope' ? '#approve'
|
|
49
44
|
: action.code === 'inspect-stop' || action.code === 'resume-run' ? '#task-control'
|
|
50
|
-
// Retry (and Build again) is the task's status card itself, at the top: no anchor to its options.
|
|
51
45
|
: action.code === 'unhold' ? '#task-actions'
|
|
52
46
|
: action.code === 'write-scope' || action.code === 'select-agent' ? '#scope'
|
|
53
47
|
: action.code === 'inspect-hold' ? '#holds'
|
|
54
48
|
: action.code === 'repair-dependency' ? '#run-status' : '';
|
|
55
49
|
return taskHref(assignment, taskId) + anchor;
|
|
56
50
|
}
|
|
57
|
-
/** Every version of the assignment, oldest first, as the card lists them. */
|
|
58
51
|
export function assignmentAttemptsOf(assignment) {
|
|
59
52
|
return assignment.attempts.map((attempt, index) => ({
|
|
60
53
|
taskId: attempt.taskId, label: `${index === 0 ? 'Original' : `Correction ${index}`} · ${attempt.label}`,
|
|
@@ -67,8 +60,6 @@ export function assignmentAttemptsHtml(assignment) {
|
|
|
67
60
|
return html ``;
|
|
68
61
|
return html `<details class="assignment-attempts"><summary>Attempts <span class="meta">${assignment.attempts.length}</span></summary><ol>${assignmentAttemptsOf(assignment).map(attempt => html `<li data-attempt-task="${attempt.taskId}" data-history-version="${attempt.taskId}"><a href="${attempt.href}">${attempt.label}</a>${attempt.runId === null ? '' : html ` <a href="/r/${attempt.runId}">Build #${attempt.runId}</a>`}${attempt.detail === null ? '' : html `<p class="meta">${attempt.detail}</p>`}</li>`)}</ol>${assignment.owner === null ? '' : html `<p class="meta">Lead: ${assignment.owner.label}${assignment.owner.active ? '' : ' · access ended'}</p>`}<p class="work-meta work-id">Task <span class="mono">${assignment.rootId}</span></p></details>`;
|
|
69
62
|
}
|
|
70
|
-
/** Only recognized storage limits and explicitly identified older records are
|
|
71
|
-
* secondary. Unknown findings and damaged current material stay in view. */
|
|
72
63
|
function savedMaterialNotice(detail, assignment) {
|
|
73
64
|
if (shortenedMaterialReason(detail))
|
|
74
65
|
return 'partial';
|
|
@@ -78,8 +69,6 @@ function savedMaterialNotice(detail, assignment) {
|
|
|
78
69
|
}
|
|
79
70
|
export function assignmentCardOf(assignment, options = {}) {
|
|
80
71
|
const receipt = assignment.receipt;
|
|
81
|
-
// The checks live on the one result page (a failed build has one too), where Run checks runs in place; never Chat,
|
|
82
|
-
// which would only lead back to this card.
|
|
83
72
|
const checksPage = receipt === null ? null : `/review?result=${encodeURIComponent(receipt.taskId)}&run=${receipt.runId}&tab=checks`;
|
|
84
73
|
const links = receipt === null ? {} : { result: options.resultHref ?? chatResultHref(receipt.taskId, receipt.runId), checks: checksPage,
|
|
85
74
|
pullRequest: `/t/${encodeURIComponent(assignment.rootId)}#merge`,
|
|
@@ -108,5 +97,4 @@ export function assignmentSummaryHtml(assignment, options = {}) {
|
|
|
108
97
|
const tone = card.status.tone;
|
|
109
98
|
return html `<section class="${options.compact ? 'assignment-summary' : 'card assignment-summary'}" aria-label="assignment progress" data-assignment="${assignment.rootId}" data-work-status="${card.token}" data-tone="${card.tone}" data-headline="${card.status.headline}" data-headline-tone="${tone}"${options.compact ? '' : html ` data-task-status`}>${options.compact ? html `<span class="status-line" data-work-status="${card.token}" data-tone="${card.tone}"><i class="status-dot" aria-hidden="true"></i><span class="status-label">${card.label}</span></span>` : html `<h2 class="assignment-state status-headline"><i aria-hidden="true"></i>${card.label}</h2>`}<p class="meta assignment-detail status-sentence">${options.sentence ?? card.status.sentence}</p>${card.action === null ? '' : html `<a class="${options.compact ? 'work-action' : 'button-link'}" href="${card.action.href}"${card.action.openResult ? html ` data-open-result` : ''}${options.compact ? '' : html ` data-primary-action`}>${card.action.label}${options.compact ? ' →' : ''}</a>`}${options.compact ? '' : statusDetailsHtml(card.status)}${statusWhyHtml(card.status, card.reasons, card.diagnostics)}${card.notices === null ? '' : html `<details class="assignment-notices"><summary>${card.notices.summary}</summary>${card.notices.lines.map(one => html `<p class="meta">${one}</p>`)}</details>`}${assignmentAttemptsHtml(assignment)}</section>`;
|
|
110
99
|
}
|
|
111
|
-
/** Shared assignment layout; actions remain comfortable on touch screens. */
|
|
112
100
|
export const ASSIGNMENT_CSS = `.assignment-summary{min-width:0;overflow-wrap:anywhere}.assignment-summary .assignment-state{font-weight:600;margin:0}.assignment-summary h2.assignment-state{font-size:1.125rem;color:var(--foreground)}.assignment-summary>.assignment-attempts,.assignment-summary>.assignment-notices{border:0;box-shadow:none;padding:0;margin:.25rem 0 0;background:transparent}.assignment-summary>.button-link{margin-top:.7rem;min-height:44px}.assignment-summary>.work-action{display:inline-flex;margin-inline-start:.6rem;min-height:44px;align-items:center}.assignment-detail{margin:.55rem 0}.assignment-attempts summary,.assignment-notices summary{min-height:44px;display:list-item;align-content:center;cursor:pointer}.assignment-notices summary{font-size:.8125rem;color:var(--foreground)}.assignment-notices p{margin:.25rem 0 .5rem}.assignment-attempts ol{padding-left:1.4rem}.assignment-attempts li{margin:.4rem 0}.assignment-attempts li a{display:inline-flex;align-items:center;min-height:44px;margin-right:.7rem}.assignment-attempts li p{margin:0 0 .4rem}`;
|
package/dist/assignment.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/** One assignment follows the existing task family. It owns no execution,
|
|
2
|
-
* approval or proof state. Lead ownership and exact receipt acknowledgments
|
|
3
|
-
* are append-only actions; handoffs use the existing durable outbox. */
|
|
4
1
|
import { fastCompletionProblem } from "./fast-start.js";
|
|
5
2
|
import { createHash } from "node:crypto";
|
|
6
3
|
import { currentActor, withActor } from "./actor.js";
|
|
@@ -26,8 +23,6 @@ import { NEEDS, WAITS, processNeedOf, resultHoldUpSentence } from "./needs-you.j
|
|
|
26
23
|
import { assignmentStageOf, checkBackingOf, completionBlockersOf, receiptChecksOf, requirementWordOf } from "./task-status.js";
|
|
27
24
|
import { releaseCoverageOf } from "./release-coverage.js";
|
|
28
25
|
import { leadClaimOf } from "./lead-voice.js";
|
|
29
|
-
/** Status-first handoff for routine reads. Fetch get_assignment only when
|
|
30
|
-
* inspecting its exact evidence; do not repeat a full proof in every poll. */
|
|
31
26
|
export function assignmentBrief(assignment) {
|
|
32
27
|
if (assignment === null)
|
|
33
28
|
return null;
|
|
@@ -42,8 +37,6 @@ export function assignmentBrief(assignment) {
|
|
|
42
37
|
publication: assignment.publication, review: assignment.review, deployment: assignment.deployment, readiness: assignment.readiness ?? null };
|
|
43
38
|
}
|
|
44
39
|
const digest = (value) => createHash("sha256").update(JSON.stringify(value)).digest("hex");
|
|
45
|
-
/** A lookup added with lead-quiet, read safely: a deploy proves completion with this code over the INSTALLED runtime's
|
|
46
|
-
* store, before this version's migration, so the method (or its table) may not exist yet. Absent reads as none. */
|
|
47
40
|
function olderStoreSafe(read, absent) {
|
|
48
41
|
try {
|
|
49
42
|
return read();
|
|
@@ -54,14 +47,11 @@ function olderStoreSafe(read, absent) {
|
|
|
54
47
|
throw error;
|
|
55
48
|
}
|
|
56
49
|
}
|
|
57
|
-
/** A check as the receipt digest seals it: presentation-only fields (check-levels.ts) left out. */
|
|
58
50
|
const sealedChecks = ({ level: _level, running: _running, batch: _batch, release: _release, cause: _cause, ...proof }) => proof;
|
|
59
51
|
const OWNER_ACTION = "assignment claimed";
|
|
60
52
|
const CHECK_ACTION = COMPLETION_ACTION;
|
|
61
53
|
const actorOf = (owner) => `${owner.kind}:${owner.id}`;
|
|
62
54
|
function ownerOf(store, rootId, repo) {
|
|
63
|
-
// The release verifier reads the new projection against the still-running
|
|
64
|
-
// v70 Store before migrating a backup. That read cannot invent team tables.
|
|
65
55
|
const hasTeam = store.handle.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='team_task_owner'").get() !== undefined;
|
|
66
56
|
if (!hasTeam) {
|
|
67
57
|
const version = readSchemaVersion(store.handle);
|
|
@@ -76,18 +66,15 @@ function ownerOf(store, rootId, repo) {
|
|
|
76
66
|
const id = claim === undefined ? origin : String(claim["actor"]).replace(/^coordinator:/, "");
|
|
77
67
|
if (!id)
|
|
78
68
|
return null;
|
|
79
|
-
// A ledger actor names a coordinator by the id it had when it acted (v118 keeps that as public_id).
|
|
80
69
|
const credential = store.handle.prepare("SELECT name,projects_json AS repos,revoked_at FROM credential WHERE kind = 'coordinator' AND (id = ? OR public_id = ?) ORDER BY id = ? DESC LIMIT 1").get(id, id, id);
|
|
81
70
|
let repos = [];
|
|
82
71
|
try {
|
|
83
72
|
repos = JSON.parse(String(credential?.["repos"] ?? "[]"));
|
|
84
73
|
}
|
|
85
|
-
catch {
|
|
74
|
+
catch { }
|
|
86
75
|
return { kind: "coordinator", id, label: String(credential?.["name"] ?? "Former lead"),
|
|
87
76
|
active: credential !== undefined && credential["revoked_at"] === null && repo !== null && Array.isArray(repos) && repos.includes(repo) };
|
|
88
77
|
}
|
|
89
|
-
// Report the recorded check outcome, never turn a model verdict into a check.
|
|
90
|
-
// Follow-up checks on the same commit (Run checks) upgrade a pass and show a failure.
|
|
91
78
|
export function assignmentChecksForRun(store, root, runId, now) {
|
|
92
79
|
const own = recordedFailureStands(store, runId, buildChecks(store, root, runId));
|
|
93
80
|
const run = store.getRun(runId);
|
|
@@ -98,7 +85,6 @@ export function assignmentChecksForRun(store, root, runId, now) {
|
|
|
98
85
|
const latest = [...followUps].reverse().find(one => one.state === "passed" || one.state === "failed");
|
|
99
86
|
const changed = read.status !== own.status || read.level !== (own.level ?? null) || read.exitCode !== own.exitCode;
|
|
100
87
|
const words = read.level === "quick" ? "Quick checks" : "Checks";
|
|
101
|
-
// A batch check: waiting for its batch, or how the latest finished one was checked and on which commit.
|
|
102
88
|
const waitingBatch = followUps.some(one => one.why === "batch" && one.state === "waiting");
|
|
103
89
|
const sealedBatch = latest?.batch ?? null;
|
|
104
90
|
const batch = waitingBatch ? { state: "waiting", tested: null, peers: [] }
|
|
@@ -108,8 +94,6 @@ export function assignmentChecksForRun(store, root, runId, now) {
|
|
|
108
94
|
...(changed ? { status: read.status, level: read.level, exitCode: read.exitCode, logArtifactId: latest?.logArtifactId ?? own.logArtifactId,
|
|
109
95
|
detail: read.status === "passed" ? `${words} passed.` : `${words} failed (exit ${read.exitCode}).` } : {}) };
|
|
110
96
|
}
|
|
111
|
-
/** A failure the builder recorded (run_check) stands when its saved receipt can't be read now or says nothing ran:
|
|
112
|
-
* fail closed, every surface reads the same known failure and its exit code (task-status.ts approvedCheckOf). */
|
|
113
97
|
function recordedFailureStands(store, runId, own) {
|
|
114
98
|
if (own.status !== "unavailable" && own.status !== "not-run")
|
|
115
99
|
return own;
|
|
@@ -128,7 +112,6 @@ function buildChecks(store, root, runId) {
|
|
|
128
112
|
try {
|
|
129
113
|
const gate = verificationEvidence(store, root, runId);
|
|
130
114
|
if (!gate.ok) {
|
|
131
|
-
// The approved command changed since this check ran: nothing is missing, the check just no longer binds to it.
|
|
132
115
|
const run = store.getRun(runId), repo = run === null ? null : store.refById(run.taskRef)?.repo ?? null;
|
|
133
116
|
const live = repo === null ? null : store.liveVerifyCommand(repo);
|
|
134
117
|
const changed = gate.problem === COMMAND_MISSING_OR_CHANGED && live !== null && run !== null && live.approvedAt > run.startedAt;
|
|
@@ -138,14 +121,12 @@ function buildChecks(store, root, runId) {
|
|
|
138
121
|
if (receipt === null)
|
|
139
122
|
return { ...unavailable(level === "off" ? "Checks were off for this build." : "No machine check is recorded."), status: "not-run" };
|
|
140
123
|
const ran = receipt.result.ran === true, exitCode = ran ? receipt.result.exitCode : null;
|
|
141
|
-
// A release check whose coverage fell short (release-once.md) failed, whatever its command exited with.
|
|
142
124
|
if (receipt.result.failure === "coverage-incomplete")
|
|
143
125
|
return { status: "failed", exitCode: null, command: receipt.command.command, logArtifactId: receipt.log.artifactId, level,
|
|
144
126
|
detail: "Checks didn't cover everything this release owed, or a required test went missing." };
|
|
145
127
|
if (receipt.result.failure === "no-result")
|
|
146
128
|
return { status: "failed", exitCode: null, command: receipt.command.command, logArtifactId: receipt.log.artifactId, level,
|
|
147
129
|
detail: "Checks gave no complete result, so they can't count as a pass." };
|
|
148
|
-
// The sealed receipt names the grant that ran: the quick one, or the full one.
|
|
149
130
|
const sealedLevel = typeof receipt.command?.repo === "string" && receipt.command.repo.startsWith("quick:") ? "quick" : "full";
|
|
150
131
|
const words = sealedLevel === "quick" ? "Quick checks" : "Checks";
|
|
151
132
|
return { status: ran ? exitCode === 0 ? "passed" : "failed" : "not-run", exitCode,
|
|
@@ -170,18 +151,13 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
170
151
|
const scope = store.getScope(current.id);
|
|
171
152
|
const owner = ownerOf(store, family.root.id, current.repo);
|
|
172
153
|
const attention = family.problem === null ? [] : [family.problem];
|
|
173
|
-
// Family admission above precedes question bodies. The newest result
|
|
174
|
-
// does not settle an unanswered question on any earlier version.
|
|
175
|
-
// A put-away earlier version (v145) is history: its question and its queue place never hold the current one up.
|
|
176
154
|
const questions = [current, ...family.versions.filter(version => version.id !== current.id && !refArchived(store, version.refId))].flatMap(version => {
|
|
177
155
|
const decision = openWorkDecisionOf(store, version.refId, now);
|
|
178
156
|
return decision === null ? [] : [{ taskId: version.id, decision }];
|
|
179
157
|
});
|
|
180
|
-
// A finished task label cannot hide a lease or an unfinished process record.
|
|
181
158
|
const busy = (version) => version.state === "running" || store.currentLiveLease(version.refId, now) !== null ||
|
|
182
159
|
store.runsFor(version.refId).some(run => run.outcome === null || store.stopQuiescenceProblem(run.id) !== null);
|
|
183
160
|
const earlierActive = family.versions.filter(version => version.id !== current.id && ((version.state === "queued" && !refArchived(store, version.refId)) || busy(version)));
|
|
184
|
-
// Of those, how many have work under way (the rest only wait in the queue).
|
|
185
161
|
const earlierRunning = earlierActive.filter(busy).length;
|
|
186
162
|
const unfinished = store.runsFor(current.refId).find(run => run.outcome === null) ?? null;
|
|
187
163
|
const attempts = family.versions.map(version => {
|
|
@@ -194,13 +170,10 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
194
170
|
const unavailable = family.versions.flatMap(version => store.runsFor(version.refId).flatMap(run => store.artifactsFor(run.id).filter(artifact => root === undefined || !verifyArtifact(root, artifact).ok)
|
|
195
171
|
.map(artifact => `Saved ${artifact.kind} #${artifact.id} (run ${run.id}) is unavailable or changed.`)));
|
|
196
172
|
const ownChecks = result === null ? null : assignmentChecksForRun(store, root, result.id, now);
|
|
197
|
-
// Checks Off: a passing full release check that contains this commit covers it, read now from the existing receipts.
|
|
198
173
|
const checks = ownChecks === null || ownChecks.level !== "off" || ownChecks.status === "passed" || ownChecks.status === "failed" ? ownChecks
|
|
199
174
|
: { ...ownChecks, release: releaseCoverageOf(store, root, current.repo, result.headRevision, memo === undefined ? {} : { memo }) };
|
|
200
175
|
const finishedBuild = result?.role === "builder" && (result.outcome === "built" || result.outcome === "no-change") &&
|
|
201
176
|
result.finishedAt !== null && /^[a-f0-9]{40}$/.test(result.headRevision ?? "");
|
|
202
|
-
// Finished work returns to its lead or user. Strict terms and previous model
|
|
203
|
-
// judgments stay recorded; neither is a second execution stage for handoff.
|
|
204
177
|
const completionKind = result?.role === "scout" && result.outcome === "built" && result.finishedAt !== null ? "research-report"
|
|
205
178
|
: finishedBuild && acceptance !== null ? "accepted-exception"
|
|
206
179
|
: finishedBuild ? checks?.status === "passed" ? "checked-build" : "finished-build" : null;
|
|
@@ -209,17 +182,12 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
209
182
|
head: result.headRevision, scopeDigest: result.scopeDigest ?? null, proof, completionKind, proofAcceptance: acceptance, checks: checks,
|
|
210
183
|
artifacts: artifacts.map(a => ({ id: a.id, kind: a.kind, sha256: a.sha256, bytes: a.bytesStored,
|
|
211
184
|
complete: !a.truncated && a.captureStatus !== "failed" })),
|
|
212
|
-
// Stored verdict limitations are separate from the agent's outcome.
|
|
213
|
-
// Full agent caveats remain in the referenced proof artifact.
|
|
214
185
|
caveats: [...(proof?.reasons ?? []), ...unavailable,
|
|
215
186
|
...(completionKind === "research-report" && reports.length !== 1 ? ["The report artifact is missing or ambiguous."] : []), ...(completionKind === "accepted-exception" && !artifacts.some(a => a.kind === "proof") ? ["No builder proof artifact is recorded."] : []),
|
|
216
187
|
...(artifacts.some(a => a.kind === "check-log" && a.truncated) ? ["The check log was shortened when stored; only the retained output is available."] : []),
|
|
217
188
|
...artifacts.filter(a => a.kind !== "check-log" && (a.truncated || a.captureStatus === "failed")).map(a => `Saved ${a.kind} #${a.id} is ${a.captureStatus === "failed" ? "a failed capture" : "incomplete"}.`)],
|
|
218
189
|
agentReport: result.handoff, evidence: "recorded",
|
|
219
190
|
};
|
|
220
|
-
// The digest seals the proof, not how it is shown: the check's `level` (read from its sealed command) and `running`
|
|
221
|
-
// (a follow-up in flight) stay out of it, so a result completed before check levels keeps its completion, and a
|
|
222
|
-
// follow-up check that is still running never unseals one.
|
|
223
191
|
const sealedBody = receiptBody === null ? null : { ...receiptBody, checks: sealedChecks(receiptBody.checks) };
|
|
224
192
|
const receipt = receiptBody === null ? null : { ...receiptBody, digest: digest({ receipt: sealedBody,
|
|
225
193
|
scope: scope === null ? null : { digest: scope.digest, approved: approvalOf(scope).approved, termsProblem: scope.termsProblem ?? null },
|
|
@@ -232,12 +200,7 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
232
200
|
const processFact = result === null ? null : stopFactOf(store, result.id);
|
|
233
201
|
const processProblem = processFact?.problem ?? null;
|
|
234
202
|
let need = null;
|
|
235
|
-
// The exact completed result, scope, family and custody fences apply to
|
|
236
|
-
// every deliverable. Human acceptance remains its own recorded authority;
|
|
237
|
-
// it never changes a machine verdict or supplies a missing report.
|
|
238
|
-
// Kept out of the sealed receipt (sealedChecks): the review never changes the result's digest.
|
|
239
203
|
const review = result === null ? null : olderStoreSafe(() => buildReviewOf(store, result.id), null);
|
|
240
|
-
// A result under its one automatic review has not reached the person yet.
|
|
241
204
|
const reviewing = review?.state === "pending" && current.state === "done";
|
|
242
205
|
const ready = !reviewing && current.state === "done" && result !== null && completionKind !== null &&
|
|
243
206
|
scope !== null && scope.termsProblem == null && approvalOf(scope).approved && scope.digest === result.scopeDigest &&
|
|
@@ -254,9 +217,6 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
254
217
|
: { code: "inspect-task", label: `Open ${successor}`, target: { taskId: successor, runId: null, decisionId: null }, access: "read", retry: "read-again" };
|
|
255
218
|
}
|
|
256
219
|
else if (!live && processFact !== null && result !== null) {
|
|
257
|
-
// Toolroll hasn't yet proven the build stopped. It proves that itself
|
|
258
|
-
// (stop-proof.ts), so the work waits, needing no one; only when this
|
|
259
|
-
// computer can't look is it held, offering Check again — never a vouch.
|
|
260
220
|
const process = processNeedOf(processFact);
|
|
261
221
|
if ("need" in process) {
|
|
262
222
|
state = "needs-decision";
|
|
@@ -293,9 +253,6 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
293
253
|
primaryAction = { code: "open-result", label: completionKind === "research-report" ? "Read report" : "Open result", target: { taskId: current.id, runId: result.id, decisionId: null }, access: "read", retry: "read-again" };
|
|
294
254
|
const checked = store.handle.prepare("SELECT actor,at,detail FROM action_ledger WHERE task_id = ? AND run_id = ? AND action = ? AND outcome = ? AND source = 'work' ORDER BY id DESC")
|
|
295
255
|
.all(family.root.id, result.id, CHECK_ACTION, receipt.digest).find(row => COMPLETER_ACTOR.test(String(row["actor"])));
|
|
296
|
-
// This ledger fact was authorized when written. Credential rotation,
|
|
297
|
-
// membership changes and ownership transfer cannot revoke past completion.
|
|
298
|
-
// The exact result digest still fences changes to work, scope and history.
|
|
299
256
|
if (checked !== undefined) {
|
|
300
257
|
const rootRef = store.lookupRef(family.root.id);
|
|
301
258
|
const byLead = rootRef !== null && olderStoreSafe(() => store.taskActs(rootRef.id), []).filter(one => one.act === "completed").at(-1)?.lead === true;
|
|
@@ -320,7 +277,6 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
320
277
|
unapproved: scope === null || scope.termsProblem != null || !approvalOf(scope).approved, question: questions.length > 0,
|
|
321
278
|
running: store.currentLiveLease(current.refId, now) !== null, unfinished: unfinished !== null,
|
|
322
279
|
noCommit: result === null || completionKind === null });
|
|
323
|
-
// Built to an earlier plan: the result page can't resolve it (accepting would leave it stuck), building again can.
|
|
324
280
|
if (current.state === "done" && result !== null && scope !== null && scope.termsProblem == null && approvalOf(scope).approved && !!result.scopeDigest && scope.digest !== result.scopeDigest &&
|
|
325
281
|
store.activeHolds(current.refId, now).length === 0 && unfinished === null && store.currentLiveLease(current.refId, now) === null && store.finalResultReason(result.id) === null) {
|
|
326
282
|
detail = NEEDS.rebuild.sentence({ build: result.id });
|
|
@@ -328,9 +284,6 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
328
284
|
access: access.principal === "operator" ? "operator-control" : "operator-handoff", retry: "refresh-before-acting" };
|
|
329
285
|
need = { key: "rebuild", build: result.id };
|
|
330
286
|
}
|
|
331
|
-
// Rewritten after the build and not approved yet: Build again can't start an unapproved plan, so the yes is the
|
|
332
|
-
// one action (approve-scope opens the approval on the task page); Build again follows it.
|
|
333
|
-
// Builds only (a scout's report is not built again), and never ahead of an open question: approving answers neither.
|
|
334
287
|
else if (current.state === "done" && result !== null && result.role === "builder" && questions.length === 0 &&
|
|
335
288
|
scope !== null && scope.termsProblem == null && !approvalOf(scope).approved && !!result.scopeDigest && scope.digest !== result.scopeDigest &&
|
|
336
289
|
store.activeHolds(current.refId, now).length === 0 && unfinished === null && store.currentLiveLease(current.refId, now) === null && store.finalResultReason(result.id) === null) {
|
|
@@ -346,7 +299,6 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
346
299
|
state = "needs-decision";
|
|
347
300
|
detail = "Earlier work is still active. Resolve it before completing this assignment.";
|
|
348
301
|
const earlier = earlierActive[0];
|
|
349
|
-
// The earlier version's act replaces this one's, and with it this version's need (its rebuild or replan).
|
|
350
302
|
need = null;
|
|
351
303
|
primaryAction = taskWorkSummaryOf(store, earlier.id, now, access)?.primaryAction ?? {
|
|
352
304
|
code: "inspect-task", label: "Review active work", target: { taskId: earlier.id, runId: null, decisionId: null }, access: "read", retry: "read-again",
|
|
@@ -355,10 +307,8 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
355
307
|
}
|
|
356
308
|
if (state === "needs-decision")
|
|
357
309
|
attention.push(detail);
|
|
358
|
-
// Every Needs you action wears its need's own words (needs-you.ts), on every surface.
|
|
359
310
|
if (state === "needs-decision" && primaryAction !== null && need === null) {
|
|
360
311
|
const read = assignmentStageOf({ state, primaryAction, review }, { token: work.status.token, views: work.status.views });
|
|
361
|
-
// A result review keeps its own, more specific words (See what is missing, Open the failed check).
|
|
362
312
|
if (read.stage === "needs-you" && read.need !== undefined && read.need !== "other" && read.need !== "review-result")
|
|
363
313
|
primaryAction = { ...primaryAction, label: NEEDS[read.need].action.label };
|
|
364
314
|
}
|
|
@@ -389,8 +339,6 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
389
339
|
const publication = result === null ? null : store.publicationForRun(result.id);
|
|
390
340
|
const lead = state === "complete" || state === "cancelled" || access.principal !== "operator" ? null : leadClaimOf(store, family.root.id, now, access.viewer);
|
|
391
341
|
const readiness = receipt === null ? null : readinessOf(store, receipt, current.repo, review);
|
|
392
|
-
// Existing saved inputs and output, read only after family admission. Keep
|
|
393
|
-
// polling briefs small; full reads disclose exactly which excerpts are shortened.
|
|
394
342
|
const planId = result?.planRevision == null ? null : store.getPlanRevision(result.planRevision)?.artifact;
|
|
395
343
|
const plan = planId == null ? store.latestPlanArtifact(current.refId) : store.getArtifact(planId);
|
|
396
344
|
const selected = [plan, ...["terminal-diff", "check-log", "report", "handoff"].map(kind => artifacts.filter(artifact => artifact.kind === kind).at(-1) ?? null)].filter((one) => one !== null);
|
|
@@ -407,14 +355,11 @@ export function assignmentOf(store, taskId, now, access, root, memo) {
|
|
|
407
355
|
publication: publication === null ? null : { state: publication.state, prUrl: publication.prUrl, remoteState: publication.remoteState },
|
|
408
356
|
review, deployment: { status: "not-recorded" }, readiness, ...(need === null ? {} : { need }), ...(lead === null ? {} : { lead }), ...(earlierActive.length === 0 ? {} : { earlierActive: earlierActive.length, earlierRunning }) };
|
|
409
357
|
}
|
|
410
|
-
/** The result's shown verdict and completion blockers (task-status.ts), from the receipt, the project's approved check
|
|
411
|
-
* and the automatic review. A HIGH finding a revision already took is resolved there. */
|
|
412
358
|
function readinessOf(store, receipt, repo, review) {
|
|
413
359
|
const report = receipt.completionKind === "research-report";
|
|
414
360
|
const high = review === null || review.sentBackAs !== null || review.state !== "reviewed" ? 0 : review.high.length;
|
|
415
361
|
const checkRequired = olderStoreSafe(() => requiredCheckCommandFor(store, repo, receipt.taskId, receipt.checks.level), null) !== null;
|
|
416
362
|
const matrix = receipt.proof?.matrix ?? [];
|
|
417
|
-
// The approved check as every surface reads it: a recorded pass the saved receipt can't show doesn't count.
|
|
418
363
|
const checks = receiptChecksOf(receipt);
|
|
419
364
|
const backing = checkBackingOf(checks);
|
|
420
365
|
const verdict = shownVerdictOf(receipt.proof?.verdict ?? null, { checkFailed: !report && checks?.status === "failed", highFindings: high,
|
|
@@ -425,7 +370,7 @@ function readinessOf(store, receipt, repo, review) {
|
|
|
425
370
|
}
|
|
426
371
|
function admittedOwner(store, taskId, owner, now, root) {
|
|
427
372
|
if (owner.kind !== "coordinator")
|
|
428
|
-
return null;
|
|
373
|
+
return null;
|
|
429
374
|
const row = store.handle.prepare("SELECT projects_json AS repos, revoked_at FROM credential WHERE id = ? AND kind = 'coordinator'").get(owner.id);
|
|
430
375
|
if (row === undefined || row["revoked_at"] !== null)
|
|
431
376
|
return null;
|
|
@@ -458,8 +403,6 @@ export function claimAssignment(store, taskId, owner, now, root) {
|
|
|
458
403
|
return { ok: true, assignment };
|
|
459
404
|
});
|
|
460
405
|
}
|
|
461
|
-
/** Diagnostic only: artifact availability does not authorize or block a human
|
|
462
|
-
* handoff. Deployment independently validates its actual native check. */
|
|
463
406
|
export function assignmentEvidenceIntact(store, root, receipt) {
|
|
464
407
|
try {
|
|
465
408
|
const family = store.taskFamilyOf(receipt.taskId, null, true);
|
|
@@ -480,55 +423,40 @@ function acknowledgeCurrent(store, current, receiptDigest, actor, now, root, acc
|
|
|
480
423
|
if (!/^[a-f0-9]{64}$/.test(receiptDigest) || current.receipt?.digest !== receiptDigest)
|
|
481
424
|
return { ok: false, reason: "stale", message: "The result changed. Read the current assignment before checking it." };
|
|
482
425
|
const receipt = current.receipt;
|
|
483
|
-
// The nightly check of main is a check only (release-once.md, part 3): nobody completes it.
|
|
484
426
|
if (store.handle.prepare("SELECT 1 AS hit FROM nightly_check WHERE task = ?").get(current.receipt.taskId) !== undefined)
|
|
485
427
|
return { ok: false, reason: "check-only", message: "The nightly check of main is only a check; it isn't completed." };
|
|
486
|
-
// Toolroll is still proving its build stopped (stop-proof.ts): a wait that clears on its own, said as one, so a
|
|
487
|
-
// release waits for it instead of stopping.
|
|
488
428
|
if (current.state !== "ready-to-check" && current.state !== "complete" && current.need != null && "wait" in current.need && STOP_WAITS.has(current.need.wait)) {
|
|
489
429
|
return { ok: false, reason: "stopping", message: `Toolroll is still making sure ${current.need.build === null ? "the build" : `build #${current.need.build}`} stopped. This clears on its own.` };
|
|
490
430
|
}
|
|
491
431
|
if (current.state !== "ready-to-check" && current.state !== "complete")
|
|
492
432
|
return { ok: false, reason: "not-ready", message: "This assignment still has unresolved execution, scope or decisions." };
|
|
493
|
-
// A release task completes only while its release approval stands for it (release-once.md, liveReleaseOf).
|
|
494
433
|
const release = liveReleaseOf(store, current.receipt.taskId, "complete", now);
|
|
495
434
|
if (release.applies && !release.ok)
|
|
496
435
|
return { ok: false, reason: "release", message: `This release can't be completed: ${release.why}.` };
|
|
497
|
-
// A laptop's local owner (no password) completes ordinary work only: its exact act, still standing, and the one work
|
|
498
|
-
// rule (scope.ts localWorkEligible), read here in the completion's own transaction, on every road that completes.
|
|
499
436
|
const local = localCompletionRefusal(store, actor, [receipt.taskId, current.rootId], receipt.runId, root);
|
|
500
437
|
if (local !== null)
|
|
501
438
|
return local;
|
|
502
|
-
// Who is completing, from trusted context (approval policy §1.7a): a person, or a machine credential (the lead's
|
|
503
|
-
// token, a remote API run) that may complete ordinary work but is never the second person on protected work.
|
|
504
439
|
const person = actor.startsWith("operator:") && !machineActing() ? actor.slice("operator:".length) : null;
|
|
505
440
|
const marked = actor.startsWith("operator:") ? (person === null ? COMPLETION_BY_MACHINE : COMPLETION_BY_PERSON) : null;
|
|
506
|
-
// A fast start's Accept backstop (fast-start.ts): a person only, and only a change that stayed small.
|
|
507
441
|
const grown = fastCompletionProblem(store, receipt.taskId, receipt.runId, person);
|
|
508
442
|
if (grown !== null)
|
|
509
443
|
return { ok: false, reason: "not-ready", message: grown };
|
|
510
444
|
if (current.state !== "complete") {
|
|
511
|
-
// The one readiness guard: a failed or missing required check, an unresolved requirement or HIGH finding refuses.
|
|
512
445
|
const blockers = current.readiness?.blockers ?? [];
|
|
513
446
|
if (blockers.length > 0)
|
|
514
447
|
return { ok: false, reason: "not-ready", message: blockers.map(one => one.message).join(" ") };
|
|
515
|
-
// v102: declared paths are only a promise. A result whose actual diff reaches protected files, on a
|
|
516
|
-
// scope one person approved, completes only by someone else — two people have then seen the work.
|
|
517
448
|
const problem = store.protectedResultProblem(receipt.taskId, familyChangedFiles(store, receipt.taskId, receipt.runId, root), person);
|
|
518
449
|
if (problem !== null)
|
|
519
450
|
return { ok: false, reason: "approval-rules", message: problem };
|
|
520
451
|
store.recordAction({ at: now.toISOString(), actor, repo: current.repo,
|
|
521
452
|
taskId: current.rootId, runId: receipt.runId, action: CHECK_ACTION, outcome: receiptDigest, source: "work", detail: marked });
|
|
522
453
|
const ref = store.lookupRef(current.rootId);
|
|
523
|
-
// Whose act this is, even outside a command that named its person: the operator who marked it.
|
|
524
454
|
const by = currentActor() ?? (actor.startsWith("operator:") ? { account: actor.slice("operator:".length), lead: false } : null);
|
|
525
455
|
if (ref !== null)
|
|
526
456
|
store.noteTaskAct(ref.id, "completed", now, undefined, by);
|
|
527
457
|
store.bumpWake();
|
|
528
458
|
}
|
|
529
459
|
else if (person !== null && personCompletionOwed(store, receipt.taskId, receipt.runId, receiptDigest, person, root)) {
|
|
530
|
-
// Already complete, but no person's completion is on record that lets protected work publish (a machine's, or one
|
|
531
|
-
// from before completions said who made them): this person's completion is recorded now (approval policy §1.7a).
|
|
532
460
|
store.recordAction({ at: now.toISOString(), actor, repo: current.repo,
|
|
533
461
|
taskId: current.rootId, runId: receipt.runId, action: CHECK_ACTION, outcome: receiptDigest, source: "work", detail: COMPLETION_BY_PERSON });
|
|
534
462
|
store.bumpWake();
|
|
@@ -547,10 +475,7 @@ export function checkAssignment(store, taskId, receiptDigest, owner, now, root =
|
|
|
547
475
|
return acknowledgeCurrent(store, current, receiptDigest, actorOf(owner), now, root, { principal: "coordinator", repos: [current.repo] });
|
|
548
476
|
});
|
|
549
477
|
}
|
|
550
|
-
/** The signed-in user can mark the same exact receipt handled without taking
|
|
551
|
-
* lead ownership. This records review, never check success or new authority. */
|
|
552
478
|
export function checkAssignmentAsOperator(store, taskId, receiptDigest, who, now, root = evidenceRoot(homedir())) {
|
|
553
|
-
// Completing is this person's act (or their lead's): it never pings them.
|
|
554
479
|
return withActor(currentActor() ?? { account: who.name, lead: false }, () => store.transact(() => {
|
|
555
480
|
if (!reproveApprover(store, who).ok)
|
|
556
481
|
return { ok: false, reason: "unauthenticated", message: "Sign in again before marking this result complete." };
|
|
@@ -561,9 +486,7 @@ export function checkAssignmentAsOperator(store, taskId, receiptDigest, who, now
|
|
|
561
486
|
return acknowledgeCurrent(store, current, receiptDigest, `operator:${who.name}`, now, root, access);
|
|
562
487
|
}));
|
|
563
488
|
}
|
|
564
|
-
/** The acceptance's own ledger act, as a separate Accept request records it. */
|
|
565
489
|
export const ACCEPT_ACTION = "task accept-proof";
|
|
566
|
-
/** Only a person's check stands between this result and done: its proof is short for that alone, and nobody accepted it. */
|
|
567
490
|
export function personCheckPending(receipt) {
|
|
568
491
|
return receipt !== null && receipt.proofAcceptance === null && manualReviewOnly(receipt.proof === null ? null : { verdict: receipt.proof.verdict, reasons: receipt.proof.reasons, matrix: receipt.proof.matrix });
|
|
569
492
|
}
|
|
@@ -574,32 +497,17 @@ class Undone extends Error {
|
|
|
574
497
|
this.result = result;
|
|
575
498
|
}
|
|
576
499
|
}
|
|
577
|
-
/** An acceptance this receipt owes before it finishes, by the result page's own rule: the person's own check
|
|
578
|
-
* (no reason needed), or an exception a report that doesn't match its changes needs a reason for. Null when
|
|
579
|
-
* Accept and finish is a plain completion: nothing is owed (no proof, a failed check, or a verified result),
|
|
580
|
-
* or it was already accepted. */
|
|
581
500
|
export function owedAcceptance(receipt, blockers = []) {
|
|
582
501
|
if (receipt === null || receipt.proofAcceptance !== null)
|
|
583
502
|
return null;
|
|
584
503
|
if (personCheckPending(receipt))
|
|
585
504
|
return "person-check";
|
|
586
|
-
// An unresolved requirement is resolved only by an acceptance that says why.
|
|
587
505
|
if (blockers.some(one => one.key === "criteria"))
|
|
588
506
|
return "exception";
|
|
589
507
|
return cantAcceptYetOf(receipt.proof?.verdict ?? null, receipt.proof?.reasons ?? [], false) === ACCEPT_NEEDS_REASON ? "exception" : null;
|
|
590
508
|
}
|
|
591
|
-
/** Accept and finish: the person's acceptance of the exact result they read and its completion, in one
|
|
592
|
-
* transaction. Whether an acceptance is owed is decided here, against the receipt as it stands: only a
|
|
593
|
-
* person's own check or a reasoned exception records one (with its ledger act); an exception without its
|
|
594
|
-
* reason is refused; anything else is the plain completion Mark complete always was. The completion names the receipt the acceptance produced, under the
|
|
595
|
-
* same digest a separate Accept then Mark complete leave. `receiptDigest` is the receipt as read, before
|
|
596
|
-
* accepting (`runId`, when named, must be its run); any other change refuses both, and a refused completion
|
|
597
|
-
* keeps no acceptance. `finish` completes the receipt (Mark complete by default; Complete and open a pull
|
|
598
|
-
* request passes its own). */
|
|
599
509
|
export function acceptAndCompleteAsOperator(store, taskId, input, who, now, root = evidenceRoot(homedir()), finish = digest => checkAssignmentAsOperator(store, taskId, digest, who, now, root)) {
|
|
600
510
|
try {
|
|
601
|
-
// A savepoint inside the transaction: a refused completion takes its acceptance back with it even when a caller's
|
|
602
|
-
// own transaction holds this one (the terminal's local accept, a chat tap), not only when this one is outermost.
|
|
603
511
|
return withActor(currentActor() ?? { account: who.name, lead: false }, () => store.transact(() => store.savepoint(() => {
|
|
604
512
|
if (!reproveApprover(store, who).ok)
|
|
605
513
|
return { ok: false, reason: "unauthenticated", message: "Sign in again before accepting this result." };
|
|
@@ -611,17 +519,12 @@ export function acceptAndCompleteAsOperator(store, taskId, input, who, now, root
|
|
|
611
519
|
if (receipt === null || (input.runId !== null && receipt.runId !== input.runId) || !/^[a-f0-9]{64}$/.test(input.receiptDigest) || receipt.digest !== input.receiptDigest) {
|
|
612
520
|
return { ok: false, reason: "stale", message: "This result changed. Open the current result before accepting it." };
|
|
613
521
|
}
|
|
614
|
-
// A local owner's acceptance: the same rule as its completion, before any acceptance is written.
|
|
615
522
|
const local = localCompletionRefusal(store, `operator:${who.name}`, [receipt.taskId, taskId, before.rootId], receipt.runId, root);
|
|
616
523
|
if (local !== null)
|
|
617
524
|
return local;
|
|
618
|
-
// Already complete, or nothing owed: the plain completion of the receipt as read.
|
|
619
525
|
const owed = before.state === "ready-to-check" ? owedAcceptance(receipt, before.readiness?.blockers ?? []) : null;
|
|
620
|
-
// An exception is accepted only with its reason: never a completion that skips it.
|
|
621
526
|
if (owed === "exception" && input.note === null)
|
|
622
527
|
return { ok: false, reason: "needs-reason", message: `${ACCEPT_NEEDS_REASON}.` };
|
|
623
|
-
// A person's own check is a person's, whoever holds the approver: never the lead's token or a remote API token in
|
|
624
|
-
// this chain (local-owner plan v2, item 4), whatever the caller decided before calling.
|
|
625
528
|
if (owed === "person-check" && machineActing())
|
|
626
529
|
return { ok: false, reason: "person-required", message: MACHINE_CANT_CHECK };
|
|
627
530
|
let digest = receipt.digest;
|
|
@@ -655,9 +558,6 @@ function noteAssignmentHandoff(store, assignment, now) {
|
|
|
655
558
|
kind: "assignment-handoff", source: { taskRef: ref.id }, subject: assignment.state === "cancelled" ? "Assignment cancelled" : assignment.state === "ready-to-check" ? "Ready" : "Assignment needs a decision",
|
|
656
559
|
body: assignment.detail, link: `/t/${encodeURIComponent(assignment.rootId)}` }, now);
|
|
657
560
|
}
|
|
658
|
-
/** The ordinary worker reconciles at most 50 owned roots per pass, and skips a
|
|
659
|
-
* pass when nothing moved (sweep-gate.ts). A lost wakeup is recovered after
|
|
660
|
-
* restart; immutable notification keys dedupe it. */
|
|
661
561
|
export function syncAssignmentHandoffs(store, now, repos, root) {
|
|
662
562
|
if (repos.length === 0)
|
|
663
563
|
return;
|
|
@@ -678,9 +578,6 @@ export function syncAssignmentHandoffs(store, now, repos, root) {
|
|
|
678
578
|
store.setServiceCursor(key, rows.length < 50 ? 0 : Number(rows.at(-1)["id"]), now);
|
|
679
579
|
}));
|
|
680
580
|
}
|
|
681
|
-
/** The history of assignment handoffs sent to people (the `assignment-handoff` notifications), read by cursor. It is
|
|
682
|
-
* not a delivery path: nothing is saved, replayed or acknowledged here. Leads receive their updates through the
|
|
683
|
-
* assignment inbox (assignment-delivery.ts), the one road results take to a lead. */
|
|
684
581
|
export function assignmentUpdates(store, now, access, query, root) {
|
|
685
582
|
const after = Number.isSafeInteger(query.after) && query.after >= 0 ? query.after : 0;
|
|
686
583
|
const limit = Math.max(1, Math.min(100, Math.floor(query.limit) || 50));
|
|
@@ -701,42 +598,38 @@ export function assignmentUpdates(store, now, access, query, root) {
|
|
|
701
598
|
});
|
|
702
599
|
return { events, nextCursor: page.length === 0 ? after : Number(page.at(-1)["id"]), hasMore: rows.length > limit };
|
|
703
600
|
}
|
|
704
|
-
/** The waits of a build Toolroll is still proving stopped by itself (needs-you.ts processNeedOf). */
|
|
705
601
|
const STOP_WAITS = new Set(["build-finishing", "build-checking", "build-stopping"]);
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
* own and its family's root) must pass the shared work rule — no release, no protected work (declared or actually
|
|
711
|
-
* changed), nothing a coordinator filed. Read inside the completion's transaction.
|
|
712
|
-
*/
|
|
602
|
+
export function personCompletionRefusal(store, taskId, runId, person, root, local = null) {
|
|
603
|
+
const own = local === null || person === null ? null : localOwnerCompletionProblem(store, person, [taskId, local.rootId], runId, root);
|
|
604
|
+
return own ?? fastCompletionProblem(store, taskId, runId, person) ?? store.protectedResultProblem(taskId, familyChangedFiles(store, taskId, runId, root), person);
|
|
605
|
+
}
|
|
713
606
|
function localCompletionRefusal(store, actor, taskIds, runId, root) {
|
|
714
607
|
const local = currentLocalOwner();
|
|
715
608
|
if (local === null)
|
|
716
609
|
return null;
|
|
717
610
|
if (!localOwnerInFlight(local) || !localOwnerStandsNow(store, local))
|
|
718
611
|
return { ok: false, reason: "local-owner", message: LOCAL_OWNER_LAPSED };
|
|
719
|
-
const instead = localOwnerRefusal(store.accountOf(local.account)?.passwordSet === true, "/");
|
|
720
|
-
const then = instead.action === "Set a password" ? "Set a password first: run `toolroll password set`." : instead.message;
|
|
721
612
|
if (local.act !== "complete-task" || actor !== `operator:${local.account}`)
|
|
722
|
-
return { ok: false, reason: "local-owner", message: `This needs your password. ${
|
|
723
|
-
|
|
724
|
-
|
|
613
|
+
return { ok: false, reason: "local-owner", message: `This needs your password. ${localOwnerThen(store, local.account)}` };
|
|
614
|
+
const problem = localOwnerCompletionProblem(store, local.account, taskIds, runId, root);
|
|
615
|
+
return problem === null ? null : { ok: false, reason: "local-owner", message: problem };
|
|
616
|
+
}
|
|
617
|
+
function localOwnerThen(store, account) {
|
|
618
|
+
const instead = localOwnerRefusal(store.accountOf(account)?.passwordSet === true, "/");
|
|
619
|
+
return instead.action === "Set a password" ? "Set a password first: run `toolroll password set`." : instead.message;
|
|
620
|
+
}
|
|
621
|
+
export function localOwnerCompletionProblem(store, account, taskIds, runId, root) {
|
|
725
622
|
const changed = familyChangedFiles(store, taskIds[0], runId, root, { missing: "unknown" });
|
|
726
623
|
for (const taskId of new Set(taskIds)) {
|
|
727
|
-
const eligible = localWorkEligible(store,
|
|
624
|
+
const eligible = localWorkEligible(store, account, taskId, { act: "complete", changed });
|
|
728
625
|
if (!eligible.ok)
|
|
729
|
-
return
|
|
626
|
+
return `${eligible.message} ${localOwnerThen(store, account)}`;
|
|
730
627
|
}
|
|
731
628
|
return null;
|
|
732
629
|
}
|
|
733
|
-
// ---- Local owner, slice 1 (docs/plans/local-owner-acts.md §3): accept a result in the terminal. Kept last.
|
|
734
|
-
/** What a machine caller hears when the result owes a person's own check. */
|
|
735
630
|
export const MACHINE_CANT_CHECK = "Only a person can say they checked this result. Open it in Toolroll and accept it there.";
|
|
736
|
-
/** The terminal's accept, as the ledger keeps it: the exact request (run and receipt as read) and the receipt it made. */
|
|
737
631
|
export const LOCAL_ACCEPT_ACTION = "task complete (local owner)";
|
|
738
632
|
const LOCAL_STALE = { ok: false, reason: "stale", message: "This result changed. Look at the new one before accepting it." };
|
|
739
|
-
/** This owner's earlier terminal accept of exactly this run and receipt, from its ledger binding; null when none. */
|
|
740
633
|
function localAcceptanceOf(store, rootId, account, runId, digest, request) {
|
|
741
634
|
const rows = store.handle.prepare("SELECT outcome, detail FROM action_ledger WHERE action = ? AND task_id = ? AND actor = ? AND run_id = ? ORDER BY id DESC")
|
|
742
635
|
.all(LOCAL_ACCEPT_ACTION, rootId, `operator:${account}`, runId);
|
|
@@ -752,24 +645,11 @@ function localAcceptanceOf(store, rootId, account, runId, digest, request) {
|
|
|
752
645
|
if (bound.v !== 1 || bound.digest !== digest || typeof bound.completed !== "string")
|
|
753
646
|
continue;
|
|
754
647
|
const outcome = String(row["outcome"]);
|
|
755
|
-
// A replay is the whole request again (Codex review 3, finding 2): the same pins, the same "I checked it", the same
|
|
756
|
-
// reason. Anything else about an accepted result is a different request, never reported as saved.
|
|
757
648
|
const same = bound.checked === request.checked && (bound.reason ?? null) === request.reason;
|
|
758
649
|
return { completed: bound.completed, accepted: outcome === "person-check" || outcome === "exception" ? outcome : null, same };
|
|
759
650
|
}
|
|
760
651
|
return null;
|
|
761
652
|
}
|
|
762
|
-
/**
|
|
763
|
-
* The terminal's Accept (local-owner plan §3, slice 1): the laptop's local owner, with no password, accepts the exact
|
|
764
|
-
* result its screen read (`runId` and `receiptDigest`, pinned when the screen opened) and completes it, in one
|
|
765
|
-
* transaction. Never a password check: the owner is the one in flight now, acting as exactly `complete-task`, still
|
|
766
|
-
* standing (local mode on at its generation, the account at its generation), and the approver is minted from that,
|
|
767
|
-
* then re-proved by `acceptAndCompleteAsOperator`, which keeps every rule a completion has (exact receipt and run,
|
|
768
|
-
* project access, slice 0's work rule, failed-check and protected-work blockers, rollback of the acceptance if the
|
|
769
|
-
* completion is refused). What is owed decides what the request must carry: a person's own check needs `checked`, an
|
|
770
|
-
* exception needs `reason` (already trimmed and validated by the command). The request and the receipt it produced are
|
|
771
|
-
* recorded; the same request again answers "already" after re-proving the owner, and writes nothing.
|
|
772
|
-
*/
|
|
773
653
|
export function completeAsLocalOwner(store, taskId, input, now, root = evidenceRoot(homedir())) {
|
|
774
654
|
try {
|
|
775
655
|
return store.transact(() => {
|
|
@@ -784,7 +664,6 @@ export function completeAsLocalOwner(store, taskId, input, now, root = evidenceR
|
|
|
784
664
|
const before = assignmentOf(store, taskId, now, access, root);
|
|
785
665
|
if (before === null || !store.accountCanAccess(who.name, before.repo))
|
|
786
666
|
return { ok: false, reason: "not-found", message: "That task is unavailable in your projects." };
|
|
787
|
-
// The same request again: recognised from its binding and the receipt it produced, with the owner proved above.
|
|
788
667
|
const bound = localAcceptanceOf(store, before.rootId, who.name, input.runId, input.receiptDigest, { checked: input.checked, reason: input.reason });
|
|
789
668
|
if (bound !== null && !bound.same)
|
|
790
669
|
return { ok: false, reason: "already-complete", message: "This result is already accepted." };
|
|
@@ -817,7 +696,6 @@ export function completeAsLocalOwner(store, taskId, input, now, root = evidenceR
|
|
|
817
696
|
catch (error) {
|
|
818
697
|
if (error instanceof Undone)
|
|
819
698
|
return error.result;
|
|
820
|
-
// Store.transact's own re-check found the bound owner no longer standing: the same refusal, said, never a crash.
|
|
821
699
|
if (error instanceof Error && error.message === LOCAL_OWNER_LAPSED)
|
|
822
700
|
return { ok: false, reason: "local-owner", message: LOCAL_OWNER_LAPSED };
|
|
823
701
|
throw error;
|