toolroll 0.9.104 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -5
- package/README.md +18 -20
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +17 -139
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +1 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +0 -17
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +0 -53
- package/dist/local-owner.js +2 -93
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +0 -20
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +0 -100
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +0 -25
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +4 -567
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +21 -555
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +1 -88
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +13 -493
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +6 -135
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +9 -227
- package/dist/server/tasks.js +5 -539
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +0 -75
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +17 -28
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +16 -36
- package/dist/tui.js +1 -1
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +4 -3
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -350
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1985
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -540
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -43
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -61
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -170
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -39
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1098
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -81
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -60
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -343
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -108
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -48
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -202
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
|
@@ -1,25 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Which approval authorities stand, as ONE SQL predicate every dispatch belt shares (docs/plans/approval-policy.md
|
|
3
|
-
* §1.5): the queue's dispatch query, the work index, and the claim and build belts (`Store.modeApprovalLive`).
|
|
4
|
-
*
|
|
5
|
-
* An allowlist, never a deny-list: a person's yes (`password`, `chat`) stands unless a machine made that seal; a mode
|
|
6
|
-
* or a flow grant stands while its signature does; a standing order's firing (`schedule`, or an old firing stored as
|
|
7
|
-
* `password`) stands while its approver can still approve in the project; an automatic release seal (`auto-check`,
|
|
8
|
-
* `auto-green`: docs/plans/auto-approve-green.md) stands on its own evidence row while the project's setting is on and
|
|
9
|
-
* the person who turned it on can still approve there. Everything else — the lead (`lead`, which
|
|
10
|
-
* phase 1 never lets stand), a null basis, a word this code doesn't write — stands on nothing.
|
|
11
|
-
*
|
|
12
|
-
* The seal's origin is read from the acts recorded AT the seal's own instant, exactly as scope.ts sealOriginOf reads
|
|
13
|
-
* it: an older proof for the same bytes never vouches for a later seal.
|
|
14
|
-
*/
|
|
15
1
|
import { grantStandsSql } from "./flow-unattended.js";
|
|
16
2
|
import { accountReachesSql } from "./project-access.js";
|
|
17
3
|
import { autoSealSql } from "./release-authority.js";
|
|
18
|
-
/** The proofs a person gives (src/person-proof.ts), as an SQL list. */
|
|
19
4
|
const PERSON_PROOFS = "('password-now', 'sso-now', 'fresh-password', 'fresh-sso', 'session', 'cli-login', 'chat', 'passkey', 'local-owner')";
|
|
20
|
-
/** SQL over a `task_scope` alias and a repo expression: whether that row's approval authority stands at `now` (an SQL
|
|
21
|
-
* expression, used exactly four times: the mode and grant clauses, the release's expiry and a fast start's window). It never asks whether the row is approved.
|
|
22
|
-
* COALESCE: a NULL basis would make the OR chain NULL, and NOT NULL reads as "not dead"; NULL stands on nothing. */
|
|
23
5
|
export function authorityStandsSql(scope, repo, now) {
|
|
24
6
|
return `COALESCE((((COALESCE(${scope}.approval_basis, '') IN ('password', 'chat') AND NOT ${machineSealSql(scope)}
|
|
25
7
|
AND (${personSealSql(scope)} OR NOT ${automationSql(scope)} OR ${approverStandsSql(scope, repo)}))
|
|
@@ -34,64 +16,29 @@ export function authorityStandsSql(scope, repo, now) {
|
|
|
34
16
|
AND ${releaseStandsSql(scope, now)} AND ${localSealStandsSql(scope, repo)} AND ${fastStartStandsSql(scope, now)}
|
|
35
17
|
AND (instr(COALESCE(${scope}.approved_route_json, ''), '"trial"') = 0 OR ${trialSealStandsSql(scope)})), 0)`;
|
|
36
18
|
}
|
|
37
|
-
/**
|
|
38
|
-
* SQL, conjunctive with every alternative above (plain-toolroll.md P2.4): narrow only. A fast start's seal dispatches only
|
|
39
|
-
* inside its start window, and only as what it claims to be: a person's own ceremony yes to these exact bytes, proved at
|
|
40
|
-
* the seal's instant (`password`), or (one-step-chat.md C1) their own yes on a chat Start card (`chat`), which stands only
|
|
41
|
-
* on ONE complete chat proof row at the seal's instant carrying the fast marker (chatFastProofSql). Losing the marker
|
|
42
|
-
* leaves an ordinary person approval; nothing here grants anything.
|
|
43
|
-
*/
|
|
44
19
|
export function fastStartStandsSql(scope, now) {
|
|
45
20
|
return `NOT EXISTS (SELECT 1 FROM task_ref fsr WHERE fsr.backend = 'built-in' AND fsr.external_id = ${scope}.task_id AND fsr.fast_start_until IS NOT NULL
|
|
46
21
|
AND (fsr.fast_start_until <= ${now}
|
|
47
22
|
OR NOT (COALESCE(${scope}.approval_basis, '') = 'password' OR (COALESCE(${scope}.approval_basis, '') = 'chat' AND ${chatFastProofSql(scope)}))
|
|
48
23
|
OR ${machineSealSql(scope)} OR NOT ${personSealSql(scope)}))`;
|
|
49
24
|
}
|
|
50
|
-
/**
|
|
51
|
-
* SQL: a chat seal's fast-start proof — ONE `approval proved` row that matches all of: this task, the seal's approver,
|
|
52
|
-
* the seal's instant, outcome `chat`, and a detail that is valid JSON (checked before any json_extract, which would fail
|
|
53
|
-
* on anything else) whose `$.fastStart.rule` is the rule this build writes (fast-start.ts FAST_START_RULE), `$.at` the
|
|
54
|
-
* seal's instant and `$.digest` the approved digest. Facts split across rows never add up to one.
|
|
55
|
-
*/
|
|
56
25
|
export const chatFastProofSql = (scope) => `EXISTS (SELECT 1 FROM action_ledger cfp WHERE cfp.task_id = ${scope}.task_id AND cfp.action = 'approval proved'
|
|
57
26
|
AND cfp.actor = ${scope}.approved_by AND cfp.at = ${scope}.approved_at AND cfp.outcome = 'chat'
|
|
58
27
|
AND CASE WHEN json_valid(cfp.detail) THEN json_type(cfp.detail, '$.fastStart.rule') = 'text' AND json_extract(cfp.detail, '$.fastStart.rule') = 'small-v1'
|
|
59
28
|
AND json_type(cfp.detail, '$.at') = 'text' AND json_extract(cfp.detail, '$.at') = ${scope}.approved_at
|
|
60
29
|
AND json_type(cfp.detail, '$.digest') = 'text' AND json_extract(cfp.detail, '$.digest') = ${scope}.approved_digest
|
|
61
30
|
ELSE 0 END)`;
|
|
62
|
-
/**
|
|
63
|
-
* SQL, conjunctive with every alternative above (results routing slice 3): a task whose sealed route tries a cheaper
|
|
64
|
-
* model (its build leg's selection is a trial) stands only on a PERSON's own yes to these exact bytes — the ceremony
|
|
65
|
-
* (`password`) or their paired-chat tap (`chat`), with that person's proof at the seal's instant, and no machine's.
|
|
66
|
-
* A mode, a grant, a schedule, a carry, an automatic seal or the lead never stand for one, whatever else allows them.
|
|
67
|
-
* The route is matched as text, so a route that can't be read as JSON is held to it too (fail closed).
|
|
68
|
-
*/
|
|
69
31
|
export function trialSealStandsSql(scope) {
|
|
70
32
|
return `(COALESCE(${scope}.approval_basis, '') IN ('password', 'chat') AND NOT ${machineSealSql(scope)} AND ${personSealSql(scope)})`;
|
|
71
33
|
}
|
|
72
|
-
/**
|
|
73
|
-
* SQL, conjunctive with every alternative above (easy-start plan C5): a seal a local owner gave (its proof row at the
|
|
74
|
-
* seal's instant says `local-owner`) stands only while local mode is on, for that owner, at the local generation its
|
|
75
|
-
* proof names (approvalProofDetail's " · local <generation> <transport> · "), and while its project's checks aren't
|
|
76
|
-
* stored as unsandboxed. Turning local mode off, or moving its generation, stops every such seal dispatching.
|
|
77
|
-
*/
|
|
78
34
|
export const localSealStandsSql = (scope, repo) => `NOT EXISTS (SELECT 1 FROM action_ledger lp WHERE lp.task_id = ${scope}.task_id AND lp.action = 'approval proved'
|
|
79
35
|
AND lp.actor = ${scope}.approved_by AND lp.at = ${scope}.approved_at AND lp.outcome = 'local-owner'
|
|
80
36
|
AND NOT (EXISTS (SELECT 1 FROM local_mode lm WHERE lm.id = 1 AND lm.enabled = 1 AND lm.owner = lp.actor
|
|
81
37
|
AND lp.detail LIKE '% · local ' || lm.generation || ' %')
|
|
82
38
|
AND NOT EXISTS (SELECT 1 FROM project_check_access lca WHERE lca.repo = ${repo} AND lca.level = 'unsandboxed')))`;
|
|
83
|
-
/** SQL: a `carried` seal stands only on its own carry row — this task, this approved digest, this candidate, and the
|
|
84
|
-
* reference `<authority>:<carry>` the carry transaction wrote (release-once.md). */
|
|
85
39
|
export const carrySealSql = (scope) => `EXISTS (SELECT 1 FROM release_carry rc2 JOIN release_authority ra2 ON ra2.id = rc2.authority
|
|
86
40
|
WHERE rc2.task_id = ${scope}.task_id AND rc2.scope_digest = ${scope}.approved_digest AND rc2.to_sha = ${scope}.candidate
|
|
87
41
|
AND ${scope}.mode_digest = ra2.id || ':' || rc2.id)`;
|
|
88
|
-
/**
|
|
89
|
-
* SQL: a task that belongs to a release authority (its anchor, or a carried commit) dispatches only as the current
|
|
90
|
-
* generation's tip while the release is open and unexpired, with the anchor's approver still an active approver who
|
|
91
|
-
* can reach the project and the anchor's approval on its exact sealed digest. A task that belongs to no release passes.
|
|
92
|
-
* The claim and build belts read the whole predicate (scope.ts liveReleaseOf) besides. "Open and unexpired" here is
|
|
93
|
-
* release-authority.ts releaseStateAt(a, now) === "open", written in SQL.
|
|
94
|
-
*/
|
|
95
42
|
export const releaseStandsSql = (scope, now) => `((NOT EXISTS (SELECT 1 FROM release_authority rx WHERE rx.anchor_task = ${scope}.task_id)
|
|
96
43
|
AND NOT EXISTS (SELECT 1 FROM release_carry cx WHERE cx.task_id = ${scope}.task_id))
|
|
97
44
|
OR EXISTS (SELECT 1 FROM release_authority ra WHERE ra.tip_task = ${scope}.task_id AND ra.state = 'open' AND ra.expires_at > ${now}
|
|
@@ -100,22 +47,16 @@ export const releaseStandsSql = (scope, now) => `((NOT EXISTS (SELECT 1 FROM rel
|
|
|
100
47
|
AND EXISTS (SELECT 1 FROM task_scope an JOIN approver ap ON ap.name = an.approved_by
|
|
101
48
|
WHERE an.task_id = ra.anchor_task AND an.approved_digest = ra.anchor_digest AND an.digest = ra.anchor_digest
|
|
102
49
|
AND ap.revoked_at IS NULL AND ap.role = 'approver' AND ${accountReachesSql("ap", "ra.repo")})))`;
|
|
103
|
-
/** SQL: a machine made this seal — any proof at the seal's instant that isn't a person's (whatever its detail says,
|
|
104
|
-
* parsed or not: fail closed), or the lead's own approval act then. */
|
|
105
50
|
export const machineSealSql = (scope) => `(EXISTS (SELECT 1 FROM action_ledger mp WHERE mp.task_id = ${scope}.task_id AND mp.action = 'approval proved'
|
|
106
51
|
AND mp.actor = ${scope}.approved_by AND mp.at = ${scope}.approved_at AND mp.outcome NOT IN ${PERSON_PROOFS})
|
|
107
52
|
OR EXISTS (SELECT 1 FROM task_act la JOIN task_ref lr ON lr.id = la.task_ref AND lr.backend = 'built-in'
|
|
108
53
|
WHERE lr.external_id = ${scope}.task_id AND la.act = 'approved' AND la.lead = 1
|
|
109
54
|
AND la.account = ${scope}.approved_by AND la.at = ${scope}.approved_at))`;
|
|
110
|
-
/** SQL: a person's proof at the seal's instant for these exact bytes, its detail parsed (the versioned JSON record,
|
|
111
|
-
* whitespace and all, or the legacy text). */
|
|
112
55
|
export const personSealSql = (scope) => `EXISTS (SELECT 1 FROM action_ledger pp WHERE pp.task_id = ${scope}.task_id AND pp.action = 'approval proved'
|
|
113
56
|
AND pp.actor = ${scope}.approved_by AND pp.at = ${scope}.approved_at AND pp.outcome IN ${PERSON_PROOFS}
|
|
114
57
|
AND CASE WHEN json_valid(pp.detail) THEN json_extract(pp.detail, '$.v') = 1 AND json_type(pp.detail, '$.digest') = 'text'
|
|
115
58
|
AND json_extract(pp.detail, '$.digest') = ${scope}.approved_digest
|
|
116
59
|
ELSE pp.detail LIKE '% · generation % · digest ' || ${scope}.approved_digest END)`;
|
|
117
|
-
/** SQL: the task a standing order's firing filed (its own record of the firing). */
|
|
118
60
|
const automationSql = (scope) => `EXISTS (SELECT 1 FROM flow_trigger_event fe WHERE fe.task = ${scope}.task_id)`;
|
|
119
|
-
/** SQL: the seal's approver can still approve in the project. */
|
|
120
61
|
const approverStandsSql = (scope, repo) => `EXISTS (SELECT 1 FROM approver sched WHERE sched.name = ${scope}.approved_by AND sched.revoked_at IS NULL AND sched.role = 'approver'
|
|
121
62
|
AND ${accountReachesSql("sched", repo)})`;
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/** When an approval form asks for a password (docs/plans/plain-toolroll.md P1.3): one function every approve form reads,
|
|
2
|
-
* so the task page, the focused chat and the shared-action review never disagree. It only decides what a form shows;
|
|
3
|
-
* approve() proves the person, the freshness, the local owner and the digest again inside its own transaction, with
|
|
4
|
-
* the same two rules this reads (freshlyApprovable, localApprovalEligible).
|
|
5
|
-
*
|
|
6
|
-
* - `none`: Passwordless is on for this session, or this computer's local owner may approve this exact work.
|
|
7
|
-
* - `remembered`: a password typed on this session in the last fifteen minutes may stand for these terms; the field
|
|
8
|
-
* shows, and may be left empty.
|
|
9
|
-
* - `required`: a password typed now: protected or escalated work, terms an agent wrote, or nothing remembered.
|
|
10
|
-
* - `local-refused`: a local owner who can't approve this here, with where to go instead. */
|
|
11
1
|
import { freshlyApprovable, localApprovalEligible } from "./scope.js";
|
|
12
2
|
import { localOwnerRefusal } from "./local-owner.js";
|
|
13
3
|
export function approvalPasswordField(store, facts) {
|
package/dist/approval-policy.js
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Separation of duties (v102): a project's approval rules. Two can be on at
|
|
3
|
-
* once, and neither changes a thing until a project turns it on.
|
|
4
|
-
*
|
|
5
|
-
* - The person who filed a task can't approve it ("not the requester").
|
|
6
|
-
* - Protected work (the whole project, or tasks that touch protected paths)
|
|
7
|
-
* needs two different people to approve the same exact scope, and an AI
|
|
8
|
-
* subagent or an operating mode can never decide it.
|
|
9
|
-
*
|
|
10
|
-
* The store enforces these at the one place every approval is sealed
|
|
11
|
-
* (`Store.sealScopeApproval`); this module holds the pure parts.
|
|
12
|
-
*/
|
|
13
|
-
/** A filer from a name as the ledger writes it: a subagent's ends " (AI)"; a coordinator's starts "coordinator:"; none is automation. */
|
|
14
1
|
export function filerFor(name) {
|
|
15
2
|
if (name == null || name === "")
|
|
16
3
|
return { name: null, kind: "automation" };
|
|
@@ -21,8 +8,6 @@ export function filerFor(name) {
|
|
|
21
8
|
return { name, kind: "person" };
|
|
22
9
|
}
|
|
23
10
|
export const NO_RULES = { notRequester: false, protectProject: false, protectedPaths: [] };
|
|
24
|
-
/** A path as the rules compare it: forward slashes, no "." or "..", lower case (macOS
|
|
25
|
-
* checkouts ignore case). null when it climbs out of the checkout. */
|
|
26
11
|
function normal(path) {
|
|
27
12
|
const parts = [];
|
|
28
13
|
for (const part of path.trim().replace(/\\/g, "/").toLowerCase().split("/")) {
|
|
@@ -60,12 +45,6 @@ function globRegex(glob) {
|
|
|
60
45
|
}
|
|
61
46
|
return new RegExp(`^${out}(?:/.*)?$`);
|
|
62
47
|
}
|
|
63
|
-
/** Whether a task that says it touches `touch` may touch something under
|
|
64
|
-
* `protectedGlob`, or a changed file is protected. A plain path covers
|
|
65
|
-
* itself and everything under it; a pattern with no slash matches at any
|
|
66
|
-
* depth (as in .gitignore); two patterns that could reach the same files
|
|
67
|
-
* count as overlapping; a path that climbs out of the checkout is
|
|
68
|
-
* protected. Every doubt errs toward protecting. */
|
|
69
48
|
export function touchesProtected(touch, protectedGlob) {
|
|
70
49
|
const g = normal(protectedGlob);
|
|
71
50
|
if (g === null || g === "")
|
|
@@ -78,11 +57,9 @@ export function touchesProtected(touch, protectedGlob) {
|
|
|
78
57
|
if (!wild.test(a)) {
|
|
79
58
|
if (pattern.test(a))
|
|
80
59
|
return true;
|
|
81
|
-
// A protected pattern that lives inside this path (".github" holding ".github/workflows/**") is reached, whatever the name looks like.
|
|
82
60
|
const pb = literalPrefix(b);
|
|
83
61
|
if (pb === a || pb.startsWith(`${a}/`))
|
|
84
62
|
return true;
|
|
85
|
-
// A file ("docs/readme.md") is only itself; a folder ("infra", or a name with no extension) may hold anything a pattern reaches.
|
|
86
63
|
if (/\.[^/.]+$/.test(a))
|
|
87
64
|
return false;
|
|
88
65
|
return pattern.test(`${a}/x`) || pattern.test(`${a}/x/y.z`) || `${a}/`.startsWith(pb);
|
|
@@ -90,14 +67,11 @@ export function touchesProtected(touch, protectedGlob) {
|
|
|
90
67
|
const pa = literalPrefix(a), pb = literalPrefix(b);
|
|
91
68
|
return pa.startsWith(pb) || pb.startsWith(pa);
|
|
92
69
|
}
|
|
93
|
-
/** The changed files (from a build's diff) that the rules protect. */
|
|
94
70
|
export function protectedChanges(rules, changed) {
|
|
95
71
|
if (rules.protectProject)
|
|
96
72
|
return [...changed];
|
|
97
73
|
return changed.filter(file => rules.protectedPaths.some(glob => touchesProtected(file, glob)));
|
|
98
74
|
}
|
|
99
|
-
/** Whether a task's declared paths reach protected work. A task that
|
|
100
|
-
* declares no paths can't show it stays clear, so it counts as protected. */
|
|
101
75
|
export function isProtectedWork(rules, touches) {
|
|
102
76
|
if (rules.protectProject)
|
|
103
77
|
return true;
|
|
@@ -107,7 +81,6 @@ export function isProtectedWork(rules, touches) {
|
|
|
107
81
|
return true;
|
|
108
82
|
return touches.some(touch => rules.protectedPaths.some(glob => touchesProtected(touch, glob)));
|
|
109
83
|
}
|
|
110
|
-
/** Protected paths as a person types them: one per line or comma separated, trimmed, deduplicated, at most 50. */
|
|
111
84
|
export function parseProtectedPaths(raw) {
|
|
112
85
|
const paths = [...new Set(raw.split(/[\n,]/).map(clean).filter(one => one !== ""))];
|
|
113
86
|
if (paths.length > 50)
|
|
@@ -117,7 +90,6 @@ export function parseProtectedPaths(raw) {
|
|
|
117
90
|
return { ok: false, problem: "A protected path is 200 characters at most." };
|
|
118
91
|
return { ok: true, paths };
|
|
119
92
|
}
|
|
120
|
-
/** The rules in a line, for the ledger's before → after. */
|
|
121
93
|
export function rulesWords(rules) {
|
|
122
94
|
const parts = [
|
|
123
95
|
rules.notRequester ? "requester can't approve" : null,
|
|
@@ -125,7 +97,6 @@ export function rulesWords(rules) {
|
|
|
125
97
|
].filter((one) => one !== null);
|
|
126
98
|
return parts.length === 0 ? "no rules" : parts.join("; ");
|
|
127
99
|
}
|
|
128
|
-
/** What a person reads when the rules stop an approval. */
|
|
129
100
|
export function gateWords(gate) {
|
|
130
101
|
if (gate.verdict === "vote")
|
|
131
102
|
return gate.already
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings → Approval rules (v102): a project's separation of duties. An
|
|
3
|
-
* instance operator sets them (with their password, or a fresh sign-in with
|
|
4
|
-
* the identity provider); everyone else reads them. Every change is in the
|
|
5
|
-
* ledger, before → after.
|
|
6
|
-
*/
|
|
7
1
|
import { joinHtml } from "./html.js";
|
|
8
2
|
import { formRow, note, radios, settingsSection, switchInput, textarea } from "./server/kit.js";
|
|
9
3
|
import { kitSectionForm } from "./settings-kit.js";
|
|
@@ -12,10 +6,7 @@ const RULES_CSS = `.approval-rules{max-width:720px;min-width:0}.approval-rules f
|
|
|
12
6
|
`.approval-rules .choice input{margin:.2rem 0 0}.approval-rules .choice strong{display:block;font-size:.875rem;font-weight:500}.approval-rules .choice small{display:block;color:var(--muted-foreground);font-size:.8125rem;margin-top:2px}` +
|
|
13
7
|
`.approval-rules textarea{min-height:88px;font-family:var(--font-mono);font-size:.8125rem}.approval-rules .paths{margin:4px 0 0 26px}` +
|
|
14
8
|
`.approval-rules .current{margin:0 0 4px}.approval-rules .step-up{margin-top:16px}.approval-rules button[type=submit]{margin-top:14px}`;
|
|
15
|
-
/** The rules' style, and the same for the Releases section under its own class (so a page holds one `.approval-rules`
|
|
16
|
-
* form, not two). */
|
|
17
9
|
export const APPROVAL_RULES_CSS = RULES_CSS + RULES_CSS.replaceAll(".approval-rules", ".release-approval");
|
|
18
|
-
/** The rules in plain words, for anyone who can see the project. */
|
|
19
10
|
export function rulesSummary(rules) {
|
|
20
11
|
const parts = [];
|
|
21
12
|
if (rules.notRequester)
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/** Assignment reads and delivery acknowledgments. These adapters never start
|
|
2
|
-
* work, answer a decision, accept proof, or change an approval. */
|
|
3
1
|
import { buildReviewLines } from "./review-switch.js";
|
|
4
2
|
import { readFileSync, statSync } from "node:fs";
|
|
5
3
|
import { authenticateCoordinator } from "./coordinator.js";
|
|
@@ -12,8 +10,6 @@ import { parseContract } from "./contracts/contract.js";
|
|
|
12
10
|
import { ASSIGNMENT_INPUTS } from "./contracts/gateway-tools.js";
|
|
13
11
|
export const ASSIGNMENT_ACTIONS = Object.keys(ASSIGNMENT_INPUTS);
|
|
14
12
|
const failure = (reason, message) => ({ ok: false, reason, message });
|
|
15
|
-
/** The gateway's assignment tools: names and words. Each one's input is ASSIGNMENT_INPUTS[operation]
|
|
16
|
-
* (src/contracts/gateway-tools.ts), which `toolroll assignment` reads its flags with too. */
|
|
17
13
|
export const ASSIGNMENT_TOOLS = [
|
|
18
14
|
{ name: "get_assignment", operation: "show", description: "Read one assignment's root, current execution, owner, exact result and handoff receipt. Approval, proof and deployment remain separate facts." },
|
|
19
15
|
{ name: "list_assignment_updates", operation: "updates", description: "Read the history of assignment handoffs sent to people in your projects, after a cursor. History only: it delivers and acknowledges nothing. To receive your updates, use get_assignment_inbox." },
|
|
@@ -23,9 +19,6 @@ export const ASSIGNMENT_TOOLS = [
|
|
|
23
19
|
{ name: "get_assignment_inbox", operation: "inbox", description: "Receive a durable batch of your assignments' status changes. Use a stable consumer name. Until acknowledged, the same batch survives reconnects and restarts. Receiving never completes or reruns work." },
|
|
24
20
|
{ name: "acknowledge_assignment_delivery", operation: "ack", description: "Acknowledge receipt of an inbox batch after handling its updates. This advances only your delivery cursor; it never marks work complete, answers a decision or starts a revision." },
|
|
25
21
|
];
|
|
26
|
-
/** The CLI and MCP read an assignment call with the same schema; MCP reads it before dispatch too, and this protects
|
|
27
|
-
* direct adapter callers. A refusal is its path-named lines; a ref or project path with control characters, which
|
|
28
|
-
* JSON Schema can't say, is refused after parsing. */
|
|
29
22
|
export function readAssignmentArgs(operation, args) {
|
|
30
23
|
if (!ASSIGNMENT_ACTIONS.includes(operation))
|
|
31
24
|
return failure("usage", "Choose show, updates, claim, check, brief, inbox, or ack.");
|
|
@@ -47,16 +40,11 @@ function readAssignment(store, operation, args, now, access, root) {
|
|
|
47
40
|
const assignment = assignmentOf(store, String(args["ref"]), now, access, root);
|
|
48
41
|
return assignment === null ? failure("not-found", "No assignment with that task id is available in your projects.") : { ok: true, body: assignment };
|
|
49
42
|
}
|
|
50
|
-
/** Every read and mutation authenticates inside the same transaction as its
|
|
51
|
-
* projection. A cached name/allowlist cannot keep a revoked identity alive. */
|
|
52
43
|
export function assignmentForCoordinator(store, token, operation, args, now, evidenceRoot) {
|
|
53
44
|
const read = readAssignmentArgs(operation, args);
|
|
54
45
|
if (!read.ok)
|
|
55
46
|
return read;
|
|
56
47
|
args = read.value;
|
|
57
|
-
// Authenticate before maintenance, then authenticate again inside delivery.
|
|
58
|
-
// Reconciliation owns one short transaction per family and cannot sit under
|
|
59
|
-
// the delivery transaction's writer reservation.
|
|
60
48
|
if (operation === 'inbox') {
|
|
61
49
|
const authenticated = authenticateCoordinator(store, token);
|
|
62
50
|
if (!authenticated.ok)
|
|
@@ -159,8 +147,6 @@ function resultLines(body) {
|
|
|
159
147
|
`Next cursor: ${body.nextCursor}${body.hasMore ? " · more updates available" : ""}`,
|
|
160
148
|
];
|
|
161
149
|
}
|
|
162
|
-
/** Explicit secret source only. Never print secret values or discover default
|
|
163
|
-
* files. A bad explicit credential must not fall back to a local read. */
|
|
164
150
|
export function coordinatorToken(flags, env) {
|
|
165
151
|
const envName = flags.get("token-env"), path = flags.get("token-file");
|
|
166
152
|
if (envName !== undefined && path !== undefined)
|
package/dist/assignment-brief.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/** A bounded catch-up over saved project/task records, not conversation memory.
|
|
2
|
-
* Callers authenticate first and pass their current project ceiling. */
|
|
3
1
|
import { browserWorkActionHref } from './browser-crew.js';
|
|
4
2
|
import { createHash } from "node:crypto";
|
|
5
3
|
import { workIndexPage } from "./work-index.js";
|
|
@@ -7,11 +5,8 @@ import { publicChatText } from "./chat-display.js";
|
|
|
7
5
|
const sha = (value) => createHash("sha256").update(value).digest("hex");
|
|
8
6
|
const MAX_BYTES = 16_000;
|
|
9
7
|
const RECENT_MS = 7 * 24 * 60 * 60_000;
|
|
10
|
-
/** A full stop, question or exclamation mark followed by a new sentence. */
|
|
11
8
|
const SENTENCE_END = /[.!?](?=\s+["'“(]?([\p{Lu}\p{N}]))/gu;
|
|
12
|
-
/** An abbreviation's full stop ("e.g.", "E.g.", "etc."), in any case; "No." only before a number ("No. 5"). */
|
|
13
9
|
const ABBREVIATION = /\b(?:e\.g|i\.e|etc|vs|cf|approx|incl|mr|mrs|ms|dr|st)$/i;
|
|
14
|
-
/** A reason's first sentence, or its first line. */
|
|
15
10
|
export function firstSentenceOf(text) {
|
|
16
11
|
const line = text.split("\n")[0].trim();
|
|
17
12
|
for (const end of line.matchAll(SENTENCE_END)) {
|
|
@@ -22,8 +17,6 @@ export function firstSentenceOf(text) {
|
|
|
22
17
|
}
|
|
23
18
|
return line;
|
|
24
19
|
}
|
|
25
|
-
/** A project's active decisions, newest first: each one's title and its reason in one line (first sentence or
|
|
26
|
-
* line). Memory absent on an older database reads as no decisions. */
|
|
27
20
|
export function activeDecisionsOf(store, repo, text = publicChatText) {
|
|
28
21
|
try {
|
|
29
22
|
return store.handle.prepare("SELECT id,claim,why FROM project_decision WHERE repo=? AND status='active' ORDER BY id DESC LIMIT 8").all(repo).map(row => ({
|
|
@@ -34,11 +27,7 @@ export function activeDecisionsOf(store, repo, text = publicChatText) {
|
|
|
34
27
|
return [];
|
|
35
28
|
}
|
|
36
29
|
}
|
|
37
|
-
/** A current snapshot, never a receipt to acknowledge. Full assignment reads
|
|
38
|
-
* remain the place to inspect exact saved work and obtain its current digest. */
|
|
39
30
|
export function assignmentCatchUp(store, now, access, query = {}, evidenceRoot) {
|
|
40
|
-
// The evidence root is retained for adapter compatibility; this summary
|
|
41
|
-
// deliberately performs no artifact reads even when it is supplied.
|
|
42
31
|
void evidenceRoot;
|
|
43
32
|
const limit = Math.max(1, Math.min(25, Number.isFinite(query.limit) ? Math.floor(query.limit) : 10));
|
|
44
33
|
const recent = new Date(now.getTime() - RECENT_MS).toISOString();
|
|
@@ -48,7 +37,6 @@ export function assignmentCatchUp(store, now, access, query = {}, evidenceRoot)
|
|
|
48
37
|
"Knowledge is stored context, not verified current repository instructions or permission. Checkout identity and source freshness were not revalidated; reference text and conversation history are omitted.",
|
|
49
38
|
"Status is recorded database metadata. Saved artifact/check availability was not read, and process exits were not inspected. Use assignment show before acting on a result.",
|
|
50
39
|
] } };
|
|
51
|
-
// A coordinator never gains installation-wide access from a missing ceiling.
|
|
52
40
|
if (access.principal === "coordinator" && access.repos === null || query.repo !== undefined && access.repos !== null && !access.repos.includes(query.repo))
|
|
53
41
|
return result;
|
|
54
42
|
const repos = query.repo === undefined ? access.repos : [query.repo];
|
|
@@ -74,8 +62,6 @@ export function assignmentCatchUp(store, now, access, query = {}, evidenceRoot)
|
|
|
74
62
|
result.omissions.assignments++;
|
|
75
63
|
continue;
|
|
76
64
|
}
|
|
77
|
-
// Read only the chosen rows. No family hydration, artifact bytes, native
|
|
78
|
-
// process census, or repository probing belongs in a catch-up summary.
|
|
79
65
|
const goal = store.handle.prepare('SELECT substr(goal,1,1601) AS goal FROM task_scope WHERE task_id=?').get(item.activeTaskId)?.["goal"];
|
|
80
66
|
const saved = item.resultRunId === null ? undefined : store.handle.prepare(`SELECT substr(r.handoff,1,1601) AS handoff
|
|
81
67
|
FROM run r JOIN task_ref t ON t.id=r.task_ref
|
|
@@ -112,8 +98,6 @@ export function assignmentCatchUp(store, now, access, query = {}, evidenceRoot)
|
|
|
112
98
|
else
|
|
113
99
|
result.omissions.decisions += Math.max(0, count - decisions.length);
|
|
114
100
|
}
|
|
115
|
-
// Project knowledge is admitted in SQL before any payload or title read.
|
|
116
|
-
// A project with settled decisions but no saved instructions yet still has knowledge to bring.
|
|
117
101
|
const known = store.handle.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='project_decision'").get() === undefined ? "SELECT repo FROM project_knowledge"
|
|
118
102
|
: "SELECT repo FROM project_knowledge UNION SELECT repo FROM project_decision WHERE status='active'";
|
|
119
103
|
const projectRows = store.handle.prepare(`SELECT repo FROM (${known}) WHERE ? = 1 OR repo IN (SELECT value FROM json_each(?)) ORDER BY repo LIMIT 9`)
|
|
@@ -145,7 +129,7 @@ export function assignmentCatchUp(store, now, access, query = {}, evidenceRoot)
|
|
|
145
129
|
});
|
|
146
130
|
Object.assign(knowledge, { status: "stored", revision, identity: /^[a-f0-9]{64}$/.test(identity) ? identity : null, sha256: String(row["sha"]), instructions: text(saved.instructions, 600), sources });
|
|
147
131
|
}
|
|
148
|
-
catch {
|
|
132
|
+
catch { }
|
|
149
133
|
knowledge.decisions = activeDecisionsOf(store, repo, text);
|
|
150
134
|
result.projects.push({ repo, knowledge });
|
|
151
135
|
if (!fits()) {
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/** Durable, explicitly acknowledged delivery of assignment status events.
|
|
2
|
-
* Callers authenticate the raw coordinator credential inside the same Store
|
|
3
|
-
* transaction. Delivery receipts never complete tasks or grant authority.
|
|
4
|
-
* This is the one way results reach a lead: an external coordinator reads its
|
|
5
|
-
* owned assignments' events, and the built-in lead reads its follow grant's
|
|
6
|
-
* (lead-follow.ts) through the same saved pages, replay and acknowledgment. */
|
|
7
1
|
import { createHash, randomBytes } from "node:crypto";
|
|
8
2
|
import { ASSIGNMENT_STATUS_ACTION, followActor, parseAssignmentStatusEvent } from "./assignment-status.js";
|
|
9
3
|
const MAX_PAGE_BYTES = 64 * 1024;
|
|
@@ -18,7 +12,6 @@ function coordinatorReader(store, owner) {
|
|
|
18
12
|
repos: () => admittedRepos(store, owner), admits: { sql: `${ownerSql} = ?`, params: [actor] },
|
|
19
13
|
receives: event => event.assignment.owner?.id === owner.id, gone: "The coordinator is no longer active." };
|
|
20
14
|
}
|
|
21
|
-
/** The built-in lead's follow grant (lead-follow.ts), which its caller has already proved, with the projects it covers. */
|
|
22
15
|
function followReader(grant) {
|
|
23
16
|
return { actor: followActor(grant.id), key: consumer => createHash("sha256").update(JSON.stringify(["follow", grant.id, consumer])).digest("hex"),
|
|
24
17
|
repos: () => [...grant.repos], admits: { sql: "1 = 1", params: [] }, receives: () => true, gone: "Automatic crew updates are off." };
|
|
@@ -89,18 +82,9 @@ function pendingBatch(store, reader, key) {
|
|
|
89
82
|
}
|
|
90
83
|
return previous === batch.nextCursor ? batch : invalid();
|
|
91
84
|
}
|
|
92
|
-
/** A read stages one immutable page. Until ACK, any process using this owner
|
|
93
|
-
* and consumer receives that exact page, regardless of new status events or
|
|
94
|
-
* a changed requested page size. Lost access replaces content with an opaque
|
|
95
|
-
* tombstone; it does not prevent acknowledgment of that already issued page.
|
|
96
|
-
* Consumer names identify independent inboxes. */
|
|
97
85
|
export function assignmentInbox(store, owner, query, now) {
|
|
98
86
|
return inbox(store, coordinatorReader(store, owner), query, now);
|
|
99
87
|
}
|
|
100
|
-
/**
|
|
101
|
-
* What the lead's follow inbox would hand over next, without issuing anything (lead sweeps, docs/plans/lead-fan-out.md):
|
|
102
|
-
* whether a page is already issued (it always replays at once — never held), and the unread events' tasks.
|
|
103
|
-
*/
|
|
104
88
|
export function leadFollowUnread(store, grant, consumer) {
|
|
105
89
|
const reader = followReader(grant), key = reader.key(consumer);
|
|
106
90
|
if (pendingBatch(store, reader, key) !== null)
|
|
@@ -110,7 +94,6 @@ export function leadFollowUnread(store, grant, consumer) {
|
|
|
110
94
|
.all(after, reader.actor, ASSIGNMENT_STATUS_ACTION);
|
|
111
95
|
return { issued: false, events: rows.map(row => ({ task: String(row["task_id"]), state: String(row["state"] ?? "") })) };
|
|
112
96
|
}
|
|
113
|
-
/** The built-in lead's inbox: the same page, replay and acknowledgment as a coordinator's, over its follow grant. */
|
|
114
97
|
export function leadFollowInbox(store, grant, query, now) {
|
|
115
98
|
return inbox(store, followReader(grant), query, now);
|
|
116
99
|
}
|
|
@@ -161,12 +144,9 @@ function inbox(store, reader, query, now) {
|
|
|
161
144
|
return { ok: true, batch, replayed: false };
|
|
162
145
|
}));
|
|
163
146
|
}
|
|
164
|
-
/** ACK advances only the exact issued page, atomically. Replaying any prior
|
|
165
|
-
* ACK is harmless, including while a newer page awaits acknowledgment. */
|
|
166
147
|
export function acknowledgeAssignmentDelivery(store, owner, query, now) {
|
|
167
148
|
return acknowledge(store, coordinatorReader(store, owner), query, now);
|
|
168
149
|
}
|
|
169
|
-
/** The built-in lead acknowledges its own page the same way, once it has handled it. */
|
|
170
150
|
export function acknowledgeLeadFollowDelivery(store, grant, query, now) {
|
|
171
151
|
return acknowledge(store, followReader(grant), query, now);
|
|
172
152
|
}
|
|
@@ -188,8 +168,6 @@ function acknowledge(store, reader, query, now) {
|
|
|
188
168
|
return pending;
|
|
189
169
|
if (pending === null || pending.id !== query.batchId || pending.consumer !== query.consumer || pending.after !== cursor)
|
|
190
170
|
return fail("stale-batch", "This batch was not issued to this inbox; its cursor has not advanced.");
|
|
191
|
-
// Access loss redacts replayed events; the exact issued page remains
|
|
192
|
-
// acknowledgeable so its inaccessible entries cannot wedge this inbox.
|
|
193
171
|
store.recordAction({ at: now.toISOString(), actor: reader.actor, repo: null, taskId: null, runId: null,
|
|
194
172
|
action, outcome: JSON.stringify({ batchId: pending.id, after: pending.after, cursor: pending.nextCursor }), source: "work" });
|
|
195
173
|
store.setServiceCursor(cursorKey, pending.nextCursor, now);
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { GOAL_ASSESSMENT_PENDING, manualReviewCriterionOf } from './proof.js';
|
|
2
2
|
import { failedCheckExit } from './workspace-ui.js';
|
|
3
3
|
import { assignmentStatusFacts, taskStatusOf, workToneOf } from './task-status.js';
|
|
4
|
-
/** Only the retired assessment requirement is history-only. Specific missing
|
|
5
|
-
* material, defects and failed checks remain visible, including reviewer findings. */
|
|
6
4
|
export function historicalAssessmentReason(reason) {
|
|
7
5
|
return reason === GOAL_ASSESSMENT_PENDING || reason === 'no proof was written' || reason === 'No builder proof artifact is recorded.' || /^criterion "[^"]+" awaits independent goal assessment\.?$/.test(reason) ||
|
|
8
6
|
/^semantic coverage: .* — (?:required .*|independent review is optional .*)$/.test(reason);
|
|
9
7
|
}
|
|
10
|
-
/** Known storage-cap notices do not mean the retained bytes are damaged. */
|
|
11
8
|
export function shortenedMaterialReason(detail) {
|
|
12
9
|
return detail === 'The check output was shortened when it was stored; its download holds only the stored part.' ||
|
|
13
10
|
detail === 'The sealed diff was shortened when it was stored; its download holds only the stored part, not the full change.' ||
|
|
@@ -16,7 +13,6 @@ export function shortenedMaterialReason(detail) {
|
|
|
16
13
|
detail === 'The changed-file list was cut short; the counts are complete.' ||
|
|
17
14
|
/^Saved (?:terminal-diff|report) #\d+ is incomplete\.$/.test(detail);
|
|
18
15
|
}
|
|
19
|
-
/** The one shared status (task-status.ts) for this assignment. */
|
|
20
16
|
export function assignmentTaskStatusOf(assignment, options = {}) {
|
|
21
17
|
const work = options.workStatus;
|
|
22
18
|
return taskStatusOf(assignmentStatusFacts(assignment, {
|
|
@@ -31,11 +27,8 @@ export function assignmentTaskStatusOf(assignment, options = {}) {
|
|
|
31
27
|
export function assignmentPresentationOf(assignment, options = {}) {
|
|
32
28
|
const { state } = assignment, work = options.workStatus;
|
|
33
29
|
const taskStatus = assignmentTaskStatusOf(assignment, options);
|
|
34
|
-
// The headline and its sentence are the shared words; the token, views and
|
|
35
|
-
// rank stay the existing projection's (pages and tests key off them).
|
|
36
30
|
const shared = { label: taskStatus.headline, tone: workToneOf(taskStatus.headline), detail: taskStatus.sentence, action: null };
|
|
37
31
|
const needsYou = taskStatus.headline === 'Needs you';
|
|
38
|
-
// Waiting needs no one: never listed under Needs you.
|
|
39
32
|
const waiting = taskStatus.headline === 'Waiting';
|
|
40
33
|
const status = state === 'working'
|
|
41
34
|
? { ...shared, token: `assignment-${state}`,
|
|
@@ -52,8 +45,6 @@ export function assignmentPresentationOf(assignment, options = {}) {
|
|
|
52
45
|
const saved = /^Saved (check-log|terminal-diff|report) #(\d+)/.exec(detail);
|
|
53
46
|
if (saved) {
|
|
54
47
|
const current = assignment.receipt?.artifacts.filter(one => one.kind === saved[1]) ?? [];
|
|
55
|
-
// An older attempt's missing file is a distinct limitation. Only the
|
|
56
|
-
// one exact current file can share its detailed reader's explanation.
|
|
57
48
|
return current.length === 1 && current[0].id === Number(saved[2]) ? saved[1] === 'terminal-diff' ? 'diff' : saved[1] : `artifact:${saved[2]}`;
|
|
58
49
|
}
|
|
59
50
|
if (/^The (?:retained verification log|check log|check output) /.test(detail))
|
|
@@ -66,20 +57,15 @@ export function assignmentPresentationOf(assignment, options = {}) {
|
|
|
66
57
|
};
|
|
67
58
|
const attention = new Map();
|
|
68
59
|
for (const detail of [...assignment.attention, ...(options.additionalAttention ?? [])]) {
|
|
69
|
-
// A requirement only a person can confirm is not a problem: the result
|
|
70
|
-
// names it in plain words beside its Accept action.
|
|
71
60
|
if (historicalAssessmentReason(detail) || detail === assignment.detail || manualReviewCriterionOf(detail) !== null)
|
|
72
61
|
continue;
|
|
73
62
|
const material = materialReason(detail);
|
|
74
63
|
const id = checks !== undefined && checkReason(detail) ? 'checks' : material === null ? `detail:${detail}` : `material:${material}`;
|
|
75
|
-
// A read of the exact machine record owns the check outcome. A legacy
|
|
76
|
-
// assessment cannot claim failure after the actual check passed.
|
|
77
64
|
if (id === 'checks' && (checks?.status === 'passed' || assignment.detail.includes(checks.detail)))
|
|
78
65
|
continue;
|
|
79
66
|
if ([...attention.values()].some(one => one.detail.includes(detail)))
|
|
80
67
|
continue;
|
|
81
68
|
const previous = attention.get(id);
|
|
82
|
-
// Damage to the retained bytes outranks their earlier storage limit.
|
|
83
69
|
if (previous !== undefined && shortenedMaterialReason(detail) && !shortenedMaterialReason(previous.detail))
|
|
84
70
|
continue;
|
|
85
71
|
attention.set(id, { id, detail: id === 'checks' ? checks.detail : detail, tone: 'problem' });
|
|
@@ -1,26 +1,14 @@
|
|
|
1
|
-
/** Private lead catch-up, separate from human notification delivery. These are
|
|
2
|
-
* observed assignment transitions, not a promise to capture every intermediate
|
|
3
|
-
* state between scans. Recording or reading them never dispatches agent work.
|
|
4
|
-
* One stream serves every lead: a coordinator's or team lead's events are
|
|
5
|
-
* recorded under its owner, and the built-in lead's crew updates under its
|
|
6
|
-
* follow grant (`follow:<grant>`, lead-follow.ts); each reads its own through
|
|
7
|
-
* the delivery inbox (assignment-delivery.ts). */
|
|
8
1
|
import { createHash } from "node:crypto";
|
|
9
2
|
import { assignmentOf } from "./assignment.js";
|
|
10
3
|
import { publicChatText } from "./chat-display.js";
|
|
11
4
|
import { sweepIfMoved } from "./sweep-gate.js";
|
|
12
5
|
export const ASSIGNMENT_STATUS_ACTION = "assignment status observed";
|
|
13
|
-
/** A reader's first sight of a task that is not news: the state later events are compared to, never delivered. */
|
|
14
6
|
export const ASSIGNMENT_STATUS_BASELINE = "assignment status baseline";
|
|
15
7
|
export const ASSIGNMENT_STATUS_SOURCE = "work";
|
|
16
|
-
/** The states that wake a lead: a result to check, a question, completion, or cancellation. */
|
|
17
8
|
export const LEAD_WAKE_STATES = ["ready-to-check", "needs-decision", "complete", "cancelled"];
|
|
18
|
-
/** The built-in lead's events, one stream per follow grant. */
|
|
19
9
|
export const followActor = (grant) => `follow:${grant}`;
|
|
20
10
|
const hash = (value) => createHash("sha256").update(JSON.stringify(value)).digest("hex");
|
|
21
11
|
const text = publicChatText;
|
|
22
|
-
/** No saved artifact contents, credential bytes, or polling timestamps. Exact
|
|
23
|
-
* IDs and digests identify the full read; display text is deliberately bounded. */
|
|
24
12
|
export function assignmentStatusBrief(assignment) {
|
|
25
13
|
const receipt = assignment.receipt;
|
|
26
14
|
const action = assignment.primaryAction;
|
|
@@ -29,8 +17,6 @@ export function assignmentStatusBrief(assignment) {
|
|
|
29
17
|
title: text(assignment.title, 200), state: assignment.state, detail: text(assignment.detail, 1_000),
|
|
30
18
|
owner: assignment.owner === null ? null : { kind: assignment.owner.kind, id: assignment.owner.id, label: text(assignment.owner.label, 100) },
|
|
31
19
|
runId: assignment.attempts.find(one => one.taskId === assignment.activeTaskId)?.runId ?? receipt?.runId ?? null,
|
|
32
|
-
// The same state can be read by an operator or a coordinator. Permission
|
|
33
|
-
// hints are caller-specific, not a transition or a grant to this consumer.
|
|
34
20
|
primaryAction: action === null ? null : { code: action.code, label: text(action.label, 160), target: action.target },
|
|
35
21
|
attention: assignment.attention.slice(0, 8).map(one => text(one, 500)),
|
|
36
22
|
result: receipt === null ? null : { digest: receipt.digest, runId: receipt.runId,
|
|
@@ -41,8 +27,6 @@ export function assignmentStatusBrief(assignment) {
|
|
|
41
27
|
remoteState: assignment.publication.remoteState === null ? null : text(assignment.publication.remoteState, 80) },
|
|
42
28
|
};
|
|
43
29
|
}
|
|
44
|
-
/** An unreadable ledger event is an explicit consumer error, not a cursor that
|
|
45
|
-
* may silently skip the row. This validates the bounded data, not authority. */
|
|
46
30
|
export function parseAssignmentStatusEvent(value) {
|
|
47
31
|
if (Buffer.byteLength(value) > 32_768)
|
|
48
32
|
return null;
|
|
@@ -83,9 +67,6 @@ export function parseAssignmentStatusEvent(value) {
|
|
|
83
67
|
return null;
|
|
84
68
|
}
|
|
85
69
|
}
|
|
86
|
-
/** Call inside the mutation's transaction when possible; independently atomic
|
|
87
|
-
* for worker reconciliation. The latest event, not a permanent digest set,
|
|
88
|
-
* deduplicates retries so Working → Needs decision → Working is retained. */
|
|
89
70
|
export function noteAssignmentStatus(store, snapshot, now) {
|
|
90
71
|
if (!snapshot.owner?.active || snapshot.repo === null)
|
|
91
72
|
return null;
|
|
@@ -119,8 +100,6 @@ export function noteAssignmentStatus(store, snapshot, now) {
|
|
|
119
100
|
return appendStatusEvent(store, `${owner.kind}:${owner.id}`, owner.id, ref.id, snapshot, now);
|
|
120
101
|
});
|
|
121
102
|
}
|
|
122
|
-
/** The built-in lead's crew update (lead-follow.ts): the same event, under its follow grant. The
|
|
123
|
-
* caller has already proved the grant and its projects; the root must still be a placed task. */
|
|
124
103
|
export function noteFollowStatus(store, grant, snapshot, now, action = ASSIGNMENT_STATUS_ACTION) {
|
|
125
104
|
if (snapshot.repo === null)
|
|
126
105
|
return null;
|
|
@@ -131,8 +110,6 @@ export function noteFollowStatus(store, grant, snapshot, now, action = ASSIGNMEN
|
|
|
131
110
|
return appendStatusEvent(store, followActor(grant), followActor(grant), ref.id, snapshot, now, action);
|
|
132
111
|
});
|
|
133
112
|
}
|
|
134
|
-
/** Each reader's latest event or baseline, not a permanent digest set, deduplicates its retries, so Working → Needs
|
|
135
|
-
* decision → Working is retained. One reader's events never suppress or duplicate another's. */
|
|
136
113
|
function appendStatusEvent(store, actor, ownerId, rootRef, snapshot, now, action = ASSIGNMENT_STATUS_ACTION) {
|
|
137
114
|
const assignment = assignmentStatusBrief(snapshot);
|
|
138
115
|
const stateDigest = hash(assignment);
|
|
@@ -143,7 +120,7 @@ function appendStatusEvent(store, actor, ownerId, rootRef, snapshot, now, action
|
|
|
143
120
|
if (JSON.parse(String(previous["outcome"]))?.stateDigest === stateDigest)
|
|
144
121
|
return null;
|
|
145
122
|
}
|
|
146
|
-
catch {
|
|
123
|
+
catch { }
|
|
147
124
|
}
|
|
148
125
|
const digest = hash({ rootRef, owner: ownerId, previous: previous === undefined ? null : Number(previous["id"]), stateDigest });
|
|
149
126
|
const event = { version: 1, digest, stateDigest, assignment };
|
|
@@ -151,9 +128,6 @@ function appendStatusEvent(store, actor, ownerId, rootRef, snapshot, now, action
|
|
|
151
128
|
taskId: snapshot.rootId, runId: assignment.runId, action,
|
|
152
129
|
outcome: JSON.stringify(event), source: ASSIGNMENT_STATUS_SOURCE });
|
|
153
130
|
}
|
|
154
|
-
/** At most fifty roots per pass; the cursor survives process restarts. A full
|
|
155
|
-
* pass cycles back, so changes below the cursor are eventually observed too.
|
|
156
|
-
* A pass is skipped when nothing moved since the cycle began (sweep-gate.ts). */
|
|
157
131
|
export function syncAssignmentStatuses(store, now, repos, root) {
|
|
158
132
|
if (repos.length === 0)
|
|
159
133
|
return;
|
|
@@ -166,9 +140,6 @@ export function syncAssignmentStatuses(store, now, repos, root) {
|
|
|
166
140
|
AND (t.coordinator_cid IS NOT NULL OR EXISTS(SELECT 1 FROM team_task_owner o WHERE o.task_ref=t.id) OR EXISTS
|
|
167
141
|
(SELECT 1 FROM action_ledger a WHERE a.task_id=t.external_id AND a.action='assignment claimed' AND a.source='work'))
|
|
168
142
|
ORDER BY t.id LIMIT 50`).all(JSON.stringify(allowed), store.serviceCursor(key));
|
|
169
|
-
// Release the writer between families. Each observation and its durable
|
|
170
|
-
// position still commit together; an interrupted sweep resumes after the
|
|
171
|
-
// last committed family instead of holding every heartbeat behind a batch.
|
|
172
143
|
if (rows.length === 0)
|
|
173
144
|
store.setServiceCursor(key, 0, now);
|
|
174
145
|
for (const [index, row] of rows.entries()) {
|