toolroll 0.9.104 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -5
- package/README.md +18 -20
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +17 -139
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +1 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +0 -17
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +0 -53
- package/dist/local-owner.js +2 -93
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +0 -20
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +0 -100
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +0 -25
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +4 -567
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +21 -555
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +1 -88
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +13 -493
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +6 -135
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +9 -227
- package/dist/server/tasks.js +5 -539
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +0 -75
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +17 -28
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +16 -36
- package/dist/tui.js +1 -1
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +4 -3
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -350
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1985
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -540
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -43
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -61
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -170
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -39
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1098
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -81
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -60
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -343
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -108
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -48
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -202
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
|
@@ -7,24 +7,16 @@ import { taskHref } from "./http.js";
|
|
|
7
7
|
import { btn, chip, disclose, doc, docHeader, dock, facts, note, notice, phoneHeader, radios, slots, status } from "./kit.js";
|
|
8
8
|
import { editorFileHref, evidenceBundleCard, evidenceWords, humanBytes, prefillScript, resultPanelHtml, revisionSealFields, runFactsRows, runNoun, terminalDiffCard, } from "./render-results.js";
|
|
9
9
|
import { publicationFactsOf } from "./render-tasks.js";
|
|
10
|
-
/** A section of a reading page: its heading and body (kit `k-sec`). */
|
|
11
10
|
export const sec = (title, body, attrs = html ``) => html `<section class="k-sec"${attrs}><h3>${title}</h3>${body}</section>`;
|
|
12
|
-
/** The root every kit server page carries, so the workspace frames it as a kit page (no padding, panel or desk header). */
|
|
13
11
|
const kitPage = (attrs, ...parts) => html `<div class="h-page" data-kit-page${attrs}>${parts}</div>`;
|
|
14
|
-
// ---- /r/<id>: one attempt ----------------------------------------------------------------------------------------
|
|
15
12
|
export function runPage(chrome, run, taskId, artifacts, terminal = null, notes = [], csrf = "", comments = [], ciRepair = null, liveScript, peekable = false, running = false, editor = null, editorToggle = null, noted = false, structuredHandoff = null, proofBundle = null, route = null, publicationRow = null, review = null, result = null, sourceDigest = null) {
|
|
16
13
|
const title = `${sentenceCase(runNoun(run))} #${run.id}`;
|
|
17
|
-
// The facts region: a live run's is what the poller swaps; a finished run's stands still.
|
|
18
14
|
const summary = sec("Summary", html `<div id="run-facts">${runFactsRows(run, taskId, running, route)}</div>${running ? html `<p class="k-note" id="run-facts-stamp"></p>` : ""}`);
|
|
19
|
-
// The live transcript (arc 1): the agent's own words, streamed to a file beside the run and polled as raw text.
|
|
20
|
-
// Honesty stated on the surface: display only, and the machine running the agent could alter it.
|
|
21
15
|
const transcript = !running ? "" : sec("What the agent is saying", !peekable
|
|
22
16
|
? note(html `The live transcript is off. Start serve with <span class="k-mono">--runner <name></span> naming this machine's worker, and it appears here.`)
|
|
23
17
|
: run.provider !== "claude"
|
|
24
18
|
? note(`The live transcript needs the claude harness for now; this build runs on ${run.provider}.`)
|
|
25
19
|
: html `<pre id="live-transcript" class="k-mono h-pre h-live"></pre><p class="k-note" id="live-transcript-state"></p>`);
|
|
26
|
-
// The live peek region (A2): the poller fills it only on a serve that asserted its runner; otherwise the section
|
|
27
|
-
// says why it is empty, so the click never lands on silence.
|
|
28
20
|
const peek = !running ? "" : sec("What is changing right now", peekable
|
|
29
21
|
? html `<div id="run-peek">${note("Watching… the first look lands within 15 seconds.")}</div><p class="k-note" id="run-peek-stamp"></p>`
|
|
30
22
|
: note(html `The live file view is off. Start serve with <span class="k-mono">--runner <name></span> naming this machine's worker, and it appears here.`));
|
|
@@ -33,8 +25,6 @@ export function runPage(chrome, run, taskId, artifacts, terminal = null, notes =
|
|
|
33
25
|
const handoff = resultSummary === null ? "" : sec("Result", html `<p class="h-read">${resultSummary}</p>${structuredHandoff === null ? "" : [
|
|
34
26
|
list("Completed", structuredHandoff.changes), list("Checks the agent reported", structuredHandoff.verification), list("Follow-up", structuredHandoff.followUps)
|
|
35
27
|
]}`);
|
|
36
|
-
// Review comments on the immutable terminal diff (M6.8): listed, added, and sealed into ONE unapproved revision task.
|
|
37
|
-
// The seal only creates the unapproved task; its approval screen restates the batch.
|
|
38
28
|
const hasTerminalDiff = terminal !== null && terminal.patch !== null && !("problem" in terminal.patch);
|
|
39
29
|
const commentPath = (path, line) => {
|
|
40
30
|
const shown = `${path}${line === null ? "" : `:${line}`}`;
|
|
@@ -47,8 +37,6 @@ export function runPage(chrome, run, taskId, artifacts, terminal = null, notes =
|
|
|
47
37
|
<div class="k-field"><label class="k-label" for="comment-line">Line</label><input class="k-input" id="comment-line" type="text" name="line" placeholder="—" inputmode="numeric"></div></div>\
|
|
48
38
|
<div class="k-field"><label class="k-label" for="comment-note">Change requested</label><textarea class="k-textarea" id="comment-note" name="note" rows="2" maxlength="${LIMITS.note}" placeholder="What should change, and why" aria-describedby="comment-note-limit"${noted ? html ` autofocus` : ""}></textarea>\
|
|
49
39
|
<p class="k-hint" id="comment-note-limit">Up to ${LIMITS.note} characters</p></div><div class="k-acts">${btn("Add annotation", { sm: true, type: "submit", attrs: { "data-k-busy": "Adding…" } })}</div>`, { attrs: { class: "h-form", id: "comment-form" } });
|
|
50
|
-
// The device-side half of the editor-link activation (arc 6, finding 1): only when the capability exists and this
|
|
51
|
-
// run belongs to this machine's runner; the person at the browser flips it.
|
|
52
40
|
const editorToggleForm = editorToggle === null || csrf === "" ? "" : postForm("/session/editor-links", html `${btn(editorToggle.on ? "Stop opening files in VS Code here" : "Open files in VS Code from this device", { variant: "ghost", sm: true, type: "submit" })}<p class="k-note">Only useful when this browser runs on the machine that holds the worktrees.</p>`, { attrs: { class: "h-inline" }, returnTo: `/r/${run.id}`, hidden: { on: editorToggle.on ? "0" : "1" } });
|
|
53
41
|
const reviseForm = csrf === "" || comments.length === 0 ? "" : postForm(`/r/${run.id}/revise`, html `${revisionSealFields(comments, sourceDigest)}${slots({
|
|
54
42
|
status: html `<h2>${comments.length} ${comments.length === 1 ? "annotation" : "annotations"} ready</h2>`,
|
|
@@ -56,8 +44,6 @@ export function runPage(chrome, run, taskId, artifacts, terminal = null, notes =
|
|
|
56
44
|
acts: btn("Create revision from annotations", { variant: "primary", type: "submit", attrs: { "data-k-busy": "Creating…" } }),
|
|
57
45
|
terms: "Nothing builds until its scope is approved.",
|
|
58
46
|
})}`, { attrs: { class: "revision-from-comments" } });
|
|
59
|
-
// CI repair, suggestion-first (M8.18): the observed red episode earns a button; the button drafts ONE unapproved
|
|
60
|
-
// task; a person approves it.
|
|
61
47
|
const repair = ciRepair === null || csrf === "" ? "" : sec(`Checks are failing on pull request #${ciRepair.pr}`, html `${note("Seen by the pull request watcher. Drafting a repair makes one unapproved task; you approve its scope before anything builds.")}${postForm(`/r/${run.id}/draft-repair`, btn("Draft a repair task", { sm: true, type: "submit", attrs: { "data-k-busy": "Drafting…" } }), { attrs: { class: "h-inline" } })}`);
|
|
62
48
|
const reviewSec = commentRows.length === 0 && commentForm === null ? "" : sec("Review and revise", html `${note("Annotate the diff above. When the batch is ready, create one scoped revision task from it.")}${commentRows.length === 0 ? "" : html `<ul class="h-notes diff-comments">${commentRows}</ul>`}${commentForm ?? ""}${reviseForm}${editorToggleForm}`);
|
|
63
49
|
const saved = artifacts.length === 0 ? "" : sec("Saved files", html `<ul class="h-files">${artifacts.map(artifact => html `<li><a class="k-link" href="/r/${run.id}/evidence/${artifact.id}">${evidenceWords(artifact.kind)}</a>\
|
|
@@ -65,8 +51,6 @@ export function runPage(chrome, run, taskId, artifacts, terminal = null, notes =
|
|
|
65
51
|
const noteRows = notes.map(one => html `<li><span class="k-num k-muted">${whenTime(one.createdAt)}</span><span><b>${one.author}</b> ${one.note}</span></li>`);
|
|
66
52
|
const noteForm = csrf === "" ? "" : postForm(`/r/${run.id}/note`, html `<label class="k-sr" for="run-note">Add a note</label><input class="k-input" id="run-note" type="text" name="note" placeholder="A note for whoever reads this attempt next" autocomplete="off">${btn("Add note", { sm: true, type: "submit", attrs: { "data-k-busy": "Adding…" } })}`, { attrs: { class: "h-addnote" } });
|
|
67
53
|
const notesSec = notes.length === 0 && noteForm === "" ? "" : sec("Notes", html `${noteRows.length === 0 ? note("No notes yet. A note stays with this attempt for whoever reads it next.") : html `<ul class="h-notes">${noteRows}</ul>`}${noteForm}`);
|
|
68
|
-
// A finished result (package 3) is the ONE shared panel (Summary / Changes / Checks, Request changes beside it), the
|
|
69
|
-
// same markup the review cockpit and the chat's result view render. Every other run keeps its record by record page.
|
|
70
54
|
const resultPanel = result === null ? null : resultPanelHtml(result.detail, {
|
|
71
55
|
place: "run", tab: result.tab, csrf, user: result.user, noted, requestToken: result.requestToken,
|
|
72
56
|
hrefFor: one => (one === "summary" ? `/r/${run.id}` : `/r/${run.id}?tab=${one}`), returnTo: `/r/${run.id}?record=1`, back: null,
|
|
@@ -76,21 +60,12 @@ export function runPage(chrome, run, taskId, artifacts, terminal = null, notes =
|
|
|
76
60
|
: [html `<div class="h-panel">${resultPanel}</div>`, editorToggleForm]), saved, notesSec));
|
|
77
61
|
return screen(title, body, {
|
|
78
62
|
chrome,
|
|
79
|
-
// One composed functional script (arc 4 contract): the pollers when the run is live, the result panel's script or
|
|
80
|
-
// the comment prefill when a form exists. Neither fetches beyond the pollers.
|
|
81
63
|
...(liveScript === undefined && commentForm === null && resultPanel === null
|
|
82
64
|
? {}
|
|
83
65
|
: { functional: { script: (liveScript ?? "") + (resultPanel !== null ? RESULT_REVIEW_SCRIPT : commentForm === null ? "" : prefillScript()), fetches: liveScript !== undefined } }),
|
|
84
66
|
});
|
|
85
67
|
}
|
|
86
|
-
|
|
87
|
-
* The question an agent asked, on top: what it asked and why, the options as radio cards with its recommendation
|
|
88
|
-
* marked, an optional note, and one Answer (kind none: one click). An irreversible option asks for a tick first; the
|
|
89
|
-
* answer route checks it again. A refusal shows in the box with nothing changed; an answer replaces the box.
|
|
90
|
-
*/
|
|
91
|
-
export function decisionPage(chrome, decision, taskId, artifacts, now, place, returnTo = null, refusal = null,
|
|
92
|
-
/** What a refused answer carried: the choice and the note stay in the box. */
|
|
93
|
-
draft = null) {
|
|
68
|
+
export function decisionPage(chrome, decision, taskId, artifacts, now, place, returnTo = null, refusal = null, draft = null) {
|
|
94
69
|
const back = returnTo === null ? ["/", "Home"] : [returnTo, "Back to the chat"];
|
|
95
70
|
const runWords = place.run === null ? null : `${runNoun(place.run)} #${place.run.id}`;
|
|
96
71
|
const project = place.repo === null ? null : projectName(place.repo);
|
|
@@ -135,14 +110,9 @@ draft = null) {
|
|
|
135
110
|
const looked = artifacts.length === 0 ? "" : sec("What the agent looked at", html `<ul class="h-files">${artifacts.map(artifact => html `<li><a class="k-link" href="/d/${decision.id}/evidence/${artifact.id}">${evidenceWords(artifact.kind)}</a><span class="k-num k-muted">${humanBytes(artifact.bytesStored)}${artifact.truncated ? " · partial" : ""}</span></li>`)}</ul>`);
|
|
136
111
|
const stopped = !open || place.run === null ? "" : sec("Where it stopped", html `<p class="h-read k-muted">${sentenceCase(runWords ?? "")} asked this and holds its work until you answer. <a class="k-link" href="/r/${place.run.id}?record=1">See the attempt</a></p>`);
|
|
137
112
|
const answering = open && decision.supersededReason === null;
|
|
138
|
-
const body = kitPage(html ``, phoneHeader(project ?? "Question", { back: back[0] }),
|
|
139
|
-
// The shell's phone header already says this page's title (the screen title), so the h1 is drawn once.
|
|
140
|
-
doc(docHeader({ title: place.title ?? taskId, back, meta, same: true }), box, looked, stopped),
|
|
141
|
-
// On a phone the one primary lives in the dock; it submits the same form.
|
|
142
|
-
answering ? dock(btn("Answer", { variant: "primary", type: "submit", attrs: { form: "answer-form", "data-k-busy": "Answering…" } })) : "");
|
|
113
|
+
const body = kitPage(html ``, phoneHeader(project ?? "Question", { back: back[0] }), doc(docHeader({ title: place.title ?? taskId, back, meta, same: true }), box, looked, stopped), answering ? dock(btn("Answer", { variant: "primary", type: "submit", attrs: { form: "answer-form", "data-k-busy": "Answering…" } })) : "");
|
|
143
114
|
return screen(place.title ?? `Question · ${taskId}`, body, { chrome });
|
|
144
115
|
}
|
|
145
|
-
// ---- /t/<id>/evidence: the full record ----------------------------------------------------------------------------
|
|
146
116
|
const at = (iso) => iso === null ? "—" : whenTime(iso);
|
|
147
117
|
const shortHash = (hash) => hash === null ? "—" : html `<span class="k-mono" title="${hash}">${hash.slice(0, 12)}</span>`;
|
|
148
118
|
const usd = (value) => value === null ? "—" : `$${value.toFixed(value < 1 && value > 0 ? 4 : 2)}`;
|
|
@@ -156,8 +126,6 @@ function stateChip(state) {
|
|
|
156
126
|
return state === "done" ? status("finished") : state === "failed" ? status("failed") : state === "running" ? status("running")
|
|
157
127
|
: state === "queued" ? status("queued") : chip(sentenceCase(state));
|
|
158
128
|
}
|
|
159
|
-
/** A task's full record, read-only: what was asked and approved, every agent that ran, the result, and its sealed audit
|
|
160
|
-
* log entries, with the JSON download and Print. The same facts as the pack's JSON (evidence-pack.ts). */
|
|
161
129
|
export function evidenceRecordPage(chrome, pack) {
|
|
162
130
|
const task = pack.task;
|
|
163
131
|
const href = `/t/${encodeURIComponent(task.id)}`;
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* New task (Wave E, src/design/KIT.md): one describe box, the project it lands in and "Read code before planning" in
|
|
3
|
-
* the box's bottom row, the round send; every other choice behind More options; ideas under it. The form posts the
|
|
4
|
-
* same fields /tasks/add has always read (title, repo, plan-first with planning-policy=choice, quality-mode, after,
|
|
5
|
-
* goal, acceptance, not, touches, scout, id, permission-mode, projectRevision), so every server check is unchanged.
|
|
6
|
-
*/
|
|
7
1
|
import { html, joinHtml, postForm } from "../html.js";
|
|
8
2
|
import { projectName } from "../project.js";
|
|
9
3
|
import { screen } from "./chrome.js";
|
|
@@ -13,8 +7,6 @@ import { TASK_TEXT_LIMITS } from "../task-text.js";
|
|
|
13
7
|
const FORM_ID = "nt-form";
|
|
14
8
|
const PLAN_ON = "The agent reads the code and asks you anything unclear, then writes the plan.";
|
|
15
9
|
const PLAN_OFF = "The agent writes the plan straight from your words. Faster for small, obvious changes.";
|
|
16
|
-
/** The projects as the select offers them: names, with the parent folder when two share a name; the open one first
|
|
17
|
-
* picked. Values are the paths the server proves. */
|
|
18
10
|
function projectItems(projects, open) {
|
|
19
11
|
const all = open !== null && !projects.some(one => one.path === open) ? [{ path: open, name: projectName(open) }, ...projects] : [...projects];
|
|
20
12
|
const counts = new Map();
|
|
@@ -27,22 +19,11 @@ function projectItems(projects, open) {
|
|
|
27
19
|
return [one.path, `${one.name} (${parent})`];
|
|
28
20
|
});
|
|
29
21
|
}
|
|
30
|
-
export function newTaskPage(chrome, project,
|
|
31
|
-
/** undefined: keep the revision the refused form posted (its draft), so a project switch since still refuses. */
|
|
32
|
-
projectRevision, problem, candidates = [], permissionDefault = "auto", qualityDefault = "default", projects = [],
|
|
33
|
-
/** A shipped template's fields, or a refused filing's own words, back in the form. */
|
|
34
|
-
prefill = null,
|
|
35
|
-
/** Words an idea's link put in the box (GET ?text=). */
|
|
36
|
-
draft = null,
|
|
37
|
-
/** Ideas for the chosen project: one tap drafts the words into the box. */
|
|
38
|
-
suggestions = [],
|
|
39
|
-
/** A link the lead or a person put in the address (GET ?from=). */
|
|
40
|
-
fromLink = null) {
|
|
22
|
+
export function newTaskPage(chrome, project, projectRevision, problem, candidates = [], permissionDefault = "auto", qualityDefault = "default", projects = [], prefill = null, draft = null, suggestions = [], fromLink = null) {
|
|
41
23
|
const head = html `${phoneHeader("New task", { back: "/tasks" })}`;
|
|
42
24
|
const header = docHeader({ title: "New task", back: ["/tasks", "Tasks"], meta: "Nothing is built until you approve its plan.", same: true });
|
|
43
25
|
const items = projectItems(projects, project);
|
|
44
26
|
const values = prefill?.values;
|
|
45
|
-
// No project to choose from: the task names its folder (the server proves it), and adding a project is one link away.
|
|
46
27
|
const typed = items.length === 0;
|
|
47
28
|
const chosen = values?.get("repo") ?? project ?? items[0]?.[0] ?? "";
|
|
48
29
|
const planOn = values === undefined || values.get("plan-first") === "1";
|
|
@@ -50,7 +31,6 @@ fromLink = null) {
|
|
|
50
31
|
const after = values?.get("after") ?? "";
|
|
51
32
|
const permission = values?.get("permission-mode") === "bypassPermissions" ? "bypassPermissions" : values?.get("permission-mode") === "auto" ? "auto" : permissionDefault;
|
|
52
33
|
const text = prefill?.title ?? draft ?? "";
|
|
53
|
-
// More options opens on a template, or when a refused filing had used any of them.
|
|
54
34
|
const optionsUsed = fromLink !== null || prefill !== null && (values === undefined || ["from", "goal", "acceptance", "not", "touches", "id", "after"].some(name => (values.get(name) ?? "") !== "") || values.get("scout") === "1");
|
|
55
35
|
const folder = !typed ? "" : field({ id: "nt-repo", label: "Project folder", hint: "No projects yet: name the folder of a git repository.",
|
|
56
36
|
control: input({ id: "nt-repo", name: "repo", value: chosen, hint: true, attrs: { required: true, placeholder: "/path/to/repository", autocapitalize: "none", spellcheck: "false" } }) });
|
|
@@ -63,9 +43,6 @@ fromLink = null) {
|
|
|
63
43
|
value: text, rows: 4, maxRows: 10, before: bar, error: problem,
|
|
64
44
|
send: sendButton({ label: "File task" }),
|
|
65
45
|
note: html `<span class="k-on-note">${PLAN_ON}</span><span class="k-off-note">${PLAN_OFF}</span>`,
|
|
66
|
-
// The box holds what a title holds: a task's words are its title, and the planner reads nothing else of them when no
|
|
67
|
-
// goal is given, so longer words would be lost, not kept. Filing's whole-word cut (task-text.ts titleWithin) is a
|
|
68
|
-
// belt for other callers only.
|
|
69
46
|
textAttrs: { maxlength: TASK_TEXT_LIMITS.title, autofocus: true },
|
|
70
47
|
});
|
|
71
48
|
const options = html `<div class="k-form">\
|
|
@@ -73,7 +50,7 @@ ${field({ id: "nt-from", label: "From an issue or PR (optional)", hint: "A githu
|
|
|
73
50
|
${field({ id: "nt-quality", label: "Checks", control: select({ id: "nt-quality", name: "quality-mode", items: [["default", "Default checks"], ["strict", "Strict (release)"]], current: quality, wide: true }) })}\
|
|
74
51
|
${candidates.length === 0 ? "" : field({ id: "nt-after", label: "Starts", control: select({ id: "nt-after", name: "after", wide: true, current: after,
|
|
75
52
|
items: [["", "Right away"], ...candidates.map(one => [one.id, `After ${one.id}: ${one.title}`])] }) })}\
|
|
76
|
-
${field({ id: "nt-goal", label: "Goal (optional)", hint: "With
|
|
53
|
+
${field({ id: "nt-goal", label: "Goal (optional)", hint: "With requirements below, an unchanged plan can be approved automatically.", control: textarea({ id: "nt-goal", name: "goal", rows: 2, value: prefill?.goal ?? "", attrs: { placeholder: "What success looks like" } }) })}\
|
|
77
54
|
${field({ id: "nt-acceptance", label: "Acceptance", hint: "Needed with a goal. One per line: statement | evidence,kinds | how", control: textarea({ id: "nt-acceptance", name: "acceptance", rows: 2, value: prefill?.acceptance ?? "", attrs: { placeholder: "Requests over the limit return 429 | check" } }) })}\
|
|
78
55
|
${field({ id: "nt-not", label: "Not this (optional)", control: input({ id: "nt-not", name: "not", value: prefill?.not ?? "" }) })}\
|
|
79
56
|
${field({ id: "nt-touches", label: "Likely touches (optional)", hint: "Paths, separated by commas.", control: input({ id: "nt-touches", name: "touches", value: prefill?.touches ?? "", hint: true }) })}\
|
|
@@ -102,12 +79,9 @@ ${field({ id: "nt-id", label: "Task id (optional)", control: input({ id: "nt-id"
|
|
|
102
79
|
const recipes = note(html `Work you do often? <a class="k-link" href="/recipes">Use a saved recipe</a>.`);
|
|
103
80
|
return screen("New task", html `${head}${doc(header, form, ideaList, recipes)}${dock(btn("File task", { variant: "primary", type: "submit", attrs: { form: FORM_ID } }))}`, { chrome });
|
|
104
81
|
}
|
|
105
|
-
/** The terms as label and words: the lines every approval surface reads (fast-terms.ts), with nothing hidden. */
|
|
106
82
|
export function fastTermsRows(store, scope, repo) {
|
|
107
83
|
return fastTermsLines(store, scope, repo).map(line => [line.label, line.words]);
|
|
108
84
|
}
|
|
109
|
-
/** Build (docs/plans/plain-toolroll.md P2.4): the exact terms this small task would be approved on, and the one button
|
|
110
|
-
* that approves them. The fields of "Plan it first" are the person's own words, on the ordinary road. */
|
|
111
85
|
export function fastStartPage(chrome, input) {
|
|
112
86
|
const head = html `${phoneHeader("Build this?", { back: "/tasks/new" })}`;
|
|
113
87
|
const header = docHeader({ title: "Build this?", back: ["/tasks/new", "New task"], meta: "Build approves exactly these terms.", same: true });
|
|
@@ -115,7 +89,6 @@ export function fastStartPage(chrome, input) {
|
|
|
115
89
|
const plan = postForm("/tasks/add", btn("Plan it first", { type: "submit" }), { attrs: { class: "k-form" }, hidden: { plain: "1", title: input.title, repo: input.repo, "planning-policy": "choice", "plan-first": "1" } });
|
|
116
90
|
return screen("Build this?", html `${head}${doc(header, facts(input.terms.map(([label, words]) => [label, joinHtml(words.split("\n").map(line => html `<div>${line}</div>`))])), html `<div class="k-acts">${build}${plan}</div>`)}`, { chrome });
|
|
117
91
|
}
|
|
118
|
-
/** An issue or pull request, read and quoted before anything is filed. Add task files it for the ordinary approval. */
|
|
119
92
|
export function importPage(chrome, input) {
|
|
120
93
|
const name = input.kind === "pull" ? `Pull request #${input.number}` : `Issue #${input.number}`;
|
|
121
94
|
const head = html `${phoneHeader(name, { back: "/tasks/new" })}`;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Everyday console pages: home, inbox, board, work, projects, fleet and the queue. */
|
|
2
1
|
import { archivedWords, tidyGroups, TIDY_DEFAULT_DAYS } from "../tidy.js";
|
|
3
2
|
import { stepUpForm } from "../settings-kit.js";
|
|
4
3
|
import { html, joinHtml, postForm, replaceMarkup, reauth } from "../html.js";
|
|
@@ -29,16 +28,6 @@ import { reviewHref, taskHref } from "./http.js";
|
|
|
29
28
|
import { criterionMatrixSummary, incidentWords, PHASE_WORDS, phaseWords } from "./render-results.js";
|
|
30
29
|
import { decisionAnswerCard, decisionAnswerScript, dispatchHeadline, statusLineHtml, workDiagnosticsHtml } from "./render-tasks.js";
|
|
31
30
|
export const TASK_STATES = ["queued", "running", "done", "failed", "cancelled"];
|
|
32
|
-
/**
|
|
33
|
-
* The inbox (v3): only things stalling progress without a person, one card
|
|
34
|
-
* per underlying stall, each with its verb inline or one step away. No
|
|
35
|
-
* auto-refresh — approval links lead to the step-up screen, and a page
|
|
36
|
-
* that might hold typed input never re-renders itself.
|
|
37
|
-
*/
|
|
38
|
-
/** Start a builder: the one command, as text to select (/start-builder, where every "Connect a builder" leads, and
|
|
39
|
-
* the Agents page). `project`: the open project's name, when the viewer may see it; `connected`: whether a builder
|
|
40
|
-
* that may build there is checking in (null: say nothing); `managed`: whether this person can start one themselves
|
|
41
|
-
* (registering a builder takes an instance operator), else who to ask. */
|
|
42
31
|
export function startBuilderHtml(data) {
|
|
43
32
|
const where = data.project === null ? null : html ` to <strong>${data.project}</strong>`;
|
|
44
33
|
const state = data.connected === null ? null
|
|
@@ -49,14 +38,6 @@ export function startBuilderHtml(data) {
|
|
|
49
38
|
? html `<p class="meta">Keep it running. Approved tasks start on their own. The console alone (<code>toolroll serve</code>) doesn't build.</p>`
|
|
50
39
|
: html `<p class="meta">Starting a builder takes someone who manages this Toolroll. Ask them to run it there; your tasks start on their own once it connects.</p>`}</div></section>`;
|
|
51
40
|
}
|
|
52
|
-
/**
|
|
53
|
-
* A build's stage as one of three steps — set up, writing, checking and
|
|
54
|
-
* committing — read from the machine's own phase, never a percent. The
|
|
55
|
-
* steps only move forward: evidence and proof checks run both before and
|
|
56
|
-
* after the commit (builder.ts), so everything after the agent's turn is
|
|
57
|
-
* one step, and the stage words say which part. Null for runs that are not
|
|
58
|
-
* builds (planning, review, investigation): those have no honest steps.
|
|
59
|
-
*/
|
|
60
41
|
export const BUILD_STEPS = ["setting up", "writing", "checking and committing"];
|
|
61
42
|
export function buildStepOf(claim) {
|
|
62
43
|
if (claim.role === "planner" || claim.role === "reviewer" || claim.role === "scout")
|
|
@@ -67,28 +48,15 @@ export function buildStepOf(claim) {
|
|
|
67
48
|
return 1;
|
|
68
49
|
return 2;
|
|
69
50
|
}
|
|
70
|
-
/** A clock that ticks in the page (boardTickScript) from the server's own start time; the text is the no-script answer. */
|
|
71
51
|
function tickingClock(startedIso, now) {
|
|
72
52
|
const minutes = Math.max(0, Math.round((now.getTime() - new Date(startedIso).getTime()) / 60_000));
|
|
73
53
|
return html `<time class="clock" datetime="${startedIso}" data-tick>${minutes}m</time>`;
|
|
74
54
|
}
|
|
75
|
-
/**
|
|
76
|
-
* The workers a board's strip may show: not retired, bound to at least one
|
|
77
|
-
* project the server's ceiling admits (never a runner serving only projects
|
|
78
|
-
* this server must not speak about), and — on a one-project board — bound to
|
|
79
|
-
* that project.
|
|
80
|
-
*/
|
|
81
55
|
export function boardWorkers(runners, scope) {
|
|
82
56
|
return runners.filter(runner => runner.retiredAt === null &&
|
|
83
57
|
runner.repos.some(repo => scope.visible(repo)) &&
|
|
84
58
|
(scope.all || scope.project === null || runner.repos.includes(scope.project)));
|
|
85
59
|
}
|
|
86
|
-
/**
|
|
87
|
-
* The worker strip across the top of the board: every worker this board's
|
|
88
|
-
* work can go to, what it is building here, and its stage and clock. Only
|
|
89
|
-
* builds the board already shows are named — a worker busy in a project
|
|
90
|
-
* this reader cannot see reads "no build on this board", never "free".
|
|
91
|
-
*/
|
|
92
60
|
function workerStrip(runners, cards, now) {
|
|
93
61
|
if (runners.length === 0)
|
|
94
62
|
return html `<p class="meta crew-empty">No builders yet — work waits in the queue until one joins.</p>`;
|
|
@@ -110,14 +78,6 @@ function workerStrip(runners, cards, now) {
|
|
|
110
78
|
});
|
|
111
79
|
return html `<section class="crew" aria-label="Workers">${tiles}</section>`;
|
|
112
80
|
}
|
|
113
|
-
/**
|
|
114
|
-
* The board: the pipeline as lanes, position as meaning — attention, then
|
|
115
|
-
* queued, then waiting, then building, then recently done — under a strip
|
|
116
|
-
* of the workers doing it. Read-only by construction (every card is a link,
|
|
117
|
-
* no forms, no nonces), which is what makes it safe to re-render itself
|
|
118
|
-
* while somebody watches; a card that changes lane slides there
|
|
119
|
-
* (regionScript's animate swap, keyed by data-vt).
|
|
120
|
-
*/
|
|
121
81
|
export function boardBody(data, ciRed) {
|
|
122
82
|
const chip = (repo) => !data.all || repo === null ? null : html `<span class="badge">${projectName(repo)}</span>`;
|
|
123
83
|
const CAP = 30;
|
|
@@ -129,22 +89,14 @@ export function boardBody(data, ciRed) {
|
|
|
129
89
|
return `${Math.round(minutes / 60)}h`;
|
|
130
90
|
return `${Math.round(minutes / (24 * 60))}d`;
|
|
131
91
|
};
|
|
132
|
-
// A lane's head is a status chip in its own tone (after ReUI's badge with a dot): solid ink only for the lane that
|
|
133
|
-
// waits on a person, blue for building, green for done, neutral otherwise. The word carries the state.
|
|
134
92
|
const LANE_CHIP = { attention: "chip-needs", building: "chip-live", done: "chip-done", queued: "", waiting: "" };
|
|
135
93
|
const laneChip = (key, title) => html `<span class="chip ${LANE_CHIP[key]}"><span class="chip-dot" aria-hidden="true"></span>${title}</span>`;
|
|
136
94
|
const lane = (key, title, hint, renderOne) => {
|
|
137
95
|
const cards = data.cards.filter(card => card.lane === key);
|
|
138
|
-
// The longest-stalled card leads the board: attention sorts by how
|
|
139
|
-
// long it has waited, everything else stays newest-first — except the
|
|
140
|
-
// queued lane, which reads in DISPATCH order: moved-up work first,
|
|
141
|
-
// exactly as the next free worker will pick it.
|
|
142
96
|
if (key === "attention") {
|
|
143
97
|
cards.sort((a, b) => (a.stalledSince ?? "9999").localeCompare(b.stalledSince ?? "9999"));
|
|
144
98
|
}
|
|
145
99
|
if (key === "queued") {
|
|
146
|
-
// Group: the shared queue first, then reserved columns by worker;
|
|
147
|
-
// dispatch order (rank) within each — never a cross-column rank race.
|
|
148
100
|
cards.sort((a, b) => {
|
|
149
101
|
const ka = a.assignedRunner ?? "";
|
|
150
102
|
const kb = b.assignedRunner ?? "";
|
|
@@ -155,15 +107,8 @@ export function boardBody(data, ciRed) {
|
|
|
155
107
|
}
|
|
156
108
|
const shown = cards.slice(0, CAP);
|
|
157
109
|
const more = cards.length - shown.length;
|
|
158
|
-
// A lane is a section that can fold (board pass): open when it holds
|
|
159
|
-
// cards, folded when empty, so a phone reads the counts first and a
|
|
160
|
-
// desktop column never spends its height on "nothing here".
|
|
161
110
|
return html `<details class="lane lane-${key}"${shown.length === 0 ? null : html ` open`}><summary><h2>${laneChip(key === "attention" && cards.length === 0 ? "queued" : key, title)} <span class="lane-count">${cards.length}${data.saturated ? "+" : ""}</span></h2></summary><p class="hint">${hint}</p>${shown.length === 0 ? html `<p class="meta lane-empty">nothing here</p>` : shown.map((card, index) => renderOne(card, index))}${more > 0 ? html `<a class="lane-more" href="/tasks">+${more} more in Tasks</a>` : null}</details>`;
|
|
162
111
|
};
|
|
163
|
-
// The card's facts: mono key–value pairs under the title (board pass) —
|
|
164
|
-
// task, worker, runtime — the same grammar on every lane, so the eye
|
|
165
|
-
// learns one card. Chips carry the words (project, reservation).
|
|
166
|
-
// A value is mono only when a machine said it (a worker, model or branch name, a clock); words stay Geist.
|
|
167
112
|
const facts = (rows) => rows.length === 0
|
|
168
113
|
? null
|
|
169
114
|
: html `<span class="facts">${rows.map(([k, v, mono]) => html `<span class="fact"><span class="k">${k}</span><span class="${mono === undefined ? "v" : "v mono"}">${v}</span></span>`)}</span>`;
|
|
@@ -176,10 +121,6 @@ export function boardBody(data, ciRed) {
|
|
|
176
121
|
])}${chips([
|
|
177
122
|
chip(card.repo),
|
|
178
123
|
])}</a>`;
|
|
179
|
-
// The queued lane: ranks compare only within a COLUMN (queue-columns
|
|
180
|
-
// review, finding 14), so the badge is per column head — the shared
|
|
181
|
-
// queue's front card says "next up"; a reserved column's front card
|
|
182
|
-
// says whose turn it is. No cross-column comparison is claimed.
|
|
183
124
|
const queuedHeads = (() => {
|
|
184
125
|
const heads = new Map();
|
|
185
126
|
for (const card of data.cards.filter(one => one.lane === "queued")) {
|
|
@@ -203,18 +144,12 @@ export function boardBody(data, ciRed) {
|
|
|
203
144
|
if (claim === null)
|
|
204
145
|
return plain(card);
|
|
205
146
|
const workspace = claim.worktree === null ? null : (claim.worktree.split("/").pop() ?? claim.worktree);
|
|
206
|
-
// Chip copy: unknown phases show nothing rather than raw tokens.
|
|
207
147
|
const phase = claim.phase === null ? undefined : PHASE_WORDS[claim.phase];
|
|
208
|
-
// The live strip is the run's own phase and clock — never a percent:
|
|
209
|
-
// a build has no honest progress figure, only a stage and an elapsed.
|
|
210
148
|
const live = claim.model === null ? "preparing workspace" : (phase ?? "the agent is working");
|
|
211
|
-
// The steps: where the build is among set up → writing → checking →
|
|
212
|
-
// committing, from its phase — a stage, never a percent.
|
|
213
149
|
const step = buildStepOf(claim);
|
|
214
150
|
const steps = step === null
|
|
215
151
|
? null
|
|
216
152
|
: html `<span class="steps" role="img" aria-label="${`step ${step + 1} of ${BUILD_STEPS.length}: ${BUILD_STEPS[step]}`}">${BUILD_STEPS.map((_, index) => html `<i class="${index < step ? "on" : index === step ? "now" : ""}"></i>`)}</span>`;
|
|
217
|
-
// Who, which model and which branch, as one muted line: words in Geist, the model and branch in mono.
|
|
218
153
|
const model = claim.model === null ? null : claim.provider === null ? modelName(null, claim.model) : agentModelName(claim.provider, claim.model);
|
|
219
154
|
const branch = claim.branch === null ? null : `${claim.branch}${workspace === null ? "" : ` · ${workspace}`}`;
|
|
220
155
|
const who = joinHtml([
|
|
@@ -276,8 +211,6 @@ export function boardBody(data, ciRed) {
|
|
|
276
211
|
}
|
|
277
212
|
export function homePage(chrome, data) {
|
|
278
213
|
const { summary } = data;
|
|
279
|
-
// The night's harvest is the page's reason to exist — strong figures in a
|
|
280
|
-
// sentence, colored by what they mean, never a metric-card grid.
|
|
281
214
|
const ledger = html `<p class="ledger"><span class="good"><b>${summary.built.length}</b> built</span> · <span${summary.failed.length > 0 ? html ` class="bad"` : null}><b>${summary.failed.length}</b> failed</span> · <b>${summary.refused.length}</b> refused${summary.cutDown.length > 0 ? html ` · <span class="bad"><b>${summary.cutDown.length}</b> cut down mid-flight</span>` : null}</p>`;
|
|
282
215
|
const decide = data.decisions.length === 0
|
|
283
216
|
? html `<p class="meta">Nothing waits on you. No questions came up.</p>`
|
|
@@ -291,15 +224,10 @@ export function homePage(chrome, data) {
|
|
|
291
224
|
const gaps = data.gaps === null || data.gaps.length === 0
|
|
292
225
|
? null
|
|
293
226
|
: html `<h2>Missing requirements</h2><p class="hint">tools or credentials builds need — checked before any money is spent</p>${joinHtml(data.gaps.map(gap => html `<p class="row"><a href="/caps">${gap.key}</a> — ${gap.state}<span class="right meta">how to fix →</span></p>`), "\n")}`;
|
|
294
|
-
// Live at the fidelity the moment deserves: fast while something builds,
|
|
295
|
-
// gentle when the page is just a briefing. GET-only, so refresh is safe.
|
|
296
227
|
const refresh = data.building.length > 0 ? 10 : 60;
|
|
297
|
-
// BUILDING RIGHT NOW: each live claim as a pulsing card — the one moment
|
|
298
|
-
// an operator actually watches this page, so it re-renders itself.
|
|
299
228
|
const building = data.building.length === 0
|
|
300
229
|
? null
|
|
301
230
|
: html `<h2>Building now</h2><p class="hint">live builds — this page refreshes itself every 10 seconds while anything runs</p><div class="cards">${data.building.map(claim => html `<a class="stat-card" href="${taskHref(claim.taskId)}" style="text-decoration:none"><span class="k"><span class="dot dot-ok pulse"></span>${claim.taskId}</span><span class="v">${claim.runner} · ${Math.max(1, Math.round((data.now.getTime() - new Date(claim.claimedAt).getTime()) / 60_000))}m elapsed${claim.model === null ? null : html ` · ${modelName(null, claim.model)}`}</span></a>`)}</div>`;
|
|
302
|
-
// THE FLEET: runners by heartbeat age, worktrees by lease state, the watch.
|
|
303
231
|
const nowMs = data.now.getTime();
|
|
304
232
|
const runnerCards = data.runners
|
|
305
233
|
.filter(one => one.retiredAt === null)
|
|
@@ -357,13 +285,11 @@ export function homePage(chrome, data) {
|
|
|
357
285
|
], "\n"), { chrome, refreshSeconds: refresh });
|
|
358
286
|
}
|
|
359
287
|
export const TASK_GROUP_LABEL = { ...ASK_LABEL, building: 'Building', rest: 'Recent' };
|
|
360
|
-
/** A list row's chip (src/design/KIT.md): a waiting row names its ask ("Plan", "Result") in the ask tone, or says
|
|
361
|
-
* Needs you; every other row wears its headline in the tone of the status it belongs to. */
|
|
362
288
|
export function workRowChip(row) {
|
|
363
289
|
if (row.archived !== undefined)
|
|
364
290
|
return { word: 'Archived', tone: '' };
|
|
365
291
|
if (row.ask !== null)
|
|
366
|
-
return row.chip
|
|
292
|
+
return { word: row.chip ?? 'Needs you', tone: 'ask' };
|
|
367
293
|
const label = row.status.label;
|
|
368
294
|
if (HEADLINES.includes(label)) {
|
|
369
295
|
const chip = chipOfHeadline(label);
|
|
@@ -372,7 +298,6 @@ export function workRowChip(row) {
|
|
|
372
298
|
const tone = row.status.tone;
|
|
373
299
|
return { word: label, tone: tone === 'live' ? 'live' : tone === 'done' ? 'done' : tone === 'problem' ? 'failed' : '' };
|
|
374
300
|
}
|
|
375
|
-
/** Where a row's one action goes: a result opens on its task's Result tab (the review page is the task page now). */
|
|
376
301
|
function workActionHref(row) {
|
|
377
302
|
const target = row.primaryAction?.target;
|
|
378
303
|
if (row.primaryAction?.code === 'open-result' && target?.runId != null)
|
|
@@ -381,26 +306,21 @@ function workActionHref(row) {
|
|
|
381
306
|
}
|
|
382
307
|
export function workPage(chrome, data) {
|
|
383
308
|
const layout = data.board != null ? 'board' : 'list';
|
|
384
|
-
// The project and the stored-state filter ride every link; a change of filter starts on page one.
|
|
385
309
|
const query = (over = {}) => {
|
|
386
310
|
const project = over.project === undefined ? (data.projectFilter ?? (data.all === true ? 'all' : null)) : over.project;
|
|
387
311
|
const board = (over.layout ?? layout) === 'board';
|
|
388
312
|
const state = over.state === undefined ? data.state ?? null : over.state;
|
|
389
|
-
// Tasks' own address (docs/plans/plain-toolroll.md P1.4): Board is a view; every project is scope=all.
|
|
390
313
|
return tasksHref({ scope: project === 'all' ? 'all' : null, project: project === 'all' ? null : project, view: board ? 'board' : over.view ?? data.view,
|
|
391
314
|
state: board ? null : state, cursor: over.cursor ?? null });
|
|
392
315
|
};
|
|
393
316
|
const href = (view, cursor, state = data.state ?? null) => query({ view, ...(cursor === undefined ? {} : { cursor }), state });
|
|
394
|
-
// Put away (or Restore, in Archived): one quiet act per row, never on a task with work going on.
|
|
395
317
|
const tidyAct = (row) => data.canPutAway !== true ? null : row.archived !== undefined ? { action: `${taskHref(row.rootId)}/restore`, label: 'Restore' }
|
|
396
318
|
: row.liveRunId !== null || row.unfinishedRunId !== null || row.status.views.includes('running') ? null : { action: `${taskHref(row.rootId)}/archive`, label: 'Archive' };
|
|
397
319
|
const returnTo = href(data.view, undefined);
|
|
398
320
|
const current = WORK_VIEWS.find(one => one.key === data.view);
|
|
399
321
|
const filtered = (data.state ?? null) !== null;
|
|
400
322
|
const projectOf = (row) => data.multiProject || row.repo === null ? (row.repo === null ? 'Unplaced' : projectName(row.repo)) : null;
|
|
401
|
-
// The status filters, as addresses, each with its count; Archived sits at the foot of Finished, not in the track.
|
|
402
323
|
const tabs = WORK_VIEWS.filter(one => one.key !== 'archived').map(one => ({ key: one.key, label: one.label, href: href(one.key), count: data.work.totals[one.key], active: one.key === data.view }));
|
|
403
|
-
// The project filter: All and each project in view, when there is more than one.
|
|
404
324
|
const known = chrome.projects ?? [];
|
|
405
325
|
const lens = data.lens === undefined ? chrome.project : data.lens;
|
|
406
326
|
const projects = known.length < 2 ? null : [
|
|
@@ -423,7 +343,6 @@ export function workPage(chrome, data) {
|
|
|
423
343
|
id: row.rootId, title: row.title, href: taskHref(row.rootId), project: projectOf(row), age: relativeAge(row.updatedAt, data.now),
|
|
424
344
|
status: { label: row.status.label, tone: row.status.tone, token: row.status.token }, chip: row.chip, word: chip,
|
|
425
345
|
ask: row.ask, group: row.ask ?? (row.status.rank === 1 ? 'building' : 'rest'), rank: row.status.rank,
|
|
426
|
-
// One quiet action, on a row that waits on you; every other row is its own link.
|
|
427
346
|
action: actionHref === null || row.primaryAction === null || row.ask === null ? null : { label: row.primaryAction.label, href: actionHref },
|
|
428
347
|
detail: needsYouDetail ? row.status.detail : row.progress ?? (row.ask === null && row.status.detail !== row.status.label ? row.status.detail : null),
|
|
429
348
|
problem: row.familyProblem,
|
|
@@ -468,8 +387,6 @@ export function workPage(chrome, data) {
|
|
|
468
387
|
states: [{ label: 'Any state', href: href(data.view, undefined, null), active: (data.state ?? null) === null },
|
|
469
388
|
...TASK_STATES.map(one => ({ label: one.charAt(0).toUpperCase() + one.slice(1), href: href(data.view, undefined, one), active: data.state === one }))],
|
|
470
389
|
};
|
|
471
|
-
// The page without the workspace (and its first paint) keeps the older rows the server tests read; the workspace
|
|
472
|
-
// replaces it with the kit view above.
|
|
473
390
|
const legacyTabs = html `<nav class="work-views" aria-label="Task views">${WORK_VIEWS.map(one => html `<a href="${href(one.key)}"${one.key === data.view ? html ` class="active" aria-current="page"` : null}>${one.label}<span class="count">${data.work.totals[one.key]}</span></a>`)}</nav>`;
|
|
474
391
|
const rowHtml = (row) => {
|
|
475
392
|
if (row.archived !== undefined) {
|
|
@@ -487,7 +404,6 @@ export function workPage(chrome, data) {
|
|
|
487
404
|
const putAway = act === null ? null : postForm(act.action, html `<button type="submit" class="quiet">${act.label}</button>`, { hidden: { return: returnTo }, attrs: { class: 'inline', 'data-tidy-act': 'put-away' } });
|
|
488
405
|
return html `<article class="work-row" data-task="${row.rootId}" data-work-status="${row.status.token}" data-work-views="${row.status.views.join(' ')}"><div class="work-row-main"><a class="work-title" href="${taskHref(row.rootId)}">${row.title}</a><p class="work-meta">${project}<span>${relativeAge(row.updatedAt, data.now)}</span><span class="mono">${row.rootId}</span></p></div><div class="work-row-status">${statusLineHtml(row.status)}${action}${putAway}${row.familyProblem === null ? null : html `<p class="problem">${row.familyProblem}</p>`}${row.status.views.includes('needs-you') && !['write-scope', 'approve-scope'].includes(row.primaryAction?.code ?? '') && row.status.detail !== row.status.label && row.status.detail !== row.familyProblem ? html `<p class="work-detail">${row.status.detail}</p>` : null}${workDiagnosticsHtml(row.status.diagnostics)}</div></article>`;
|
|
489
406
|
};
|
|
490
|
-
// The state filter, as real links (the old task list's), so a page without the React view can still change it.
|
|
491
407
|
const stateLinks = html `<nav class="work-states" aria-label="Task state"><span class="meta">State:</span> ${joinHtml([html `<a href="${href(data.view, undefined, null)}"${filtered ? null : html ` aria-current="page"`}>Any</a>`,
|
|
492
408
|
...TASK_STATES.map(one => html `<a href="${href(data.view, undefined, one)}"${data.state === one ? html ` aria-current="page"` : null}>${one}</a>`)], html ` · `)}</nav>`;
|
|
493
409
|
const list = data.work.items.length === 0 && filtered && !data.previous
|
|
@@ -500,12 +416,6 @@ export function workPage(chrome, data) {
|
|
|
500
416
|
.map(([path, label]) => html `<a href="${path}">${label}</a>`)}</nav></details>`;
|
|
501
417
|
return screen('work', html `<div class="work-head"><h1>Tasks</h1>${putAwayLink === null ? null : html `<a class="button-link" href="${putAwayLink.href}" data-put-away-old>${putAwayLink.label}</a>`}${tools}</div>${limitsHtml(data.limits ?? null)}${legacyTabs}${stateLinks}${list}${pages}`, { chrome, workspace: { view } });
|
|
502
418
|
}
|
|
503
|
-
/**
|
|
504
|
-
* owner/name from a git remote URL — FULLY ANCHORED https/ssh github.com
|
|
505
|
-
* forms only (ghlist review, finding 2): a foreign host carrying
|
|
506
|
-
* "github.com" in its path, or a non-github host, must never read as a
|
|
507
|
-
* GitHub identity. Everything else is null.
|
|
508
|
-
*/
|
|
509
419
|
export function githubIdentityOf(remoteUrl) {
|
|
510
420
|
const trimmed = remoteUrl.trim();
|
|
511
421
|
const https = /^https:\/\/github\.com\/([A-Za-z0-9-]+)\/([A-Za-z0-9._-]+?)(?:\.git)?\/?$/.exec(trimmed);
|
|
@@ -516,13 +426,8 @@ export function githubIdentityOf(remoteUrl) {
|
|
|
516
426
|
return `${ssh[1]}/${ssh[2]}`;
|
|
517
427
|
return null;
|
|
518
428
|
}
|
|
519
|
-
/** The no-script "move to the front" sentinel: the form cannot name the
|
|
520
|
-
* front of a partition, so the handler resolves it (slice 1b, fix 1). */
|
|
521
429
|
export const QUEUE_FRONT = "__TOP__";
|
|
522
430
|
export function queueCard(one, revision, queueRevision, workers, column) {
|
|
523
|
-
// Presentation over queueScoped()'s shape only: state, scope, blockers,
|
|
524
|
-
// and the reservation owner. Money is not in this query and is not
|
|
525
|
-
// invented here — it stays on the task page, labeled.
|
|
526
431
|
const state = one.taken
|
|
527
432
|
? html `<span class="badge">Starting — a builder has it</span>`
|
|
528
433
|
: column === "anyone"
|
|
@@ -535,7 +440,6 @@ export function queueCard(one, revision, queueRevision, workers, column) {
|
|
|
535
440
|
: html `${postForm("/queue/move", html `<button type="submit" class="icon-button" aria-label="move to the front">${TO_FRONT_ICON}</button>`, { ...options, hidden: { queueRevision, task: one.id, column, before: QUEUE_FRONT } })}${postForm("/queue/move", html `<select name="column" aria-label="reserve for"><option value="anyone"${column === "anyone" ? html ` selected` : null}>anyone</option>${workers.filter(worker => !worker.retired).map(worker => html `<option value="${worker.name}"${column === worker.name ? html ` selected` : null}>${worker.name}</option>`)}</select><button type="submit">Move</button>`, { ...options, hidden: { queueRevision, task: one.id } })}`;
|
|
536
441
|
return html `<div class="card queue-card" data-task="${one.id}" data-taken="${one.taken ? "1" : "0"}"${one.dispatch === null || one.dispatch === undefined ? null : html ` data-dispatch-status="${one.dispatch.code}"`}><p class="row">${one.taken ? null : GRIP_HANDLE}<a href="${taskHref(one.id)}">${one.title}</a>${chips}</p><p class="row meta"><span class="mono">${one.id}</span> ${controls}</p></div>`;
|
|
537
442
|
}
|
|
538
|
-
/** The queue columns fragment — shared queue first, then each worker. */
|
|
539
443
|
export function queueBody(tasks, workers, revision, queueRevision) {
|
|
540
444
|
const columnOf = (runner) => tasks.filter(one => one.assignedRunner === runner);
|
|
541
445
|
const projectChips = (rows) => {
|
|
@@ -554,12 +458,6 @@ export function queueBody(tasks, workers, revision, queueRevision) {
|
|
|
554
458
|
: html `<p class="meta mono">${worker.building} building in this project · unattended capacity ${worker.capacity}</p>${postForm("/queue/note", html `<input type="text" name="note" value="${worker.note ?? ""}" data-initial="${worker.note ?? ""}" placeholder="what this worker is working through" aria-label="column note" maxlength="200"><button type="submit">Save</button>`, { attrs: { class: "row" }, projectRevision: revision, hidden: { runner: worker.name } })}<p class="meta">Takes from the shared queue when this column is empty</p>`;
|
|
555
459
|
return html `<div class="lanes" data-queue-revision="${queueRevision}">${column("shared queue", "anyone", html `<p class="meta">Workers take from here when their column is empty — top card first</p>`, shared, "nothing waiting — every task is reserved or running")}${joinHtml(workers.map(worker => column(worker.name + (worker.retired ? " (retired)" : ""), worker.name, noteForm(worker), columnOf(worker.name), "nothing queued — this builder takes from the shared queue")), "\n")}</div>`;
|
|
556
460
|
}
|
|
557
|
-
/** The /queue page's one nonce'd script: delegated pointer-event drag (it
|
|
558
|
-
* survives every fragment swap — finding 17) plus a poller that re-checks
|
|
559
|
-
* focus, dirty inputs, and an in-flight drag AT SWAP TIME, never only
|
|
560
|
-
* before the fetch. Select dirtiness compares against data-initial
|
|
561
|
-
* (finding 18); missing that, a select counts clean.
|
|
562
|
-
*/
|
|
563
461
|
export function queueScript() {
|
|
564
462
|
return (`(function(){var region=document.getElementById("queue-region");if(!region)return;` +
|
|
565
463
|
`var stamp=document.getElementById("queue-region-stamp");var dragging=null;var ghost=null;` +
|
|
@@ -570,7 +468,6 @@ export function queueScript() {
|
|
|
570
468
|
`var base=selects[j].getAttribute("data-initial");if(base!==null&&selects[j].value!==base)return true;}` +
|
|
571
469
|
`return false;}` +
|
|
572
470
|
`function paused(){return dragging!==null||dirty();}` +
|
|
573
|
-
// the poller: pause is re-checked at SWAP time
|
|
574
471
|
`var wait=15000;var last=Date.now();var busy=false;` +
|
|
575
472
|
`function tell(){if(!stamp)return;if(paused()){stamp.textContent="paused while you edit";return;}` +
|
|
576
473
|
`stamp.textContent="updated "+Math.round((Date.now()-last)/1000)+"s ago";}setInterval(tell,1000);` +
|
|
@@ -581,7 +478,6 @@ export function queueScript() {
|
|
|
581
478
|
`.then(function(t){if(t&&!paused()){region.innerHTML=t;last=Date.now();}})` +
|
|
582
479
|
`.catch(function(){})` +
|
|
583
480
|
`.then(function(){busy=false;tell();setTimeout(cycle,wait);});}setTimeout(cycle,wait);` +
|
|
584
|
-
// the drag: delegated from the stable region element
|
|
585
481
|
`region.addEventListener("pointerdown",function(e){var handle=e.target.closest(".queue-handle");if(!handle)return;` +
|
|
586
482
|
`var card=handle.closest(".queue-card");if(!card||card.getAttribute("data-taken")==="1")return;` +
|
|
587
483
|
`e.preventDefault();dragging={task:card.getAttribute("data-task"),card:card};card.style.opacity="0.5";});` +
|
|
@@ -601,10 +497,6 @@ export function queueScript() {
|
|
|
601
497
|
`var fields={respond:"fragment",csrf:(region.querySelector("input[name=csrf]")||{value:""}).value,projectRevision:(region.querySelector("input[name=projectRevision]")||{value:""}).value,` +
|
|
602
498
|
`queueRevision:wrap?wrap.getAttribute("data-queue-revision"):"",task:drag.task,column:column,before:before};` +
|
|
603
499
|
`var post=new URLSearchParams();Object.keys(fields).forEach(function(k){if(fields[k]!==""||k==="respond")post.append(k,fields[k]);});` +
|
|
604
|
-
// A refused move (slice 1b, fix 2): the handler's typed text/plain 409
|
|
605
|
-
// lands on the card as a problem row — textContent, never markup. Only
|
|
606
|
-
// an authenticated plain-text 409 is inlined; an HTML refusal (the
|
|
607
|
-
// stale-project page), a login bounce, or anything unexpected navigates.
|
|
608
500
|
`function problem(task,text){var card=region.querySelector('.queue-card[data-task="'+task.replace(/["\\\\]/g,"")+'"]');if(!card)return false;` +
|
|
609
501
|
`var old=card.querySelector(".queue-problem");if(old)old.remove();` +
|
|
610
502
|
`var row=document.createElement("p");row.className="problem queue-problem";row.setAttribute("role","alert");row.textContent=text;card.appendChild(row);return true;}` +
|
|
@@ -620,8 +512,6 @@ export function queueScript() {
|
|
|
620
512
|
`.then(function(){tell();});});` +
|
|
621
513
|
`})();`);
|
|
622
514
|
}
|
|
623
|
-
/** Put away old tasks (docs/plans/task-tidy.md): exactly what would be put away, grouped, each with why, every one
|
|
624
|
-
* ticked; one step-up puts away the ticked ones, bound to this preview's digest. The CLI twin is named beside it. */
|
|
625
515
|
export function putAwayPage(chrome, data) {
|
|
626
516
|
const groups = tidyGroups(data.items, data.days);
|
|
627
517
|
const count = data.items.length;
|