toolroll 0.9.104 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -5
- package/README.md +18 -20
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +17 -139
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +1 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +0 -17
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +0 -53
- package/dist/local-owner.js +2 -93
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +0 -20
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +0 -100
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +0 -25
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +4 -567
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +21 -555
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +1 -88
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +13 -493
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +6 -135
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +9 -227
- package/dist/server/tasks.js +5 -539
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +0 -75
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +17 -28
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +16 -36
- package/dist/tui.js +1 -1
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +4 -3
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -350
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1985
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -540
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -43
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -61
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -170
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -39
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1098
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -81
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -60
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -343
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -108
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -48
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -202
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/flow-gallery.js
CHANGED
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The flow gallery: ready-made flows grouped by what they're for (Ship code, Keep it healthy, Hear from users,
|
|
3
|
-
* Operations). Each says in one line what it promises, what it needs, and asks only what it must (a project,
|
|
4
|
-
* a label, a schedule, a branch, a test command). A preview says in plain words what it will do and never do;
|
|
5
|
-
* using one makes an ordinary flow (its zones), its triggers and any script it runs, together or not at all.
|
|
6
|
-
*
|
|
7
|
-
* A template is data — steps in the lead's vocabulary, trigger settings and scripts, with `{{ask.<key>}}`
|
|
8
|
-
* where an answer goes and `{{script.<name>}}` where its script's name goes — so it can be written out as a
|
|
9
|
-
* shared flow file later. Every one is built only from existing zone and trigger kinds, and none merges:
|
|
10
|
-
* a pull request it opens waits for a person.
|
|
11
|
-
*
|
|
12
|
-
* A template that puts a connected tool to work names it (`tools`): a one-click service (ONE_CLICK) or the Figma
|
|
13
|
-
* desktop app. Its research steps read that tool and only read; a build gets the project's tools as any build does.
|
|
14
|
-
*
|
|
15
|
-
* Every template without its own send zone can end with "Send me the result" (a "Send to me" zone before its end),
|
|
16
|
-
* off unless asked for (`send-result: yes`): what the flow did reaches the person in their chat apps.
|
|
17
|
-
*/
|
|
18
1
|
import { createHash } from "node:crypto";
|
|
19
2
|
import { scanForSecrets } from "./evidence.js";
|
|
20
3
|
import { flowDefinitionOf } from "./flow-engine.js";
|
|
@@ -30,13 +13,11 @@ export const GALLERY_GROUPS = [
|
|
|
30
13
|
{ id: "users", label: "Hear from users" },
|
|
31
14
|
{ id: "ops", label: "Operations" },
|
|
32
15
|
];
|
|
33
|
-
/** Weekly upkeep's package managers: what each runs. A script that fails (exits non-zero) when something is out of date. */
|
|
34
16
|
export const OUTDATED_COMMANDS = {
|
|
35
17
|
npm: { label: "npm (npm outdated)", command: "npm outdated" },
|
|
36
18
|
pip: { label: "pip (pip list --outdated)", command: "out=\"$(python3 -m pip list --outdated 2>/dev/null | tail -n +3)\"\nif [ -n \"$out\" ]; then echo \"$out\"; exit 1; fi" },
|
|
37
19
|
cargo: { label: "cargo (cargo outdated)", command: "cargo outdated --root-deps-only --exit-code 1" },
|
|
38
20
|
};
|
|
39
|
-
/** The card's Linear issue key, read from its source as the Linear trigger stored it ("Linear ENG-123"); "none" skips the comment. */
|
|
40
21
|
export const LINEAR_KEY = `key="$(sed -n 's/.*"source":{"kind":"linear","label":"Linear \\([A-Z][A-Z0-9]*-[0-9][0-9]*\\)".*/\\1/p' | head -n 1)"
|
|
41
22
|
if [ -n "$key" ]; then echo "$key"; echo "goto: Found"; else echo none; echo "goto: None"; fi`;
|
|
42
23
|
const NEVER_MERGES = "Never merges. Each pull request waits for you.";
|
|
@@ -50,10 +31,8 @@ const SORTS = "OpenRouter (Jev sorts)";
|
|
|
50
31
|
const WEEKLY = { key: "schedule", default: "monday 09:00", label: "When", hint: "Like “monday 09:00”." };
|
|
51
32
|
const weekly = (title) => ({ kind: "schedule", schedule: "{{ask.schedule}}", title });
|
|
52
33
|
const send = (title) => ({ id: "send", title, kind: "send" });
|
|
53
|
-
/** A person's choice: build it, or end there. A reply goes to the build as its note. */
|
|
54
34
|
const choose = (title, yes, build) => ({ id: "choose", title, kind: "choose", options: [{ label: yes, goesTo: build }, { label: "Ignore", goesTo: "end" }], ifReplied: build });
|
|
55
35
|
export const GALLERY = [
|
|
56
|
-
// ---------------------------------------------------------------- Ship code
|
|
57
36
|
{
|
|
58
37
|
id: "overnight-bug-bash", name: "Overnight bug bash", group: "ship",
|
|
59
38
|
promise: "Bugs filed during the day are fixed overnight; the results wait for you in the morning.",
|
|
@@ -181,7 +160,6 @@ export const GALLERY = [
|
|
|
181
160
|
id: "linear-to-prs", name: "Linear issues to PRs", group: "ship", tools: ["linear"],
|
|
182
161
|
promise: "Labelled Linear issues are built, and the issue gets the pull request link.",
|
|
183
162
|
needs: ["GitHub", "A Linear API key"], asks: [{ key: "team", default: "ENG", label: "Linear team", hint: "Its short key, like ENG." }, { key: "label", default: ISSUE_LABEL, label: "Issue label" }],
|
|
184
|
-
// The issue's key comes from the card's source ("Linear ENG-123"), as the trigger stored it, never from a model.
|
|
185
163
|
scripts: [{ name: "linear-issue-key", about: "Prints the Linear issue the card came from, or none.", body: LINEAR_KEY, timeoutMinutes: 1 }],
|
|
186
164
|
steps: [
|
|
187
165
|
{ id: "build", title: "Build it", kind: "task", instructions: work("Build this issue: {{card.title}}\n\n{{card.description}}") },
|
|
@@ -193,7 +171,6 @@ export const GALLERY = [
|
|
|
193
171
|
does: ["Watches {{ask.team}} issues labelled “{{ask.label}}” in Linear.", "Builds each one as a task, under your usual approvals, and opens a pull request.", "Comments the pull request link on the issue, through Linear."],
|
|
194
172
|
never: NEVER_MERGES,
|
|
195
173
|
},
|
|
196
|
-
// ---------------------------------------------------------- Keep it healthy
|
|
197
174
|
{
|
|
198
175
|
id: "fix-ci", name: "Fix failing CI", group: "health",
|
|
199
176
|
promise: "When CI fails on your main branch, a fix is built and opened for review.",
|
|
@@ -267,7 +244,6 @@ export const GALLERY = [
|
|
|
267
244
|
never: NEVER_MERGES,
|
|
268
245
|
},
|
|
269
246
|
{
|
|
270
|
-
// v126: the direct road from a signed outside request to a build that waits for your approval.
|
|
271
247
|
id: "webhook-to-build", name: "Webhook to build", group: "health",
|
|
272
248
|
promise: "A signed request from any tool becomes a build, under your usual approvals.",
|
|
273
249
|
needs: ["A tool that can send signed webhooks", "GitHub"], asks: [],
|
|
@@ -300,7 +276,6 @@ export const GALLERY = [
|
|
|
300
276
|
{ id: "done", title: "Done", kind: "done" },
|
|
301
277
|
{ id: "ignored", title: "Ignored", kind: "done" },
|
|
302
278
|
],
|
|
303
|
-
// v126: signed by Sentry and read by Toolroll's Sentry reader: one card per issue, linked to it.
|
|
304
279
|
triggers: [{ kind: "webhook", sender: "sentry", title: "Error" }],
|
|
305
280
|
does: ["Adds a Sentry webhook. Once the flow is made, open its Triggers and choose New address; in Sentry create an Internal Integration (Settings → Developer Settings), paste that address as its Webhook URL, turn on Alert Rule Action and Issue events, then paste its Client Secret under Signing on the flow's Triggers.", "One card per Sentry issue, however often it alerts, linked to the issue.", "Jev keeps errors in your code that are new or frequent, and drops noise; ones it isn't sure about wait for you.",
|
|
306
281
|
"Each kept error is researched, then fixed as a task, under your usual approvals.", "What you approve opens a pull request."],
|
|
@@ -352,12 +327,10 @@ export const GALLERY = [
|
|
|
352
327
|
pr,
|
|
353
328
|
send("Send the fix"),
|
|
354
329
|
],
|
|
355
|
-
// v126: signed by Vercel and read by Toolroll's Vercel reader: failed deployments only, one card each.
|
|
356
330
|
triggers: [{ kind: "webhook", sender: "vercel", title: "Failed deployment" }],
|
|
357
331
|
does: ["Adds a Vercel webhook. Once the flow is made, open its Triggers and choose New address; in Vercel (Settings → Webhooks) paste that address and choose Deployment Error, then paste the secret Vercel shows under Signing on the flow's Triggers. Put your Vercel project ID in Signing too, so only its deployments add cards.", "Reads the build log and finds the cause.", "Builds a fix as a task, under your usual approvals, opens a pull request and sends it to you."],
|
|
358
332
|
never: NEVER_MERGES,
|
|
359
333
|
},
|
|
360
|
-
// ---------------------------------------------------------- Hear from users
|
|
361
334
|
{
|
|
362
335
|
id: "feedback-to-feature", name: "Feedback to feature", group: "users",
|
|
363
336
|
promise: "Feedback is sorted into bugs, ideas and questions; ideas get a short spec for you to decide.",
|
|
@@ -431,7 +404,6 @@ export const GALLERY = [
|
|
|
431
404
|
does: ["Reads your Intercom conversations {{ask.schedule-words}} and ranks the bug reports by how many people hit each.", "You fix the top one, reply with the number of another, or ignore them.", "The fix is built as a task, under your usual approvals, opens a pull request and is sent to you."],
|
|
432
405
|
never: NEVER_MERGES,
|
|
433
406
|
},
|
|
434
|
-
// ------------------------------------------------------------------ Operations
|
|
435
407
|
...[
|
|
436
408
|
["research", "Research a question, have a person check it, then share it.", [], "Never shares an answer you haven't checked."],
|
|
437
409
|
["spam-filter", "Jev screens what a public form or webhook brings in.", [SORTS], "Never deletes anything; filtered cards are kept."],
|
|
@@ -444,12 +416,9 @@ export const GALLERY = [
|
|
|
444
416
|
id, name: FLOW_TEMPLATES.find(one => one.id === id).label, group: "ops", promise, needs: [...needs], asks: [], definition: drawn(id), triggers: [], does: [about(id)], never,
|
|
445
417
|
})),
|
|
446
418
|
];
|
|
447
|
-
/** The blank flow, for starting from nothing. */
|
|
448
419
|
export const BLANK = { id: "blank", name: "Blank flow", group: "ops", promise: about("blank"), needs: [], asks: [], definition: drawn("blank"), triggers: [], does: [about("blank")], never: "Does nothing until you add zones." };
|
|
449
420
|
export const galleryTemplateOf = (id) => id === BLANK.id ? BLANK : GALLERY.find(one => one.id === id) ?? null;
|
|
450
|
-
/** A tool's name ("Mobbin", "Figma (desktop app)"); null for an id that's neither a one-click service nor an app on this computer. */
|
|
451
421
|
export const galleryToolLabel = (id) => oneClickOf(id)?.label ?? localConnectOf(id)?.label ?? null;
|
|
452
|
-
/** The zones that use a tool: a tool step on it, or a research or build step that names it ("With Mobbin, …"). */
|
|
453
422
|
export function zonesUsing(definition, id) {
|
|
454
423
|
const label = galleryToolLabel(id);
|
|
455
424
|
if (label === null)
|
|
@@ -457,11 +426,9 @@ export function zonesUsing(definition, id) {
|
|
|
457
426
|
const word = new RegExp(`\\b${label.replace(/\s*\(.*\)$/, "").replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`);
|
|
458
427
|
return definition.stages.filter(one => one.tool?.server === id || ((one.kind === "report" || one.kind === "task") && word.test(one.instructions ?? ""))).map(one => one.title);
|
|
459
428
|
}
|
|
460
|
-
/** A template's tools, each with its state in a project's connections (connectionsOf), or none without a project. */
|
|
461
429
|
export function galleryToolsOf(template, definition, connections) {
|
|
462
430
|
return (template.tools ?? []).map(id => ({ id, label: galleryToolLabel(id) ?? id, state: connections === null ? null : connections.find(one => one.id === id)?.state ?? "open", zones: zonesUsing(definition, id) }));
|
|
463
431
|
}
|
|
464
|
-
/** Each question's default for a project: the branch pull requests go to, when that's set up. */
|
|
465
432
|
export function galleryDefaults(store, template, repo) {
|
|
466
433
|
const publishing = repo === null ? { on: false } : publishingOf(store, repo);
|
|
467
434
|
return Object.fromEntries(template.asks.map(ask => [ask.key, ask.key === "branch" && publishing.on ? publishing.base : ask.default]));
|
|
@@ -474,16 +441,11 @@ const oneLine = (value, cap, what) => {
|
|
|
474
441
|
throw new Error(`That ${what} looks like it holds a key or password. Keep secrets out of it.`);
|
|
475
442
|
return said;
|
|
476
443
|
};
|
|
477
|
-
/** The optional last step every template offers, and the answer that turns it on. */
|
|
478
444
|
export const SEND_RESULT = { key: "send-result", title: "Send me the result", does: "When a card finishes, sends you what was done (its summary, links and screenshots) in your chat apps." };
|
|
479
|
-
/** A template that already sends its result to the person: it isn't offered "Send me the result" again. */
|
|
480
445
|
export const sendsAlready = (template) => galleryDiagram(template).stages.some(one => one.kind === "send");
|
|
481
|
-
/** A flow with "Send me the result" before its end: every path into its main Done zone passes through it first.
|
|
482
|
-
* A flow that already has a send zone is left as it is, so nobody gets the result twice. */
|
|
483
446
|
export function withSendResult(definition) {
|
|
484
447
|
if (definition.stages.some(one => one.kind === "send"))
|
|
485
448
|
return definition;
|
|
486
|
-
// Its main end: Done, else an end that isn't a filtered-out one (drawn in rose), else any end.
|
|
487
449
|
const ends = definition.stages.filter(one => one.kind === "done");
|
|
488
450
|
const end = ends.find(one => one.id === "done") ?? ends.find(one => one.zone.color !== "rose") ?? ends[0];
|
|
489
451
|
if (end === undefined)
|
|
@@ -499,16 +461,13 @@ export function withSendResult(definition) {
|
|
|
499
461
|
...(one.routes === undefined ? {} : { routes: one.routes.map(route => ({ ...route, to: into(route.to) })) }),
|
|
500
462
|
...(one.options === undefined || choiceTargets(one).length === 0 ? {} : { options: one.options.map(option => ({ ...option, to: into(option.to) })) }),
|
|
501
463
|
}));
|
|
502
|
-
// Where the end was, and the end moves along to make room.
|
|
503
464
|
const send = { id, title: SEND_RESULT.title, kind: "send", zone: { ...end.zone, color: "green", h: 220 }, instructions: null, planning: null, approver: null,
|
|
504
465
|
message: null, close: null, script: null, sort: null, next: end.id, onFail: null };
|
|
505
466
|
const moved = stages.map(one => one.id === end.id ? { ...one, zone: { ...one.zone, x: one.zone.x + Math.max(300, one.zone.w + 40) } } : one);
|
|
506
467
|
return { ...definition, ...(definition.start === end.id ? { start: id } : {}), stages: [...moved.filter(one => one.id !== end.id), send, moved.find(one => one.id === end.id)] };
|
|
507
468
|
}
|
|
508
|
-
/** The answers, checked in plain words, with what they fill in. Throws. */
|
|
509
469
|
export function checkAnswers(template, given) {
|
|
510
470
|
const answers = {};
|
|
511
|
-
// Off unless asked for; only said when on, so a template's answers read as before.
|
|
512
471
|
if (given[SEND_RESULT.key] === "yes")
|
|
513
472
|
answers[SEND_RESULT.key] = "yes";
|
|
514
473
|
for (const ask of template.asks) {
|
|
@@ -530,7 +489,6 @@ export function checkAnswers(template, given) {
|
|
|
530
489
|
const said = oneLine(value, 80, "schedule");
|
|
531
490
|
if (scheduleFromWords(said) === null)
|
|
532
491
|
throw new Error("Say when like “daily 02:00”, “weekdays 09:00” or “monday 09:00”.");
|
|
533
|
-
// Said without a time zone, it runs in this computer's, like the plane review.
|
|
534
492
|
const zoned = /@/.test(scheduleFromWords(said)) || /^every \d/i.test(said) ? null : scheduleFromWords(`${said} ${localTimeZone()}`);
|
|
535
493
|
answers["schedule"] = zoned === null ? said : `${said} ${localTimeZone()}`;
|
|
536
494
|
answers["schedule-words"] = scheduleWords(said);
|
|
@@ -560,7 +518,6 @@ function localTimeZone() {
|
|
|
560
518
|
return "UTC";
|
|
561
519
|
}
|
|
562
520
|
}
|
|
563
|
-
/** "daily 02:00" as "every day at 02:00", the way a sentence says it. */
|
|
564
521
|
function scheduleWords(said) {
|
|
565
522
|
const daily = /^(?:every day|daily)(?: at)? (\d{1,2}:\d{2})/i.exec(said);
|
|
566
523
|
if (daily !== null)
|
|
@@ -573,7 +530,6 @@ function scheduleWords(said) {
|
|
|
573
530
|
return `every ${weekly[1].charAt(0).toUpperCase()}${weekly[1].slice(1).toLowerCase()} at ${weekly[2]}`;
|
|
574
531
|
return said;
|
|
575
532
|
}
|
|
576
|
-
/** Fill `{{ask.<key>}}` and `{{script.<name>}}` through a template's data; the card's own fill-ins stay. */
|
|
577
533
|
function fill(value, answers, scripts, github) {
|
|
578
534
|
if (typeof value === "string")
|
|
579
535
|
return value.replace(/\{\{(ask|script)\.([a-z-]+)\}\}|\{\{github\}\}/g, (whole, kind, key) => kind === undefined ? github ?? "your GitHub repository" : (kind === "ask" ? answers[key] : scripts[key]) ?? whole);
|
|
@@ -583,12 +539,10 @@ function fill(value, answers, scripts, github) {
|
|
|
583
539
|
return Object.fromEntries(Object.entries(value).map(([key, one]) => [key, fill(one, answers, scripts, github)]));
|
|
584
540
|
return value;
|
|
585
541
|
}
|
|
586
|
-
/** A template made concrete for a project and its answers: its zones, triggers and scripts, checked. Throws in plain words. */
|
|
587
542
|
export function buildFromGallery(store, template, repo, given) {
|
|
588
543
|
if (template.github === true && githubRepoOf(repo) === null)
|
|
589
544
|
throw new Error("This project isn't on GitHub, so this can't watch it.");
|
|
590
545
|
const answers = checkAnswers(template, given);
|
|
591
|
-
// A script keeps its name unless the project already has a different one by that name; then it gets a free one.
|
|
592
546
|
const names = {};
|
|
593
547
|
const scripts = (template.scripts ?? []).map(script => {
|
|
594
548
|
const body = fill(script.body, answers, {}, null);
|
|
@@ -610,7 +564,6 @@ export function buildFromGallery(store, template, repo, given) {
|
|
|
610
564
|
const github = githubRepoOf(repo);
|
|
611
565
|
const drawn = template.definition !== undefined ? structuredClone(template.definition)
|
|
612
566
|
: flowFromSteps(fill(template.ownSteps !== undefined && isToolrollRepo(repo) ? template.ownSteps : template.steps, answers, names, github), null);
|
|
613
|
-
// One that already sends doesn't take the answer, so it reads as it was asked.
|
|
614
567
|
if (drawn.stages.some(one => one.kind === "send"))
|
|
615
568
|
delete answers[SEND_RESULT.key];
|
|
616
569
|
const sends = answers[SEND_RESULT.key] === "yes";
|
|
@@ -618,14 +571,12 @@ export function buildFromGallery(store, template, repo, given) {
|
|
|
618
571
|
return { template, repo, answers, definition, triggers: fill(template.triggers, answers, names, github), scripts,
|
|
619
572
|
does: [...fill(template.does, answers, names, github), ...(sends && definition !== drawn ? [SEND_RESULT.does] : [])], never: template.never };
|
|
620
573
|
}
|
|
621
|
-
/** A template's zones as its defaults draw them, for the gallery's small drawing; no project needed. */
|
|
622
574
|
export function galleryDiagram(template) {
|
|
623
575
|
if (template.definition !== undefined)
|
|
624
576
|
return template.definition;
|
|
625
577
|
const names = Object.fromEntries((template.scripts ?? []).map(one => [one.name, one.name]));
|
|
626
578
|
return flowFromSteps(fill(template.steps, checkAnswers(template, {}), names, null), null);
|
|
627
579
|
}
|
|
628
|
-
/** What using a template will do, in words, before anything is made: its triggers checked as the flow will have them. Throws. */
|
|
629
580
|
export function previewGallery(store, template, repo, given, actor, now) {
|
|
630
581
|
const built = buildFromGallery(store, template, repo, given);
|
|
631
582
|
const draft = { id: 0, repo, name: template.name, definitionJson: JSON.stringify(built.definition), revision: 1, state: "active", createdBy: actor, createdAt: now.toISOString(), updatedBy: actor, updatedAt: now.toISOString(), owner: actor };
|
|
@@ -635,12 +586,9 @@ export function previewGallery(store, template, repo, given, actor, now) {
|
|
|
635
586
|
steps.push(...built.scripts.filter(one => !one.existing).map(one => `Adds the ${one.name} script to this project: ${one.body.split("\n")[0]}${one.body.includes("\n") ? " …" : ""}`));
|
|
636
587
|
return { built, startsFrom, steps, tools: galleryToolsOf(template, built.definition, connectionsOf(store, repo)), digest: galleryDigest(template.id, repo, built.answers) };
|
|
637
588
|
}
|
|
638
|
-
/** What a preview showed: the template, the project and the answers. Creating checks the person saw these. */
|
|
639
589
|
export function galleryDigest(id, repo, answers) {
|
|
640
590
|
return createHash("sha256").update(JSON.stringify([id, repo, Object.entries(answers).sort(([a], [b]) => a.localeCompare(b))])).digest("hex").slice(0, 24);
|
|
641
591
|
}
|
|
642
|
-
/** Use a template in a project: its scripts, its flow and its triggers, together or not at all. */
|
|
643
|
-
/** Whether a template's triggers bring in items from anyone: making it takes the person's password. */
|
|
644
592
|
export function galleryAdmitsAnyone(template) {
|
|
645
593
|
return template.triggers.some(one => rawAdmitsAnyone(one));
|
|
646
594
|
}
|
|
@@ -659,7 +607,6 @@ export function useGalleryTemplate(store, template, repo, given, input) {
|
|
|
659
607
|
const id = store.createFlow({ repo, name, definitionJson: JSON.stringify(built.definition), by: input.by }, input.now);
|
|
660
608
|
const made = store.getFlow(id);
|
|
661
609
|
for (const trigger of built.triggers) {
|
|
662
|
-
// No one is shown the gallery's addresses: a webhook is made with none until its panel makes one (v126).
|
|
663
610
|
const added = addFlowTriggerTo(store, made, { ...trigger, zone: trigger["zone"] ?? flowDefinitionOf(made).start }, input.by, input.now, input.dir, { shown: false, ...(input.widening === undefined ? {} : { widening: input.widening }) });
|
|
664
611
|
if (!added.ok)
|
|
665
612
|
throw new Error(added.message);
|
|
@@ -668,7 +615,6 @@ export function useGalleryTemplate(store, template, repo, given, input) {
|
|
|
668
615
|
}
|
|
669
616
|
return id;
|
|
670
617
|
});
|
|
671
|
-
// A webhook's address is a secret shown once: it's made on the flow's Triggers panel, where it can be copied.
|
|
672
618
|
return { ok: true, flow, said: hook ? `${name} is ready. To get its webhook address, open Triggers and choose New address.` : `${name} is ready.` };
|
|
673
619
|
}
|
|
674
620
|
catch (error) {
|
package/dist/flow-insights.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flow insights (v84): how work moves through a flow and where it breaks,
|
|
3
|
-
* read from what the flow already records — every card's moves (flow_event)
|
|
4
|
-
* and every script or update step's run (flow_step_run, with its log). No
|
|
5
|
-
* model, no sampling: counts over a window, per zone and per script.
|
|
6
|
-
*/
|
|
7
1
|
import { flowDefinitionOf } from "./flow-engine.js";
|
|
8
2
|
import { parseSortDecision } from "./flow-sort.js";
|
|
9
3
|
const median = (values) => {
|
|
@@ -13,7 +7,6 @@ const median = (values) => {
|
|
|
13
7
|
const middle = Math.floor(sorted.length / 2);
|
|
14
8
|
return sorted.length % 2 === 1 ? sorted[middle] : (sorted[middle - 1] + sorted[middle]) / 2;
|
|
15
9
|
};
|
|
16
|
-
/** One flow's insights over the last `days` days. */
|
|
17
10
|
export function flowInsights(store, flow, now, days = 30) {
|
|
18
11
|
const since = new Date(now.getTime() - days * 86_400_000);
|
|
19
12
|
const definition = flowDefinitionOf(flow);
|
|
@@ -90,7 +83,6 @@ export function flowInsights(store, flow, now, days = 30) {
|
|
|
90
83
|
})),
|
|
91
84
|
};
|
|
92
85
|
}
|
|
93
|
-
/** Each problem a plane review trigger of this flow noted in the window (one note per problem a day), and on how many days. */
|
|
94
86
|
function recurringProblems(store, flow, since) {
|
|
95
87
|
const rows = store.handle.prepare(`SELECT e.key, e.card, e.at, c.title FROM flow_trigger_event e JOIN flow_trigger t ON t.id = e.trigger LEFT JOIN flow_card c ON c.id = e.card
|
|
96
88
|
WHERE t.flow = ? AND json_extract(t.config_json, '$.kind') = 'plane-review' AND substr(e.key, 1, 6) = 'plane:' AND e.at >= ? ORDER BY e.rowid`).all(flow.id, since.toISOString());
|
|
@@ -123,14 +115,12 @@ function sortInsight(stage, runs, byCard) {
|
|
|
123
115
|
else
|
|
124
116
|
insight.notSure++;
|
|
125
117
|
insight.costUsd += decision.cost ?? 0;
|
|
126
|
-
// Where the sort sent the card, and what happened to it next.
|
|
127
118
|
const moves = byCard.get(run.card) ?? [];
|
|
128
119
|
const sent = moves.findIndex(one => one.fromStage === stage.id && one.actor === "flow" && one.at >= run.startedAt);
|
|
129
120
|
const after = sent === -1 ? undefined : moves[sent + 1];
|
|
130
121
|
const picked = sort.answers.find(one => one.answer === decision.answer)?.to ?? null;
|
|
131
122
|
let right = null;
|
|
132
123
|
if (after !== undefined && after.actor !== "flow" && after.outcome === "moved" && targets.has(after.toStage)) {
|
|
133
|
-
// A person placed it where an answer leads: that is what the answer should have been.
|
|
134
124
|
right = after.toStage === picked;
|
|
135
125
|
if (decision.confident && !right)
|
|
136
126
|
insight.corrected++;
|
|
@@ -147,7 +137,6 @@ function sortInsight(stage, runs, byCard) {
|
|
|
147
137
|
}
|
|
148
138
|
}
|
|
149
139
|
insight.costUsd = Math.round(insight.costUsd * 1_000_000) / 1_000_000;
|
|
150
|
-
// Say so only with enough cards behind it.
|
|
151
140
|
const at = Math.round(sort.sureAt * 100);
|
|
152
141
|
const below = bands.find(one => one.to <= at && one.to > at - 15 && one.of >= 5);
|
|
153
142
|
const above = bands.filter(one => one.from >= at && one.of >= 5);
|
|
@@ -158,7 +147,6 @@ function sortInsight(stage, runs, byCard) {
|
|
|
158
147
|
insight.suggestion = `Cards Jev was ${below.from}–${below.to}% sure about were right ${below.right} of ${below.of} times. You could let it act alone from ${below.from}%.`;
|
|
159
148
|
return insight;
|
|
160
149
|
}
|
|
161
|
-
/** One line for a flow's list entry: where it has had the most trouble lately. */
|
|
162
150
|
export function troubleWords(insights) {
|
|
163
151
|
const worst = insights.breaks[0];
|
|
164
152
|
return worst === undefined ? null : `most trouble in ${worst.title} (${worst.problems} of ${worst.of} in the last ${insights.days} days)`;
|
package/dist/flow-items.js
CHANGED
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A research report's items in a flow's message (flow-send.ts): after a report step, each item is listed under the
|
|
3
|
-
* summary, numbered — its title in bold, its why in plain lines, and its link named by its source ("Mobbin", or the
|
|
4
|
-
* site's name). Each screenshot of an item is captioned with the same number, its title and how it plugs in
|
|
5
|
-
* (result-shots.ts), so "2." in the album is item 2 in the text.
|
|
6
|
-
*
|
|
7
|
-
* The message is written in reply-shape.ts's canonical form (`**bold**`, `[label](url)`), which every channel renders
|
|
8
|
-
* in its own format. Its words go through the channel's own cleaner first. Fitted to a channel's limit, each why is
|
|
9
|
-
* shortened evenly first; then the summary, then the titles; past that it is split into parts. Links are never cut.
|
|
10
|
-
*/
|
|
11
1
|
export { readFlowItems } from "./contracts/flow-send.js";
|
|
12
2
|
const PLUG_CHARS = 160;
|
|
13
3
|
const NAMES = {
|
|
@@ -16,7 +6,6 @@ const NAMES = {
|
|
|
16
6
|
};
|
|
17
7
|
const cutTo = (text, cap) => cap <= 0 ? "" : text.length <= cap ? text : `${text.slice(0, Math.max(0, cap - 1)).trimEnd()}…`;
|
|
18
8
|
const oneLine = (text) => text.replace(/\s+/g, " ").trim();
|
|
19
|
-
/** A link's source by name: a few known sites as they write themselves, else the site's own name from its address. */
|
|
20
9
|
export function itemSource(url) {
|
|
21
10
|
let host;
|
|
22
11
|
try {
|
|
@@ -31,12 +20,10 @@ export function itemSource(url) {
|
|
|
31
20
|
const labels = host.split(".");
|
|
32
21
|
if (labels.length < 2 || /^[0-9.]+$/.test(host) || host.includes(":"))
|
|
33
22
|
return host;
|
|
34
|
-
// "bbc.co.uk" is the BBC's; "developer.apple.com" is Apple's.
|
|
35
23
|
const short = labels.length >= 3 && labels[labels.length - 1].length === 2 && labels[labels.length - 2].length <= 3;
|
|
36
24
|
const name = labels[labels.length - (short ? 3 : 2)];
|
|
37
25
|
return name === "" ? host : `${name.charAt(0).toUpperCase()}${name.slice(1)}`;
|
|
38
26
|
}
|
|
39
|
-
/** A why as plain lines: its own lines, or "the pattern; why it fits us; how it plugs in" one to a line. */
|
|
40
27
|
export function whyLines(why) {
|
|
41
28
|
const lines = why.split(/\n+/).map(one => one.trim()).filter(one => one !== "");
|
|
42
29
|
if (lines.length !== 1)
|
|
@@ -44,21 +31,16 @@ export function whyLines(why) {
|
|
|
44
31
|
const parts = lines[0].split(/;\s+/).map(one => one.trim()).filter(one => one !== "");
|
|
45
32
|
return parts.length >= 2 && parts.length <= 4 ? parts.map(one => `${one.charAt(0).toUpperCase()}${one.slice(1)}`) : lines;
|
|
46
33
|
}
|
|
47
|
-
/** How an item plugs in, in one line: the why's last line when it has several, else the image's caption, else the why. */
|
|
48
34
|
export function itemPlug(why, imageCaption) {
|
|
49
35
|
const lines = whyLines(why);
|
|
50
36
|
const words = lines.length >= 2 ? lines[lines.length - 1] : imageCaption !== null && imageCaption.trim() !== "" ? imageCaption : lines.join(" ");
|
|
51
37
|
return cutTo(oneLine(words), PLUG_CHARS);
|
|
52
38
|
}
|
|
53
|
-
/** A screenshot's caption: its item's number, title and how it plugs in. */
|
|
54
39
|
export function itemCaption(number, item) {
|
|
55
40
|
return item.plug === "" ? `${number}. ${item.title}` : `${number}. ${item.title} · ${item.plug}`;
|
|
56
41
|
}
|
|
57
|
-
/** Plain words can't become bold or a link by accident. */
|
|
58
42
|
const inert = (text) => text.replace(/\*\*/g, "*").replace(/\]\(/g, "] (");
|
|
59
|
-
/** A link the canonical form keeps whole: the characters it stops at are written percent-encoded, as browsers read them. */
|
|
60
43
|
const linkable = (url) => url.replace(/[()[\]<>"'`\s]/g, char => `%${char.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`);
|
|
61
|
-
/** The message's own words through a channel's cleaner — head, summary, each title and why, and tail — before it is fitted. */
|
|
62
44
|
export function cleanFlowMessage(message, clean) {
|
|
63
45
|
return { head: clean(message.head), summary: clean(message.summary), items: message.items.map(item => ({ ...item, title: clean(item.title), why: clean(item.why) })),
|
|
64
46
|
tail: message.tail.map(clean) };
|
|
@@ -72,7 +54,6 @@ function blocks(message, whyCap, summaryCap, titleCap) {
|
|
|
72
54
|
return [inert(message.head), inert(cutTo(message.summary, summaryCap)), ...items, ...message.tail.map(inert)].filter(one => one.trim() !== "");
|
|
73
55
|
}
|
|
74
56
|
const compose = (message, whyCap, summaryCap, titleCap) => blocks(message, whyCap, summaryCap, titleCap).join("\n\n");
|
|
75
|
-
/** The largest n in [0, high] that fits, or -1. */
|
|
76
57
|
function largest(high, fits) {
|
|
77
58
|
if (!fits(0))
|
|
78
59
|
return -1;
|
|
@@ -86,7 +67,6 @@ function largest(high, fits) {
|
|
|
86
67
|
}
|
|
87
68
|
return low;
|
|
88
69
|
}
|
|
89
|
-
/** Whole pieces packed into as few parts as fit, joined by `glue`; a piece too long alone is broken by `smaller`. */
|
|
90
70
|
function pack(pieces, glue, fits, smaller) {
|
|
91
71
|
const parts = [];
|
|
92
72
|
let open = "";
|
|
@@ -101,7 +81,6 @@ function pack(pieces, glue, fits, smaller) {
|
|
|
101
81
|
}
|
|
102
82
|
return open === "" ? parts : [...parts, open];
|
|
103
83
|
}
|
|
104
|
-
/** A line longer than a whole part, in the longest prefixes that fit (never splitting a surrogate pair). */
|
|
105
84
|
function chop(line, fits) {
|
|
106
85
|
const out = [];
|
|
107
86
|
for (let rest = line; rest !== "";) {
|
|
@@ -113,12 +92,6 @@ function chop(line, fits) {
|
|
|
113
92
|
}
|
|
114
93
|
return out;
|
|
115
94
|
}
|
|
116
|
-
/**
|
|
117
|
-
* The message in canonical form, as parts within `limit` as `measure` counts each once the channel renders it: one
|
|
118
|
-
* whole part when it fits; else every why shortened to the same length; then the summary; then the titles. When the
|
|
119
|
-
* head, links and tail alone are over the limit, the whole message goes in several parts instead, split between
|
|
120
|
-
* blocks (else between lines). Every link stays.
|
|
121
|
-
*/
|
|
122
95
|
export function fitFlowMessage(message, limit, measure) {
|
|
123
96
|
const fits = (text) => measure(text) <= limit;
|
|
124
97
|
const full = compose(message, Infinity, Infinity, Infinity);
|
package/dist/flow-live.js
CHANGED
|
@@ -1,34 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The live canvas (v88): a flow open in several browsers stays the same in
|
|
3
|
-
* all of them, and each shows who else has it open.
|
|
4
|
-
*
|
|
5
|
-
* - A change nudge. When the live bus says the workspace was written
|
|
6
|
-
* (live-bus.ts), one small read checks the flow's fingerprint (its revision, cards, moves, comments,
|
|
7
|
-
* watchers, step runs, linked task progress and triggers); when it changed, every open page
|
|
8
|
-
* hears "change" and reads the flow again the usual way. The nudge
|
|
9
|
-
* carries no card data: what a page shows is always what its own read
|
|
10
|
-
* returned, under its own checks.
|
|
11
|
-
* - Who's here. Each open page says which card it has open and whether it
|
|
12
|
-
* is changing the flow; everyone else on the flow hears the list, by
|
|
13
|
-
* name. It lives in memory only and goes when the page closes or hides.
|
|
14
|
-
*
|
|
15
|
-
* Streams are refresh hints only: nothing here writes, and a page that
|
|
16
|
-
* can't keep one open falls back to reading every few seconds. With nothing
|
|
17
|
-
* written, an open flow costs no reads; a 30-second check heals a miss.
|
|
18
|
-
*/
|
|
19
1
|
import { browserViewOf } from "./flow-browser.js";
|
|
20
2
|
import { createHash } from "node:crypto";
|
|
21
3
|
import { createLiveRooms } from "./live-bus.js";
|
|
22
|
-
// Statements belong to their database, without keeping closed Stores alive.
|
|
23
4
|
const fingerprintStatements = new WeakMap();
|
|
24
5
|
function fingerprintStatement(store) {
|
|
25
6
|
const cached = fingerprintStatements.get(store.handle);
|
|
26
7
|
if (cached !== undefined)
|
|
27
8
|
return cached;
|
|
28
|
-
// Match Store.taskFamilyOf/taskFamilyProjection: built-in tasks, same-repo
|
|
29
|
-
// edges, a revision brief bound to the parent's run, and at most 63 edges.
|
|
30
|
-
// Walk up only from active cards, then down from their proven roots. A
|
|
31
|
-
// missing/invalid/cyclic/over-depth ancestry leaves the linked task alone.
|
|
32
9
|
const statement = store.handle.prepare(`WITH RECURSIVE linked AS MATERIALIZED (
|
|
33
10
|
SELECT DISTINCT tr.id AS ref_id, tr.external_id AS id, tr.repo, tr.revision_of, tr.revision_brief_artifact
|
|
34
11
|
FROM flow_card c JOIN task_ref tr ON tr.external_id = c.task AND tr.backend = 'built-in'
|
|
@@ -85,24 +62,16 @@ function fingerprintStatement(store) {
|
|
|
85
62
|
fingerprintStatements.set(store.handle, statement);
|
|
86
63
|
return statement;
|
|
87
64
|
}
|
|
88
|
-
/** What changes when anything on the canvas changes: metadata only, kept short and opaque. */
|
|
89
65
|
export function flowFingerprint(store, flow, now = new Date()) {
|
|
90
|
-
// A revision can progress while its card still links to the original task,
|
|
91
|
-
// including a build in another project. The page read admits the viewer;
|
|
92
|
-
// this stream only carries a hash. No evidence files or logs are read.
|
|
93
66
|
const row = fingerprintStatement(store).get({ $flow: flow, $now: now.toISOString() });
|
|
94
67
|
if (row === undefined)
|
|
95
68
|
return null;
|
|
96
|
-
// Browser use (flow-browser.ts): an approval, a revocation, a changed covered script or a signer who lost standing
|
|
97
|
-
// changes what the page says, so it is part of what open pages are nudged on.
|
|
98
69
|
const saved = store.getFlow(flow);
|
|
99
70
|
const browser = saved === null ? null : browserViewOf(store, saved);
|
|
100
71
|
const browserKey = browser === null ? "" : `${browser.status}:${browser.digest ?? ""}:${browser.signedAt ?? ""}:${browser.problem === null ? "" : "x"}`;
|
|
101
72
|
return createHash("sha256").update([...Object.values(row).map(String), browserKey].join("|")).digest("hex").slice(0, 16);
|
|
102
73
|
}
|
|
103
|
-
/** Rooms keyed by flow. With a bus, a write reaches every open page at once; without one, only the safety net. */
|
|
104
74
|
export function createFlowRooms(fingerprint, options = {}) {
|
|
105
|
-
/** Everyone on the flow but you, one line per person however many pages they have open. */
|
|
106
75
|
const others = (viewers, me) => {
|
|
107
76
|
const people = new Map();
|
|
108
77
|
for (const one of viewers) {
|
package/dist/flow-people.js
CHANGED
|
@@ -1,17 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* People on flow cards (v83): who owns a card, who follows it, what was said
|
|
3
|
-
* on it, and who hears about what. A notification about a card goes to the
|
|
4
|
-
* people it concerns — the one who decides, its owner, its watchers, whoever
|
|
5
|
-
* was @mentioned — on their own paired phone or chat, never to everyone.
|
|
6
|
-
* A "Tell the team" zone still posts to everyone; that is what it is for.
|
|
7
|
-
*/
|
|
8
1
|
import { scanForSecrets } from "./evidence.js";
|
|
9
2
|
import { flowCardHref } from "./flow-engine.js";
|
|
10
|
-
/** Everyone who may take part in a project's flows: approvers who can reach the project. */
|
|
11
3
|
export function flowPeople(store, repo) {
|
|
12
4
|
return store.listApprovers().map(one => one.name).filter(name => store.accountCanAccess(name, repo));
|
|
13
5
|
}
|
|
14
|
-
/** The people a comment @mentions: known names only, each once, in the order written. */
|
|
15
6
|
export function mentionsIn(body, people) {
|
|
16
7
|
const found = [];
|
|
17
8
|
for (const match of body.matchAll(/(^|[^A-Za-z0-9_.@-])@([A-Za-z0-9][A-Za-z0-9_.-]{0,63})/g)) {
|
|
@@ -21,8 +12,6 @@ export function mentionsIn(body, people) {
|
|
|
21
12
|
}
|
|
22
13
|
return found;
|
|
23
14
|
}
|
|
24
|
-
/** One notification per person, to that person only. The actor never notifies themself. */
|
|
25
|
-
/** A notice's body: whole up to 2,000 characters; longer, its start and a line saying the rest is on the card it links. */
|
|
26
15
|
const NOTICE_CHARS = 2000;
|
|
27
16
|
function noticeBody(body) {
|
|
28
17
|
if (body.length <= NOTICE_CHARS)
|
|
@@ -48,11 +37,9 @@ export function notifyPeople(store, card, people, actor, event, now) {
|
|
|
48
37
|
}
|
|
49
38
|
return sent;
|
|
50
39
|
}
|
|
51
|
-
/** Who follows a card: its owner and its watchers. */
|
|
52
40
|
export function cardFollowers(store, card) {
|
|
53
41
|
return [...new Set([...(card.owner === null ? [] : [card.owner]), ...store.flowCardWatchers(card.id)])];
|
|
54
42
|
}
|
|
55
|
-
/** Make someone (or no one) a card's owner. The new owner follows it and hears so. */
|
|
56
43
|
export function assignFlowCard(store, card, owner, actor, now) {
|
|
57
44
|
const flow = store.getFlow(card.flow);
|
|
58
45
|
if (flow === null || card.state !== "active")
|
|
@@ -72,7 +59,6 @@ export function watchFlowCard(store, card, name, watching, now) {
|
|
|
72
59
|
store.setFlowCardWatcher(card.id, name, watching, now);
|
|
73
60
|
return { ok: true, said: watching ? "You'll hear about this card." : "You won't hear about this card unless someone mentions you.", card: card.id };
|
|
74
61
|
}
|
|
75
|
-
/** A comment on a card: keys refused; the people it @mentions, the owner and watchers hear about it; the author and anyone mentioned follow it from now on. */
|
|
76
62
|
export function commentOnFlowCard(store, card, author, text, now) {
|
|
77
63
|
const flow = store.getFlow(card.flow);
|
|
78
64
|
if (flow === null)
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A flow's Pull request zone (flows.ts): the card's built result becomes a pull request under the project's pull
|
|
3
|
-
* request setup — the same grant, publisher and merge as Complete → pull request (pull-request-flow.ts) — and CI
|
|
4
|
-
* decides where the card goes: on when checks pass (merging first when the zone says so), down the failure path
|
|
5
|
-
* when they fail, with the failing check named on the card. A failure path back to a Build zone becomes a revision
|
|
6
|
-
* of that same work carrying the failure, as a person's send back does.
|
|
7
|
-
*
|
|
8
|
-
* A zone that merges only ever merges a card a person approved (a "Person decides" zone) after it was last built:
|
|
9
|
-
* the flow can't be drawn otherwise (validateFlowDefinition), and a card moved in by hand or by a trigger is checked
|
|
10
|
-
* here too. Without that approval the checks passing leave it waiting for a person.
|
|
11
|
-
*
|
|
12
|
-
* Model-free, in the worker's step pass. The publisher and CI observation run in the watch loop; this reads what
|
|
13
|
-
* they recorded, and reads GitHub itself only to name a failing check and to merge.
|
|
14
|
-
*/
|
|
15
1
|
import { createHash } from "node:crypto";
|
|
16
2
|
import { assignmentOf } from "./assignment.js";
|
|
17
3
|
import { cardFollowers, notifyPeople } from "./flow-people.js";
|
|
@@ -20,18 +6,12 @@ import { failingCheckOf, mergePullRequest, owePullRequest, pullRequestBlocker, p
|
|
|
20
6
|
import { requestResultChanges } from "./result-actions.js";
|
|
21
7
|
import { revisionSourceOf } from "./result-review.js";
|
|
22
8
|
import { cardTaskArchived } from "./task-archive.js";
|
|
23
|
-
/** Whether a person approved this card at a "Person decides" zone since it was last built; their name when so.
|
|
24
|
-
* The MOST RECENT decision governs (approval policy §1.7): it must be a person's recorded decision, after the card's
|
|
25
|
-
* last build by the current definition AND after the exact build being merged finished (`builtAt`), so editing the
|
|
26
|
-
* flow can't let an older person decision stand behind a newer machine one. */
|
|
27
9
|
export function approvedSinceBuild(store, definition, card, builtAt = null) {
|
|
28
10
|
const kindOf = (id) => definition.stages.find(one => one.id === id)?.kind ?? null;
|
|
29
11
|
const events = store.flowEvents(card.id);
|
|
30
12
|
let built = -1;
|
|
31
13
|
events.forEach((event, index) => { if (kindOf(event.fromStage) === "task" || kindOf(event.toStage) === "task")
|
|
32
14
|
built = index; });
|
|
33
|
-
// The latest DECISION of any kind governs: only decideFlowCard writes `approved` or `sent-back` (from a decision
|
|
34
|
-
// zone), whatever the zones are called now, so a send-back after a yes takes that yes back.
|
|
35
15
|
const latest = events.slice(built + 1).reverse().find(event => event.outcome === "approved" || event.outcome === "sent-back");
|
|
36
16
|
if (latest === undefined || latest.authority !== "person")
|
|
37
17
|
return null;
|
|
@@ -39,11 +19,8 @@ export function approvedSinceBuild(store, definition, card, builtAt = null) {
|
|
|
39
19
|
return null;
|
|
40
20
|
return latest.actor;
|
|
41
21
|
}
|
|
42
|
-
/** One pass of a Pull request zone for one card. Returns whether it changed anything. */
|
|
43
22
|
export async function pullRequestStep(store, flow, definition, stage, card, now, io) {
|
|
44
23
|
const titleOf = (id) => definition.stages.find(one => one.id === id)?.title ?? "another zone";
|
|
45
|
-
// Every write after GitHub answers re-proves, in its own transaction, that the card's work wasn't put away meanwhile
|
|
46
|
-
// (v145): a put away that committed first leaves the card where it is, saying nothing to anyone.
|
|
47
24
|
const unlessHeld = (write) => store.transact(() => cardTaskArchived(store, card.id) ? false : write());
|
|
48
25
|
const waiting = (said) => unlessHeld(() => {
|
|
49
26
|
if (card.waiting === said)
|
|
@@ -71,8 +48,6 @@ export async function pullRequestStep(store, flow, definition, stage, card, now,
|
|
|
71
48
|
body: `${said}${stage.onFail === null ? "" : `\n\nIt's back in ${titleOf(stage.onFail)}${revision === null ? "" : `, as revision ${revision}`}.`}` }, now);
|
|
72
49
|
return true;
|
|
73
50
|
};
|
|
74
|
-
// Publishing that can't proceed is not the build's fault: rebuilding wouldn't change it, so the card waits here,
|
|
75
|
-
// saying what to do, and the people on it hear once. It carries on by itself once the cause is fixed.
|
|
76
51
|
const stuck = (said) => unlessHeld(() => {
|
|
77
52
|
if (!waiting(said))
|
|
78
53
|
return false;
|
|
@@ -80,7 +55,6 @@ export async function pullRequestStep(store, flow, definition, stage, card, now,
|
|
|
80
55
|
notifyPeople(store, card, people, null, { key: `pr-stuck:${card.entry}`, subject: `${stage.title} is waiting on you for “${card.title}”`, attention: true, body: said }, now);
|
|
81
56
|
return true;
|
|
82
57
|
});
|
|
83
|
-
// With no failure path, a card that didn't pass waits for a person to move it (a move is a fresh visit).
|
|
84
58
|
if (stage.onFail === null && card.waiting !== null && card.waiting.endsWith(" Fix it, then move the card to try again."))
|
|
85
59
|
return false;
|
|
86
60
|
const task = card.primaryTask;
|
|
@@ -92,7 +66,6 @@ export async function pullRequestStep(store, flow, definition, stage, card, now,
|
|
|
92
66
|
if (publication === null || pullRequestFollowOf(store, publication.id) === null) {
|
|
93
67
|
if (publication === null) {
|
|
94
68
|
const blocked = pullRequestBlocker(store, runId);
|
|
95
|
-
// Only a result that can't be published as built goes back to be built again.
|
|
96
69
|
if (blocked !== null && (blocked === "This result has no commit to publish." || blocked.includes("looks like a secret")))
|
|
97
70
|
return failed(blocked);
|
|
98
71
|
if (blocked === "Pull requests aren't set up for this project.")
|
|
@@ -106,7 +79,6 @@ export async function pullRequestStep(store, flow, definition, stage, card, now,
|
|
|
106
79
|
const said = `Couldn't open the pull request: ${publication.lastError ?? "GitHub refused it"}. The commit is safe locally. Fix that, then move the card back to Build for a fresh result.`;
|
|
107
80
|
if (card.waiting === said)
|
|
108
81
|
return false;
|
|
109
|
-
// A pull request opened for this commit anyway (another pass, or a person) is the card's pull request.
|
|
110
82
|
if (await adoptPublishedPullRequest(store, publication, io.gh, () => now))
|
|
111
83
|
publication = store.publicationForRun(runId);
|
|
112
84
|
else
|
|
@@ -120,7 +92,6 @@ export async function pullRequestStep(store, flow, definition, stage, card, now,
|
|
|
120
92
|
return passed(`${pr} was merged on GitHub.`, `Merged: ${link}`);
|
|
121
93
|
if (publication.remoteState === "CLOSED")
|
|
122
94
|
return failed(`${pr} was closed on GitHub without merging.`);
|
|
123
|
-
// Only what CI said since the card came here counts: a card moved back to try again waits for a fresh look.
|
|
124
95
|
const entered = store.flowCardEnteredAt(card.id) ?? card.updatedAt;
|
|
125
96
|
const fresh = publication.lastCheckAt !== null && publication.lastCheckAt >= entered;
|
|
126
97
|
if (!fresh || publication.lastCheckState === "running")
|
|
@@ -130,10 +101,8 @@ export async function pullRequestStep(store, flow, definition, stage, card, now,
|
|
|
130
101
|
if (publication.lastCheckState === "failing") {
|
|
131
102
|
const found = await failingCheckOf(io.gh, publication);
|
|
132
103
|
const said = found === null ? `CI failed on ${pr}. GitHub couldn't be read to name the check.` : `CI check “${found.check}” failed on ${pr}.`;
|
|
133
|
-
// Back to a Build zone: a revision of the same work, carrying the failure (fenced as untrusted CI output).
|
|
134
104
|
let revision = null;
|
|
135
105
|
const target = definition.stages.find(one => one.id === stage.onFail);
|
|
136
|
-
// No revision of work put away while GitHub answered (v145).
|
|
137
106
|
if (cardTaskArchived(store, card.id))
|
|
138
107
|
return false;
|
|
139
108
|
if (target?.kind === "task" && io.evidenceRoot !== undefined) {
|
|
@@ -148,7 +117,6 @@ export async function pullRequestStep(store, flow, definition, stage, card, now,
|
|
|
148
117
|
}
|
|
149
118
|
return failed(said, revision);
|
|
150
119
|
}
|
|
151
|
-
// Checks pass.
|
|
152
120
|
if (stage.merge === undefined)
|
|
153
121
|
return passed(`${pr} passed its checks.`, `Pull request: ${link} (checks passed)`);
|
|
154
122
|
const approver = approvedSinceBuild(store, definition, card, store.getRun(runId)?.finishedAt ?? null);
|