toolroll 0.9.103 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +27 -27
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +117 -103
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +3 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +2 -16
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +168 -0
- package/dist/local-owner.js +15 -80
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +2 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +280 -2304
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +3 -18
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +11 -30
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +6 -74
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +26 -103
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +9 -28
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +88 -566
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +29 -564
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +9 -86
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +17 -497
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +8 -133
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +12 -227
- package/dist/server/tasks.js +37 -531
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +8 -73
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +66 -19
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +91 -40
- package/dist/tui.js +54 -54
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +5 -4
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -318
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1972
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -539
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -41
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner.d.ts +0 -124
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -52
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -156
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -35
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1067
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -80
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -59
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -754
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -774
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -342
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -83
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -30
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -144
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/push.js
CHANGED
|
@@ -1,33 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Web push, zero-dependency (arc 3).
|
|
3
|
-
*
|
|
4
|
-
* Three layers, kept apart: CRYPTO (RFC 8291 aes128gcm message encryption
|
|
5
|
-
* and RFC 8292 VAPID authorization, byte-exact, node:crypto only),
|
|
6
|
-
* TRANSPORT (one hardened fetch to an allow-listed push service), and the
|
|
7
|
-
* PASS (claim pairs from the store's ledger, fence, send, settle by the
|
|
8
|
-
* full outcome table). The payload that transits Apple's and Google's
|
|
9
|
-
* servers is a fixed phrase keyed on the notification's CLASS plus a
|
|
10
|
-
* machine-minted console path. Check progress may also send one validated
|
|
11
|
-
* suite/count line; task titles, branches and repository names stay local.
|
|
12
|
-
*
|
|
13
|
-
* 'accepted' means the push service took the message (RFC 8030). Nothing
|
|
14
|
-
* here ever claims a phone displayed anything, and delivery is
|
|
15
|
-
* AT-LEAST-ONCE: a crash between acceptance and settlement re-sends after
|
|
16
|
-
* the pair's lease expires (the payload's tag collapses the duplicate on
|
|
17
|
-
* the lock screen).
|
|
18
|
-
*/
|
|
19
1
|
import { closeSync, constants as fsConstants, fsyncSync, openSync, readFileSync, writeSync } from "node:fs";
|
|
20
2
|
import { join } from "node:path";
|
|
21
3
|
import { createCipheriv, createECDH, createPrivateKey, hkdfSync, randomBytes, createHash, sign as cryptoSign } from "node:crypto";
|
|
22
4
|
import { isCheckProgressLine } from "./check-progress.js";
|
|
23
5
|
import { RELEASE_PUSH_WORDS, releasePushOf, releaseReadyObsolete } from "./release-approval.js";
|
|
24
6
|
export const VAPID_FILE = "vapid-keys.json";
|
|
25
|
-
/** RFC 8291 §4: rs 4096 leaves room for the record's delimiter and tag. */
|
|
26
7
|
const RECORD_SIZE = 4096;
|
|
27
|
-
/** The plaintext ceiling that keeps one record inside rs (RFC 8291 §4). */
|
|
28
8
|
export const PLAINTEXT_CEILING = 3993;
|
|
29
9
|
const REQUEST_TIMEOUT_MS = 10_000;
|
|
30
|
-
/** The pair lease strictly exceeds the request timeout (finding 12). */
|
|
31
10
|
export const PUSH_CLAIM_TTL_MS = 30_000;
|
|
32
11
|
const BACKOFF_MS = [60_000, 300_000, 1_500_000, 7_200_000];
|
|
33
12
|
const MAX_ATTEMPTS = 8;
|
|
@@ -36,16 +15,9 @@ const fromB64url = (text) => Buffer.from(text, "base64url");
|
|
|
36
15
|
export function vapidFingerprint(publicKey) {
|
|
37
16
|
return createHash("sha256").update(publicKey, "utf8").digest("hex").slice(0, 16);
|
|
38
17
|
}
|
|
39
|
-
/** Load the saved pair only (null when none is saved yet): what a page reads (docs/plans/get-side-effects.md). */
|
|
40
18
|
export function loadVapidKeys(dir) {
|
|
41
19
|
return readVapidKeys(join(dir, VAPID_FILE));
|
|
42
20
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Mint-or-load, atomically across processes (finding 29): exclusive
|
|
45
|
-
* creation; the loser of a race re-reads the winner's file; and a loaded
|
|
46
|
-
* pair is VALIDATED — the stored public key must derive from the stored
|
|
47
|
-
* private key, or the file is refused rather than trusted.
|
|
48
|
-
*/
|
|
49
21
|
export function loadOrCreateVapidKeys(dir) {
|
|
50
22
|
const path = join(dir, VAPID_FILE);
|
|
51
23
|
const read = () => readVapidKeys(path);
|
|
@@ -67,7 +39,6 @@ export function loadOrCreateVapidKeys(dir) {
|
|
|
67
39
|
return { ...fresh, fingerprint: vapidFingerprint(fresh.publicKey) };
|
|
68
40
|
}
|
|
69
41
|
catch {
|
|
70
|
-
// Another process won the exclusive create — its keys are the keys.
|
|
71
42
|
const winner = read();
|
|
72
43
|
if (winner === null)
|
|
73
44
|
throw new Error(`could not create or read ${VAPID_FILE}`);
|
|
@@ -93,12 +64,6 @@ function readVapidKeys(path) {
|
|
|
93
64
|
}
|
|
94
65
|
return { publicKey: parsed.publicKey, privateKey: parsed.privateKey, fingerprint: vapidFingerprint(parsed.publicKey) };
|
|
95
66
|
}
|
|
96
|
-
// ---- RFC 8291 encryption ----------------------------------------------------
|
|
97
|
-
/**
|
|
98
|
-
* The deterministic core, exported for the Appendix A vector test: given
|
|
99
|
-
* the subscriber's materials, an application-server ECDH object, and a
|
|
100
|
-
* salt, produce the complete aes128gcm body — header || ciphertext.
|
|
101
|
-
*/
|
|
102
67
|
export function encryptWithMaterials(uaPublic, authSecret, asKeys, salt, plaintext) {
|
|
103
68
|
if (uaPublic.length !== 65 || uaPublic[0] !== 0x04)
|
|
104
69
|
throw new Error("subscriber key is not a 65-byte uncompressed P-256 point");
|
|
@@ -109,14 +74,11 @@ export function encryptWithMaterials(uaPublic, authSecret, asKeys, salt, plainte
|
|
|
109
74
|
if (plaintext.length > PLAINTEXT_CEILING)
|
|
110
75
|
throw new Error(`payload over ${PLAINTEXT_CEILING} bytes`);
|
|
111
76
|
const asPublic = asKeys.getPublicKey();
|
|
112
|
-
// computeSecret rejects off-curve points — the caller maps that throw to
|
|
113
|
-
// an invalid subscription, never a crash.
|
|
114
77
|
const ecdhSecret = asKeys.computeSecret(uaPublic);
|
|
115
78
|
const keyInfo = Buffer.concat([Buffer.from("WebPush: info", "ascii"), Buffer.from([0]), uaPublic, asPublic]);
|
|
116
79
|
const ikm = Buffer.from(hkdfSync("sha256", ecdhSecret, authSecret, keyInfo, 32));
|
|
117
80
|
const cek = Buffer.from(hkdfSync("sha256", ikm, salt, Buffer.concat([Buffer.from("Content-Encoding: aes128gcm", "ascii"), Buffer.from([0])]), 16));
|
|
118
81
|
const nonce = Buffer.from(hkdfSync("sha256", ikm, salt, Buffer.concat([Buffer.from("Content-Encoding: nonce", "ascii"), Buffer.from([0])]), 12));
|
|
119
|
-
// One record: plaintext, the last-record delimiter 0x02, zero padding.
|
|
120
82
|
const record = Buffer.concat([plaintext, Buffer.from([2])]);
|
|
121
83
|
const cipher = createCipheriv("aes-128-gcm", cek, nonce);
|
|
122
84
|
const ciphertext = Buffer.concat([cipher.update(record), cipher.final(), cipher.getAuthTag()]);
|
|
@@ -126,21 +88,14 @@ export function encryptWithMaterials(uaPublic, authSecret, asKeys, salt, plainte
|
|
|
126
88
|
header.writeUInt8(65, 20);
|
|
127
89
|
return Buffer.concat([header, asPublic, ciphertext]);
|
|
128
90
|
}
|
|
129
|
-
/** The production wrapper: fresh ephemeral keys and a fresh salt per message. */
|
|
130
91
|
export function encryptPushPayload(p256dh, auth, plaintext) {
|
|
131
92
|
const ephemeral = createECDH("prime256v1");
|
|
132
93
|
ephemeral.generateKeys();
|
|
133
94
|
return encryptWithMaterials(fromB64url(p256dh), fromB64url(auth), ephemeral, randomBytes(16), Buffer.from(plaintext, "utf8"));
|
|
134
95
|
}
|
|
135
|
-
// ---- RFC 8292 VAPID ---------------------------------------------------------
|
|
136
|
-
/**
|
|
137
|
-
* The VAPID authorization header: an ES256 JWT over { aud, exp, sub? },
|
|
138
|
-
* signed with the STABLE server key (distinct from every message's
|
|
139
|
-
* ephemeral key), in JWS P1363 form — never DER (finding 4).
|
|
140
|
-
*/
|
|
141
96
|
export function vapidAuthorization(endpoint, keys, now, contact) {
|
|
142
97
|
const aud = new URL(endpoint).origin;
|
|
143
|
-
const exp = Math.floor(now.getTime() / 1000) + 12 * 60 * 60;
|
|
98
|
+
const exp = Math.floor(now.getTime() / 1000) + 12 * 60 * 60;
|
|
144
99
|
const claims = { aud, exp };
|
|
145
100
|
if (contact !== undefined && (contact.startsWith("mailto:") || contact.startsWith("https:")))
|
|
146
101
|
claims["sub"] = contact;
|
|
@@ -161,8 +116,6 @@ export function vapidAuthorization(endpoint, keys, now, contact) {
|
|
|
161
116
|
const signature = cryptoSign("sha256", Buffer.from(signingInput, "utf8"), { key: privateKey, dsaEncoding: "ieee-p1363" });
|
|
162
117
|
return `vapid t=${signingInput}.${b64url(signature)}, k=${keys.publicKey}`;
|
|
163
118
|
}
|
|
164
|
-
// ---- endpoint discipline ----------------------------------------------------
|
|
165
|
-
/** The closed allow-list of push services (finding 7): SSRF dies here. */
|
|
166
119
|
const PUSH_HOSTS = [
|
|
167
120
|
{ exact: "fcm.googleapis.com" },
|
|
168
121
|
{ suffix: ".push.apple.com" },
|
|
@@ -194,7 +147,6 @@ export function validatePushEndpoint(raw) {
|
|
|
194
147
|
return { ok: false, problem: "that host is not a known push service — extending the list is a code change, deliberately" };
|
|
195
148
|
return { ok: true, url };
|
|
196
149
|
}
|
|
197
|
-
/** Fixed words, except for one validated machine-only suite/count line. */
|
|
198
150
|
export const PUSH_WORDS = {
|
|
199
151
|
decision: { title: "Toolroll", body: "a decision needs you" },
|
|
200
152
|
pick: { title: "Toolroll", body: "agents finished — pick a winner" },
|
|
@@ -203,11 +155,7 @@ export const PUSH_WORDS = {
|
|
|
203
155
|
progress: { title: "Toolroll", body: "checks in progress" },
|
|
204
156
|
release: { title: "Toolroll", body: RELEASE_PUSH_WORDS },
|
|
205
157
|
};
|
|
206
|
-
// `/approve/<n>`: a release's opaque locator (a task ref number: no version, commit or branch), resolved by the console.
|
|
207
158
|
const RELEASE_LINK = /^\/approve\/[0-9]{1,15}$/;
|
|
208
|
-
/** The relative links a push may carry (docs/plans/plain-toolroll.md P1.4): every shape an older worker took, kept for
|
|
209
|
-
* good (/next and /review now redirect to Home and Tasks' Ready view; the rest keep their pages), then Home, Tasks'
|
|
210
|
-
* Ready and Board views, and a task by its stored number (/n/<n>, resolved under the viewer's own access). */
|
|
211
159
|
export const LINK_SHAPES = [/^\/next$/, /^\/review$/, /^\/system$/, /^\/routines$/, /^\/routines\/[0-9]{1,15}$/, /^\/d\/[0-9]{1,15}$/, /^\/r\/[0-9]{1,15}$/, RELEASE_LINK,
|
|
212
160
|
/^\/$/, /^\/tasks\?view=ready$/, /^\/tasks\?view=board$/, /^\/n\/[1-9][0-9]{0,14}$/];
|
|
213
161
|
const CLASS_FALLBACK = {
|
|
@@ -218,25 +166,19 @@ const CLASS_FALLBACK = {
|
|
|
218
166
|
progress: "/",
|
|
219
167
|
release: "/",
|
|
220
168
|
};
|
|
221
|
-
/** Static words and machine-minted numbers only — re-proved at send time. */
|
|
222
169
|
export function safePushLink(pushClass, link) {
|
|
223
|
-
// The release locator rides only the derived `release` class: a stored link of that shape on any other row is not one.
|
|
224
170
|
if (link !== null && RELEASE_LINK.test(link))
|
|
225
171
|
return pushClass === "release" ? link : CLASS_FALLBACK[pushClass];
|
|
226
172
|
if (link !== null && LINK_SHAPES.some(shape => shape.test(link)))
|
|
227
173
|
return link;
|
|
228
174
|
return CLASS_FALLBACK[pushClass];
|
|
229
175
|
}
|
|
230
|
-
/** One line per ping (docs/plans/plain-toolroll.md P1.5), built only from the task's stored number and fixed words: no
|
|
231
|
-
* title, no free text. A fact about a task opens that task (/n/<n>); anything else keeps its class's fixed words and
|
|
232
|
-
* its own allow-listed link. Rows are tried in order; the first that matches says the line. */
|
|
233
176
|
export const PUSH_LINES = [
|
|
234
177
|
{ when: one => one.kind === "plan-ready", say: number => `#${number}: plan ready` },
|
|
235
178
|
{ when: one => one.pushClass === "decision" || one.kind === "task-ask" || one.kind === "decision", say: number => `#${number} has a question` },
|
|
236
179
|
{ when: one => one.pushClass === "merge" || one.pushClass === "pick" || one.kind === "pull-request-ready" || one.kind === "acceptance-ready", say: number => `#${number} is ready to review` },
|
|
237
180
|
{ when: () => true, say: number => `#${number} needs you` },
|
|
238
181
|
];
|
|
239
|
-
/** The one line a ping says, and where its tap lands. */
|
|
240
182
|
export function pushLineOf(notification) {
|
|
241
183
|
const pushClass = notification.pushClass;
|
|
242
184
|
if (pushClass === "progress" && isCheckProgressLine(notification.body))
|
|
@@ -248,20 +190,13 @@ export function pushLineOf(notification) {
|
|
|
248
190
|
}
|
|
249
191
|
return { body: PUSH_WORDS[pushClass].body, url: safePushLink(pushClass, notification.link) };
|
|
250
192
|
}
|
|
251
|
-
/** `release`: the class and link the plane derived for this row at send time (releasePushOf): fixed words and a release's
|
|
252
|
-
* own link, never the task line. Absent or null, the row's own line. */
|
|
253
193
|
export function buildPushPayload(notification, waiting = null, release = null) {
|
|
254
194
|
const line = release !== null ? { body: PUSH_WORDS.release.body, url: safePushLink("release", release.link) } : pushLineOf(notification);
|
|
255
195
|
return JSON.stringify({
|
|
256
196
|
title: "Toolroll",
|
|
257
197
|
body: line.body,
|
|
258
198
|
url: line.url,
|
|
259
|
-
// The opaque tag collapses a crash-duplicate on the lock screen.
|
|
260
199
|
tag: release === null && notification.pushClass === "progress" && notification.run !== null ? `so-run-${notification.run}` : `so-${notification.id}`,
|
|
261
|
-
// The app-icon badge (Phase 2E, v2 S4): the server-computed
|
|
262
|
-
// waiting-on-you COUNT at send time — a number, never content, so the
|
|
263
|
-
// closed-class discipline holds. The console page recomputes and
|
|
264
|
-
// clears; a stale push never outranks a fresh page.
|
|
265
200
|
...(waiting === null ? {} : { waiting }),
|
|
266
201
|
});
|
|
267
202
|
}
|
|
@@ -274,35 +209,25 @@ function backoffFor(attempts, retryAfter, now) {
|
|
|
274
209
|
const step = BACKOFF_MS[Math.min(Math.max(attempts - 1, 0), BACKOFF_MS.length - 1)];
|
|
275
210
|
return new Date(now.getTime() + step);
|
|
276
211
|
}
|
|
277
|
-
/**
|
|
278
|
-
* One pass: seed, claim, and for each pair — renew, fence, encrypt, send,
|
|
279
|
-
* settle by the outcome table. Every settle is conditional on the claim's
|
|
280
|
-
* owner AND generation; a lapsed claim writes nothing.
|
|
281
|
-
*/
|
|
282
212
|
export async function pushPass(store, options) {
|
|
283
213
|
const clock = options.clock ?? (() => new Date());
|
|
284
214
|
const owner = options.owner ?? `push-${randomBytes(4).toString("hex")}`;
|
|
285
215
|
const doFetch = options.fetchImpl ?? (async (url, init) => fetch(url, init));
|
|
286
216
|
const report = { seeded: 0, accepted: 0, rescheduled: 0, rejected: 0, retired: 0, credentialProblem: false };
|
|
287
217
|
if (store.isDemo())
|
|
288
|
-
return report;
|
|
218
|
+
return report;
|
|
289
219
|
const keys = loadOrCreateVapidKeys(options.configDir);
|
|
290
|
-
// Subscriptions are bound to the key they enrolled under (finding 27):
|
|
291
|
-
// after a regeneration they reject every message — retire them visibly.
|
|
292
220
|
report.retired += store.retirePushSubscriptionsOfOtherKeys(keys.fingerprint, clock());
|
|
293
221
|
report.seeded = store.seedPushPairs(clock());
|
|
294
222
|
const pairs = store.claimPushPairs(owner, PUSH_CLAIM_TTL_MS, 32, clock());
|
|
295
223
|
let sawAccepted = false;
|
|
296
224
|
for (const pair of pairs) {
|
|
297
|
-
// Renew and re-fence immediately before the network (finding 12).
|
|
298
225
|
if (!store.renewPushClaim(pair.id, owner, pair.claimGeneration, PUSH_CLAIM_TTL_MS, clock()))
|
|
299
226
|
continue;
|
|
300
227
|
const fenced = store.pushSendFence(pair.id, owner, pair.claimGeneration, clock());
|
|
301
228
|
if (fenced === null)
|
|
302
|
-
continue;
|
|
229
|
+
continue;
|
|
303
230
|
const subscription = fenced.subscriptionRow;
|
|
304
|
-
// A release's "ready for your approval" that no longer stands (approved, superseded, put away) is resolved, never
|
|
305
|
-
// sent; one that stands is sent as `release`, its class and link derived from the plane's state now.
|
|
306
231
|
if (releaseReadyObsolete(store, fenced.notificationRow)) {
|
|
307
232
|
store.handle.prepare("UPDATE notification SET resolved_at = ? WHERE id = ? AND resolved_at IS NULL").run(clock().toISOString(), fenced.notificationRow.id);
|
|
308
233
|
continue;
|
|
@@ -316,14 +241,9 @@ export async function pushPass(store, options) {
|
|
|
316
241
|
}
|
|
317
242
|
let body;
|
|
318
243
|
try {
|
|
319
|
-
body = encryptPushPayload(subscription.p256dh, subscription.auth,
|
|
320
|
-
// The badge count rides every push: the same inbox classifier the
|
|
321
|
-
// console's own sidebar badge reads, unscoped (a phone has no
|
|
322
|
-
// project pane), computed at send time.
|
|
323
|
-
buildPushPayload(fenced.notificationRow, store.countInboxScoped(null, clock(), 100, null).count, release));
|
|
244
|
+
body = encryptPushPayload(subscription.p256dh, subscription.auth, buildPushPayload(fenced.notificationRow, store.countInboxScoped(null, clock(), 100, null).count, release));
|
|
324
245
|
}
|
|
325
246
|
catch {
|
|
326
|
-
// Off-curve or malformed subscriber material: the device, not us.
|
|
327
247
|
store.retirePushSubscription(subscription.id, "invalid-keys", clock());
|
|
328
248
|
report.retired += 1;
|
|
329
249
|
continue;
|
|
@@ -348,9 +268,8 @@ export async function pushPass(store, options) {
|
|
|
348
268
|
retryAfter = answer.headers.get("retry-after");
|
|
349
269
|
}
|
|
350
270
|
catch {
|
|
351
|
-
status = 0;
|
|
271
|
+
status = 0;
|
|
352
272
|
}
|
|
353
|
-
// The outcome table (finding 18).
|
|
354
273
|
if (status >= 200 && status < 300) {
|
|
355
274
|
if (store.settlePushPair(pair.id, owner, pair.claimGeneration, { kind: "accepted" }, clock()))
|
|
356
275
|
report.accepted += 1;
|
|
@@ -366,8 +285,6 @@ export async function pushPass(store, options) {
|
|
|
366
285
|
}
|
|
367
286
|
}
|
|
368
287
|
else if (status === 401 || status === 403) {
|
|
369
|
-
// A CREDENTIAL problem, never a device problem: no retirement, and
|
|
370
|
-
// one deduped, UNSTAMPED operator episode (finding 27).
|
|
371
288
|
report.credentialProblem = true;
|
|
372
289
|
store.enqueueEpisode(`push-credentials:${keys.fingerprint}`, {
|
|
373
290
|
source: { installation: true },
|
|
@@ -381,7 +298,6 @@ export async function pushPass(store, options) {
|
|
|
381
298
|
settleRetryOrGiveUp(store, pair.id, owner, pair.claimGeneration, pair.attempts, status === 0 ? "the push service could not be reached" : `push service answered ${status}`, retryAfter, clock(), report);
|
|
382
299
|
}
|
|
383
300
|
}
|
|
384
|
-
// A working credential closes the episode (finding 27).
|
|
385
301
|
if (sawAccepted)
|
|
386
302
|
store.resolveEpisodes(`push-credentials:${keys.fingerprint}`, clock());
|
|
387
303
|
return report;
|
package/dist/quick-start.js
CHANGED
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BARE `toolroll` IN A REPOSITORY (docs/plans/agents-cockpit.md B1): the two-action start.
|
|
3
|
-
*
|
|
4
|
-
* Inside a git repository, `toolroll` with nothing else (or only --json) either starts the console for it (`up`), or —
|
|
5
|
-
* when this installation's console is already running and PROVES it is (console-instance.ts: a fresh challenge on the
|
|
6
|
-
* discovery socket and on its HTTP listener, answered with the secret in the database this CLI opened itself) —
|
|
7
|
-
* adds the repository through the ordinary project admission and opens that proved console. Under an agent, or with
|
|
8
|
-
* --json, it starts nothing and changes nothing: it says what it would do. Outside a repository, it scans as before
|
|
9
|
-
* (the scan is also `toolroll scan`).
|
|
10
|
-
*/
|
|
11
1
|
import { lstatSync, realpathSync } from "node:fs";
|
|
12
2
|
import { proveLiveConsole } from "./console-instance.js";
|
|
13
3
|
import { underAgent } from "./prompt.js";
|
|
@@ -15,12 +5,9 @@ import { envelopeJson } from "./envelope.js";
|
|
|
15
5
|
import { createRequire } from "node:module";
|
|
16
6
|
import { openStoreReadOnly, readSchemaVersion, SCHEMA_VERSION } from "./store.js";
|
|
17
7
|
const EXIT = { ok: 0, refused: 3 };
|
|
18
|
-
/** Whether argv is a bare `toolroll` (nothing, or only --json). */
|
|
19
8
|
export const isBareInvocation = (argv) => argv.every(one => one === "--json");
|
|
20
|
-
/** The database's schema version by the store's own strict reader, read without changing anything. */
|
|
21
9
|
function schemaOf(file) {
|
|
22
10
|
try {
|
|
23
|
-
// Loaded only here, as the store loads it: the CLI's other commands never pay for (or warn about) it.
|
|
24
11
|
const { DatabaseSync } = createRequire(import.meta.url)("node:sqlite");
|
|
25
12
|
const db = new DatabaseSync(file, { readOnly: true });
|
|
26
13
|
try {
|
|
@@ -35,7 +22,6 @@ function schemaOf(file) {
|
|
|
35
22
|
return { ok: false };
|
|
36
23
|
}
|
|
37
24
|
}
|
|
38
|
-
/** Whether the database file is there: "absent" only when the system says so (ENOENT), never for a path it won't show. */
|
|
39
25
|
function databasePresence(file) {
|
|
40
26
|
try {
|
|
41
27
|
lstatSync(file);
|
|
@@ -48,12 +34,8 @@ function databasePresence(file) {
|
|
|
48
34
|
function prove(seams) {
|
|
49
35
|
return proveConsoleReadOnly(seams.databaseFile, seams.build, seams.attach ?? {});
|
|
50
36
|
}
|
|
51
|
-
/** This database's console, proved live without creating, migrating or changing anything (also easy-start.ts's). */
|
|
52
37
|
export async function proveConsoleReadOnly(databaseFile, build, attach = {}) {
|
|
53
38
|
const seams = { databaseFile, build, attach };
|
|
54
|
-
// Read only, never created or migrated, never cleaned up: proving changes nothing. "None" only when nothing of this
|
|
55
|
-
// build can be running on it (no database yet, or one older than this build, which `up` brings up to date); a
|
|
56
|
-
// database that can't be read, is mid-upgrade or is newer than this build can't be checked, so it is refused.
|
|
57
39
|
const none = { ok: false, state: "none", message: "no console is running" };
|
|
58
40
|
const unverifiable = (why) => ({ ok: false, state: "refused", message: `${why}, so a running console can't be checked — run \`toolroll up\` to see what's wrong` });
|
|
59
41
|
const presence = databasePresence(seams.databaseFile);
|
|
@@ -81,7 +63,6 @@ export async function proveConsoleReadOnly(databaseFile, build, attach = {}) {
|
|
|
81
63
|
store.close();
|
|
82
64
|
}
|
|
83
65
|
}
|
|
84
|
-
/** null: not this command (outside a repository) — the caller scans as before. */
|
|
85
66
|
export async function runQuickStart(argv, write, seams) {
|
|
86
67
|
const found = await seams.findRepo(seams.cwd);
|
|
87
68
|
if (found === null)
|
|
@@ -90,14 +71,13 @@ export async function runQuickStart(argv, write, seams) {
|
|
|
90
71
|
try {
|
|
91
72
|
repo = realpathSync(found);
|
|
92
73
|
}
|
|
93
|
-
catch {
|
|
74
|
+
catch { }
|
|
94
75
|
const json = argv.includes("--json");
|
|
95
76
|
const dry = json || (seams.underAgent ?? underAgent(seams.env));
|
|
96
77
|
const proof = await prove(seams);
|
|
97
78
|
const enrolled = await seams.enrolled(repo);
|
|
98
79
|
const would = proof.ok ? (enrolled ? "open" : "add-and-open") : proof.state === "none" ? "start" : "refuse";
|
|
99
80
|
if (dry) {
|
|
100
|
-
// Nothing starts, nothing is added, nothing opens: what a person would get, in words or one envelope.
|
|
101
81
|
const words = would === "start" ? `Would start Toolroll for ${repo} (toolroll up).`
|
|
102
82
|
: would === "refuse" ? `Would refuse: ${proof.message}.`
|
|
103
83
|
: `Would ${would === "add-and-open" ? `add ${repo} and ` : ""}open the running console at ${proof.url}.`;
|
|
@@ -118,8 +98,6 @@ export async function runQuickStart(argv, write, seams) {
|
|
|
118
98
|
if (admitted !== 0)
|
|
119
99
|
return admitted;
|
|
120
100
|
}
|
|
121
|
-
// Whatever happened since the first proof (reading the registry, adding the project), the console is proved again,
|
|
122
|
-
// on both channels, right before its address is shown or opened — never a listener that took the port meanwhile.
|
|
123
101
|
const again = await prove(seams);
|
|
124
102
|
if (!again.ok || again.url !== proof.url || again.pid !== proof.pid) {
|
|
125
103
|
write(`Toolroll can't attach: ${again.ok ? "the console changed while the project was being added" : again.message} — run \`toolroll up\`.`);
|
|
@@ -2,7 +2,6 @@ import { parentPort, workerData } from 'node:worker_threads';
|
|
|
2
2
|
import { openStoreReadOnly } from './store.js';
|
|
3
3
|
import { workCountsByProject, workIndexPage } from './work-index.js';
|
|
4
4
|
import { projectSummaryOf } from './console-chrome.js';
|
|
5
|
-
/** One read-only, query-only connection per worker (read-executor.ts). Jobs arrive one at a time. */
|
|
6
5
|
let store = null;
|
|
7
6
|
function connection() {
|
|
8
7
|
if (store !== null)
|
package/dist/read-executor.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Worker } from 'node:worker_threads';
|
|
2
2
|
import { availableParallelism } from 'node:os';
|
|
3
3
|
import { WorkIndexCursorError } from './work-index.js';
|
|
4
|
-
/** More queued reads than this fail at once instead of growing without bound. */
|
|
5
4
|
export const READ_QUEUE_MAX = 1_000;
|
|
6
5
|
export class ReadExecutorError extends Error {
|
|
7
6
|
constructor(message) { super(message); this.name = 'ReadExecutorError'; }
|
|
@@ -18,7 +17,6 @@ export class ReadExecutor {
|
|
|
18
17
|
this.#size = Math.max(1, Math.floor(size));
|
|
19
18
|
}
|
|
20
19
|
get size() { return this.#size; }
|
|
21
|
-
/** workIndexPage(store, now, access, options) on a worker's read-only connection: same rows, same errors. */
|
|
22
20
|
async workIndexPage(now, access, options) {
|
|
23
21
|
try {
|
|
24
22
|
return await this.#run({ kind: 'work-index-page', now: now.toISOString(), access, options });
|
|
@@ -29,11 +27,9 @@ export class ReadExecutor {
|
|
|
29
27
|
throw error;
|
|
30
28
|
}
|
|
31
29
|
}
|
|
32
|
-
/** workCountsByProject(store, now, access) on a worker: the console's Tasks count and live beat. */
|
|
33
30
|
async workCounts(now, access) {
|
|
34
31
|
return await this.#run({ kind: 'work-counts', now: now.toISOString(), access });
|
|
35
32
|
}
|
|
36
|
-
/** projectSummaryOf (console-chrome.ts) on a worker: the sidebar's project states for one already-admitted reader. */
|
|
37
33
|
async projectSummary(now, access, actor, projects, evidenceRoot) {
|
|
38
34
|
return await this.#run({ kind: 'project-summary', now: now.toISOString(), access, actor, projects: projects.map(one => ({ path: one.path, name: one.name })), evidenceRoot: evidenceRoot ?? null });
|
|
39
35
|
}
|
|
@@ -60,7 +56,6 @@ export class ReadExecutor {
|
|
|
60
56
|
}
|
|
61
57
|
}
|
|
62
58
|
#spawn() {
|
|
63
|
-
// The installed server runs the built sibling; tests run the TypeScript source through tsx.
|
|
64
59
|
const worker = import.meta.url.endsWith('.ts')
|
|
65
60
|
? new Worker(`import('tsx/esm/api').then(tsx => { tsx.register(); return import(${JSON.stringify(new URL('./read-executor-worker.ts', import.meta.url).href)}); });`, { eval: true, workerData: { file: this.#file } })
|
|
66
61
|
: new Worker(new URL('./read-executor-worker.js', import.meta.url), { workerData: { file: this.#file } });
|
|
@@ -77,7 +72,6 @@ export class ReadExecutor {
|
|
|
77
72
|
pending.reject(Object.assign(new Error(reply.error.message), { name: reply.error.name }));
|
|
78
73
|
this.#pump();
|
|
79
74
|
});
|
|
80
|
-
// A crashed worker fails only the read it held; the next read starts a fresh one.
|
|
81
75
|
const lost = (error) => {
|
|
82
76
|
const at = this.#slots.indexOf(slot);
|
|
83
77
|
if (at < 0)
|
|
@@ -94,7 +88,6 @@ export class ReadExecutor {
|
|
|
94
88
|
worker.unref();
|
|
95
89
|
return slot;
|
|
96
90
|
}
|
|
97
|
-
/** Fails every queued and running read once, then stops the workers. */
|
|
98
91
|
async close() {
|
|
99
92
|
if (this.#closed)
|
|
100
93
|
return;
|
|
@@ -110,13 +103,10 @@ export class ReadExecutor {
|
|
|
110
103
|
await Promise.all(slots.map(slot => slot.worker.terminate().catch(() => 0)));
|
|
111
104
|
}
|
|
112
105
|
}
|
|
113
|
-
/** Half the cores, at most eight: the measured 20-engineer load needs over four (docs/server-performance.md),
|
|
114
|
-
* and the rest stay with the event loop and local agents. Workers start only when reads arrive. */
|
|
115
106
|
export function defaultReadWorkers() {
|
|
116
107
|
return Math.max(1, Math.min(8, Math.floor(availableParallelism() / 2)));
|
|
117
108
|
}
|
|
118
109
|
const attached = new WeakMap();
|
|
119
|
-
/** The server attaches its executor to its own Store; a command run on that Store reads through it. */
|
|
120
110
|
export function attachReadExecutor(store, executor) {
|
|
121
111
|
attached.set(store, executor);
|
|
122
112
|
return () => { if (attached.get(store) === executor)
|
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A page visit only reads (docs/plans/get-side-effects.md). The server runs every GET and HEAD inside this scope, and
|
|
3
|
-
* the few store reads that used to tidy up as they went (closing an operating mode past its expiry) check it and
|
|
4
|
-
* leave the tidying to the background pass and the paths that act.
|
|
5
|
-
*/
|
|
6
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
7
2
|
const scope = new AsyncLocalStorage();
|
|
8
|
-
/** Run a GET or HEAD request's work. */
|
|
9
3
|
export function asReadOnlyRequest(work) {
|
|
10
4
|
return scope.run(true, work);
|
|
11
5
|
}
|
|
12
|
-
/** Whether the current work answers a GET or HEAD request. */
|
|
13
6
|
export function inReadOnlyRequest() {
|
|
14
7
|
return scope.getStore() === true;
|
|
15
8
|
}
|
package/dist/recipe-ui.js
CHANGED
|
@@ -30,7 +30,6 @@ export function recipeFromForm(body) {
|
|
|
30
30
|
continue;
|
|
31
31
|
acceptance.push({ id: body.get(`criterion-${i}-id`) || `c${i + 1}`, statement, how: how || null, evidence: body.getAll(`criterion-${i}-evidence`) });
|
|
32
32
|
}
|
|
33
|
-
// Never silently omit submitted checks beyond the editor's bounded size.
|
|
34
33
|
for (const key of body.keys())
|
|
35
34
|
if (/^criterion-/.test(key) && (!/^criterion-(?:[0-9]|1[01])-(?:statement|how|id|evidence)$/.test(key)))
|
|
36
35
|
throw new RecipeError("A recipe supports at most 12 success checks.");
|
|
@@ -55,8 +54,6 @@ export function recipeFromForm(body) {
|
|
|
55
54
|
return parseRecipe({ format: "standing-orders-recipe", version: inputs.length ? 2 : 1, ...(inputs.length ? { inputs } : {}), name: body.get("name") ?? "", description: body.get("description") ?? "", goal: body.get("goal") ?? "", outOfScope: body.get("not") || null,
|
|
56
55
|
touches: (body.get("touches") ?? "").split(/[\n,]/).map(one => one.trim()).filter(Boolean), acceptance, planning: body.get("planning") ?? "auto", deliverable: body.get("deliverable") ?? "branch", schedule: schedule.schedule, costCeilingUsd: ceiling === "" ? null : Number(ceiling) });
|
|
57
56
|
}
|
|
58
|
-
/** "One-time work" (New flow): the open project's recipes and the starters as rows, each with one "Use this"; then
|
|
59
|
-
* Create a recipe, importing a shared one, and the work recipes made lately. */
|
|
60
57
|
export function recipeRowsHtml(starters, saved, project, projectName, revision, recent) {
|
|
61
58
|
const kind = (recipe) => `${recipe.document.deliverable === "report" ? "Report" : "Code change"} · ${recipe.document.schedule === null ? "runs once as a task" : "repeats on a schedule"}${recipe.document.version === 2 ? ` · ${recipe.document.inputs.length} question${recipe.document.inputs.length === 1 ? "" : "s"}` : ""}`;
|
|
62
59
|
const rowOf = (recipe, reusable) => templateRow({ name: recipe.document.name, promise: recipe.document.description, line: kind(recipe), attrs: html ` data-recipe-card data-recipe="${recipe.id}"`,
|
|
@@ -72,7 +69,6 @@ function criterionHtml(index, criterion, values) {
|
|
|
72
69
|
const selected = values ? values.getAll(prefix + "evidence") : criterion?.evidence ?? ["check"];
|
|
73
70
|
return html `<fieldset class="recipe-criterion"><legend>${criterion || index === 0 ? `Success check ${index + 1}` : "Additional success check (optional)"}</legend>${hidden(prefix + "id", value("id", criterion?.id ?? `c${index + 1}`))}<label>What should be true?<textarea name="${prefix}statement" rows="2" maxlength="300">${value("statement", criterion?.statement ?? "")}</textarea></label><div class="recipe-evidence">${evidence.map(([id, label]) => html `<label><input type="checkbox" name="${prefix}evidence" value="${id}"${selected.includes(id) && html ` checked`}>${label}</label>`)}</div><label>How to check it <span class="meta">optional; command or review instructions</span><input type="text" name="${prefix}how" value="${value("how", criterion?.how ?? "")}" maxlength="500"></label></fieldset>`;
|
|
74
71
|
}
|
|
75
|
-
/** The blank success check the page's script copies, its numbers left for the script to fill in. */
|
|
76
72
|
const criterionTemplate = () => replaceMarkup(criterionHtml(11), /criterion-11-|value="c12"/g, match => match === "criterion-11-" ? html `criterion-INDEX-` : html `value="cNEXT"`);
|
|
77
73
|
export function recipeEditorHtml(recipe, repo, revision, problem = null, values, creator = false) {
|
|
78
74
|
const d = recipe.document;
|
|
@@ -86,7 +82,6 @@ export function recipeEditorHtml(recipe, repo, revision, problem = null, values,
|
|
|
86
82
|
const actions = html `<div class="sticky-actions"><button type="submit" name="purpose" value="${creator ? "recipe" : "workflow"}">${creator ? "Preview recipe →" : "Preview workflow →"}</button>${!creator && html `<button type="submit" name="purpose" value="recipe" class="quiet">Preview recipe to save</button>`}<p class="meta">${creator ? "Save the instructions once. You can use the recipe whenever this work comes up." : "Previewing runs no agents. You’ll see the approval and scheduling steps next."}</p></div>`;
|
|
87
83
|
return html `<a href="/recipes" class="meta">← All recipes</a><div class="recipe-heading"><p class="recipe-kicker">${creator ? "1 · Describe → 2 · Preview → 3 · Save" : "1 · Choose → 2 · Customize → 3 · Preview"}</p><h1>${creator ? "Create a reusable recipe" : "Make this workflow yours"}</h1><p class="hint">${repo.split(/[\\/]/).pop() || repo} · Choose the outcome, boundaries, and proof you want back.</p></div>${problem !== null && html `<p role="alert" class="card recipe-error">${problem}</p>`}${postForm("/recipes/preview", html `${outcome}${recipeQuestionsHtml(d, values)}${success}${running}${actions}`, { attrs: { class: "recipe-editor" }, projectRevision: String(revision), hidden: { repo, source: recipe.id, sourceRevision: String(recipe.revision), sourceFormat: value("sourceFormat", String(d.version)) } })}`;
|
|
88
84
|
}
|
|
89
|
-
/** What a success check's evidence is called, for a reader. */
|
|
90
85
|
const evidenceWords = (kinds) => joinHtml(kinds.map(kind => evidence.find(([id]) => id === kind)?.[1] ?? kind), " · ");
|
|
91
86
|
export function workflowPreviewHtml(preview, revision, now, readiness, auto) {
|
|
92
87
|
const d = preview.document;
|
|
@@ -101,7 +96,6 @@ function inputHtml(index, input, values) {
|
|
|
101
96
|
const value = (field, fallback) => values?.get(`input-${index}-${field}`) ?? fallback;
|
|
102
97
|
return html `<fieldset class="recipe-question"><legend>Question ${index + 1}</legend><div class="recipe-options"><label>Short key<input type="text" name="input-${index}-key" value="${value("key", input?.key ?? "")}" maxlength="32" placeholder="module" pattern="[a-z][a-z0-9_]{0,31}"></label><label>What should we ask?<input type="text" name="input-${index}-label" value="${value("label", input?.label ?? "")}" maxlength="80" placeholder="Which module should we work on?"></label></div><label>Default answer <span class="meta">optional</span><input type="text" name="input-${index}-default" value="${value("default", input?.defaultValue ?? "")}" maxlength="500"></label><p class="meta">Use <code data-question-token>{{${value("key", input?.key ?? "module") || "module"}}}</code> in your instructions or a success check. Clear this row and its placeholders to remove the question.</p><button type="button" data-insert-question hidden>Insert into instructions</button></fieldset>`;
|
|
103
98
|
}
|
|
104
|
-
/** The blank question the page's script copies, its numbers left for the script to fill in (the first "Question 8" only, as before). */
|
|
105
99
|
const questionTemplate = () => {
|
|
106
100
|
let numbered = false;
|
|
107
101
|
return replaceMarkup(inputHtml(7), /input-7-|Question 8/g, match => match === "input-7-" ? html `input-INDEX-` : numbered ? null : (numbered = true, html `Question NEXT`));
|
package/dist/recipes.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/** Reusable work definitions. Recipes carry scope, never credentials or grants.
|
|
2
|
-
* A preview freezes the exact copy to file; its durable receipt makes a retry
|
|
3
|
-
* after a lost response return the same task or flow, even after a restart.
|
|
4
|
-
* A repeating recipe (v115) makes a scheduled flow whose schedule starts paused. */
|
|
5
1
|
import { createHash, randomBytes } from "node:crypto";
|
|
6
2
|
import { TEMPLATES } from "./templates.js";
|
|
7
3
|
import { hasDisguisedText, hasForbiddenControls } from "./decision.js";
|
|
@@ -49,7 +45,6 @@ export class RecipeError extends Error {
|
|
|
49
45
|
}
|
|
50
46
|
const honest = (text) => !hasForbiddenControls(text) && !hasDisguisedText(text);
|
|
51
47
|
const recipeProject = (repo) => {
|
|
52
|
-
// A project folder the console's gate holds back (folder-gate.ts) is unavailable, never matched by its spelling.
|
|
53
48
|
try {
|
|
54
49
|
return canonicalProject(repo) ?? resolve(repo);
|
|
55
50
|
}
|
|
@@ -59,7 +54,6 @@ const recipeProject = (repo) => {
|
|
|
59
54
|
throw error;
|
|
60
55
|
}
|
|
61
56
|
};
|
|
62
|
-
/** What a refusal at each top-level field tells the person, after the path-named line. */
|
|
63
57
|
const FIELD_ADVICE = {
|
|
64
58
|
name: "Name, goal, exclusions, and allowed paths must be readable text.", description: "Name, goal, exclusions, and allowed paths must be readable text.",
|
|
65
59
|
goal: "Name, goal, exclusions, and allowed paths must be readable text.", outOfScope: "Name, goal, exclusions, and allowed paths must be readable text.",
|
|
@@ -68,7 +62,6 @@ const FIELD_ADVICE = {
|
|
|
68
62
|
schedule: "Choose a valid schedule.", costCeilingUsd: "The weekly budget must be a positive dollar amount.",
|
|
69
63
|
};
|
|
70
64
|
const FIELDS_MISMATCH = "Recipe fields do not match this version. Recipes contain work definitions, not permissions, credentials, or agent settings.";
|
|
71
|
-
/** The one refusal a recipe structure gets: its first path-named line, with the advice for that field. */
|
|
72
65
|
function structureError(issues) {
|
|
73
66
|
const top = issues.find(one => one.kind === "unknown-key" && one.path === "payload") ?? issues.find(one => one.kind === "required" && !/[.[]/.test(one.path));
|
|
74
67
|
if (top !== undefined)
|
|
@@ -89,12 +82,10 @@ function structureError(issues) {
|
|
|
89
82
|
: "Questions contain only a key, label, and optional default answer.";
|
|
90
83
|
return new RecipeError(`${first.line}. ${advice}`);
|
|
91
84
|
}
|
|
92
|
-
// Zod states `positive` as an exclusive minimum ("at least 0"); the advice says it plainly.
|
|
93
85
|
if (field === "costCeilingUsd" && first.kind === "bad-value")
|
|
94
86
|
return new RecipeError(`costCeilingUsd: ${FIELD_ADVICE[field]}`);
|
|
95
87
|
return new RecipeError(`${first.line}. ${FIELD_ADVICE[field] ?? FIELDS_MISMATCH}`);
|
|
96
88
|
}
|
|
97
|
-
/** Reject unknown fields, including approval/provider settings, on import. */
|
|
98
89
|
export function parseRecipe(input) {
|
|
99
90
|
if (typeof input !== "object" || input === null || Array.isArray(input))
|
|
100
91
|
throw new RecipeError("Choose a recipe document.");
|
|
@@ -129,7 +120,6 @@ export function parseRecipe(input) {
|
|
|
129
120
|
throw new RecipeError(parsed.problems.map(one => one.message).join("; ") || "acceptance: Add at least one success check.");
|
|
130
121
|
const fields = { format: RECIPE_FORMAT, name: doc.name.trim(), description: doc.description.trim(), goal: doc.goal.trim(), outOfScope: doc.outOfScope?.trim() || null,
|
|
131
122
|
touches: [...doc.touches], acceptance: parsed.criteria, planning: doc.planning, deliverable: doc.deliverable, schedule: doc.schedule, costCeilingUsd: doc.costCeilingUsd };
|
|
132
|
-
// Keep v1's canonical key order stable: existing immutable digests must survive.
|
|
133
123
|
const ordered = { format: fields.format, version: doc.version, name: fields.name, description: fields.description, goal: fields.goal,
|
|
134
124
|
outOfScope: fields.outOfScope, touches: fields.touches, acceptance: fields.acceptance, planning: fields.planning, deliverable: fields.deliverable,
|
|
135
125
|
schedule: fields.schedule, costCeilingUsd: fields.costCeilingUsd, ...(doc.version === 2 ? { inputs: parseRecipeInputs(doc.inputs) } : {}) };
|
|
@@ -156,7 +146,6 @@ export function importRecipe(text) {
|
|
|
156
146
|
}
|
|
157
147
|
export const recipeDigest = (document) => createHash("sha256").update(JSON.stringify(document)).digest("hex");
|
|
158
148
|
export const exportRecipe = (document) => JSON.stringify(parseRecipe(document), null, 2) + "\n";
|
|
159
|
-
/** Inputs are literal work text, never a program, path grant, or shell fragment. Their shape is already read. */
|
|
160
149
|
function parseRecipeInputs(inputs) {
|
|
161
150
|
const seen = new Set();
|
|
162
151
|
return inputs.map(({ key, label, defaultValue }, index) => {
|
|
@@ -216,7 +205,6 @@ export function resolveRecipe(document, answers) {
|
|
|
216
205
|
return parseRecipe({ ...fields, version: 1, name: expand(parsed.name), description: expand(parsed.description), goal: expand(parsed.goal), outOfScope: parsed.outOfScope === null ? null : expand(parsed.outOfScope),
|
|
217
206
|
acceptance: parsed.acceptance.map(one => ({ ...one, statement: expand(one.statement) })) });
|
|
218
207
|
}
|
|
219
|
-
/** Only the stored definition supplies scope; form answers cannot replace it. */
|
|
220
208
|
export function prepareRecipeRun(store, actor, repo, id, revision, answers, now) {
|
|
221
209
|
repo = recipeProject(repo);
|
|
222
210
|
return store.transact(() => {
|
|
@@ -328,7 +316,6 @@ export function launchWorkflow(store, actor, repo, token, now, operatorFiling) {
|
|
|
328
316
|
}
|
|
329
317
|
else {
|
|
330
318
|
const slug = d.name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 32) || "workflow";
|
|
331
|
-
// A scheduled flow whose schedule starts paused: nothing repeats until a person turns it on.
|
|
332
319
|
const made = createScheduledFlow(store, { repo, name: d.name, stem: `${slug}-${token.slice(0, 8)}`, schedule: d.schedule, by: actor,
|
|
333
320
|
terms: { goal: d.goal, outOfScope: d.outOfScope, touches: d.touches, requirements: [], acceptance: d.acceptance, budgetPerRunMicrousd: null, costCeilingUsd: d.costCeilingUsd } }, now);
|
|
334
321
|
if (!made.ok)
|