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-delivery.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Shared saved replies, explicit confirmations and progress for private chat transports. */
|
|
2
1
|
import { answerChatQuestionPrompt, applyChatQuestionTap, questionParts } from "./subagent-question.js";
|
|
3
2
|
import { applyChatAskTap, chatAskText } from "./chat-ask.js";
|
|
4
3
|
import { channelRepos, resolveChannelLead, proposalPreview, proposalOutcomeText, confirmedLink, confirmedCardText, replyContextFor, mirrorToTaskChat, focusContextFor, taskInCeiling, tooLongText, } from "./chat-channel.js";
|
|
@@ -30,18 +29,9 @@ import { isShotsKind, resultShotsFor } from "./result-shots.js";
|
|
|
30
29
|
import { answersPrompt, applyDecideFeedback, applyDecideTap, decideFallbackLink, decideOffer, decideTargetOf, hasLiveDecideTokens, linksFor, mergedText, mintDecideButtons, offerFingerprint, openPromptFor, recordChatMerge } from "./chat-decide.js";
|
|
31
30
|
import { mergePullRequest } from "./pull-request-flow.js";
|
|
32
31
|
import { attentionSubjectOf, neverHeld, watchedPing } from "./agent-board.js";
|
|
33
|
-
/**
|
|
34
|
-
* The watch at a chat app's final fence (cockpit §3, R11), right before the network: a notice about an agent its
|
|
35
|
-
* person has open now waits, as a held part, until the watch ends; then it is delivered as usual. The subject is the
|
|
36
|
-
* part's own run, or its task's live build. Only a part planned with `watch` (never a security alert or the digest)
|
|
37
|
-
* can be held. True: held, so nothing is sent now.
|
|
38
|
-
*/
|
|
39
32
|
export function heldForWatch(state, store, part, event, approver, content, now) {
|
|
40
|
-
// Fail closed: only a notice planned as holdable (a kind a watch may hold) is ever held here.
|
|
41
33
|
if (event.kind !== "notice" || content.watch !== true)
|
|
42
34
|
return false;
|
|
43
|
-
// One part may cover several tasks (a grouped card, a batch): it waits only while every one of them is watched,
|
|
44
|
-
// until the first of those watches ends.
|
|
45
35
|
const subjects = content.subjects ?? [{ ref: content.task ? store.lookupRef(content.task)?.id ?? null : null, run: content.run ?? null }];
|
|
46
36
|
if (subjects.length === 0)
|
|
47
37
|
return false;
|
|
@@ -86,7 +76,6 @@ export async function channelAccess(options, binding, ceiling) {
|
|
|
86
76
|
state.revoke(options.identity.installation, nowOf(options));
|
|
87
77
|
throw new ChatDeliveryError(`${options.label} account access changed`);
|
|
88
78
|
}
|
|
89
|
-
// The network wait above can outlive a local disconnect or lease.
|
|
90
79
|
if (!options.current() ||
|
|
91
80
|
!state.live(binding) ||
|
|
92
81
|
!state.owns(options.identity.installation, options.owner, nowOf(options)))
|
|
@@ -100,32 +89,20 @@ export async function channelAccess(options, binding, ceiling) {
|
|
|
100
89
|
throw new ChatDeliveryError("Chat access changed");
|
|
101
90
|
return latest;
|
|
102
91
|
}
|
|
103
|
-
// ---- decisions that finish in the chat (chat-decide.ts), the same in every app --------------------------------------
|
|
104
|
-
/** Where a paired person taps: their binding, and the chat the card is in. */
|
|
105
92
|
const decideSeat = (state, binding, chat = binding.channel) => ({ channel: state.provider, binding: binding.id, chat, approver: binding.approver, generation: binding.generation });
|
|
106
|
-
/** What a card about one result, plan, failure or pull request may act on in this person's chat now, under their
|
|
107
|
-
* current ceiling; null keeps its link. Reads only. */
|
|
108
93
|
function decideOfferFor(options, binding, target, repos, now) {
|
|
109
94
|
if (target == null)
|
|
110
95
|
return null;
|
|
111
96
|
const principal = verifyApproverStanding(options.store, binding.approver, binding.generation, repos);
|
|
112
97
|
return principal.ok ? decideOffer(options.store, target, principal.who, now, options.state.provider, options.evidenceRoot) : null;
|
|
113
98
|
}
|
|
114
|
-
/** A card's buttons as a part carries them. */
|
|
115
99
|
const decideRows = (rows) => rows.map(row => row.map(one => "token" in one ? { label: one.label, token: one.token } : { label: one.label, link: one.link }));
|
|
116
|
-
/** The offer's buttons, minted now: they ride the part's message once it is sent (ChatState.partSent). */
|
|
117
100
|
function mintDecide(options, binding, target, offer, now) {
|
|
118
101
|
return { rows: decideRows(mintDecideButtons(options.store, decideSeat(options.state, binding), target, offer, now).rows) };
|
|
119
102
|
}
|
|
120
|
-
/** Said when a card that still waits for a tap can no longer be shown again in the chat. */
|
|
121
103
|
const CARD_GONE = "This card can't be updated here now. Open Toolroll to finish this.";
|
|
122
|
-
/**
|
|
123
|
-
* A decide button (chat-decide.ts), inside the tap's transaction: the same door, words and two taps as on Telegram.
|
|
124
|
-
* The card it rode is repainted in place; Request changes asks for the next message; a merge goes out after.
|
|
125
|
-
*/
|
|
126
104
|
function applyChatDecideTap(options, event, binding, token, repos, now) {
|
|
127
105
|
const { store, state } = options;
|
|
128
|
-
// The card the button rode: this person's part on that message.
|
|
129
106
|
const row = state.prepare(`SELECT p.id, p.payload FROM chat_part p JOIN chat_event e ON e.provider = p.provider AND e.id = p.event
|
|
130
107
|
WHERE p.provider = :provider AND e.binding = ? AND p.message = ? ORDER BY p.id DESC LIMIT 1`).get(binding.id, event.ts);
|
|
131
108
|
const read = row === undefined ? null : readChatPart(String(row["payload"]));
|
|
@@ -140,8 +117,6 @@ function applyChatDecideTap(options, event, binding, token, repos, now) {
|
|
|
140
117
|
if (tapped.edit !== undefined && row !== undefined && card !== null) {
|
|
141
118
|
const { decide: _decide, link: _link, also: _also, edit: _edit, ...kept } = card;
|
|
142
119
|
repainted = { ...kept, text: tapped.edit.text, ...(tapped.edit.rows.length === 0 ? {} : { decide: { rows: decideRows(tapped.edit.rows) } }) };
|
|
143
|
-
// A card that was dropped isn't brought back: what happened goes as a new message. A step that waits for a second
|
|
144
|
-
// tap can't be shown on it, so the person is sent to the task.
|
|
145
120
|
if (!state.repaint(Number(row["id"]), repainted))
|
|
146
121
|
replies.push({ text: tapped.edit.tokens.length === 0 ? tapped.ack : CARD_GONE });
|
|
147
122
|
}
|
|
@@ -153,7 +128,6 @@ function applyChatDecideTap(options, event, binding, token, repos, now) {
|
|
|
153
128
|
return tapped.merge === undefined || row === undefined || repainted === null ? null
|
|
154
129
|
: { merge: tapped.merge, part: Number(row["id"]), shown: tapped.edit?.text ?? card?.text ?? "", content: repainted };
|
|
155
130
|
}
|
|
156
|
-
/** GitHub is a network call: after the tap's transaction, then the card says how it went, and the ledger too. */
|
|
157
131
|
async function mergeFromChat(options, pending) {
|
|
158
132
|
const { merge } = pending;
|
|
159
133
|
let merged;
|
|
@@ -167,7 +141,6 @@ async function mergeFromChat(options, pending) {
|
|
|
167
141
|
}
|
|
168
142
|
recordChatMerge(options.store, merge, merged, nowOf(options));
|
|
169
143
|
const { decide: _decide, ...kept } = pending.content;
|
|
170
|
-
// A merge that didn't land keeps a way to the task.
|
|
171
144
|
options.state.repaint(pending.part, { ...kept, text: mergedText(pending.shown, merged),
|
|
172
145
|
...(merged.ok ? {} : { decide: { rows: decideRows(linksFor({ kind: "merge", taskId: merge.taskId, run: merge.runId })) } }) });
|
|
173
146
|
}
|
|
@@ -179,9 +152,7 @@ export async function processChatEvent(options) {
|
|
|
179
152
|
const event = state.next(identity.installation, now);
|
|
180
153
|
if (!event)
|
|
181
154
|
return false;
|
|
182
|
-
// The live message for this pass's turn, if any (chat-live.ts). Closed before any reply is planned.
|
|
183
155
|
let live = null;
|
|
184
|
-
// Every reply planned from here lands on the event's live message when it has one (its first part edits it).
|
|
185
156
|
const plan = (parts, at) => planWithLive(state, event.id, parts, at);
|
|
186
157
|
try {
|
|
187
158
|
if (event.kind === "pair") {
|
|
@@ -210,7 +181,6 @@ export async function processChatEvent(options) {
|
|
|
210
181
|
], nowOf(options));
|
|
211
182
|
return true;
|
|
212
183
|
}
|
|
213
|
-
// A channel as a flow's inbox (v89): "flow 12" connects it, and after that its messages are cards.
|
|
214
184
|
if (event.kind === "message" && await channelInboxEvent(options, event))
|
|
215
185
|
return true;
|
|
216
186
|
const binding = event.binding === null ? null : state.bindingById(event.binding);
|
|
@@ -236,14 +206,10 @@ export async function processChatEvent(options) {
|
|
|
236
206
|
return true;
|
|
237
207
|
}
|
|
238
208
|
const text = String(input.text ?? "");
|
|
239
|
-
// A subagent's question asked for this person's next message (v93): it is the answer.
|
|
240
209
|
if (answerChatQuestionPrompt({ store, state, label: options.label }, event, binding, { text, ...(typeof input.originalLength === "number" ? { originalLength: input.originalLength } : {}) }, nowOf(options)))
|
|
241
210
|
return true;
|
|
242
|
-
// A flow decision asked for this person's next message (Edit, Send back): it is the draft or the note.
|
|
243
211
|
if (answerChatFlowPrompt({ store, state, label: options.label }, event, binding, { text, ...(typeof input.originalLength === "number" ? { originalLength: input.originalLength } : {}) }, repos, nowOf(options)))
|
|
244
212
|
return true;
|
|
245
|
-
// After Request changes asked "What should change?": the person's next message in their own chat is the feedback
|
|
246
|
-
// (a reply in another message's thread keeps its own meaning).
|
|
247
213
|
if (event.channel === binding.channel && text.trim() !== "" && phoneCommand(text) === null) {
|
|
248
214
|
const prompt = openPromptFor(store, { channel: state.provider, binding: binding.id, chat: binding.channel }, nowOf(options));
|
|
249
215
|
if (prompt !== null && answersPrompt(prompt, event.thread !== "" && event.thread !== event.ts ? event.thread : null)) {
|
|
@@ -252,19 +218,12 @@ export async function processChatEvent(options) {
|
|
|
252
218
|
return true;
|
|
253
219
|
}
|
|
254
220
|
}
|
|
255
|
-
// A "Person chooses" notice's thread reply is the note; the first other message after it is asked about (chat-flow.ts).
|
|
256
221
|
if (answerChoiceMessage({ store, state, label: options.label }, event, binding, { text, ...(typeof input.originalLength === "number" ? { originalLength: input.originalLength } : {}), lead: input.lead === true }, nowOf(options), repos))
|
|
257
222
|
return true;
|
|
258
|
-
// D5: a message naming a subagent ("@rosa …") is the lead's to read like any other: it asks the subagent for its
|
|
259
|
-
// person with a card they confirm (propose_subagent ask), never by the transport passing it on unseen.
|
|
260
|
-
// The task this message's turn is about, once chosen (kept on the event,
|
|
261
|
-
// so a reply planned after a restart names the same task).
|
|
262
223
|
let about = typeof object(input.about).task === "string" ? { task: String(object(input.about).task), run: typeof object(input.about).run === "number" ? Number(object(input.about).run) : null } : null;
|
|
263
|
-
// Read-only commands answer from the database, never from a model.
|
|
264
224
|
const command = phoneCommand(text);
|
|
265
225
|
if (command !== null) {
|
|
266
226
|
const now_ = nowOf(options);
|
|
267
|
-
// The task this chat chose to talk about (/tasks, /task <name>), if any.
|
|
268
227
|
const surface = options.label.toLowerCase();
|
|
269
228
|
const focusedId = store.chatFocus(surface, binding.id);
|
|
270
229
|
const focusedTitle = focusedId === null ? null : phoneText(store.getTask(focusedId)?.title ?? focusedId, 64);
|
|
@@ -283,7 +242,6 @@ export async function processChatEvent(options) {
|
|
|
283
242
|
if (pick.kind === "one") {
|
|
284
243
|
store.setChatFocus(surface, binding.id, pick.id, now_);
|
|
285
244
|
const view = phoneTaskView(store, repos, pick.view, now_, options.evidenceRoot);
|
|
286
|
-
// The status names its task (and result): a reply to it is about that task.
|
|
287
245
|
plan([{ text: phoneFocusText(view.text), ...(view.link === null ? {} : { link: view.link }), task: pick.view, ...(view.run === null ? {} : { run: view.run }) }], now_);
|
|
288
246
|
}
|
|
289
247
|
else if (pick.kind === "many") {
|
|
@@ -294,8 +252,6 @@ export async function processChatEvent(options) {
|
|
|
294
252
|
}
|
|
295
253
|
return true;
|
|
296
254
|
}
|
|
297
|
-
// The team layer: `/team` anywhere, everything in a followed room, and a
|
|
298
|
-
// DM that chose a conversation. Its replies are planned like any other.
|
|
299
255
|
const room = state.room(identity.installation, event.channel);
|
|
300
256
|
const isRoom = event.channel !== binding.channel;
|
|
301
257
|
if (isRoom || room !== null || roomCommand(text) !== null) {
|
|
@@ -321,17 +277,14 @@ export async function processChatEvent(options) {
|
|
|
321
277
|
return true;
|
|
322
278
|
}
|
|
323
279
|
const request = chatHash(`${options.state.provider}:${binding.id}:${event.id}`).slice(0, 32);
|
|
324
|
-
// The live message answers only the owner's own message in their own chat: never the bot's, never a room.
|
|
325
280
|
const ownMessage = event.kind === "message" && event.member !== identity.bot && event.member === binding.member && event.channel === binding.channel;
|
|
326
281
|
const transport = ownMessage ? options.live?.(event, binding) ?? null : null;
|
|
327
|
-
// `ceiling`: the turn's; without one (still waiting) only the fixed "Waiting…" words may go, never the turn's.
|
|
328
282
|
const openLive = (ceiling) => {
|
|
329
283
|
if (transport === null)
|
|
330
284
|
return null;
|
|
331
285
|
live ??= openChatLive({
|
|
332
286
|
state, event, installation: identity.installation, transport, shape: { asked: text, appOrigin: options.origin() },
|
|
333
287
|
fenced: () => options.current() && state.owns(identity.installation, options.owner, nowOf(options)) && state.live(binding),
|
|
334
|
-
// False only on a definite refusal; a failed proof (a "slow down", a lost answer) throws: that view is dropped.
|
|
335
288
|
standing: async () => {
|
|
336
289
|
if (ceiling === null)
|
|
337
290
|
return false;
|
|
@@ -387,9 +340,7 @@ export async function processChatEvent(options) {
|
|
|
387
340
|
const contexts = state
|
|
388
341
|
.prepare("SELECT p.payload FROM chat_part p JOIN chat_event e ON e.provider=p.provider AND e.id=p.event WHERE p.provider=:provider AND e.binding=? AND e.channel=? AND (p.message=? OR e.thread=?) AND p.state='sent' ORDER BY p.id DESC LIMIT 100")
|
|
389
342
|
.all(binding.id, binding.channel, event.thread, event.thread)
|
|
390
|
-
// Context only: a part that can't be read adds none.
|
|
391
343
|
.flatMap((row) => { const read = readChatPart(String(row.payload)); return read.ok ? [read.value] : []; })
|
|
392
|
-
// A card is about the task it names, or the one confirming it filed.
|
|
393
344
|
.map((c) => {
|
|
394
345
|
if (c.task || c.proposal === undefined)
|
|
395
346
|
return c;
|
|
@@ -409,7 +360,6 @@ export async function processChatEvent(options) {
|
|
|
409
360
|
], nowOf(options));
|
|
410
361
|
return true;
|
|
411
362
|
}
|
|
412
|
-
// No reply target: the task this chat chose, when it still exists here.
|
|
413
363
|
const focused = targets.length === 0 ? store.chatFocus(options.label.toLowerCase(), binding.id) : null;
|
|
414
364
|
const focusTask = focused !== null && taskInCeiling(store, focused, repos) ? focused : null;
|
|
415
365
|
const context = targets[0] ?? (focusTask === null ? null : { text: "", task: focusTask, run: null });
|
|
@@ -419,9 +369,7 @@ export async function processChatEvent(options) {
|
|
|
419
369
|
.prepare("UPDATE chat_event SET payload=? WHERE provider=:provider AND id=? AND state='queued'")
|
|
420
370
|
.run(JSON.stringify({ ...input, about }), event.id);
|
|
421
371
|
}
|
|
422
|
-
// An unknown surface names no channel rather than a guess.
|
|
423
372
|
const channel = leadChannelOf(options.label);
|
|
424
|
-
// Only ever the owner's own message in their own chat: never the bot's, never a room.
|
|
425
373
|
const warm = warmTurn(options.warm !== undefined && ownMessage ? options.warm(event, binding) : {});
|
|
426
374
|
const turnLive = openLive(resolved.who.ceilingDigest);
|
|
427
375
|
const outcome = await runLeadTurn({
|
|
@@ -458,7 +406,6 @@ export async function processChatEvent(options) {
|
|
|
458
406
|
},
|
|
459
407
|
}).finally(async () => {
|
|
460
408
|
warm.stop();
|
|
461
|
-
// Live edits end, and the one in flight settles, before anything of the reply is planned.
|
|
462
409
|
await turnLive?.close();
|
|
463
410
|
});
|
|
464
411
|
if (outcome.ok && !outcome.replayed && context?.task)
|
|
@@ -469,7 +416,6 @@ export async function processChatEvent(options) {
|
|
|
469
416
|
if (!outcome.ok &&
|
|
470
417
|
"refused" in outcome &&
|
|
471
418
|
(outcome.refused === "concurrent" || outcome.refused === "backlog")) {
|
|
472
|
-
// The lead is answering, or messages sent earlier wait in the person's lead queue: this one waits its turn.
|
|
473
419
|
state.defer(event.id, outcome.refused === "backlog" ? "Waiting behind earlier messages" : "Assistant is answering another message", new Date(nowOf(options).getTime() + 5000));
|
|
474
420
|
await turnLive?.queued();
|
|
475
421
|
return true;
|
|
@@ -486,11 +432,7 @@ export async function processChatEvent(options) {
|
|
|
486
432
|
return true;
|
|
487
433
|
}
|
|
488
434
|
}
|
|
489
|
-
// A live message whose create never confirmed (this pass, or before a restart) is found first (Discord, by its
|
|
490
|
-
// nonce) or marked uncertain, so the reply edits the right message or none.
|
|
491
435
|
if (!(await settleLive(state, event.id, transport, () => nowOf(options)))) {
|
|
492
|
-
// Whether the live message was posted is still unknown (its lookup failed): the reply waits, so it edits that
|
|
493
|
-
// message rather than leaving it behind.
|
|
494
436
|
state.defer(event.id, "Reply is waiting to send", new Date(Math.max(nowOf(options).getTime() + 5000, Date.parse(state.retryAt(identity.installation)) || 0)));
|
|
495
437
|
return true;
|
|
496
438
|
}
|
|
@@ -517,12 +459,8 @@ export async function processChatEvent(options) {
|
|
|
517
459
|
const reply = store
|
|
518
460
|
.listLeadMessages(turn.thread, 200)
|
|
519
461
|
.find((message) => message.turn === turn.id && message.role === "assistant")?.text ?? "The reply is no longer in the saved thread.";
|
|
520
|
-
// The lead's answer about one task names it: a reply to it stays on that task.
|
|
521
|
-
// Split as written, then shape each part: no cut ever lands inside a link, code or a bold anchor.
|
|
522
462
|
const shapedParts = shapeReplyParts(reply, options.partSize ?? CHAT_PART_SIZE, { asked: text, appOrigin: options.origin() });
|
|
523
463
|
const parts = (shapedParts.length > 0 ? shapedParts : splitChatText("")).map((text) => (about === null ? { text, voice: true } : { text, voice: true, task: about.task, ...(about.run === null ? {} : { run: about.run }) }));
|
|
524
|
-
// The lead's question to its owner: its options as buttons, then "Something else", in their own chat (any thread);
|
|
525
|
-
// in a room a tap is not their message, so the question and its options go out as text.
|
|
526
464
|
const ask = store.leadAsk(turn.id);
|
|
527
465
|
if (ask !== null)
|
|
528
466
|
parts.push({ ...(event.channel === binding.channel ? { text: phoneText(ask.question, 1000), ask: { turn: ask.turn, options: ask.options } } : { text: phoneText(chatAskText(ask), 1000) }),
|
|
@@ -539,14 +477,12 @@ export async function processChatEvent(options) {
|
|
|
539
477
|
task: image.taskId,
|
|
540
478
|
run: image.run,
|
|
541
479
|
});
|
|
542
|
-
// Cards first, so what a card leads to sits right under it. A card is an ordinary part: it confirms nothing.
|
|
543
480
|
for (const proposal of cardsFirst(store.listLeadProposals(turn.thread, ["pending"]).filter((p) => p.turn === turn.id)))
|
|
544
481
|
parts.push(isCardProposal(proposal) ? cardPart(proposal) : { text: "", proposal: proposal.id });
|
|
545
482
|
plan(parts, nowOf(options));
|
|
546
483
|
return true;
|
|
547
484
|
}
|
|
548
485
|
catch (error) {
|
|
549
|
-
// Nothing is planned while a live edit could still land.
|
|
550
486
|
await live?.close();
|
|
551
487
|
const problem = error instanceof ChatDeliveryError
|
|
552
488
|
? error
|
|
@@ -567,22 +503,16 @@ export async function processChatEvent(options) {
|
|
|
567
503
|
return true;
|
|
568
504
|
}
|
|
569
505
|
}
|
|
570
|
-
/**
|
|
571
|
-
* A message in a channel (never a DM) that connects the channel to a flow,
|
|
572
|
-
* or that the channel's flow takes as a card. False: not for an inbox.
|
|
573
|
-
*/
|
|
574
506
|
async function channelInboxEvent(options, event) {
|
|
575
507
|
const { store, identity } = options, state = options.state, app = state.provider;
|
|
576
508
|
const binding = event.binding === null ? null : state.bindingById(event.binding);
|
|
577
509
|
if (binding !== null && event.channel === binding.channel)
|
|
578
510
|
return false;
|
|
579
511
|
const body = readChatMessageBody(event.payload);
|
|
580
|
-
// One that can't be read is answered, by path, on the ordinary path.
|
|
581
512
|
if (!body.ok)
|
|
582
513
|
return false;
|
|
583
514
|
const text = body.value.text ?? "";
|
|
584
515
|
if (FLOW_WORDS.test(text.trim())) {
|
|
585
|
-
// Only a paired approver connects a channel, and only to a flow in their projects.
|
|
586
516
|
if (binding === null || !state.live(binding)) {
|
|
587
517
|
state.finish(event.id, true);
|
|
588
518
|
return true;
|
|
@@ -597,13 +527,11 @@ async function channelInboxEvent(options, event) {
|
|
|
597
527
|
const config = trigger === null ? null : triggerConfigOf(trigger);
|
|
598
528
|
if (trigger === null || config?.kind !== "chat")
|
|
599
529
|
return false;
|
|
600
|
-
// What the bot says goes through the chat of whoever connected the channel; if they're gone, nothing is taken.
|
|
601
530
|
const grant = state.bindingById(config.binding);
|
|
602
531
|
if (grant === null || !state.live(grant)) {
|
|
603
532
|
state.finish(event.id, true);
|
|
604
533
|
return true;
|
|
605
534
|
}
|
|
606
|
-
// Teams names a thread by its first message on the conversation; Slack and Discord on the event.
|
|
607
535
|
const root = app === "teams" ? /;messageid=([0-9]+)$/.exec(event.channel)?.[1] ?? event.ts : event.thread;
|
|
608
536
|
const taken = takeChannelMessage(store, trigger, { app, conversation: event.channel, ts: event.ts, thread: root, text, who: binding?.approver ?? "someone" }, nowOf(options));
|
|
609
537
|
if (taken.said === null) {
|
|
@@ -614,7 +542,6 @@ async function channelInboxEvent(options, event) {
|
|
|
614
542
|
state.plan(event.id, [{ text: taken.said, channel: event.channel, ...(taken.link === undefined ? {} : { link: taken.link }) }], nowOf(options));
|
|
615
543
|
return true;
|
|
616
544
|
}
|
|
617
|
-
/** Bound to the paired member, exact channel/message, pending proposal and current ceiling. */
|
|
618
545
|
export function applyChatAction(options, event, binding, repos) {
|
|
619
546
|
const state = options.state, { store } = options, now = nowOf(options), signals = [];
|
|
620
547
|
let merging = null;
|
|
@@ -625,7 +552,6 @@ export function applyChatAction(options, event, binding, repos) {
|
|
|
625
552
|
event.member !== binding.member ||
|
|
626
553
|
(event.channel !== binding.channel && state.room(options.identity.installation, event.channel)?.kind !== "group"))
|
|
627
554
|
return;
|
|
628
|
-
// A button the paired person tapped whose data couldn't be read is answered plainly: what was wrong, and that nothing was done.
|
|
629
555
|
const body = readChatActionBody(event.payload);
|
|
630
556
|
if (!body.ok || "problem" in body.value) {
|
|
631
557
|
const problem = body.ok ? ("problem" in body.value ? body.value.problem : "") : body.issues.map(issue => issue.line).join("; ");
|
|
@@ -633,24 +559,19 @@ export function applyChatAction(options, event, binding, repos) {
|
|
|
633
559
|
return;
|
|
634
560
|
}
|
|
635
561
|
const token = body.value.token;
|
|
636
|
-
// A result's, plan's, failure's or pull request's own button (chat-decide.ts).
|
|
637
562
|
if (token.startsWith("d:")) {
|
|
638
563
|
merging = applyChatDecideTap(options, event, binding, token, repos, now);
|
|
639
564
|
return;
|
|
640
565
|
}
|
|
641
|
-
// A flow decision's button (v88) is answered by the flow's own door.
|
|
642
566
|
if (applyChatFlowTap({ store, state, label: options.label }, event, binding, token, repos, now))
|
|
643
567
|
return;
|
|
644
|
-
// A subagent's question's button (v93) is answered by the question's own door.
|
|
645
568
|
if (applyChatQuestionTap({ store, state, label: options.label }, event, binding, token, now))
|
|
646
569
|
return;
|
|
647
|
-
// The lead's question to its owner: the tapped option becomes their next message.
|
|
648
570
|
if (applyChatAskTap({ store, state }, event, binding, token, now))
|
|
649
571
|
return;
|
|
650
572
|
const saved = state
|
|
651
573
|
.prepare("SELECT a.token,a.part,a.proposal,a.phase,a.expires,a.consumed,p.message,e.binding,e.channel,e.thread FROM chat_action a JOIN chat_part p ON p.provider=a.provider AND p.id=a.part JOIN chat_event e ON e.provider=p.provider AND e.id=p.event WHERE a.provider=:provider AND a.token=?")
|
|
652
574
|
.get(token);
|
|
653
|
-
// The saved button, read by its schema: one that can't be read is a spent button, never a guess.
|
|
654
575
|
const read = saved === undefined ? null : readProposalActionRow({ ...saved });
|
|
655
576
|
const action = read?.ok === true ? read.value : null;
|
|
656
577
|
const invalid = !action ||
|
|
@@ -708,7 +629,6 @@ export function applyChatAction(options, event, binding, repos) {
|
|
|
708
629
|
}
|
|
709
630
|
else {
|
|
710
631
|
const outcome = confirmLeadProposal(store, verified.who, proposal.id, now, {
|
|
711
|
-
// A paired chat seat speaks for its account's full authority (pairing is a full session's act).
|
|
712
632
|
authority: "full",
|
|
713
633
|
via: options.state.provider,
|
|
714
634
|
binding: binding.id,
|
|
@@ -731,8 +651,6 @@ export function applyChatAction(options, event, binding, repos) {
|
|
|
731
651
|
content.link = link;
|
|
732
652
|
}
|
|
733
653
|
}
|
|
734
|
-
// Repaint the original persisted card; retain one placement and fresh tokens. A card that was dropped isn't brought
|
|
735
|
-
// back: an outcome goes as a new message, and a card that still waits for a tap sends the person to Toolroll.
|
|
736
654
|
if (!state.repaint(action.part, content)) {
|
|
737
655
|
const { edit: _edit, proposal: _proposal, phase: _phase, ...asNew } = content;
|
|
738
656
|
state.plan(event.id, [content.proposal === undefined ? asNew : { text: CARD_GONE }], now);
|
|
@@ -751,13 +669,6 @@ export function applyChatAction(options, event, binding, repos) {
|
|
|
751
669
|
signal();
|
|
752
670
|
return merging;
|
|
753
671
|
}
|
|
754
|
-
/**
|
|
755
|
-
* Carry new conversation messages to every room that follows one: the
|
|
756
|
-
* lead's replies, teammates' messages (never the room's own), and each
|
|
757
|
-
* reply's pending cards, as ordinary parts sent to the room's channel. A
|
|
758
|
-
* room is a grant from one exact pairing and is rechecked before each
|
|
759
|
-
* message; a room nobody paired can carry waits.
|
|
760
|
-
*/
|
|
761
672
|
export async function planRoomMessages(options) {
|
|
762
673
|
const state = options.state, { store, identity } = options, now = nowOf(options);
|
|
763
674
|
if (!state.owns(identity.installation, options.owner, now) || !options.current())
|
|
@@ -811,8 +722,6 @@ export async function planRoomMessages(options) {
|
|
|
811
722
|
}
|
|
812
723
|
}
|
|
813
724
|
}
|
|
814
|
-
/** Quiet mode: the task's one card (or its group's) in this person's chat, planned once and then repainted in
|
|
815
|
-
* place whenever what it says changes. */
|
|
816
725
|
function planQuietCard(options, binding, notification, now) {
|
|
817
726
|
const { state, store, identity } = options;
|
|
818
727
|
if (notification.taskRef === null || notification.taskId === null)
|
|
@@ -821,9 +730,6 @@ function planQuietCard(options, binding, notification, now) {
|
|
|
821
730
|
const view = quietCardView(store, card.tasks, now, options.evidenceRoot, binding.approver);
|
|
822
731
|
if (view === null)
|
|
823
732
|
return;
|
|
824
|
-
// A card about one task is that task's: its person's watch may hold it at the final fence (never a security kind).
|
|
825
|
-
// A card about its tasks is theirs: its person's watch may hold it at the final fence while every one of them is
|
|
826
|
-
// watched (never for a security kind).
|
|
827
733
|
const content = { text: view.text, link: view.link, ...(card.tasks.length === 1 ? { task: notification.taskId } : {}),
|
|
828
734
|
...(card.tasks.length > 0 && !neverHeld(notification.kind) ? { watch: true } : {}),
|
|
829
735
|
...(card.tasks.length > 1 && !neverHeld(notification.kind) ? { subjects: card.tasks.slice(0, 100).map(ref => ({ ref, run: null })) } : {}) };
|
|
@@ -843,26 +749,18 @@ function planQuietCard(options, binding, notification, now) {
|
|
|
843
749
|
if (part !== undefined)
|
|
844
750
|
store.setChatCardMessage(card.id, String(part.id), shown);
|
|
845
751
|
}
|
|
846
|
-
/** Any update for this person joins their open batch (two minutes from its first), and the batch's one message
|
|
847
|
-
* is planned once, then repainted in place as more updates land. `notification`: an update that is not a finished
|
|
848
|
-
* result (null for one that is). False when nothing in the batch reads as a line, so the update goes out on its own. */
|
|
849
752
|
function planFinished(options, binding, taskRef, run, now, notification = null, repos = []) {
|
|
850
753
|
const { state, store, identity } = options;
|
|
851
754
|
const batch = store.chatBatchFor(`${state.provider}:${binding.id}`, taskRef, run, now, BATCH_MS, notification);
|
|
852
755
|
const view = finishedView(store, batch, now, options.evidenceRoot, binding.approver);
|
|
853
756
|
if (view === null)
|
|
854
757
|
return false;
|
|
855
|
-
// A single update keeps its task and run, so a reply to it names that work.
|
|
856
758
|
const single = batch.items.length === 1 ? batch.items[0] : null;
|
|
857
759
|
const task = single === null ? null : store.refById(single.taskRef)?.externalId ?? null;
|
|
858
|
-
// Holdable when its fact is a kind a watch may hold (the batch line for a finished run, or the notification joining
|
|
859
|
-
// it); a batch of several holds only while every one of them is watched.
|
|
860
760
|
const joining = notification === null ? null : options.store.notificationById(notification);
|
|
861
761
|
const holdable = batch.items.length > 0 && (joining === null || !neverHeld(joining.kind));
|
|
862
762
|
const about = { ...(task === null ? {} : { task }), ...(single?.run == null ? {} : { run: single.run }), ...(holdable ? { watch: true } : {}),
|
|
863
763
|
...(holdable && batch.items.length > 1 ? { subjects: batch.items.slice(0, 100).map(one => ({ ref: one.taskRef, run: one.run })) } : {}) };
|
|
864
|
-
// A message about one result, plan, failure or pull request acts in place (chat-decide.ts), as on Telegram: its
|
|
865
|
-
// buttons are minted only when what it offers changed, or its own were spent (Not now), so an unchanged repaint keeps them.
|
|
866
764
|
const offer = decideOfferFor(options, binding, view.target, repos, now);
|
|
867
765
|
const content = offer === null
|
|
868
766
|
? { text: view.text, link: view.link, ...(view.also === undefined ? {} : { also: view.also }), ...about }
|
|
@@ -887,18 +785,13 @@ function planFinished(options, binding, taskRef, run, now, notification = null,
|
|
|
887
785
|
store.setChatBatchMessage(batch.id, String(part.id), shown);
|
|
888
786
|
return true;
|
|
889
787
|
}
|
|
890
|
-
/** Screenshots with a result (result-shots.ts), planned after the result's own message: each an upload that follows
|
|
891
|
-
* it in its thread (Slack, Discord), or one link to them (Teams). A failed check is one plain line instead. */
|
|
892
788
|
function planResultShots(options, binding, notification, repos, id, now) {
|
|
893
789
|
const { state, store, identity } = options;
|
|
894
790
|
const plan = resultShotsFor(store, options.evidenceRoot, repos, notification);
|
|
895
791
|
if (plan.kind === "none" || notification.taskId === null || notification.run === null)
|
|
896
792
|
return;
|
|
897
793
|
const where = { task: notification.taskId, run: notification.run };
|
|
898
|
-
// The result's message here: its finished-work batch (quiet), its progress card (every step), or the result's own
|
|
899
|
-
// notice. The transport threads the screenshots under it once it is posted, and holds them until then.
|
|
900
794
|
const follows = (() => {
|
|
901
|
-
// A flow's screenshots follow the "Send to me" or "Person chooses" notice they go with.
|
|
902
795
|
const visit = /^flow-shots:([1-9][0-9]*):([1-9][0-9]*)$/.exec(notification.dedupeKey);
|
|
903
796
|
if (visit !== null) {
|
|
904
797
|
for (const key of [`flow-send:${visit[1]}:${visit[2]}`, `flow-choose:${visit[1]}:${visit[2]}`]) {
|
|
@@ -924,7 +817,6 @@ function planResultShots(options, binding, notification, repos, id, now) {
|
|
|
924
817
|
})();
|
|
925
818
|
const image = (artifact, sha256) => ({ taskId: where.task, run: where.run, artifact, sha256 });
|
|
926
819
|
const parts = plan.kind === "line" ? [{ text: plan.text, ...where }]
|
|
927
|
-
// Teams has no file upload here: one message that links to the saved result.
|
|
928
820
|
: state.provider === "teams" ? [{ text: plan.shots.length === 1 ? plan.shots[0].caption : `${plan.shots[0].caption} · ${plan.shots.length} screenshots`,
|
|
929
821
|
image: image(plan.shots[0].artifact, plan.shots[0].sha256), shot: { follows: null }, ...where }]
|
|
930
822
|
: plan.shots.map(one => ({ text: one.caption, image: image(one.artifact, one.sha256), shot: { follows }, ...where }));
|
|
@@ -932,7 +824,6 @@ function planResultShots(options, binding, notification, repos, id, now) {
|
|
|
932
824
|
ts: "", thread: "", payload: {}, created: now.toISOString() });
|
|
933
825
|
state.plan(id, parts, now);
|
|
934
826
|
}
|
|
935
|
-
/** One progress card per exact result; separate urgent facts retain their own review link. */
|
|
936
827
|
export async function planChatNotifications(options) {
|
|
937
828
|
const state = options.state, { store, identity } = options, bindings = state.bindings(identity.installation).filter(one => state.live(one));
|
|
938
829
|
if (bindings.length === 0 ||
|
|
@@ -940,17 +831,14 @@ export async function planChatNotifications(options) {
|
|
|
940
831
|
!options.current())
|
|
941
832
|
return;
|
|
942
833
|
const registry = await options.readProjects();
|
|
943
|
-
// An evening digest someone asked for is due: record it as their own notification, delivered below.
|
|
944
834
|
try {
|
|
945
835
|
enqueueEveningDigests(store, nowOf(options), options.evidenceRoot);
|
|
946
836
|
}
|
|
947
|
-
catch {
|
|
837
|
+
catch { }
|
|
948
838
|
enqueueLeadLapses(store, nowOf(options));
|
|
949
839
|
const cursor = Number(state
|
|
950
840
|
.prepare("SELECT notification FROM chat_runtime WHERE provider=:provider AND installation=?")
|
|
951
841
|
.get(identity.installation)?.notification ?? 0);
|
|
952
|
-
// A person who paired after the cursor passed is still owed what wanted them before: once per pairing, their
|
|
953
|
-
// unresolved attention notices and open decisions from before it, through the same door as every new one.
|
|
954
842
|
for (const binding of bindings) {
|
|
955
843
|
const owed = `owed-before-pairing:${binding.id}`;
|
|
956
844
|
if (state.meta(identity.installation, owed) !== null)
|
|
@@ -959,7 +847,6 @@ export async function planChatNotifications(options) {
|
|
|
959
847
|
offerNotice(options, notification, binding, registry);
|
|
960
848
|
state.setMeta(identity.installation, owed, "offered", nowOf(options));
|
|
961
849
|
}
|
|
962
|
-
// A ping held while its person watched the run (agent-board.ts watchedPing) is offered again once the watch lapses.
|
|
963
850
|
for (const held of state.metaStartingWith(identity.installation, WATCH_HELD)) {
|
|
964
851
|
if (held.value > nowOf(options).toISOString())
|
|
965
852
|
continue;
|
|
@@ -969,7 +856,6 @@ export async function planChatNotifications(options) {
|
|
|
969
856
|
if (binding !== undefined && notification !== null)
|
|
970
857
|
offerNotice(options, notification, binding, registry);
|
|
971
858
|
}
|
|
972
|
-
// Every paired person is a destination of their own, under their own ceiling.
|
|
973
859
|
for (const notification of store.notificationsAfter(cursor, 100)) {
|
|
974
860
|
for (const binding of bindings)
|
|
975
861
|
offerNotice(options, notification, binding, registry);
|
|
@@ -978,33 +864,19 @@ export async function planChatNotifications(options) {
|
|
|
978
864
|
.run(notification.id, identity.installation);
|
|
979
865
|
}
|
|
980
866
|
}
|
|
981
|
-
/** A held ping's small fact: `watch-held:<binding>:<notification>` → when the watch lapses. */
|
|
982
867
|
const WATCH_HELD = "watch-held:";
|
|
983
|
-
/** One notification for one paired person: planned as their parts, or nothing. Never twice: each plan's event id is
|
|
984
|
-
* the notification's for this binding. */
|
|
985
868
|
function offerNotice(options, notification, binding, registry) {
|
|
986
869
|
const { state, store, identity } = options;
|
|
987
870
|
const repos = channelRepos(store, binding.approver, registry);
|
|
988
871
|
store.transact(() => {
|
|
989
|
-
// One person's notification (v83) goes to that person alone, task or not.
|
|
990
872
|
const personal = notification.recipient !== null;
|
|
991
|
-
if (
|
|
992
|
-
// From before the pairing, only what still wants a person (the rule every chat app shares, wantedBeforePairing).
|
|
993
|
-
(notification.createdAt >= binding.created || wantedBeforePairing(notification)) &&
|
|
873
|
+
if ((notification.createdAt >= binding.created || wantedBeforePairing(notification)) &&
|
|
994
874
|
notification.resolvedAt === null &&
|
|
995
|
-
// A promise the lead made on another chat is reported there (lead-commitments.ts); one its owner asked for on
|
|
996
|
-
// this chat is always said here, however quiet the lead's own work is kept.
|
|
997
875
|
(promiseChannelOf(notification) ?? state.provider) === state.provider &&
|
|
998
|
-
// Pings follow responsibility: the lead's work, this person's own act and a muted project stay in the console.
|
|
999
876
|
(promiseChannelOf(notification) === state.provider || store.pingAllowed(notification, binding.approver)) &&
|
|
1000
|
-
// A flow decision for "anyone who approves" reaches every approver who can see the project.
|
|
1001
|
-
// A notification addressed to this person reaches them whatever project
|
|
1002
|
-
// their channel follows (a sign-in pause is the installation's, v108).
|
|
1003
877
|
(personal
|
|
1004
878
|
? notification.recipient === binding.approver && (notification.project === null || repos.includes(notification.project))
|
|
1005
879
|
: (notification.taskId || notification.kind === "flow-decision") && notification.project !== null && repos.includes(notification.project))) {
|
|
1006
|
-
// Watching the run on the Agents board holds this ping (re-offered above once the watch lapses); a finished
|
|
1007
|
-
// run they have since opened needs no ping at all.
|
|
1008
880
|
const watched = watchedPing(store, notification, binding.approver, nowOf(options));
|
|
1009
881
|
if (watched === "skip")
|
|
1010
882
|
return;
|
|
@@ -1014,15 +886,12 @@ function offerNotice(options, notification, binding, registry) {
|
|
|
1014
886
|
}
|
|
1015
887
|
const run = store.telegramProgressRun(notification);
|
|
1016
888
|
const id = chatHash(`${options.state.provider}:notice:${binding.id}:${notification.id}`), now = nowOf(options);
|
|
1017
|
-
// Only when I'm needed (the default): the task's one card is edited in place, and a new message
|
|
1018
|
-
// follows only when this person is needed. Every step keeps the branches below unchanged.
|
|
1019
889
|
const quiet = !personal && isTaskFact(notification) && store.notificationPreference(binding.approver).mode === "quiet";
|
|
1020
890
|
if (isShotsKind(notification.kind)) {
|
|
1021
891
|
planResultShots(options, binding, notification, repos, id, now);
|
|
1022
892
|
return;
|
|
1023
893
|
}
|
|
1024
894
|
if (notification.kind === LEAD_SAY_KIND) {
|
|
1025
|
-
// The lead's words (lead-voice.ts): one message, repainted in place when a later say joins it.
|
|
1026
895
|
const content = { text: leadSayText(store, notification, binding.approver),
|
|
1027
896
|
...(notification.link ? { link: { label: "Open", path: notification.link } } : {}) };
|
|
1028
897
|
const earlier = leadSayEarlier(store, notification).map(one => state.prepare("SELECT id FROM chat_part WHERE provider=:provider AND event=?")
|
|
@@ -1041,12 +910,9 @@ function offerNotice(options, notification, binding, registry) {
|
|
|
1041
910
|
if (!needsPerson(notification))
|
|
1042
911
|
return;
|
|
1043
912
|
if (notification.kind === "run-finished" && run) {
|
|
1044
|
-
// Finished work goes out only as the batch line; one left out on purpose (a release check, a replaced
|
|
1045
|
-
// task, the reader's own completion) stays quiet rather than falling through to another message.
|
|
1046
913
|
planFinished(options, binding, notification.taskRef, run.id, now, null, repos);
|
|
1047
914
|
return;
|
|
1048
915
|
}
|
|
1049
|
-
// Every other update for this person within two minutes joins the same one message.
|
|
1050
916
|
else if (notification.kind !== "run-finished" && joinsBatch(notification)) {
|
|
1051
917
|
if (planFinished(options, binding, notification.taskRef, run?.id ?? null, now, notification.id, repos))
|
|
1052
918
|
return;
|
|
@@ -1098,7 +964,6 @@ function offerNotice(options, notification, binding, registry) {
|
|
|
1098
964
|
}
|
|
1099
965
|
}
|
|
1100
966
|
else if (notification.kind === "flow-decision") {
|
|
1101
|
-
// The draft as written, and Approve / Edit / Send back on its last part; a card that moved on is not news.
|
|
1102
967
|
const parts = flowDecisionParts(store, notification, state.provider);
|
|
1103
968
|
if (parts !== null) {
|
|
1104
969
|
state.enqueue({ id, installation: identity.installation, binding: binding.id, kind: "notice", channel: binding.channel, member: binding.member,
|
|
@@ -1107,19 +972,16 @@ function offerNotice(options, notification, binding, registry) {
|
|
|
1107
972
|
}
|
|
1108
973
|
}
|
|
1109
974
|
else if (personal && flowSendParts(store, notification, state.provider) !== null) {
|
|
1110
|
-
// A flow's "Send to me" (flow-send.ts): what was done, with its links as buttons.
|
|
1111
975
|
state.enqueue({ id, installation: identity.installation, binding: binding.id, kind: "notice", channel: binding.channel, member: binding.member,
|
|
1112
976
|
ts: "", thread: "", payload: {}, created: now.toISOString() });
|
|
1113
977
|
state.plan(id, flowSendParts(store, notification, state.provider), now);
|
|
1114
978
|
}
|
|
1115
979
|
else if (personal && flowDoneCard(store, notification, now) !== null) {
|
|
1116
|
-
// A card that reached Done: what it went through, as a card with its links.
|
|
1117
980
|
state.enqueue({ id, installation: identity.installation, binding: binding.id, kind: "notice", channel: binding.channel, member: binding.member,
|
|
1118
981
|
ts: "", thread: "", payload: {}, created: now.toISOString() });
|
|
1119
982
|
state.plan(id, [cardContent(flowDoneCard(store, notification, now))], now);
|
|
1120
983
|
}
|
|
1121
984
|
else if (notification.kind === "flow-card" && questionParts(store, notification, binding) !== null) {
|
|
1122
|
-
// A subagent's question (v93): its options and "Answer in words" on the notice, for the person it asks.
|
|
1123
985
|
state.enqueue({ id, installation: identity.installation, binding: binding.id, kind: "notice", channel: binding.channel, member: binding.member,
|
|
1124
986
|
ts: "", thread: "", payload: {}, created: now.toISOString() });
|
|
1125
987
|
state.plan(id, questionParts(store, notification, binding), now);
|
|
@@ -1137,14 +999,11 @@ function offerNotice(options, notification, binding, registry) {
|
|
|
1137
999
|
payload: {},
|
|
1138
1000
|
created: now.toISOString(),
|
|
1139
1001
|
});
|
|
1140
|
-
// A result, plan, failure or ready pull request acts in place (chat-decide.ts); otherwise its one link (a plan's
|
|
1141
|
-
// is Review & start, where the password step lives).
|
|
1142
1002
|
const target = decideTargetOf(notification);
|
|
1143
1003
|
const offer = decideOfferFor(options, binding, target, repos, now);
|
|
1144
1004
|
const fallback = offer === null ? decideFallbackLink(target) : null;
|
|
1145
1005
|
state.plan(id, [
|
|
1146
1006
|
{
|
|
1147
|
-
// Never the task's id or a "— revision" suffix (chat-voice.ts).
|
|
1148
1007
|
text: offer?.text ?? chatText(phoneText(notification.body === "" ? leadSubjectOf(store, notification, binding.approver) : `${leadSubjectOf(store, notification, binding.approver)}\n\n${notification.body}`, 2500), notification.taskId === null ? [] : [{ id: notification.taskId, title: chatTitle(store, notification.taskId) }]),
|
|
1149
1008
|
...(notification.taskId ? { task: notification.taskId } : {}),
|
|
1150
1009
|
...(run ? { run: run.id } : {}),
|
package/dist/chat-display.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Shared privacy-preserving plain text for external conversations. */
|
|
2
1
|
import { scanForSecrets } from "./evidence.js";
|
|
3
2
|
export function publicChatText(value, cap) {
|
|
4
3
|
if (scanForSecrets(value).length > 0 ||
|
|
@@ -11,7 +10,6 @@ export function publicChatText(value, cap) {
|
|
|
11
10
|
.replace(/[\u0000-\u001f\u007f-\u009f\u200b-\u200f\u202a-\u202e\u2060-\u206f]/g, " ")
|
|
12
11
|
.replace(/\s+/g, " ")
|
|
13
12
|
.trim();
|
|
14
|
-
// Keep surrogate pairs intact while bounding Telegram's UTF-16 ceiling.
|
|
15
13
|
return text.length <= cap
|
|
16
14
|
? text
|
|
17
15
|
: text.slice(0, cap - 2).replace(/[\uD800-\uDBFF]$/, "") + "…";
|