toolroll 0.9.103 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +27 -27
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +117 -103
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +3 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +2 -16
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +168 -0
- package/dist/local-owner.js +15 -80
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +2 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +280 -2304
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +3 -18
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +11 -30
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +6 -74
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +26 -103
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +9 -28
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +88 -566
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +29 -564
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +9 -86
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +17 -497
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +8 -133
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +12 -227
- package/dist/server/tasks.js +37 -531
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +8 -73
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +66 -19
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +91 -40
- package/dist/tui.js +54 -54
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +5 -4
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -318
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1972
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -539
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -41
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner.d.ts +0 -124
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -52
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -156
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -35
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1067
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -80
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -59
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -754
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -774
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -342
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -83
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -30
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -144
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/chat-migration.js
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The v116 move onto the one set of chat tables (contracts/chat-tables.ts). Until then Telegram kept 21 tables of its
|
|
3
|
-
* own and Slack, Discord and Teams 16 cloned tables each (`slack_binding`, `discord_part`, ...). An older database
|
|
4
|
-
* still has them: openStore creates the ones its version should have had (exactly as earlier builds did), the older
|
|
5
|
-
* migration steps bring them to their last shape, and `convertChatTables` copies every row into the shared tables in
|
|
6
|
-
* one transaction, checks the counts and foreign keys, and drops the old tables. Nothing else reads them.
|
|
7
|
-
*/
|
|
8
1
|
import { CHAT_PROVIDERS, CHAT_TABLES } from "./contracts/chat-tables.js";
|
|
9
2
|
import { readChatMessageBody, readChatPart } from "./contracts/chat-content.js";
|
|
10
3
|
export const LEGACY_CHAT_APPS = ["slack", "discord", "teams"];
|
|
11
|
-
/* The per-app template the Slack, Discord and Teams tables were stamped from (v67-v114), kept verbatim. */
|
|
12
4
|
const LEGACY_APP_SCHEMA = `
|
|
13
5
|
CREATE TABLE IF NOT EXISTS chat_binding (
|
|
14
6
|
id INTEGER PRIMARY KEY AUTOINCREMENT, installation TEXT NOT NULL,
|
|
@@ -51,8 +43,6 @@ CREATE TABLE IF NOT EXISTS chat_runtime (
|
|
|
51
43
|
problem TEXT, retry_at TEXT, notification INTEGER NOT NULL DEFAULT 0
|
|
52
44
|
);
|
|
53
45
|
`;
|
|
54
|
-
/** v73: a chat's place in the shared team conversations — a channel follows one
|
|
55
|
-
* conversation, a DM may select one. Rows are revoked, never deleted. */
|
|
56
46
|
const LEGACY_APP_ROOM_SCHEMA = `
|
|
57
47
|
CREATE TABLE IF NOT EXISTS chat_room (
|
|
58
48
|
id INTEGER PRIMARY KEY AUTOINCREMENT, installation TEXT NOT NULL, chat TEXT NOT NULL,
|
|
@@ -68,10 +58,6 @@ CREATE TABLE IF NOT EXISTS chat_meta (
|
|
|
68
58
|
PRIMARY KEY(installation, key)
|
|
69
59
|
);
|
|
70
60
|
`;
|
|
71
|
-
/** v88: flow decisions in the chat app, as on Telegram (telegram-flow.ts).
|
|
72
|
-
* A button is one opaque token for one visit (card, entry) of one card, on
|
|
73
|
-
* the part it rides; Edit and Send back open a prompt the person's next
|
|
74
|
-
* message in their DM answers. */
|
|
75
61
|
const LEGACY_APP_FLOW_SCHEMA = `
|
|
76
62
|
CREATE TABLE IF NOT EXISTS chat_flow_action (
|
|
77
63
|
token TEXT PRIMARY KEY, part INTEGER NOT NULL REFERENCES chat_part(id),
|
|
@@ -86,11 +72,6 @@ CREATE TABLE IF NOT EXISTS chat_flow_prompt (
|
|
|
86
72
|
);
|
|
87
73
|
CREATE INDEX IF NOT EXISTS chat_flow_prompt_open ON chat_flow_prompt(binding, consumed);
|
|
88
74
|
`;
|
|
89
|
-
/** A flow's "Person chooses" zone in the chat app (flow-send.ts): one button per option (choice is its index, label its words
|
|
90
|
-
* when sent) for one visit of one card, on the part it rides. A reply in that notice's thread is the note; chat_flow_note
|
|
91
|
-
* is "Use this as your note?" Yes / No about one other message (held: its event; words: what it said, kept only until
|
|
92
|
-
* answered, as an event's own payload is cleared once it is handled), asked once per visit.
|
|
93
|
-
* Never in CHAT_TABLES: an older database has no such table until this schema creates it. */
|
|
94
75
|
const LEGACY_APP_FLOW_CHOICE_SCHEMA = `
|
|
95
76
|
CREATE TABLE IF NOT EXISTS chat_flow_choice (
|
|
96
77
|
token TEXT PRIMARY KEY, part INTEGER NOT NULL REFERENCES chat_part(id),
|
|
@@ -105,10 +86,6 @@ CREATE TABLE IF NOT EXISTS chat_flow_note (
|
|
|
105
86
|
);
|
|
106
87
|
CREATE INDEX IF NOT EXISTS chat_flow_note_visit ON chat_flow_note(card, entry);
|
|
107
88
|
`;
|
|
108
|
-
/** v93: a subagent's question in the chat app. One button per option (choice)
|
|
109
|
-
* and one to answer in words (choice NULL); that one opens a prompt the
|
|
110
|
-
* person's next message in their DM answers. Never in CHAT_TABLES: an older
|
|
111
|
-
* database has no such tables until this schema creates them. */
|
|
112
89
|
const LEGACY_APP_QUESTION_SCHEMA = `
|
|
113
90
|
CREATE TABLE IF NOT EXISTS chat_question_action (
|
|
114
91
|
token TEXT PRIMARY KEY, part INTEGER NOT NULL REFERENCES chat_part(id),
|
|
@@ -121,8 +98,6 @@ CREATE TABLE IF NOT EXISTS chat_question_prompt (
|
|
|
121
98
|
);
|
|
122
99
|
CREATE INDEX IF NOT EXISTS chat_question_prompt_open ON chat_question_prompt(binding, consumed);
|
|
123
100
|
`;
|
|
124
|
-
/** The lead's question to its owner (ask_owner) in the chat app: one button per option (choice is its index) and one for
|
|
125
|
-
* "Something else" (choice NULL). A tap sends the option as the owner's next message. Never in CHAT_TABLES. */
|
|
126
101
|
const LEGACY_APP_ASK_SCHEMA = `
|
|
127
102
|
CREATE TABLE IF NOT EXISTS chat_ask_action (
|
|
128
103
|
token TEXT PRIMARY KEY, part INTEGER NOT NULL REFERENCES chat_part(id) ON DELETE CASCADE,
|
|
@@ -130,13 +105,10 @@ CREATE TABLE IF NOT EXISTS chat_ask_action (
|
|
|
130
105
|
);
|
|
131
106
|
CREATE INDEX IF NOT EXISTS chat_ask_action_turn ON chat_ask_action(turn);
|
|
132
107
|
`;
|
|
133
|
-
/** One app's old tables, as an older database has (or should have had) them. */
|
|
134
108
|
export const legacyAppSchema = (app) => (LEGACY_APP_SCHEMA + LEGACY_APP_ROOM_SCHEMA + LEGACY_APP_FLOW_SCHEMA + LEGACY_APP_FLOW_CHOICE_SCHEMA + LEGACY_APP_QUESTION_SCHEMA + LEGACY_APP_ASK_SCHEMA).replaceAll("chat_", `${app}_`);
|
|
135
109
|
const LEGACY_APP_TABLE_SUFFIXES = ["binding", "pair", "event", "part", "action", "progress", "runtime", "room", "meta",
|
|
136
110
|
"flow_action", "flow_prompt", "flow_choice", "flow_note", "question_action", "question_prompt", "ask_action"];
|
|
137
|
-
/** One app's 16 old tables, parents first. */
|
|
138
111
|
export const legacyAppTables = (app) => LEGACY_APP_TABLE_SUFFIXES.map(suffix => `${app}_${suffix}`);
|
|
139
|
-
/** Telegram's own tables (v1-v114) and the bridge's lease, kept verbatim. */
|
|
140
112
|
export const LEGACY_TELEGRAM_SCHEMA = `
|
|
141
113
|
CREATE TABLE IF NOT EXISTS telegram_flow_choice (
|
|
142
114
|
token TEXT PRIMARY KEY,
|
|
@@ -514,7 +486,6 @@ CREATE TABLE IF NOT EXISTS telegram_flow_confirm (
|
|
|
514
486
|
);
|
|
515
487
|
CREATE INDEX IF NOT EXISTS telegram_flow_confirm_visit ON telegram_flow_confirm (card, entry);
|
|
516
488
|
`;
|
|
517
|
-
/** Telegram's 21 old tables and the bridge's lease, children first. */
|
|
518
489
|
export const LEGACY_TELEGRAM_TABLES = [
|
|
519
490
|
"telegram_note_draft", "telegram_decision_message", "telegram_task_message", "telegram_outbound_message",
|
|
520
491
|
"telegram_action", "telegram_proposal_action", "telegram_flow_action", "telegram_flow_confirm", "telegram_flow_choice",
|
|
@@ -524,18 +495,12 @@ export const LEGACY_TELEGRAM_TABLES = [
|
|
|
524
495
|
];
|
|
525
496
|
const tableExists = (db, table) => db.prepare("SELECT 1 AS hit FROM sqlite_master WHERE type = 'table' AND name = ?").get(table) !== undefined;
|
|
526
497
|
const columnsOf = (db, table) => new Set(db.prepare(`PRAGMA table_info(${table})`).all().map(row => String(row["name"])));
|
|
527
|
-
/** Whether this database already keeps its chats in the shared tables (v116 ran, or it was made at v116 or later). */
|
|
528
498
|
export function chatTablesShared(db) {
|
|
529
499
|
return CHAT_TABLES.every(table => tableExists(db, table)) && columnsOf(db, "chat_binding").has("provider");
|
|
530
500
|
}
|
|
531
|
-
/** Whether any of the old per-app tables is still here. */
|
|
532
501
|
export function legacyChatTablesPresent(db) {
|
|
533
502
|
return [...LEGACY_TELEGRAM_TABLES, ...LEGACY_CHAT_APPS.flatMap(legacyAppTables)].some(table => tableExists(db, table));
|
|
534
503
|
}
|
|
535
|
-
/**
|
|
536
|
-
* The columns every shape of each old table has had since it first existed (later steps add the rest). An old table
|
|
537
|
-
* without them is a shape this build cannot name: openStore refuses before it stamps the migration epoch.
|
|
538
|
-
*/
|
|
539
504
|
const LEGACY_BASE_COLUMNS = {
|
|
540
505
|
telegram_binding: ["id", "bot_id", "chat_id", "user_id", "approver", "approver_generation", "paired_at", "paired_by", "revoked_at", "revoked_by"],
|
|
541
506
|
telegram_pairing: ["code_hash", "approver", "approver_generation", "created_at", "created_by", "expires_at", "consumed_at"],
|
|
@@ -578,7 +543,6 @@ const LEGACY_APP_COLUMNS = {
|
|
|
578
543
|
question_prompt: ["id", "binding", "question", "created", "expires", "consumed"],
|
|
579
544
|
ask_action: ["token", "part", "turn", "choice", "expires", "consumed"],
|
|
580
545
|
};
|
|
581
|
-
/** The columns the copy reads, beyond the base ones: added by migration steps that run before it. */
|
|
582
546
|
const LEGACY_LATER_COLUMNS = {
|
|
583
547
|
telegram_action: ["note_digest"],
|
|
584
548
|
telegram_conversation_part: ["task_id", "source_run", "artifact", "sha256"],
|
|
@@ -595,10 +559,6 @@ function expectedColumns(table, withLater) {
|
|
|
595
559
|
return null;
|
|
596
560
|
return LEGACY_APP_COLUMNS[table.slice(app.length + 1)] ?? null;
|
|
597
561
|
}
|
|
598
|
-
/**
|
|
599
|
-
* What is wrong with the old chat tables this database still has, before anything is changed: one that lacks a column
|
|
600
|
-
* its every shape has had is not a table this build knows how to carry. Null when they are fine (or already gone).
|
|
601
|
-
*/
|
|
602
562
|
export function legacyChatProblem(db) {
|
|
603
563
|
for (const table of [...LEGACY_TELEGRAM_TABLES, ...LEGACY_CHAT_APPS.flatMap(legacyAppTables)]) {
|
|
604
564
|
if (!tableExists(db, table))
|
|
@@ -638,9 +598,7 @@ function appCopies(app) {
|
|
|
638
598
|
];
|
|
639
599
|
}
|
|
640
600
|
const TG = P("telegram");
|
|
641
|
-
/** A JSON object of the fields that are not null (top level only: a nested object keeps its own nulls). */
|
|
642
601
|
const withoutNulls = (base, optional) => `json_patch(${base}, ${optional})`;
|
|
643
|
-
/** Telegram's rows, each table into its shared one. Every copy names the count it must reach. */
|
|
644
602
|
function telegramCopies() {
|
|
645
603
|
const copy = (source, target, insert, found, expect = `SELECT COUNT(*) AS n FROM ${source}`) => ({ source, target, insert, expect, found: `SELECT COUNT(*) AS n FROM ${target} WHERE provider = ${TG} AND ${found}` });
|
|
646
604
|
const conversationBody = withoutNulls("json_object('version', 1, 'text', c.text, 'request', c.request)", "json_object('context', c.context)");
|
|
@@ -654,13 +612,11 @@ function telegramCopies() {
|
|
|
654
612
|
SELECT ${TG}, code_hash, NULL, approver, approver_generation, created_at, created_by, expires_at, consumed_at, consumed_chat, consumed_user, CAST(consumed_update AS TEXT) FROM telegram_pairing`, "1"),
|
|
655
613
|
copy("telegram_team_chat", "chat_room", `INSERT INTO chat_room (provider, id, installation, chat, kind, conversation, binding, bound_by, bound, cursor, revoked, revoked_by)
|
|
656
614
|
SELECT ${TG}, id, bot_id, chat_id, kind, conversation, binding, bound_by, bound_at, cursor, revoked_at, revoked_by FROM telegram_team_chat`, "1"),
|
|
657
|
-
// Every applied update is a receipt; a pushed one still waiting is queued with its body. One row per update id.
|
|
658
615
|
copy("telegram_update", "chat_event", `INSERT INTO chat_event (provider, id, installation, kind, channel, member, ts, thread, payload, created, state, result)
|
|
659
616
|
SELECT ${TG}, CAST(update_id AS TEXT), '', 'update', '', '', '', '', '{}', applied_at, 'done', result FROM telegram_update`, "kind = 'update' AND state = 'done'"),
|
|
660
617
|
copy("telegram_inbox", "chat_event", `INSERT INTO chat_event (provider, id, installation, kind, channel, member, ts, thread, payload, created, state)
|
|
661
618
|
SELECT ${TG}, CAST(update_id AS TEXT), bot_id, 'update', '', '', '', '', payload, received_at, 'queued' FROM telegram_inbox
|
|
662
619
|
WHERE update_id NOT IN (SELECT update_id FROM telegram_update)`, "kind = 'update' AND state = 'queued'", "SELECT COUNT(*) AS n FROM telegram_inbox WHERE update_id NOT IN (SELECT update_id FROM telegram_update)"),
|
|
663
|
-
// A message the lead answers: its event is m<update id>, and its words, server context and request ride the body.
|
|
664
620
|
copy("telegram_conversation", "chat_event", `INSERT INTO chat_event (provider, id, installation, binding, kind, channel, member, ts, thread, payload, created, session, state,
|
|
665
621
|
next_at, claim_owner, claim_until, attempts, turn, started, finished, result, reply)
|
|
666
622
|
SELECT ${TG}, 'm' || c.update_id, c.bot_id, c.binding, 'message', c.chat_id, c.user_id, c.message_id, COALESCE(c.reply_to, ''),
|
|
@@ -698,7 +654,6 @@ function telegramCopies() {
|
|
|
698
654
|
SELECT ${TG}, id, binding, decision, update_id, message_id, reply_to, note, state, created_at, expires_at FROM telegram_note_draft`, "1"),
|
|
699
655
|
copy("bridge_lease", "chat_runtime", `INSERT INTO chat_runtime (provider, installation, owner, lease_until, generation, cursor, heartbeat, push_url, push_at, push_problem)
|
|
700
656
|
SELECT ${TG}, bot_id, owner, expires_at, generation, cursor, heartbeat_at, push_url, push_at, push_problem FROM bridge_lease`, "lease_until IS NOT NULL"),
|
|
701
|
-
// A bot with a rate-limit wait but no lease yet gets a runtime row of its own.
|
|
702
657
|
copy("telegram_retry", "chat_runtime", `INSERT INTO chat_runtime (provider, installation, retry_at)
|
|
703
658
|
SELECT ${TG}, bot_id, next_attempt_at FROM telegram_retry WHERE true
|
|
704
659
|
ON CONFLICT (provider, installation) DO UPDATE SET retry_at = excluded.retry_at`, "retry_at IS NOT NULL"),
|
|
@@ -706,13 +661,6 @@ function telegramCopies() {
|
|
|
706
661
|
SELECT ${TG}, every_ms, set_by, set_at, last_sent_at FROM telegram_digest WHERE id = 1`, "1", "SELECT COUNT(*) AS n FROM telegram_digest WHERE id = 1"),
|
|
707
662
|
];
|
|
708
663
|
}
|
|
709
|
-
/**
|
|
710
|
-
* v116: every old chat table's rows into the shared ones, in one transaction. Each copy is one INSERT ... SELECT (no
|
|
711
|
-
* row passes through this process), then every count is checked against its source, every Telegram message's words
|
|
712
|
-
* against the person its binding names, and every foreign key; only then are the old tables dropped. Anything that
|
|
713
|
-
* doesn't add up rolls the whole move back and the open fails, with the old tables as they were. Run again (a resumed
|
|
714
|
-
* upgrade) it finds no old tables and does nothing.
|
|
715
|
-
*/
|
|
716
664
|
export function convertChatTables(db) {
|
|
717
665
|
const apps = LEGACY_CHAT_APPS.filter(app => tableExists(db, `${app}_binding`));
|
|
718
666
|
const telegram = tableExists(db, "telegram_binding");
|
|
@@ -733,7 +681,6 @@ export function convertChatTables(db) {
|
|
|
733
681
|
if (missing.length > 0)
|
|
734
682
|
throw new Error(`the ${table} table has an unknown shape (no ${missing.join(", ")}) — refusing to move it`);
|
|
735
683
|
}
|
|
736
|
-
// A table the shared one already has rows for (a copy made by hand?) is not ours to merge into.
|
|
737
684
|
for (const provider of CHAT_PROVIDERS) {
|
|
738
685
|
const present = provider === "telegram" ? telegram : apps.includes(provider);
|
|
739
686
|
if (!present)
|
|
@@ -743,8 +690,6 @@ export function convertChatTables(db) {
|
|
|
743
690
|
throw new Error(`the shared chat tables already hold ${provider} pairings — refusing to merge the old ${provider} tables into them`);
|
|
744
691
|
}
|
|
745
692
|
if (telegram) {
|
|
746
|
-
// A message speaks for the person its pairing names, at the generation it was paired under, and every reply
|
|
747
|
-
// part belongs to a message: what doesn't is named, never dropped or guessed.
|
|
748
693
|
const strays = Number(db.prepare(`SELECT COUNT(*) AS n FROM telegram_conversation c JOIN telegram_binding b ON b.id = c.binding
|
|
749
694
|
WHERE c.approver <> b.approver OR c.approver_generation <> b.approver_generation`).get()?.["n"] ?? 0);
|
|
750
695
|
if (strays > 0)
|
|
@@ -759,12 +704,10 @@ export function convertChatTables(db) {
|
|
|
759
704
|
db.exec(copy.insert);
|
|
760
705
|
const want = Number(db.prepare(copy.expect).get()?.["n"] ?? 0);
|
|
761
706
|
const got = Number(db.prepare(copy.found).get()?.["n"] ?? 0) - (copy.target === "chat_runtime" && copy.source === "telegram_retry" ? 0 : before);
|
|
762
|
-
// telegram_retry merges into the runtime rows the lease made; every other copy adds exactly its source's rows.
|
|
763
707
|
if (copy.source === "telegram_retry" ? got < want : got !== want)
|
|
764
708
|
throw new Error(`moving ${copy.source} into ${copy.target} copied ${got} of ${want} rows — refusing to drop it`);
|
|
765
709
|
copied += want;
|
|
766
710
|
}
|
|
767
|
-
// Every moved Telegram message and reply part reads by the shared contracts (a page at a time).
|
|
768
711
|
if (telegram) {
|
|
769
712
|
const unreadable = (sql, read) => {
|
|
770
713
|
let after = 0, bad = 0;
|
package/dist/chat-polish.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { html } from './html.js';
|
|
2
|
-
/** Presentation only. These are recorded completions, not a claim that
|
|
3
|
-
* work happened since the user last visited, or that every result passed. */
|
|
4
2
|
export function completedWorkHtml(snapshot, projectLabels, assignments) {
|
|
5
3
|
const completed = snapshot.tasks.filter(task => assignments === undefined ? task.state === 'done'
|
|
6
4
|
&& task.proofVerdict !== 'short' && task.proofVerdict !== 'refuted'
|
|
@@ -12,20 +10,15 @@ export function completedWorkHtml(snapshot, projectLabels, assignments) {
|
|
|
12
10
|
return html `<a class="chat-overview-item" href="/t/${encodeURIComponent(task.rootId ?? task.id)}"><span class="chat-overview-copy"><strong>${task.title}</strong><span>${projectLabels[task.repoIndex] ?? `Project ${task.repoIndex + 1}`}</span></span><span class="chat-completed-action">Open task <span aria-hidden="true">→</span></span></a>`;
|
|
13
11
|
})}</section>`;
|
|
14
12
|
}
|
|
15
|
-
/** Keep activity truthful: the turn's recorded step count is not a
|
|
16
|
-
* percentage or an invented tool phase. Billing detail stays available. */
|
|
17
13
|
export function chatWorkingHtml(input) {
|
|
18
14
|
const activity = html `<span class="activity-dot" aria-hidden="true"></span><details><summary>Working<span class="activity-ellipsis" aria-hidden="true">…</span></summary><p class="meta">${input.details}</p></details>`;
|
|
19
15
|
return html `<div class="chat-thinking chat-activity-row" id="latest" role="status"${input.keyed ? html ` data-key="pending"` : ''}>${activity}${input.stopForm}</div>`;
|
|
20
16
|
}
|
|
21
|
-
/** Recorded activity is inspectable, not a row of performance badges. */
|
|
22
17
|
export function chatActivityDetailsHtml(activity) {
|
|
23
18
|
if (!activity)
|
|
24
19
|
return html ``;
|
|
25
20
|
return html `<details class="chat-activity-details"><summary>Activity</summary><div class="chat-activity" aria-label="work performed">${activity.split(' · ').map(one => html `<span>${one}</span>`)}</div></details>`;
|
|
26
21
|
}
|
|
27
|
-
// Local primitives adapted from the researched interaction patterns. No
|
|
28
|
-
// imported kit, animation runtime, simulated progress, or changed authority.
|
|
29
22
|
export const CHAT_POLISH_CSS = `
|
|
30
23
|
/* Quiet workspace surfaces: color signals state, not an AI aesthetic. */
|
|
31
24
|
body { background: var(--background); }
|
package/dist/chat-quiet.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/** Quiet chat: a task's whole life is one chat message edited in place, and a
|
|
2
|
-
* new message arrives only when a person is needed. Every transport (Telegram,
|
|
3
|
-
* Slack, Discord, Teams) asks the same questions here: does this fact need a
|
|
4
|
-
* person, what does the task's card say now, and what does the Ready ping say.
|
|
5
|
-
* Delivery receipts, claims and retries stay with each transport; the
|
|
6
|
-
* console's activity keeps every fact whatever a chat showed. */
|
|
7
1
|
import { assignmentOf } from "./assignment.js";
|
|
8
2
|
import { chatControlHref, chatResultHref } from "./chat-controls.js";
|
|
9
3
|
import { telegramProgressCard } from "./telegram-progress.js";
|
|
@@ -14,15 +8,10 @@ import { isLifecycleNotification, taskArchived } from "./store.js";
|
|
|
14
8
|
import { leadSubjectOf } from "./lead-voice.js";
|
|
15
9
|
import { decideFallbackLink, decideTargetOf } from "./chat-decide.js";
|
|
16
10
|
import { YOUIYOUX_CARD_KIND } from "./contracts/youiyoux-request.js";
|
|
17
|
-
/** What always makes a new message, even in quiet mode: a question or approval waiting, a failure or other
|
|
18
|
-
* attention fact, a result Ready for review, a security alert or release, and anything addressed to one person
|
|
19
|
-
* (a sign-in or plan-limit pause, an evening digest). */
|
|
20
11
|
const NEEDED_KINDS = new Set([
|
|
21
12
|
"acceptance-ready", "acceptance-evidence", "flow-decision", "flow-card", "plan-ready", "report-ready",
|
|
22
13
|
"stale-approval", "security-release", "secret-detected", "protected-storage",
|
|
23
14
|
]);
|
|
24
|
-
/** What still wants a person who pairs after it landed, in every chat app: an open decision or an unresolved attention
|
|
25
|
-
* notice. Routine history is never replayed to a chat that just arrived (store.ts WANTED_BEFORE_PAIRING, the same rule). */
|
|
26
15
|
export function wantedBeforePairing(row) {
|
|
27
16
|
return row.resolvedAt === null && (row.dedupeKey.startsWith("decision:") || row.pushClass === "attention");
|
|
28
17
|
}
|
|
@@ -35,18 +24,14 @@ export function needsPerson(row) {
|
|
|
35
24
|
return true;
|
|
36
25
|
if (NEEDED_KINDS.has(row.kind))
|
|
37
26
|
return true;
|
|
38
|
-
// A built or unchanged result is Ready: the one lifecycle step that asks for a person.
|
|
39
27
|
return isLifecycleNotification(row) && row.kind === "run-finished";
|
|
40
28
|
}
|
|
41
|
-
/** A fact about one placed task: in quiet mode it lands on that task's card. */
|
|
42
29
|
export function isTaskFact(row) {
|
|
43
30
|
return row.taskRef !== null && row.taskId !== null && row.project !== null;
|
|
44
31
|
}
|
|
45
|
-
/** The attempt a task's card follows: its newest builder attempt. */
|
|
46
32
|
function cardRun(store, taskRef) {
|
|
47
33
|
return store.runsFor(taskRef).find(run => run.role === "builder") ?? null;
|
|
48
34
|
}
|
|
49
|
-
/** Before any attempt starts, the card says where the task stands in the words of its last lifecycle fact. */
|
|
50
35
|
const before = (headline) => ({ icon: headlineEmoji(headline), status: headline });
|
|
51
36
|
const BEFORE_RUN = {
|
|
52
37
|
"task-filed": before("Queued"),
|
|
@@ -63,9 +48,7 @@ function taskLine(store, taskRef, now, root, viewer) {
|
|
|
63
48
|
if (ref === null || ref.repo === null)
|
|
64
49
|
return null;
|
|
65
50
|
const task = store.getTask(ref.externalId);
|
|
66
|
-
// A short human title: never "— revision" or an id (chat-voice.ts).
|
|
67
51
|
const title = chatTitle(store, ref.externalId);
|
|
68
|
-
// Replaced, never "Cancelled": the card says a newer task took over and links to it, without either id.
|
|
69
52
|
const successor = task?.state === "cancelled" ? store.replacementOf(ref.externalId) : null;
|
|
70
53
|
if (successor !== null) {
|
|
71
54
|
const words = "Replaced by a newer task";
|
|
@@ -92,7 +75,6 @@ function taskLine(store, taskRef, now, root, viewer) {
|
|
|
92
75
|
link: { label: "Open task", path: chatControlHref("task", ref.externalId) },
|
|
93
76
|
} };
|
|
94
77
|
}
|
|
95
|
-
/** The card's words now: one task's progress card, or one line per task when several were filed together. */
|
|
96
78
|
export function quietCardView(store, taskRefs, now, root, viewer) {
|
|
97
79
|
const lines = taskRefs.map(ref => taskLine(store, ref, now, root, viewer)).filter((one) => one !== null);
|
|
98
80
|
if (lines.length === 0)
|
|
@@ -104,15 +86,10 @@ export function quietCardView(store, taskRefs, now, root, viewer) {
|
|
|
104
86
|
const text = [heading, ...lines.map(one => `${one.icon} ${phoneText(one.title, 60)} · ${one.status}`), "", projects.join(", ")].join("\n");
|
|
105
87
|
return { text, entities: [{ type: "bold", offset: 0, length: heading.length }], link: { label: "Open tasks", path: "/tasks" } };
|
|
106
88
|
}
|
|
107
|
-
/** Facts that carry their own controls or must stand alone (a security alert, a decision, a flow card, a
|
|
108
|
-
* screenshot, an acceptance packet, a youiyoux pass's card) are never folded into a batch. */
|
|
109
89
|
const OWN_MESSAGE_KINDS = new Set(["security-release", "secret-detected", "flow-decision", "flow-card", "acceptance-ready", "acceptance-evidence", YOUIYOUX_CARD_KIND]);
|
|
110
|
-
/** Whether this update for a person joins their two-minute batch: anything about one task that needs them,
|
|
111
|
-
* except a fact that must stand alone. */
|
|
112
90
|
export function joinsBatch(row) {
|
|
113
91
|
return row.taskRef !== null && row.recipient === null && needsPerson(row) && !OWN_MESSAGE_KINDS.has(row.kind) && !/^decision:\d+$/.test(row.dedupeKey);
|
|
114
92
|
}
|
|
115
|
-
/** A few words for an update in a list, and how it counts: "has a plan to review", "failed". */
|
|
116
93
|
function updatePhrase(row) {
|
|
117
94
|
if (row.kind === "plan-ready")
|
|
118
95
|
return { phrase: "has a plan to review", headline: "Needs you" };
|
|
@@ -126,8 +103,6 @@ function updatePhrase(row) {
|
|
|
126
103
|
return { phrase: "failed", headline: "Failed" };
|
|
127
104
|
return { phrase: "needs you", headline: "Needs you" };
|
|
128
105
|
}
|
|
129
|
-
/** One task's line in a batch: a finished result in a person's words with its real next step, or another
|
|
130
|
-
* update in its own words with its own link. */
|
|
131
106
|
function lineOf(store, item, now, root, viewer) {
|
|
132
107
|
const ref = store.refById(item.taskRef);
|
|
133
108
|
if (ref === null || ref.repo === null)
|
|
@@ -135,7 +110,6 @@ function lineOf(store, item, now, root, viewer) {
|
|
|
135
110
|
const summary = chatTitle(store, ref.externalId);
|
|
136
111
|
const row = item.notification === null ? null : store.notificationById(item.notification);
|
|
137
112
|
if (row !== null && row.kind !== "run-finished") {
|
|
138
|
-
// Never the task's id or a "— revision" suffix; the title once, in front unless the words already name it.
|
|
139
113
|
const subject = leadSubjectOf(store, row, viewer);
|
|
140
114
|
const words = chatText(phoneText(row.body === "" ? subject : `${subject}\n\n${row.body}`, 2500), [{ id: ref.externalId, title: summary }]);
|
|
141
115
|
const { phrase, headline } = updatePhrase(row);
|
|
@@ -158,19 +132,15 @@ function lineOf(store, item, now, root, viewer) {
|
|
|
158
132
|
completedBy: card.facts.completedBy ?? null,
|
|
159
133
|
...(card.facts.landed ? { landed: card.facts.landed } : {}),
|
|
160
134
|
pullRequest,
|
|
161
|
-
// The lead speaks as "I" for what it did: the work it filed or approved, or the completion it recorded.
|
|
162
135
|
lead: card.status.headline === "Complete" ? card.completedByLead : store.leadWorkOf(item.taskRef) !== null,
|
|
163
136
|
...(card.facts.lead === "on-it" ? { leadOnIt: true, ...(card.facts.leadName === undefined ? {} : { leadName: card.facts.leadName }) } : {}),
|
|
164
137
|
};
|
|
165
|
-
// A result ready for a person offers its real next step, then a look first.
|
|
166
138
|
if (asksToFinish(fact))
|
|
167
139
|
return { fact, also: [{ label: READY_ACTIONS.look, path: chatResultHref(ref.externalId, run.id, "changes") }],
|
|
168
140
|
target: pullRequest ? { kind: "merge", taskId: ref.externalId, run: run.id } : { kind: "result", taskId: ref.externalId, run: run.id },
|
|
169
141
|
link: pullRequest ? { label: READY_ACTIONS.merge, path: `/t/${encodeURIComponent(ref.externalId)}#merge` } : { label: READY_ACTIONS.complete, path: chatResultHref(ref.externalId, run.id) } };
|
|
170
142
|
return { fact, link: card.link, also: [] };
|
|
171
143
|
}
|
|
172
|
-
/** One person's update message: one task says what happened with its next step; several updates within two
|
|
173
|
-
* minutes become "4 tasks finished: …" (or "3 updates: …") with one Open button. Null when none can be read. */
|
|
174
144
|
export function finishedView(store, batch, now, root, viewer) {
|
|
175
145
|
const lines = batch.items.map(one => lineOf(store, one, now, root, viewer)).filter((one) => one !== null);
|
|
176
146
|
if (lines.length === 0)
|
|
@@ -181,25 +151,20 @@ export function finishedView(store, batch, now, root, viewer) {
|
|
|
181
151
|
const target = lines[0].target ?? null;
|
|
182
152
|
return { text, entities: [], link: lines[0].link, ...(lines[0].also.length === 0 ? {} : { also: lines[0].also }), ...(target === null ? {} : { target }) };
|
|
183
153
|
}
|
|
184
|
-
// ---- the evening digest ----------------------------------------------------------
|
|
185
154
|
const FAILURE = /fail|exhausted|fenced/;
|
|
186
155
|
const pad = (n) => String(n).padStart(2, "0");
|
|
187
|
-
/** This computer's local day and time, which is what a person means by "the evening". */
|
|
188
156
|
export function localDay(now) {
|
|
189
157
|
return `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}`;
|
|
190
158
|
}
|
|
191
159
|
export function localTime(now) {
|
|
192
160
|
return `${pad(now.getHours())}:${pad(now.getMinutes())}`;
|
|
193
161
|
}
|
|
194
|
-
/** One person's evening: what finished and what failed in the last day, and what waits for them now. Null when
|
|
195
|
-
* nothing happened, so a quiet day sends nothing. */
|
|
196
162
|
export function eveningDigestText(store, account, now, root) {
|
|
197
163
|
const since = new Date(now.getTime() - 86_400_000).toISOString();
|
|
198
164
|
const recent = new Date(now.getTime() - 14 * 86_400_000).toISOString();
|
|
199
165
|
const visible = (row) => row.project !== null && store.accountCanAccess(account, row.project);
|
|
200
166
|
const title = (taskId) => chatTitle(store, taskId);
|
|
201
167
|
const finished = new Map(), failed = new Map(), waits = new Map();
|
|
202
|
-
// A put-away task (v145) is out of the digest too: nothing about it waits, finished or failed for anyone now.
|
|
203
168
|
const facts = store.taskFactsSince(recent).filter(visible).filter(row => row.taskId === null || !taskArchived(store, row.taskId));
|
|
204
169
|
for (const row of facts) {
|
|
205
170
|
if (row.createdAt < since || row.taskId === null)
|
|
@@ -229,8 +194,6 @@ export function eveningDigestText(store, account, now, root) {
|
|
|
229
194
|
const section = (name, items) => items.size === 0 ? [] : ["", `${name} (${items.size})`, ...[...items.values()].slice(0, 12).map(one => `• ${one}`), ...(items.size > 12 ? [`• and ${items.size - 12} more`] : [])];
|
|
230
195
|
return [...section("Finished", finished), ...section("Waiting for you", waits), ...section("Failed", failed)].slice(1).join("\n");
|
|
231
196
|
}
|
|
232
|
-
/** Record each due evening digest once per person per local day, as one notification addressed to that person:
|
|
233
|
-
* every chat they paired delivers it with the usual receipts, and the console keeps it. */
|
|
234
197
|
export function enqueueEveningDigests(store, now, root) {
|
|
235
198
|
const day = localDay(now), time = localTime(now);
|
|
236
199
|
let queued = 0;
|
package/dist/chat-review.js
CHANGED
|
@@ -3,7 +3,6 @@ import { readVerifiedArtifact } from "./evidence.js";
|
|
|
3
3
|
import { hasForbiddenControls, validateNote } from "./decision.js";
|
|
4
4
|
import { parseFeedbackImage, isRevisionFeedback, revisionSourceOf } from "./result-review.js";
|
|
5
5
|
import { createResultRevision, feedbackImageProblem } from "./result-actions.js";
|
|
6
|
-
/** Read precisely the result named, never silently substitute a newer version. */
|
|
7
6
|
export function readChatResult(store, who, evidenceRoot, task, run) {
|
|
8
7
|
const ref = store.lookupRef(task);
|
|
9
8
|
if (ref?.repo == null || !who.repos.includes(ref.repo))
|
|
@@ -45,9 +44,6 @@ export function reviewInputProblem(note, path, line) {
|
|
|
45
44
|
return "Write a note before attaching it to a file.";
|
|
46
45
|
return null;
|
|
47
46
|
}
|
|
48
|
-
/** Chat and the result form write the same comments and call the same revision service.
|
|
49
|
-
* A failed combined note+revision rolls back the note too; no half-completed action.
|
|
50
|
-
*/
|
|
51
47
|
export function applyChatReview(store, who, evidenceRoot, request, now, allowMode, origin) {
|
|
52
48
|
try {
|
|
53
49
|
return store.transact(() => store.savepoint(() => {
|
package/dist/chat-rooms.js
CHANGED
|
@@ -2,9 +2,6 @@ import { TeamLeads } from "./team-leads.js";
|
|
|
2
2
|
import { tooLongText } from "./chat-channel.js";
|
|
3
3
|
import { LEAD_MESSAGE_MAX_CHARS } from "./lead.js";
|
|
4
4
|
import { phoneText } from "./telegram-status.js";
|
|
5
|
-
/** `/team` lists, `/team <n>` chooses, `/team off` (or `private`) leaves.
|
|
6
|
-
* The bare word works too, because Slack and Discord keep unregistered
|
|
7
|
-
* slash text for themselves. Any other text is not ours. */
|
|
8
5
|
export function roomCommand(text) {
|
|
9
6
|
const trimmed = text.trim();
|
|
10
7
|
if (/^\/?team(?:@\w+)?\s*$/i.test(trimmed))
|
|
@@ -64,12 +61,6 @@ function groupListing(rows, current) {
|
|
|
64
61
|
lines.push("", "Send /team <number> to follow it (managers only), or /team off to stop. Everyone in this room will read its replies.");
|
|
65
62
|
return lines.join("\n");
|
|
66
63
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Handle one inbound message that belongs to the team layer. Returns true
|
|
69
|
-
* when it was consumed here (a `/team` command in any chat, any message in
|
|
70
|
-
* a followed room, or a private message while a conversation is selected);
|
|
71
|
-
* false hands the message to the transport's personal path untouched.
|
|
72
|
-
*/
|
|
73
64
|
export function applyRoomInbound(input) {
|
|
74
65
|
const { store, backend, chatId, isGroup, sender, now, report, say } = input;
|
|
75
66
|
const command = roomCommand(input.text);
|
|
@@ -110,13 +101,11 @@ export function applyRoomInbound(input) {
|
|
|
110
101
|
return true;
|
|
111
102
|
}
|
|
112
103
|
if (room === null) {
|
|
113
|
-
// A room the bot merely sits in stays silent; a private chat falls through to the personal assistant.
|
|
114
104
|
if (isGroup)
|
|
115
105
|
report.ignored++;
|
|
116
106
|
return isGroup;
|
|
117
107
|
}
|
|
118
108
|
if (!paired || actor === null) {
|
|
119
|
-
// Unpaired members' chatter is nobody's message. A slash attempt gets the one hint.
|
|
120
109
|
if (input.text.trimStart().startsWith("/")) {
|
|
121
110
|
say(PAIR_FIRST);
|
|
122
111
|
report.statusReplies = (report.statusReplies ?? 0) + 1;
|
|
@@ -141,14 +130,11 @@ export function applyRoomInbound(input) {
|
|
|
141
130
|
report.ignored++;
|
|
142
131
|
return true;
|
|
143
132
|
}
|
|
144
|
-
// A current sender must not queue into a destination whose sharing grant
|
|
145
|
-
// ended: it could run successfully while every reply is withheld.
|
|
146
133
|
if (!roomGrantAllowed(store, domain, backend, room)) {
|
|
147
134
|
say(isGroup ? "This room's connection ended. Ask a conversation manager to send /team and connect it again." : "This chat's connection ended. Send /team and choose the conversation again.");
|
|
148
135
|
report.chatRefused = (report.chatRefused ?? 0) + 1;
|
|
149
136
|
return true;
|
|
150
137
|
}
|
|
151
|
-
// Membership first, in the domain's own words: a removed person is told so.
|
|
152
138
|
try {
|
|
153
139
|
domain.access(actor, row.conversation, "contributor");
|
|
154
140
|
}
|
|
@@ -157,8 +143,6 @@ export function applyRoomInbound(input) {
|
|
|
157
143
|
report.chatRefused = (report.chatRefused ?? 0) + 1;
|
|
158
144
|
return true;
|
|
159
145
|
}
|
|
160
|
-
// Consent is the person's own, per conversation, and is checked before the
|
|
161
|
-
// message is saved: an unconsented message must not sit in the shared queue.
|
|
162
146
|
const session = store.teamMateSession(actor.name, row.thread);
|
|
163
147
|
if (session === null || session.approverGeneration !== actor.generation || session.endedAt !== null) {
|
|
164
148
|
say(`${phoneText(row.title, 80)}: enable chat for yourself in Toolroll first (it shows the provider and limits), then send again.`, { label: "Enable chat", path: `/chat?conversation=${encodeURIComponent(row.conversation)}` });
|
|
@@ -174,9 +158,6 @@ export function applyRoomInbound(input) {
|
|
|
174
158
|
report.chatQueued = (report.chatQueued ?? 0) + 1;
|
|
175
159
|
return true;
|
|
176
160
|
}
|
|
177
|
-
/** Whether the pairing a room was granted from still holds: live, the same
|
|
178
|
-
* person, still a manager of a team conversation for a group (a viewer for a
|
|
179
|
-
* private selection). */
|
|
180
161
|
export function roomGrantAllowed(store, domain, backend, room) {
|
|
181
162
|
const grant = backend.grant(room.binding);
|
|
182
163
|
if (grant === null || grant.approver !== room.boundBy || (room.kind === "private" && grant.chatId !== room.chatId))
|
|
@@ -190,14 +171,12 @@ export function roomGrantAllowed(store, domain, backend, room) {
|
|
|
190
171
|
}
|
|
191
172
|
}
|
|
192
173
|
export function teamDomain(store, projects) { return domainFor(store, projects); }
|
|
193
|
-
/** The conversation messages a room has not received yet, oldest first. */
|
|
194
174
|
export function roomMessagesAfter(store, thread, cursor, limit = 20) {
|
|
195
175
|
return store.handle.prepare(`SELECT m.id, m.role, m.text, m.turn, q.author, q.request_id, q.status FROM lead_message m
|
|
196
176
|
LEFT JOIN team_message q ON q.message = m.id WHERE m.thread = ? AND m.id > ? ORDER BY m.id LIMIT ?`).all(thread, cursor, limit)
|
|
197
177
|
.map(row => ({ id: Number(row["id"]), role: row["role"] === "assistant" ? "assistant" : "operator", text: String(row["text"]), turn: row["turn"] === null ? null : Number(row["turn"]),
|
|
198
178
|
author: row["author"] === null || row["author"] === undefined ? null : String(row["author"]), requestId: row["request_id"] === null || row["request_id"] === undefined ? null : String(row["request_id"]), status: row["status"] === null || row["status"] === undefined ? null : String(row["status"]) }));
|
|
199
179
|
}
|
|
200
|
-
/** What a room shows for one message: the lead's reply as is, a teammate's message with its author, this room's own messages and cancelled ones not at all. */
|
|
201
180
|
export function roomMessageText(message, channel, chatId) {
|
|
202
181
|
if (message.role === "assistant")
|
|
203
182
|
return message.text;
|
|
@@ -206,7 +185,6 @@ export function roomMessageText(message, channel, chatId) {
|
|
|
206
185
|
return null;
|
|
207
186
|
return `${phoneText(message.author, 40)}: ${message.text}`;
|
|
208
187
|
}
|
|
209
|
-
/** Whose binding a room card rides: the person the lead was answering, else any paired participant. */
|
|
210
188
|
export function roomCardApprover(store, conversation, turn, paired) {
|
|
211
189
|
const author = store.handle.prepare("SELECT author FROM team_message WHERE turn_id = ?").get(turn);
|
|
212
190
|
if (author !== undefined && paired.includes(String(author["author"])))
|
|
@@ -4,13 +4,10 @@ import { html, joinHtml } from "./html.js";
|
|
|
4
4
|
import { ChatState } from "./chat-delivery-state.js";
|
|
5
5
|
import { acts, btn, chip, codeLine, disclose, formRow, infoLine, input, note, notice, settingsSection } from "./server/kit.js";
|
|
6
6
|
import { kitSectionForm, SECRET_OPT_OUTS } from "./settings-kit.js";
|
|
7
|
-
/** A secret the connect form posts (an app or bot token, a client secret): masked, never given a value, kept out of
|
|
8
|
-
* password managers. */
|
|
9
7
|
export function chatSecretRow(options) {
|
|
10
8
|
return formRow(options.label, null, input({ id: options.id, name: options.name, type: "password",
|
|
11
9
|
attrs: { autocomplete: "off", spellcheck: "false", "data-so-secret": true, ...SECRET_OPT_OUTS, required: true, placeholder: options.placeholder, "aria-label": options.label } }));
|
|
12
10
|
}
|
|
13
|
-
/** Settings → Slack, Discord or Teams: connect the app once, then each teammate pairs their own account. */
|
|
14
11
|
export function chatSettingsHtml(store, dir, options, page) {
|
|
15
12
|
const { provider, label, credentials } = page, state = new ChatState(store, provider), bindings = credentials ? state.bindings(credentials.installation).filter(one => state.live(one)) : [], binding = options.who === undefined ? null : bindings.find(one => one.approver === options.who) ?? null, others = bindings.length - (binding === null ? 0 : 1);
|
|
16
13
|
const runtime = credentials ? state.runtime(credentials.installation) : null;
|
|
@@ -39,7 +36,6 @@ export function chatSettingsHtml(store, dir, options, page) {
|
|
|
39
36
|
]) }));
|
|
40
37
|
const teammates = others ? `${others} teammate${others === 1 ? " is" : "s are"}` : "";
|
|
41
38
|
if (options.code) {
|
|
42
|
-
// The code shows once, on this page only: selectable text, never in a link or an address.
|
|
43
39
|
sections.push(settingsSection({ id: "pair", title: "Pair your account", state: " · Code ready",
|
|
44
40
|
lead: `Send this ${page.pairWhere}. It expires in 10 minutes.`,
|
|
45
41
|
body: joinHtml([codeLine(`pair ${options.code}`), note("Once you've sent it, this page says your account is paired."),
|
|
@@ -4,15 +4,12 @@ import { requestTaskStop, resumeTaskStop, taskControlOf } from "./task-control.j
|
|
|
4
4
|
import { authorizePlanUnderMode } from "./plan-auto.js";
|
|
5
5
|
import { fileAddTestsTask, requestFollowUpChecks } from "./result-follow-ups.js";
|
|
6
6
|
export const CHAT_TASK_ACTIONS = {
|
|
7
|
-
// Build #1604 feedback: one short consequence that still says saved work
|
|
8
|
-
// remains, other tasks continue, and the pause waits for acknowledgement.
|
|
9
7
|
stop: { label: "Stop task", detail: "Pauses this task once the run acknowledges the stop. Saved work remains; other tasks continue." },
|
|
10
8
|
resume: { label: "Resume task", detail: "Lifts this stop’s hold and continues from saved work. Other holds and approval requirements still apply." },
|
|
11
9
|
retry: { label: "Try again", detail: "Queues another attempt. Existing approvals and holds still apply." },
|
|
12
10
|
plan: { label: "Plan first", detail: "Requests a plan. Building still requires approval." },
|
|
13
11
|
wait_for: { label: "Add dependency", detail: "Waits for the selected task to finish." },
|
|
14
12
|
stop_waiting: { label: "Remove dependency", detail: "Stops waiting for the selected task. Other requirements still apply." },
|
|
15
|
-
// Follow-ups on a result (result-follow-ups.ts): the same actions as the result page.
|
|
16
13
|
run_checks: { label: "Run checks", detail: "Runs the project's quick check on this result's exact commit. A pass upgrades its status; a failure stays visible." },
|
|
17
14
|
run_full_checks: { label: "Run full checks", detail: "Runs the project's full check on this result's exact commit. A pass upgrades its status; a failure stays visible." },
|
|
18
15
|
add_tests: { label: "Add tests", detail: "Files a small task to write tests for this change. Nothing runs until it is approved." },
|
|
@@ -20,7 +17,6 @@ export const CHAT_TASK_ACTIONS = {
|
|
|
20
17
|
export function isChatTaskAction(value) {
|
|
21
18
|
return typeof value === "string" && Object.hasOwn(CHAT_TASK_ACTIONS, value);
|
|
22
19
|
}
|
|
23
|
-
/** Bind cards to a specific execution and its current state, not the family's moving pointer. */
|
|
24
20
|
export function chatTaskStamp(store, who, task) {
|
|
25
21
|
const ref = store.lookupRef(task), row = store.getTask(task);
|
|
26
22
|
if (!ref?.repo || !who.repos.includes(ref.repo) || row === null)
|
|
@@ -31,7 +27,6 @@ export function chatTaskStamp(store, who, task) {
|
|
|
31
27
|
return JSON.stringify([task, row.state, row.updatedAt, store.getScope(task)?.digest ?? null,
|
|
32
28
|
ref.plan, store.runsFor(ref.id)[0]?.id ?? null, store.blockers(task).sort()]);
|
|
33
29
|
}
|
|
34
|
-
/** Only current, eligible controls can become cards; retain the exact run the reader saw. */
|
|
35
30
|
export function chatTaskRun(store, task, operation, now) {
|
|
36
31
|
const ref = store.lookupRef(task);
|
|
37
32
|
if (ref === null)
|
|
@@ -53,11 +48,9 @@ export function applyChatTaskAction(store, who, payload, now, web, controls = {}
|
|
|
53
48
|
const run = chatTaskRun(store, task, operation, now);
|
|
54
49
|
if (run === null || run !== payload["run"])
|
|
55
50
|
return { ok: false, message: "This attempt changed. Review the current task before confirming." };
|
|
56
|
-
// Resuming is an approval: a person's own tap or signed-in click lifts the stop; any other road only asks for it.
|
|
57
51
|
if (operation === "resume") {
|
|
58
52
|
if (controls.person !== true)
|
|
59
53
|
return { ok: true, taskId: task, said: `Resume requested for ${task}. Finish it in your chat or on the task.` };
|
|
60
|
-
// Resuming is an approval: a person's own off holds here as on every other one.
|
|
61
54
|
const allowed = effectiveChatApproval(store, ref.repo, who.name);
|
|
62
55
|
if (!allowed.ok && controls.via !== "web") {
|
|
63
56
|
const mode = controls.via === undefined || controls.via === "cli" ? allowed : chatApproveMode(store, ref.repo, who.name, now, controls.via);
|
package/dist/chat-terms.js
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A scope's terms as a chat card shows them whole, and the digest of exactly those words. A task filed from outside
|
|
3
|
-
* text (a youiyoux change request) approves from chat only on a card that showed every word of its terms, nothing cut:
|
|
4
|
-
* the card binds that digest to its button, and the seal (store.ts, the outside-request quarantine) recomputes it from
|
|
5
|
-
* the live scope and refuses a tap that names anything else. A leaf: the store and the chat road both read it.
|
|
6
|
-
*/
|
|
7
1
|
import { createHash } from "node:crypto";
|
|
8
2
|
import { isAcpProfile } from "./acp-agents.js";
|
|
9
3
|
import { checkAccessWords } from "./check-access.js";
|
|
10
4
|
import { sandboxTermsWords } from "./project-sandbox.js";
|
|
11
5
|
import { chainTermsLines } from "./scope.js";
|
|
12
|
-
/** What a plan's yes allows an agent to do, in a few plain words (the approval sheet's "You're allowing"). */
|
|
13
6
|
export function permissionPlainWords(profile) {
|
|
14
7
|
if (profile === null || profile === undefined)
|
|
15
8
|
return null;
|
|
@@ -26,8 +19,6 @@ export function permissionPlainWords(profile) {
|
|
|
26
19
|
return profile.sandboxMode === "danger-full-access" ? full : "file edits and commands inside the project only";
|
|
27
20
|
}
|
|
28
21
|
const money = (micro) => `$${(micro / 1_000_000).toFixed(2)}`;
|
|
29
|
-
/** Every word of the terms a yes agrees to, as the card shows them: the goal, what's excluded, the files (or plainly any
|
|
30
|
-
* file), each requirement with the evidence it needs, and what the agent may do and spend. Nothing is shortened. */
|
|
31
22
|
export function scopeTermsText(scope) {
|
|
32
23
|
const allows = [permissionPlainWords(scope.profile) ?? "agent permissions not known", scope.budgetMicrousd === null ? "no attempt limit" : `up to ${money(scope.budgetMicrousd)} per attempt`];
|
|
33
24
|
return [
|
|
@@ -44,16 +35,12 @@ export function scopeTermsText(scope) {
|
|
|
44
35
|
...((chain) => chain.length === 0 ? [] : ["", "Fallback agents:", ...chain])(chainTermsLines(scope)),
|
|
45
36
|
].join("\n");
|
|
46
37
|
}
|
|
47
|
-
/** The digest of the terms shown, bound to the scope's own digest: a changed word, limit or route is another digest. */
|
|
48
38
|
export function shownTermsDigest(scope) {
|
|
49
39
|
return createHash("sha256").update(JSON.stringify({ v: 1, scope: scope.digest, shown: scopeTermsText(scope) })).digest("hex");
|
|
50
40
|
}
|
|
51
|
-
/** The digest of the exact words a card showed, taken when the card was made and kept with it. */
|
|
52
41
|
export function cardTermsDigest(terms) {
|
|
53
42
|
return createHash("sha256").update(JSON.stringify({ v: 2, shown: terms })).digest("hex");
|
|
54
43
|
}
|
|
55
|
-
/** Whether these words show this scope as it is now: its whole terms text, word for word, and what only a person's own
|
|
56
|
-
* yes may agree to (checks past the sandbox, extra services). Part of the terms, or an earlier version's, is not. */
|
|
57
44
|
export function cardShowsScope(scope, terms) {
|
|
58
45
|
if (!terms.includes(scopeTermsText(scope)))
|
|
59
46
|
return false;
|
|
@@ -63,14 +50,12 @@ export function cardShowsScope(scope, terms) {
|
|
|
63
50
|
const access = profile.checkAccess, mach = sandboxTermsWords(profile).mach;
|
|
64
51
|
return (access === undefined || terms.includes(checkAccessWords(access))) && (mach === null || terms.includes(mach));
|
|
65
52
|
}
|
|
66
|
-
/** Whether a scope lets its agent do anything, nothing asking first. */
|
|
67
53
|
export function scopeFullAccess(profile) {
|
|
68
54
|
if (profile === null || profile === undefined)
|
|
69
55
|
return false;
|
|
70
56
|
return profile.provider === "claude" ? profile.permissionArgv === "bypassPermissions"
|
|
71
57
|
: profile.provider === "gemini" ? profile.approvalArgv === "yolo" : isAcpProfile(profile) ? true : profile.sandboxMode === "danger-full-access";
|
|
72
58
|
}
|
|
73
|
-
/** Why a person's own limits refuse this scope, or null. */
|
|
74
59
|
export function chatLimitProblem(scope, limits, yours) {
|
|
75
60
|
if (scopeFullAccess(scope.profile) && !limits.fullAccess)
|
|
76
61
|
return `This plan asks for more access than ${yours} allows.`;
|
|
@@ -79,16 +64,10 @@ export function chatLimitProblem(scope, limits, yours) {
|
|
|
79
64
|
return `This plan has ${scope.budgetMicrousd === null ? "no attempt limit" : `a ${money(scope.budgetMicrousd)} attempt limit`}, more than ${yours === "your mode" ? "your mode's" : "your chat approval limit of"} ${money(cap)}.`;
|
|
80
65
|
return null;
|
|
81
66
|
}
|
|
82
|
-
/** Whether a chat app shows a card's words exactly as they are stored, so a tap there is a yes to those words. Teams
|
|
83
|
-
* draws card text as Markdown, where a link's label hides its address, and Slack turns `:name:` into an emoji: there
|
|
84
|
-
* the words go to the review page and no tap approves them. Telegram's card is plain text and Discord's escapes its
|
|
85
|
-
* presentation syntax. Both approval roads read this one rule (chat-decide.ts shownWhole, chat-actions.ts
|
|
86
|
-
* sharedActionAllowsChallenge), so neither can seal words the other would refuse. */
|
|
87
67
|
export function shownAsWritten(text, channel) {
|
|
88
68
|
switch (channel) {
|
|
89
69
|
case "telegram":
|
|
90
70
|
case "discord": return true;
|
|
91
|
-
// Emoji names: letters and digits of any script (workspaces add their own), `_`, `+`, `'`, `-`.
|
|
92
71
|
case "slack": return !/:[\p{L}\p{N}_+'-]+:/u.test(text);
|
|
93
72
|
case "teams": return false;
|
|
94
73
|
}
|