toolroll 0.9.104 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -5
- package/README.md +18 -20
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +17 -139
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +1 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +0 -17
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +0 -53
- package/dist/local-owner.js +2 -93
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +0 -20
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +0 -100
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +0 -25
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +4 -567
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +21 -555
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +1 -88
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +13 -493
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +6 -135
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +9 -227
- package/dist/server/tasks.js +5 -539
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +0 -75
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +17 -28
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +16 -36
- package/dist/tui.js +1 -1
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +4 -3
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -350
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1985
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -540
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -43
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -61
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -170
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -39
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1098
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -81
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -60
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -343
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -108
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -48
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -202
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/server/kit.js
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
* The revamp kit for server pages: the same markup the React kit (src/browser/kit/) renders, as `Html`, so a
|
|
3
|
-
* server page and a React view built from the kit look and behave alike. Rules: src/design/KIT.md. Look:
|
|
4
|
-
* src/design/kit.css (served with console.css). Words and approval rules: src/design/kit.ts.
|
|
5
|
-
*
|
|
6
|
-
* Everything here escapes by construction (html.ts): strings are text, only `Html` is markup. Behaviour (the
|
|
7
|
-
* composer growing, Stop, the keyboard, overlays, switches) comes from the workspace bundle's kit behaviour
|
|
8
|
-
* (src/browser/kit/behavior.ts), which wires any kit markup the workspace places; every control here still works
|
|
9
|
-
* as plain HTML without it.
|
|
10
|
-
*/
|
|
1
|
+
import { advancedShownNow } from "../advanced-view.js";
|
|
11
2
|
import { attributes, html, htmlString, joinHtml, passwordlessRendering, postForm } from "../html.js";
|
|
12
3
|
import { KIT_ICONS, NOT_FOUND, SETTINGS_GROUPS, STATUS, STEP_ROW_WORDS, STEP_WORDS, stepRowBodyId, TIMING_WORDS, approvalAsk, chipOfHeadline, dur, needsWords, stepsFill, termsOf, timingBars, } from "../design/kit.js";
|
|
13
4
|
const cls = (...names) => names.filter(Boolean).join(" ");
|
|
14
|
-
// ---- text and icons ---------------------------------------------------------------------------------------------
|
|
15
5
|
export function icon(name, small = false) {
|
|
16
6
|
const shapes = KIT_ICONS[name].map(shape => shape[0] === "path" ? html `<path${attributes(shape[1])}/>` : shape[0] === "circle" ? html `<circle${attributes(shape[1])}/>` : html `<rect${attributes(shape[1])}/>`);
|
|
17
7
|
return html `<svg class="${cls("k-i", small && "k-i-sm")}" viewBox="0 0 24 24" aria-hidden="true" focusable="false">${shapes}</svg>`;
|
|
@@ -25,45 +15,34 @@ export function btn(label, options = {}) {
|
|
|
25
15
|
return html `<a class="${className}" href="${options.href}"${attributes({ ...named, ...options.attrs })}>${face}</a>`;
|
|
26
16
|
return html `<button class="${className}" type="${options.type ?? "button"}"${attributes({ ...named, ...options.attrs })}>${face}</button>`;
|
|
27
17
|
}
|
|
28
|
-
// ---- status -----------------------------------------------------------------------------------------------------
|
|
29
18
|
export function chip(word, tone = "", options = {}) {
|
|
30
19
|
return html `<span class="${cls("k-chip", tone, options.dot === false && "nodot")}">${word}</span>`;
|
|
31
20
|
}
|
|
32
|
-
/** One of the five status words in its tone. */
|
|
33
21
|
export const status = (key) => chip(STATUS[key].word, STATUS[key].tone);
|
|
34
|
-
/** A task's headline (task-status.ts) as its chip. */
|
|
35
22
|
export function headlineChip(headline) {
|
|
36
23
|
const { word, tone } = chipOfHeadline(headline);
|
|
37
24
|
return chip(word, tone);
|
|
38
25
|
}
|
|
39
|
-
/** A count pill: ink only for a Needs-you count; zero is muted. */
|
|
40
26
|
export function count(n, options = {}) {
|
|
41
27
|
return html `<span class="${cls("k-count", options.ink && n > 0 && "ink", n === 0 && "zero")}">${n}</span>`;
|
|
42
28
|
}
|
|
43
|
-
/** Sections of one object as addresses: a <nav> of links, the current one aria-current="page". */
|
|
44
29
|
export function linkTabs(label, current, items) {
|
|
45
30
|
return html `<nav class="k-tabs" aria-label="${label}">${items.map(item => html `<a href="${item.href}"${item.key === current ? html ` aria-current="page"` : ""}>${item.label}${item.count ?? ""}</a>`)}</nav>`;
|
|
46
31
|
}
|
|
47
|
-
/** Filters or views of a list as addresses: the segmented track. */
|
|
48
32
|
export function segLinks(label, current, items) {
|
|
49
33
|
return html `<nav class="k-seg" aria-label="${label}">${items.map(item => html `<a href="${item.href}"${item.key === current ? html ` aria-current="page"` : ""}>${item.label}${item.count ?? ""}</a>`)}</nav>`;
|
|
50
34
|
}
|
|
51
|
-
/** Filters or views as addresses with icons (List / Board): each item an icon, its label read aloud. */
|
|
52
35
|
export function iconSegLinks(label, current, items) {
|
|
53
36
|
return html `<nav class="k-seg k-seg-icons" aria-label="${label}">${items.map(item => html `<a href="${item.href}" aria-label="${item.label}" title="${item.label}"${item.key === current ? html ` aria-current="page"` : ""}>${icon(item.icon)}</a>`)}</nav>`;
|
|
54
37
|
}
|
|
55
|
-
/** A list's text filter (the workspace narrows the rows on the page as it is typed; without it, a GET form). */
|
|
56
38
|
export function filterInput(options) {
|
|
57
39
|
return html `<label class="k-filter">${icon("search", true)}<input type="search"${attributes({ name: options.name, value: options.value, placeholder: options.placeholder ?? options.label, "aria-label": options.label })}></label>`;
|
|
58
40
|
}
|
|
59
|
-
// ---- fields -----------------------------------------------------------------------------------------------------
|
|
60
|
-
/** A field: label, control, one hint line, and the error slot tied to the control (aria-describedby). */
|
|
61
41
|
export function field(options) {
|
|
62
42
|
return html `<div class="k-field"><label class="k-label" for="${options.id}">${options.label}</label>${options.control}\
|
|
63
43
|
${options.hint ? html `<p class="k-hint" id="${options.id}-hint">${options.hint}</p>` : ""}\
|
|
64
44
|
<span class="k-err" id="${options.id}-err" role="alert">${options.error ?? ""}</span></div>`;
|
|
65
45
|
}
|
|
66
|
-
/** A text input; `error` marks it invalid and points it at its error line. */
|
|
67
46
|
export function input(options) {
|
|
68
47
|
const describedBy = [options.hint && `${options.id}-hint`, `${options.id}-err`].filter(Boolean).join(" ");
|
|
69
48
|
return html `<input class="k-input" id="${options.id}" name="${options.name}" type="${options.type ?? "text"}"${attributes({ value: options.value, "aria-invalid": options.error ? "true" : undefined, "aria-describedby": describedBy, ...options.attrs })}>`;
|
|
@@ -71,9 +50,6 @@ export function input(options) {
|
|
|
71
50
|
export function textarea(options) {
|
|
72
51
|
return html `<textarea class="k-textarea" id="${options.id}" name="${options.name}" rows="${options.rows ?? 3}"${attributes({ "aria-invalid": options.error ? "true" : undefined, "aria-describedby": `${options.id}-err`, ...options.attrs })}>${options.value ?? ""}</textarea>`;
|
|
73
52
|
}
|
|
74
|
-
/** A native select in the field family, with the chevron: 36px, `sm` 28px in a toolbar, 44px and 16px text on a phone.
|
|
75
|
-
* `chip` draws it as a composer's filled pill (a project inside the message box): still a native select, so it works
|
|
76
|
-
* without script. */
|
|
77
53
|
export function select(options) {
|
|
78
54
|
const opts = options.items.map(item => {
|
|
79
55
|
const [value, label] = typeof item === "string" ? [item, item] : item;
|
|
@@ -81,85 +57,56 @@ export function select(options) {
|
|
|
81
57
|
});
|
|
82
58
|
return html `<span class="${cls("k-selw", options.sm && "sm", options.wide && "wide", options.chip && "k-selw-chip")}"><select class="k-sel"${attributes({ id: options.id, name: options.name, "aria-label": options.label, ...options.attrs })}>${opts}</select></span>`;
|
|
83
59
|
}
|
|
84
|
-
/** An on/off setting in a form: a checkbox with role=switch and a visible label (posts `name=on` when on). */
|
|
85
60
|
export function switchInput(options) {
|
|
86
61
|
return html `<label class="k-switch"><input class="k-switch-input" type="checkbox" role="switch" id="${options.id}" name="${options.name}"${options.on ? html ` checked` : ""}${attributes(options.attrs ?? {})}><span class="k-trk" aria-hidden="true"></span><span>${options.label}</span></label>`;
|
|
87
62
|
}
|
|
88
|
-
/** An on/off choice inside a composer, drawn as a filled pill chip whose mark fills when on: a checkbox with
|
|
89
|
-
* role=switch (posts `name=value` when on), so it works without script. Its longer words go under the box (`note`). */
|
|
90
63
|
export function toggleChip(options) {
|
|
91
64
|
return html `<label class="k-tchip"><input class="k-switch-input" type="checkbox" role="switch" id="${options.id}" name="${options.name}"${options.on ? html ` checked` : ""}${attributes(options.attrs ?? {})}><span class="k-tchip-mark" aria-hidden="true"></span><span>${options.label}</span></label>`;
|
|
92
65
|
}
|
|
93
|
-
/** Two columns: label and one muted line | the control. `inline` keeps the control beside the label on a phone. */
|
|
94
66
|
export function formRow(label, hint, control, variant = "") {
|
|
95
67
|
return html `<div class="${cls("k-frow", variant)}"><div class="k-frow-l"><span class="k-frow-t">${label}</span>${hint ? html `<span class="k-frow-h">${hint}</span>` : ""}</div><div class="k-frow-c">${control}</div></div>`;
|
|
96
68
|
}
|
|
97
|
-
/** Radio cards: one choice from a few, each with a bold label and one muted line. */
|
|
98
69
|
export function radios(options) {
|
|
99
70
|
return html `<fieldset class="k-radios"><legend class="k-sr">${options.legend}</legend>${options.items.map(item => html `<label class="k-opt"><input type="radio" name="${options.name}" value="${item.value}"${item.value === options.current ? html ` checked` : ""}><span><b>${item.label}</b>${item.text ? html `<span>${item.text}</span>` : ""}</span>${item.tag ?? ""}</label>`)}</fieldset>`;
|
|
100
71
|
}
|
|
101
|
-
// ---- blocks -----------------------------------------------------------------------------------------------------
|
|
102
72
|
export const acts = (...buttons) => html `<div class="k-acts">${buttons}</div>`;
|
|
103
73
|
export function facts(rows) {
|
|
104
74
|
return html `<dl class="k-facts">${rows.map(([key, value]) => html `<dt>${key}</dt><dd>${value}</dd>`)}</dl>`;
|
|
105
75
|
}
|
|
106
76
|
export const note = (text) => html `<p class="k-note">${text}</p>`;
|
|
107
|
-
/** A refusal or problem, where it happened (role=alert): what went wrong and what didn't change. */
|
|
108
77
|
export const notice = (text) => html `<p class="k-notice" role="alert">${icon("alert", true)}<span>${text}</span></p>`;
|
|
109
|
-
/** One neutral system line (a builder offline, an update): not a failure, never the needs-you mark. */
|
|
110
78
|
export const infoLine = (text) => html `<p class="k-notice info">${text}</p>`;
|
|
111
79
|
export function empty(options) {
|
|
112
80
|
return html `<div class="k-empty"><p class="k-empty-t">${options.title}</p>${options.text ? html `<p class="k-empty-x">${options.text}</p>` : ""}${options.action ?? ""}</div>`;
|
|
113
81
|
}
|
|
114
|
-
/** A disclosure for secondary detail. */
|
|
115
82
|
export const disclose = (summary, body, open = false) => html `<details class="k-disclose"${open ? html ` open` : ""}><summary>${summary}</summary>${body}</details>`;
|
|
116
|
-
// ---- lists ------------------------------------------------------------------------------------------------------
|
|
117
|
-
/** A group heading with its count; `right` puts one quiet tool at its end. */
|
|
118
83
|
export const group = (label, n, right) => html `<h2 class="k-grp">${label}${n ?? ""}${right ? html `<span class="k-grow"></span>${right}` : ""}</h2>`;
|
|
119
|
-
/** A list row: chip · title (the whole row is the link) · one muted line · meta · one action, always in one column. */
|
|
120
84
|
export function row(options) {
|
|
121
|
-
// No href: a thing with no page of its own (a computer); its title is text and its action is the way in.
|
|
122
85
|
const title = options.href === undefined ? html `<span class="k-row-t">${options.title}</span>` : html `<a class="k-row-t" href="${options.href}">${options.title}</a>`;
|
|
123
86
|
return html `<div class="${cls("k-row", options.wait && "wait", options.href === undefined && "k-row-static")}"${attributes(options.attrs ?? {})}><span class="k-row-c">${options.chip}</span>\
|
|
124
87
|
${title}<span class="k-row-d">${options.desc ?? ""}</span>\
|
|
125
88
|
<span class="k-row-m">${options.meta ?? ""}</span><span class="k-row-a">${options.action ?? ""}</span>${options.message ? html `<div class="k-row-msg">${options.message}</div>` : ""}</div>`;
|
|
126
89
|
}
|
|
127
|
-
// ---- page headers -----------------------------------------------------------------------------------------------
|
|
128
|
-
/** The phone header: back (or nothing), the title, one trailing action. Hidden at a desk. */
|
|
129
90
|
export function phoneHeader(title, options = {}) {
|
|
130
91
|
return html `<header class="k-ph">${options.back ? btn("Back", { variant: "ghost", iconOnly: "back", href: options.back }) : ""}<p class="k-ph-t">${title}</p>${options.trailing ?? ""}</header>`;
|
|
131
92
|
}
|
|
132
|
-
/** A list page's header: the phone header and the desk top bar (title · muted context · spacer · tools). */
|
|
133
93
|
export function pageHeader(title, options = {}) {
|
|
134
94
|
const phone = phoneHeader(options.phoneTitle ?? title, { ...(options.back ? { back: options.back } : {}), ...(options.trailing ? { trailing: options.trailing } : {}) });
|
|
135
95
|
return html `${phone}<div class="k-tb"><h1>${title}</h1>${options.ctx ? html `<span class="k-tb-ctx">${options.ctx}</span>` : ""}${options.right ? html `<span class="k-grow"></span>${options.right}` : ""}</div>`;
|
|
136
96
|
}
|
|
137
|
-
/** A reading page's header: a back link, the one h1, a meta line. `same` when the phone header already shows the
|
|
138
|
-
* title: the h1 stays for assistive tech and is drawn once. */
|
|
139
97
|
export function docHeader(options) {
|
|
140
98
|
return html `${options.back ? html `<a class="k-backlink" href="${options.back[0]}">${icon("back", true)}${options.back[1]}</a>` : ""}\
|
|
141
99
|
<header class="k-dh"><div><h1${options.same ? html ` class="k-same"` : ""}>${options.title}</h1>${options.meta ? html `<p class="k-dh-meta">${options.meta}</p>` : ""}</div>${options.right ?? ""}</header>`;
|
|
142
100
|
}
|
|
143
101
|
export const doc = (...parts) => html `<div class="k-doc">${parts}</div>`;
|
|
144
|
-
// ---- approval ---------------------------------------------------------------------------------------------------
|
|
145
|
-
/** The four fixed slots: status (chip + heading) · supporting text · actions · terms, plus the error slot. The same
|
|
146
|
-
* slots in every state (waiting, approved, automatic, refused), so nothing moves. `body`: the choice the act takes
|
|
147
|
-
* (radio cards, a note), between the text and the actions. */
|
|
148
102
|
export function slots(options) {
|
|
149
103
|
return html `<section class="${cls("k-slots", options.wait && "wait")}"${attributes(options.attrs ?? {})}><div class="k-slot-status">${options.status}</div>\
|
|
150
104
|
<p class="k-slot-text">${options.text}</p>${options.body === undefined ? "" : html `<div class="k-slot-body">${options.body}</div>`}<div class="k-slot-acts k-acts">${options.acts}</div><p class="k-slot-terms">${options.terms}</p>\
|
|
151
105
|
<div class="k-slot-err">${options.err ? notice(options.err) : ""}</div></section>`;
|
|
152
106
|
}
|
|
153
|
-
/** This request's approval facts: Passwordless as the request sees it, plus what the page read for this act. */
|
|
154
107
|
export function approvalFactsNow(read = { remembered: false }) {
|
|
155
108
|
return { ...read, passwordless: passwordlessRendering() };
|
|
156
109
|
}
|
|
157
|
-
/**
|
|
158
|
-
* The control that approves one act, inside its slots: a POST form with the act's button and, only when the rules
|
|
159
|
-
* say so, the password field (name `token`, as every ceremony reads it). Automatic approval renders nothing to
|
|
160
|
-
* press. The page decides only what it shows: the server proves the person, the freshness and the scope again
|
|
161
|
-
* when the form arrives.
|
|
162
|
-
*/
|
|
163
110
|
export function approveForm(options) {
|
|
164
111
|
const ask = approvalAsk(options.kind, options.facts);
|
|
165
112
|
if (ask === "automatic")
|
|
@@ -169,27 +116,20 @@ export function approveForm(options) {
|
|
|
169
116
|
? html `<div class="k-reauth k-field"><label class="k-label" for="${fieldId}">Your password</label><input class="k-input" id="${fieldId}" type="password" name="token" autocomplete="current-password" required></div>`
|
|
170
117
|
: html ``;
|
|
171
118
|
const button = btn(options.label, { variant: options.primary === false ? "outline" : "primary", type: "submit", ...(options.docked ? { docked: true } : {}) });
|
|
172
|
-
// An approval is made inside a signed-in request: its CSRF field is not optional, whatever a caller passes.
|
|
173
119
|
if (options.form !== undefined && "signedOut" in options.form)
|
|
174
120
|
throw new Error("approveForm: an approval form always carries the request's CSRF field");
|
|
175
|
-
// The k-approve class is GuardedHtml's stale-approval marker: a caller's classes join it, never replace it.
|
|
176
121
|
const extra = options.form?.attrs ?? {};
|
|
177
122
|
const classes = ["k-approve", ...(typeof extra["class"] === "string" ? extra["class"].split(/\s+/).filter(name => name !== "" && name !== "k-approve") : [])].join(" ");
|
|
178
123
|
const formOptions = { ...options.form, attrs: { ...extra, class: classes, "data-approval-kind": options.kind } };
|
|
179
124
|
return postForm(options.action, html `${options.before ?? ""}${password}<div class="k-acts">${button}</div>`, formOptions);
|
|
180
125
|
}
|
|
181
|
-
/** The terms line for an act, from the same rules. */
|
|
182
126
|
export const approvalTerms = (kind, facts) => termsOf(kind, facts);
|
|
183
|
-
/** Waits that aren't tasks, on their own page (a spend limit, a failed backup): one ink outline, a count, items
|
|
184
|
-
* split by hairlines, each with its one action. They never join the global Needs-you count. */
|
|
185
127
|
export function needsPanel(items, label = "Needs you") {
|
|
186
128
|
if (items.length === 0)
|
|
187
129
|
return html ``;
|
|
188
130
|
return html `<section class="k-needs" aria-label="${label}"><h2 class="k-needs-h">${label} ${count(items.length, { ink: true })}</h2>\
|
|
189
131
|
${items.map(item => html `<div class="k-needs-item"><div><b>${item.title}</b>${item.text ? html `<p>${item.text}</p>` : ""}</div>${item.action ? html `<div class="k-acts">${item.action}</div>` : ""}</div>`)}</section>`;
|
|
190
132
|
}
|
|
191
|
-
// ---- timing -----------------------------------------------------------------------------------------------------
|
|
192
|
-
/** A run's steps on one elapsed-time axis (Release, a flow's run, a pull request's checks). */
|
|
193
133
|
export function timing(options) {
|
|
194
134
|
const bars = timingBars(options.rows, options.scale);
|
|
195
135
|
const mark = (st) => st === "wait" ? html `<span class="k-wd"></span>` : st === "q" ? html `<span class="k-qd"></span>` : st === "run" ? html `<span class="k-rund"></span>` : icon(st === "ok" ? "check" : "x", true);
|
|
@@ -205,34 +145,28 @@ export function timing(options) {
|
|
|
205
145
|
<div class="k-timing-b"><div class="k-crow head" aria-hidden="true"><span></span><span>${options.head ?? "Step"}</span><span class="k-crow-lane">Elapsed time</span><span>Status</span><span class="k-crow-s">Time</span></div>${rows}</div>\
|
|
206
146
|
<div class="k-timing-f">${options.foot ?? ""}</div></section>`;
|
|
207
147
|
}
|
|
208
|
-
// ---- progress line and board -----------------------------------------------------------------------------------
|
|
209
|
-
/** A few named steps on one line, filled up to where the work is. */
|
|
210
148
|
export function steps(items, label = "Progress") {
|
|
211
149
|
return html `<ol class="k-steps" aria-label="${label}" style="--k-n:${items.length};--k-fill:${stepsFill(items).toFixed(3)}"><span class="k-steps-fill" aria-hidden="true"></span>\
|
|
212
150
|
${items.map(step => html `<li class="k-step ${step.state}"${step.state === "now" || step.state === "live" || step.state === "failed" ? html ` aria-current="step"` : ""} aria-label="${step.label}: ${STEP_WORDS[step.state]}${step.sub ? `, ${step.sub}` : ""}"><b aria-hidden="true"></b><span class="k-step-l" aria-hidden="true">${step.label}</span><span class="k-step-s" aria-hidden="true">${step.sub ?? ""}</span></li>`)}</ol>`;
|
|
213
151
|
}
|
|
214
|
-
/** The board's columns; on a phone one at a time (`on`). */
|
|
215
152
|
export const board = (label, ...columns) => html `<div class="k-board" role="region" aria-label="${label}">${columns}</div>`;
|
|
216
153
|
export function boardCol(options) {
|
|
217
154
|
return html `<section class="${cls("k-col", options.on && "on")}" aria-label="${options.label}"><h2 class="${cls("k-col-h", options.needs && "needs")}">${options.label}${options.count ?? ""}</h2>\
|
|
218
155
|
${options.cards.length > 0 ? options.cards : html `<p class="k-col-e">${options.empty}</p>`}</section>`;
|
|
219
156
|
}
|
|
220
157
|
export const card = (options) => html `<a class="k-card" href="${options.href}"><span class="k-card-t">${options.title}</span><span class="k-card-m">${options.meta}</span></a>`;
|
|
221
|
-
// ---- pages ------------------------------------------------------------------------------------------------------
|
|
222
|
-
/** The not-found page, inside the shell: what was asked for and two ways on. */
|
|
223
158
|
export function notFound(path, options = {}) {
|
|
224
159
|
return html `${pageHeader("Not found")}<div class="k-nf">${empty({
|
|
225
160
|
title: options.title ?? NOT_FOUND.title(path), text: options.text ?? NOT_FOUND.text,
|
|
226
161
|
action: acts(btn("Go to Home", { sm: true, href: "/" }), btn("Open Tasks", { sm: true, variant: "ghost", href: "/tasks" })),
|
|
227
162
|
})}</div>`;
|
|
228
163
|
}
|
|
229
|
-
/** The Settings frame: Overview and the eight groups, a desk breadcrumb, a phone back header, one column. */
|
|
230
164
|
export function settingsShell(options) {
|
|
231
165
|
const flags = options.flags ?? {};
|
|
232
166
|
const own = SETTINGS_GROUPS.find(([, slug]) => slug === options.group);
|
|
233
167
|
const hub = options.group === "hub" || own === undefined;
|
|
234
168
|
const nav = html `<a class="k-nav k-nav-top" href="/settings"${hub ? html ` aria-current="page"` : ""}><span class="k-nav-l">Overview</span></a>\
|
|
235
|
-
${SETTINGS_GROUPS.map(([label, slug, href]) => html `<a class="k-nav" href="${href}"${slug === options.group ? html ` aria-current="page"` : ""}><span class="k-nav-l">${label}</span>${flags[slug] ? html `<span class="k-nav-flag" aria-hidden="true"></span><span class="k-sr"> (needs you)</span>` : ""}</a>`)}`;
|
|
169
|
+
${SETTINGS_GROUPS.filter(([, slug]) => slug !== "spend" || advancedShownNow()).map(([label, slug, href]) => html `<a class="k-nav" href="${href}"${slug === options.group ? html ` aria-current="page"` : ""}><span class="k-nav-l">${label}</span>${flags[slug] ? html `<span class="k-nav-flag" aria-hidden="true"></span><span class="k-sr"> (needs you)</span>` : ""}</a>`)}`;
|
|
236
170
|
const back = options.back ?? (hub ? undefined : options.sub ? own[2] : "/settings");
|
|
237
171
|
const crumbs = hub ? html `` : options.sub
|
|
238
172
|
? html `<nav class="k-tb-ctx k-crumbs" aria-label="Breadcrumb"><a href="${own[2]}">${own[0]}</a><span class="k-sep" aria-hidden="true">/</span><b aria-current="page">${options.title}</b></nav>`
|
|
@@ -240,22 +174,12 @@ ${SETTINGS_GROUPS.map(([label, slug, href]) => html `<a class="k-nav" href="${hr
|
|
|
240
174
|
return html `${phoneHeader(hub ? "Settings" : options.title, back ? { back } : {})}<div class="k-tb"><h1>Settings</h1>${crumbs}</div>\
|
|
241
175
|
<div class="k-settings"><nav class="k-snav" aria-label="Settings">${nav}</nav><div class="k-sbody"><header><h2 class="${hub ? "k-sr" : "k-same"}">${options.title}</h2>${options.lead ? html `<p>${options.lead}</p>` : ""}</header>${options.body}</div></div>`;
|
|
242
176
|
}
|
|
243
|
-
// ---- composer ---------------------------------------------------------------------------------------------------
|
|
244
|
-
/** The round send, an arrow up; with `stop` it carries its Stop twin (the composer's .working class swaps them).
|
|
245
|
-
* `gate` (a message box) marks it aria-disabled while the box is empty. */
|
|
246
177
|
export function sendButton(options = {}) {
|
|
247
178
|
const label = options.label ?? "Send";
|
|
248
179
|
const gated = options.gate === true && options.empty !== false;
|
|
249
180
|
return html `<span class="k-send-slot"><button class="k-send" type="submit" aria-label="${label}" title="${label}"${attributes({ name: options.name, "data-gate": options.gate ? "1" : undefined, "aria-disabled": gated ? "true" : undefined, ...options.attrs })}>${icon("send")}</button>\
|
|
250
181
|
${options.stop ? html `<button class="k-send k-stop" type="button" aria-label="${options.stop.label ?? "Stop"}" title="${options.stop.label ?? "Stop"}"${attributes(options.stop.attrs ?? {})}>${icon("stop")}</button>` : ""}</span>`;
|
|
251
182
|
}
|
|
252
|
-
/**
|
|
253
|
-
* The message box: one filled rounded object, the textarea grows from `rows` to `maxRows` lines then scrolls,
|
|
254
|
-
* one bottom row inside (+ menu, the project as a filled pill chip, toggle chips, the round send); its note and its
|
|
255
|
-
* refusal sit under the box (all inside `.k-composer-field`). Textarea
|
|
256
|
-
* `<id>-text` (named `name`), refusal slot `<id>-err`, chosen project a hidden input `<id>-project` (named
|
|
257
|
-
* `projectName`). A refused send keeps the words in the box with the reason in the error slot.
|
|
258
|
-
*/
|
|
259
183
|
export function composer(options) {
|
|
260
184
|
const value = options.value ?? "";
|
|
261
185
|
const textId = `${options.id}-text`;
|
|
@@ -272,9 +196,6 @@ export function composer(options) {
|
|
|
272
196
|
<div class="k-composer-bar">${plus}${project}${options.before ?? ""}<span class="k-grow"></span>${options.send}</div></div>\
|
|
273
197
|
${options.note ? html `<p class="k-note k-composer-note">${options.note}</p>` : ""}<div class="k-composer-err k-err" id="${options.id}-err" role="alert">${options.error ?? ""}</div></div>`;
|
|
274
198
|
}
|
|
275
|
-
/** A floating panel, hidden until its trigger (`overlayTrigger`) opens it: role=dialog, a labelled Close, Escape
|
|
276
|
-
* and the scrim close it, Tab stays inside, focus returns to the trigger. A popover and a menu become a bottom
|
|
277
|
-
* sheet on a phone. */
|
|
278
199
|
export function overlay(options) {
|
|
279
200
|
const titleId = `${options.id}-title`;
|
|
280
201
|
const close = btn("Close", { variant: "ghost", iconOnly: "x", sm: options.kind === "popover" || options.kind === "menu", attrs: { "data-k-close": "" } });
|
|
@@ -288,30 +209,18 @@ export function overlay(options) {
|
|
|
288
209
|
const inner = options.kind === "drawer" ? html `${head}<div class="k-drawer-b">${body}</div>` : options.kind === "sheet" ? html `${head}<div class="k-sheet-b">${body}</div>` : html `${head}${body}`;
|
|
289
210
|
return html `<div class="${className}" id="${options.id}" role="dialog" aria-modal="true" aria-labelledby="${titleId}" data-k-overlay="${options.kind}" tabindex="-1" hidden>${inner}</div>`;
|
|
290
211
|
}
|
|
291
|
-
/** The button that opens an overlay. */
|
|
292
212
|
export function overlayTrigger(label, overlayId, options = {}) {
|
|
293
213
|
return btn(label, { ...options, attrs: { "data-k-open": overlayId, "aria-haspopup": "dialog", "aria-controls": overlayId, ...options.attrs } });
|
|
294
214
|
}
|
|
295
|
-
// ---- phone dock -------------------------------------------------------------------------------------------------
|
|
296
|
-
/** The phone dock: this screen's one primary (the same act the card hides on a phone). */
|
|
297
215
|
export function dock(primary) {
|
|
298
216
|
return primary === null ? html `` : html `<div class="k-dock"><div class="k-dock-primary">${primary}</div></div>`;
|
|
299
217
|
}
|
|
300
|
-
/** Several kit parts joined. */
|
|
301
218
|
export const parts = (...values) => joinHtml(values);
|
|
302
|
-
// ---- pages outside the shell (Wave E) ---------------------------------------------------------------------------
|
|
303
|
-
/**
|
|
304
|
-
* A page outside the shell (sign in, the first account, an invite, signed out, an error): the brand, one narrow
|
|
305
|
-
* column with the one h1, then an optional foot line under a hairline. `brand` is the product mark (chrome.ts
|
|
306
|
-
* BRAND_HTML). These pages carry no script: everything on them works as plain HTML.
|
|
307
|
-
*/
|
|
308
219
|
export function outPage(options) {
|
|
309
220
|
return html `<div class="k-out"><div class="k-out-c"><a class="k-out-brand" href="${options.brandHref ?? "/"}">${options.brand}</a>\
|
|
310
221
|
<h1>${options.title}</h1>${options.note ? html `<p class="k-out-note" role="status">${options.note}</p>` : ""}${options.sub ? html `<p class="k-out-sub">${options.sub}</p>` : ""}${options.body ?? ""}</div>\
|
|
311
222
|
${options.foot ? html `<p class="k-out-f">${options.foot}</p>` : ""}</div>`;
|
|
312
223
|
}
|
|
313
|
-
/** A form field outside the shell: label, input, one hint line, and its error line (the field is aria-invalid, described
|
|
314
|
-
* by both and focused when the error is about it). The error is a server's refusal; nothing here validates. */
|
|
315
224
|
export function outField(options) {
|
|
316
225
|
const describedBy = [options.hint ? `${options.id}-hint` : null, options.error ? `${options.id}-err` : null].filter(Boolean).join(" ");
|
|
317
226
|
const control = html `<input class="k-input" id="${options.id}" name="${options.name}" type="${options.type ?? "text"}"${attributes({
|
|
@@ -320,9 +229,6 @@ export function outField(options) {
|
|
|
320
229
|
return html `<div class="k-field"><label class="k-label" for="${options.id}">${options.label}</label>${control}\
|
|
321
230
|
${options.hint ? html `<p class="k-hint" id="${options.id}-hint">${options.hint}</p>` : ""}${options.error ? html `<p class="k-err" id="${options.id}-err" role="alert">${options.error}</p>` : ""}</div>`;
|
|
322
231
|
}
|
|
323
|
-
/** The steps of one object as the page itself (a task: Plan · Approval · Build · Checks · Ready): an ordered list, a
|
|
324
|
-
* marker on a rail, the label, one sentence and a time per row, and the row's body under it. The current row is
|
|
325
|
-
* `aria-current="step"`. Same markup as `KStepRows`. */
|
|
326
232
|
export function stepRows(items, label = "Steps") {
|
|
327
233
|
return html `<ol class="k-steprows" aria-label="${label}">${items.map(item => {
|
|
328
234
|
const hasBody = item.body !== undefined && htmlString(html `${item.body}`) !== "";
|
|
@@ -336,10 +242,6 @@ ${item.at ? html `<time class="k-steprow-time k-num" datetime="${item.at}">${ite
|
|
|
336
242
|
: html `<div class="k-steprow-head">${head}</div>`}${hasBody ? html `<div class="k-steprow-body" id="${id}"${item.open ? "" : html ` hidden`}>${item.body}</div>` : ""}</div></li>`;
|
|
337
243
|
})}</ol>`;
|
|
338
244
|
}
|
|
339
|
-
// ---- the work -----------------------------------------------------------------------------------------------------
|
|
340
|
-
/** The work's frame (KIT.md "The work"): a header (the title, who is working with a blue dot while it runs, Close), the
|
|
341
|
-
* body that scrolls, and the message box at the foot. The records themselves are followed live by the workspace
|
|
342
|
-
* (`KWork` and `useConversation`); a page without script shows what `body` holds. Same markup as `KWork`. */
|
|
343
245
|
export function work(options) {
|
|
344
246
|
const who = options.who === undefined || htmlString(html `${options.who}`) === "" ? ""
|
|
345
247
|
: html `<p class="k-work-who">${options.live ? html `<span class="k-work-dot" aria-hidden="true"></span>` : ""}<span>${options.who}</span></p>`;
|
|
@@ -349,8 +251,6 @@ export function work(options) {
|
|
|
349
251
|
<header class="k-work-head"><div class="k-work-title"><h2 id="${options.id}-h">${options.title}</h2>${who}</div>${close}</header>\
|
|
350
252
|
<div class="k-work-body" data-agent-scroll="">${options.body ?? ""}</div>${foot}</aside>`;
|
|
351
253
|
}
|
|
352
|
-
/** A short list of steps: a mark, the step and one line, its one action. Done steps read muted with a check; a step
|
|
353
|
-
* being checked shows a static ring (running state never animates). The state is also said in words. */
|
|
354
254
|
export function checklist(steps, label = "Steps") {
|
|
355
255
|
const word = { done: "Done", open: "Not done", checking: "Checking" };
|
|
356
256
|
return html `<ol class="k-check" aria-label="${label}">${steps.map(step => html `<li class="${cls("k-check-row", step.state === "done" && "done")}" data-step="${step.key}">\
|
|
@@ -358,41 +258,29 @@ export function checklist(steps, label = "Steps") {
|
|
|
358
258
|
<span class="k-check-t"><b>${step.title}</b><span>${step.text}</span><span class="k-sr">${word[step.state]}</span></span>\
|
|
359
259
|
<span class="k-check-a">${step.state === "done" ? "" : step.action ?? ""}</span></li>`)}</ol>`;
|
|
360
260
|
}
|
|
361
|
-
// ---- ideas (Wave E) ---------------------------------------------------------------------------------------------
|
|
362
|
-
/** Ideas that draft words into a composer: each is a link that opens the page with the words in the box (no script),
|
|
363
|
-
* and with the kit behaviour it adds them to the box in place (`data-k-draft`, `data-k-into` = the composer id). */
|
|
364
261
|
export function ideas(options) {
|
|
365
262
|
if (options.items.length === 0)
|
|
366
263
|
return html ``;
|
|
367
264
|
return html `<section class="k-sec"><h3>${options.label}</h3><div class="k-ideas">${options.items.map(item => html `<a class="k-btn k-btn-outline k-idea" href="${item.href}" data-k-draft="${item.draft}" data-k-into="${options.into}">${item.label}</a>`)}</div></section>`;
|
|
368
265
|
}
|
|
369
|
-
// ---- settings pages (wave D) ------------------------------------------------------------------------------------
|
|
370
|
-
/** A settings section: its heading (with an optional muted state after it), one muted lead line, then its rows.
|
|
371
|
-
* No nested wells. `id` is also the anchor other pages link to. */
|
|
372
266
|
export function settingsSection(options) {
|
|
373
267
|
const head = `${options.id}-h`;
|
|
374
268
|
return html `<section class="k-ssec" id="${options.id}" aria-labelledby="${head}"><div class="k-secthead"><h3 id="${head}">${options.title}\
|
|
375
269
|
${options.state ? html `<span class="k-ssec-state">${options.state}</span>` : ""}</h3>${options.right ?? ""}</div>\
|
|
376
270
|
${options.lead ? html `<p class="k-ssec-lead">${options.lead}</p>` : ""}${options.body}</section>`;
|
|
377
271
|
}
|
|
378
|
-
/** One row that opens a settings page: icon, title (with "1 item needs you" when something waits), one status line,
|
|
379
|
-
* anything on the right, a chevron. The whole row is the link. */
|
|
380
272
|
export function settingsLink(options) {
|
|
381
273
|
const flag = options.needs ? html `<span class="k-sflag">${needsWords(options.needs)}</span>` : "";
|
|
382
274
|
return html `<a class="${cls("k-slink", !options.icon && "noico")}" href="${options.href}">${options.icon ? icon(options.icon) : ""}\
|
|
383
275
|
<span class="k-sl"><span class="k-sl-t"><span>${options.title}</span>${flag}</span>${options.status ? html `<span class="k-sl-h">${options.status}</span>` : ""}</span>\
|
|
384
276
|
<span class="k-slink-r">${options.right ?? ""}</span><span class="k-chev" aria-hidden="true"></span></a>`;
|
|
385
277
|
}
|
|
386
|
-
/** A list of settings links under a section heading ("In this group"), or the overview's unlabelled list. */
|
|
387
278
|
export function settingsLinks(title, links, options = {}) {
|
|
388
279
|
return html `<section class="k-ssec"${title === null ? html ` aria-label="${options.label ?? "All settings"}"` : ""}>${title === null ? "" : html `<div class="k-secthead"><h3>${title}</h3></div>`}\
|
|
389
280
|
<div class="k-slinks">${links}</div></section>`;
|
|
390
281
|
}
|
|
391
|
-
/** A record row (a session, a token, a person, a device, a provider): title and one muted line · when · one action,
|
|
392
|
-
* and anything opened under it (a form, a refusal). */
|
|
393
282
|
export function settingsRecord(options) {
|
|
394
283
|
return html `<div class="k-srec"${attributes(options.attrs ?? {})}><div class="k-sl"><span class="k-sl-t">${options.title}</span>${options.sub ? html `<span class="k-sl-h">${options.sub}</span>` : ""}</div>\
|
|
395
284
|
<span class="k-srec-when">${options.when ?? ""}</span><span class="k-srec-a">${options.action ?? ""}</span>${options.more ? html `<div class="k-srec-more">${options.more}</div>` : ""}</div>`;
|
|
396
285
|
}
|
|
397
|
-
/** A command or path to copy by hand: monospace, selectable. */
|
|
398
286
|
export const codeLine = (text) => html `<code class="k-scode">${text}</code>`;
|
|
@@ -4,12 +4,10 @@ export class LastChecks {
|
|
|
4
4
|
known(key) {
|
|
5
5
|
return this.answers.get(key) ?? null;
|
|
6
6
|
}
|
|
7
|
-
/** Whether the last answer is older than `everyMs` (or missing). */
|
|
8
7
|
due(key, everyMs, now = Date.now()) {
|
|
9
8
|
const last = this.answers.get(key);
|
|
10
9
|
return last === undefined || now - last.at >= everyMs;
|
|
11
10
|
}
|
|
12
|
-
/** Run the check (one at a time per key) and keep its answer. */
|
|
13
11
|
run(key, check) {
|
|
14
12
|
const pending = this.running.get(key);
|
|
15
13
|
if (pending !== undefined)
|
package/dist/server/live.js
CHANGED
|
@@ -12,19 +12,15 @@ import { adapterPolicy } from "./route-policy.js";
|
|
|
12
12
|
import { requestContext } from "./request-context.js";
|
|
13
13
|
import { createAgentsLiveRooms } from "./agents-live-room.js";
|
|
14
14
|
import { leadTilesFor } from "./agents-live-lead.js";
|
|
15
|
-
/** A page asks for a few rooms at once: its workspace, what it shows, its conversation. */
|
|
16
15
|
export const LIVE_ROOMS_PER_PAGE = 6;
|
|
17
16
|
const ROOM_NAME = /^(workspace|task|flow|chat|team|agent|summary|agents-live)(?::([^?]{1,400}))?(?:\?([^#]{0,600}))?$/;
|
|
18
|
-
/** At most one workspace nudge a second: a burst of writes is one re-read, the first heard at once. */
|
|
19
17
|
const WORKSPACE_SETTLE_MS = 1_000;
|
|
20
|
-
/** A running reply's preview: at most one snapshot every 80 ms; the last one always goes out. */
|
|
21
18
|
const TURN_SETTLE_MS = 80;
|
|
22
19
|
function chatSnapshot(turn) {
|
|
23
20
|
const view = turn.reply?.view() ?? { phase: "working", status: LIVE_STATUS.thinking };
|
|
24
21
|
const steps = (turn.reply?.tools() ?? []).map(calls => ({ tools: calls.map(call => call.label), toolCalls: calls }));
|
|
25
22
|
return { steps, phase: view.phase, status: turn.done ? "" : turn.reply?.status() ?? LIVE_STATUS.thinking, text: view.phase === "writing" ? view.text : "", done: turn.done, ok: turn.ok };
|
|
26
23
|
}
|
|
27
|
-
/** A room's name, read strictly: anything else is not a room. */
|
|
28
24
|
export function parseLiveRoom(name) {
|
|
29
25
|
const match = ROOM_NAME.exec(name);
|
|
30
26
|
if (match === null)
|
|
@@ -63,13 +59,10 @@ export function parseLiveRoom(name) {
|
|
|
63
59
|
}
|
|
64
60
|
return null;
|
|
65
61
|
}
|
|
66
|
-
/** The same session, still signed in, from the cookie and the account (never this request's context): a live room's and
|
|
67
|
-
* a live terminal's re-proof. Null when it was signed out, ended elsewhere, revoked, rotated or re-roled. */
|
|
68
62
|
export function rereadBrowser(runtime, request, who) {
|
|
69
63
|
const again = runtime.identify(request, false);
|
|
70
64
|
if (again?.via !== "cookie" || again.name !== who.name || again.session.generation !== who.session.generation)
|
|
71
65
|
return null;
|
|
72
|
-
// The in-memory session may still exist after another process ends the saved session.
|
|
73
66
|
const hash = runtime.sessions.hashOf(again.session);
|
|
74
67
|
const saved = hash === null ? null : runtime.store.webSession(hash), account = runtime.store.accountOf(again.name);
|
|
75
68
|
if (saved === null || account === null || account.revokedAt !== null || account.generation !== again.session.generation
|
|
@@ -80,18 +73,12 @@ export function rereadBrowser(runtime, request, who) {
|
|
|
80
73
|
const json = (response, status, value) => respond(response, status, "application/json", JSON.stringify(value));
|
|
81
74
|
export function createLiveHandlers(runtime, live) {
|
|
82
75
|
const { store, identify, liveCeiling, familyOf, taskRooms, flowRooms, clock, leadPrincipal, taskChatFocus, chatScopeOf, liveTurns, team, visible } = runtime;
|
|
83
|
-
// The reader's workspace: one room for everyone, nudged by any meaningful write or a clock-bound lapse.
|
|
84
76
|
const workspaceRooms = createLiveRooms(() => `${live.workspaceRevision.current()}:${live.workspaceRevision.expiresAt(clock())}`, null, { bus: live.bus, minIntervalMs: WORKSPACE_SETTLE_MS });
|
|
85
|
-
// The reader's project states, per account AND scope: the fingerprint IS the snapshot, so each `change` carries it
|
|
86
|
-
// (`at`). Every delivery re-proves the viewer's scope, so a snapshot read for a wider scope (a cached one, a held
|
|
87
|
-
// one, one a newcomer would be handed on joining) never reaches a narrowed reader: it hears `gone` instead. Reads
|
|
88
|
-
// settle: a burst of writes is one read, while every signal still re-proves at once.
|
|
89
77
|
const summaryKey = (account, scope) => JSON.stringify([account, scope]);
|
|
90
78
|
const summaryRooms = createLiveRooms(key => {
|
|
91
79
|
const [account, scope] = JSON.parse(key);
|
|
92
80
|
return live.projectSummaryFor(account, scope);
|
|
93
81
|
}, null, { bus: live.bus, minIntervalMs: WORKSPACE_SETTLE_MS, readSettleMs: WORKSPACE_SETTLE_MS });
|
|
94
|
-
// A team audience is per actor (and per token): its key carries who reads, the room keeps how to read as them.
|
|
95
82
|
const teamActors = new Map();
|
|
96
83
|
const teamRooms = createLiveRooms(key => {
|
|
97
84
|
const actor = teamActors.get(key);
|
|
@@ -99,10 +86,7 @@ export function createLiveHandlers(runtime, live) {
|
|
|
99
86
|
return cursor === null ? null : String(cursor);
|
|
100
87
|
}, null, { bus: live.bus });
|
|
101
88
|
const chatViewers = new Set();
|
|
102
|
-
// One agent's open view (Agents board): what it shows, keyed by the exact run.
|
|
103
89
|
const agentRooms = createLiveRooms(run => agentRunFingerprint(store, run), null, { bus: live.bus });
|
|
104
|
-
// The Live grid: one room per viewer and scope, watching only (no lease, no seen mark).
|
|
105
|
-
// Each Live page's own lead tiles, read as its viewer's saved session now (a page's room key carries the page).
|
|
106
90
|
const liveLeads = new Map();
|
|
107
91
|
const agentsLive = createAgentsLiveRooms({ store, bus: live.bus, evidenceRoot: runtime.evidenceRoot, localRunner: runtime.options.localRunner, clock, visible,
|
|
108
92
|
leads: key => liveLeads.get(key)?.() ?? null, forget: key => liveLeads.delete(key) });
|
|
@@ -113,16 +97,13 @@ export function createLiveHandlers(runtime, live) {
|
|
|
113
97
|
try {
|
|
114
98
|
valid = viewer.valid(thread);
|
|
115
99
|
}
|
|
116
|
-
catch {
|
|
100
|
+
catch { }
|
|
117
101
|
if (!valid) {
|
|
118
102
|
viewer.connection.send(viewer.room, "gone");
|
|
119
103
|
viewer.connection.refuse(() => viewer.leave());
|
|
120
104
|
}
|
|
121
105
|
return valid;
|
|
122
106
|
}
|
|
123
|
-
/** A running reply for one viewer's thread: snapshots while it runs, then the last one. Every snapshot goes through
|
|
124
|
-
* one serialized sender (live-reply.ts): one in flight, the newest waiting, standing re-proved before each, and the
|
|
125
|
-
* last one only after the sender has closed, so no preview lands after it. */
|
|
126
107
|
function follow(viewer, thread) {
|
|
127
108
|
if (!admitted(viewer, thread))
|
|
128
109
|
return;
|
|
@@ -145,14 +126,12 @@ export function createLiveHandlers(runtime, live) {
|
|
|
145
126
|
viewer.detach = stop;
|
|
146
127
|
sender.offer(chatSnapshot(turn));
|
|
147
128
|
}
|
|
148
|
-
/** A reply starts on a thread: whoever has that conversation open follows it. */
|
|
149
129
|
function turnStarted(thread) {
|
|
150
130
|
for (const viewer of chatViewers) {
|
|
151
131
|
if (admitted(viewer) && store.liveLeadThreadFor(viewer.name, viewer.scope)?.id === thread)
|
|
152
132
|
follow(viewer, thread);
|
|
153
133
|
}
|
|
154
134
|
}
|
|
155
|
-
/** The actor a team stream reads as, and how it is proved again while open. */
|
|
156
135
|
function teamActorOf(request, who) {
|
|
157
136
|
const account = store.accountOf(who.name);
|
|
158
137
|
if (account === null || account.revokedAt !== null)
|
|
@@ -163,7 +142,6 @@ export function createLiveHandlers(runtime, live) {
|
|
|
163
142
|
}
|
|
164
143
|
const principal = who.principal;
|
|
165
144
|
if (principal !== undefined) {
|
|
166
|
-
// An API token is re-proved against the store every time: unrevoked, unexpired, inside its project limit.
|
|
167
145
|
const actor = { name: principal.account, generation: principal.generation, principal };
|
|
168
146
|
return { actor, key: principal.tokenId, valid: () => {
|
|
169
147
|
const again = reproveRemote(store, principal, clock());
|
|
@@ -173,7 +151,6 @@ export function createLiveHandlers(runtime, live) {
|
|
|
173
151
|
return true;
|
|
174
152
|
} };
|
|
175
153
|
}
|
|
176
|
-
// A password bearer is proved again once TEAM_PASSWORD_REVERIFY_MS has passed since it last was.
|
|
177
154
|
const actor = { name: who.name, generation: who.generation };
|
|
178
155
|
let provedAt = clock().getTime();
|
|
179
156
|
return { actor, key: "password", valid: () => {
|
|
@@ -203,7 +180,6 @@ export function createLiveHandlers(runtime, live) {
|
|
|
203
180
|
const rooms = names.map(name => ({ name, room: parseLiveRoom(name) }));
|
|
204
181
|
if (rooms.some(one => one.room === null) || rooms.filter(one => one.room?.kind === "agent").length > 1 || rooms.filter(one => one.room?.kind === "workspace").length > 1 || rooms.filter(one => one.room?.kind === "chat").length > 1 || rooms.filter(one => one.room?.kind === "team").length > 1 || rooms.filter(one => one.room?.kind === "summary").length > 1 || rooms.filter(one => one.room?.kind === "agents-live").length > 1)
|
|
205
182
|
return json(response, 400, { error: "room" });
|
|
206
|
-
// Admit every room before the stream opens, with the answers each page's own stream gave.
|
|
207
183
|
const joins = [];
|
|
208
184
|
let refusedJoin = false;
|
|
209
185
|
for (const { name, room } of rooms) {
|
|
@@ -230,7 +206,6 @@ export function createLiveHandlers(runtime, live) {
|
|
|
230
206
|
const signedIn = sameBrowser(request, browser);
|
|
231
207
|
const valid = () => signedIn() && live.projectScopeFor(who.name) === scope;
|
|
232
208
|
joins.push(connection => {
|
|
233
|
-
// Proved before the room is made or read: an invalid viewer never causes a look at a file.
|
|
234
209
|
let ok = false;
|
|
235
210
|
try {
|
|
236
211
|
ok = valid();
|
|
@@ -243,7 +218,6 @@ export function createLiveHandlers(runtime, live) {
|
|
|
243
218
|
refusedJoin = true;
|
|
244
219
|
return;
|
|
245
220
|
}
|
|
246
|
-
// Each page's own room (its key carries this connection): a newcomer is never handed a digest computed earlier.
|
|
247
221
|
const key = agentsLive.keyOf(who.name, scope, randomBytes(9).toString("hex"));
|
|
248
222
|
liveLeads.set(key, () => { const again = readBrowser(request, browser); return again === null ? null : leadTilesFor(runtime, again); });
|
|
249
223
|
agentsLive.rooms.join(key, { name: who.name, room: name, connection, valid });
|
|
@@ -256,7 +230,6 @@ export function createLiveHandlers(runtime, live) {
|
|
|
256
230
|
return json(response, 404, { error: "task" });
|
|
257
231
|
const repo = family.root.repo, root = family.root.id, signedIn = sameBrowser(request, browser);
|
|
258
232
|
joins.push(connection => taskRooms.join(root, { name: who.name, room: name, connection,
|
|
259
|
-
// A sign-out or a narrowed account stops it.
|
|
260
233
|
valid: () => signedIn() && rowVisible(liveCeiling(), repo) && store.accountCanAccess(who.name, repo) }));
|
|
261
234
|
}
|
|
262
235
|
else if (room.kind === "agent") {
|
|
@@ -265,10 +238,7 @@ export function createLiveHandlers(runtime, live) {
|
|
|
265
238
|
const repo = run === null ? null : store.refForId(run.taskRef)?.repo ?? null;
|
|
266
239
|
if (run === null || repo === null || !visible(repo) || !store.accountCanAccess(who.name, repo))
|
|
267
240
|
return json(response, 404, { error: "run" });
|
|
268
|
-
// A repair is its build's own activity: its room is the build's.
|
|
269
241
|
const signedIn = sameBrowser(request, browser), runId = boardRunOf(store, run.id);
|
|
270
|
-
// The watch lease (agent-board.ts watchingAgent) is held by the shell's keyed POST /agents/watch on each keep-alive
|
|
271
|
-
// and released on unload (easy-start N1): this stream only reads, so a stolen cookie can't hold one to quiet pings.
|
|
272
242
|
joins.push(connection => {
|
|
273
243
|
agentRooms.join(runId, { name: who.name, room: name, connection,
|
|
274
244
|
valid: () => signedIn() && rowVisible(liveCeiling(), repo) && store.accountCanAccess(who.name, repo) });
|
|
@@ -304,7 +274,6 @@ export function createLiveHandlers(runtime, live) {
|
|
|
304
274
|
if (principal === null)
|
|
305
275
|
return false;
|
|
306
276
|
const thread = store.liveLeadThreadFor(again.name, scope);
|
|
307
|
-
// Even the default lead room is bound to the projects admitted when its thread opened.
|
|
308
277
|
if (thread !== null && thread.ceilingDigest !== principal.ceilingDigest)
|
|
309
278
|
return false;
|
|
310
279
|
if (expectedThread !== undefined && thread?.id !== expectedThread)
|
|
@@ -347,8 +316,6 @@ export function createLiveHandlers(runtime, live) {
|
|
|
347
316
|
return json(response, 403, initial);
|
|
348
317
|
const key = JSON.stringify([proved.actor.name, proved.actor.generation, proved.key, room.conversation ?? ""]);
|
|
349
318
|
teamActors.set(key, proved.actor);
|
|
350
|
-
// The token or session proves itself again, then reads the room as it now stands: a narrowed project limit or a
|
|
351
|
-
// lost membership is a lost room. The room's cursor reads as the latest proof.
|
|
352
319
|
const valid = () => {
|
|
353
320
|
if (!proved.valid())
|
|
354
321
|
return false;
|
|
@@ -361,11 +328,9 @@ export function createLiveHandlers(runtime, live) {
|
|
|
361
328
|
response.writeHead(200, { "content-type": "text/event-stream", "cache-control": "no-store", "x-content-type-options": "nosniff", "x-accel-buffering": "no" });
|
|
362
329
|
response.flushHeaders();
|
|
363
330
|
const connection = new LiveConnection(response);
|
|
364
|
-
// Each join below adds its room before the next speaks; a chat room alone keeps the stream open too.
|
|
365
331
|
for (const join of joins)
|
|
366
332
|
if (connection.open)
|
|
367
333
|
join(connection);
|
|
368
|
-
// A page whose only room was refused at its join ends now (`ended`), its keep-alive stopped, not left open.
|
|
369
334
|
if (refusedJoin && connection.rooms === 0)
|
|
370
335
|
connection.refuse(() => connection.close());
|
|
371
336
|
request.once("close", () => connection.close());
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
/** The task page's "Can I merge?" panel (docs/plans/plain-toolroll.md P1.6): the checklist (merge-checklist.ts) with
|
|
2
|
-
* each blocker's act as the form this page already posts for it. Run checks is the Checks row's own post; Retry is the
|
|
3
|
-
* failed box's own requeue (the page shows it only where that box would); Ask the agent to fix is Send back: the same
|
|
4
|
-
* post to /r/<build>/comment with intent=revise that the result's Send back makes, its note prefilled with the blocker
|
|
5
|
-
* and editable, sealing the same saved notes. Only a signed-in approver gets the forms; anyone else reads the rows. */
|
|
6
1
|
import { randomBytes } from "node:crypto";
|
|
7
2
|
import { checklistFromAssignment } from "../merge-checklist.js";
|
|
8
3
|
import { isRevisionFeedback, revisionBatchOf, revisionSourceOf } from "../result-review.js";
|
|
9
|
-
/** The panel for a task page, or null when there is no result to merge yet. */
|
|
10
4
|
export function mergeReadyViewOf(store, taskId, assignment, who, runChecks, returnTo) {
|
|
11
5
|
if (assignment == null || assignment.receipt === null)
|
|
12
6
|
return null;
|