toolroll 0.9.104 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -5
- package/README.md +18 -20
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +17 -139
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +1 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +0 -17
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +0 -53
- package/dist/local-owner.js +2 -93
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +0 -20
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +0 -100
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +0 -25
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +4 -567
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +21 -555
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +1 -88
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +13 -493
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +6 -135
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +9 -227
- package/dist/server/tasks.js +5 -539
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +0 -75
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +17 -28
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +16 -36
- package/dist/tui.js +1 -1
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +4 -3
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -350
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1985
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -540
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -43
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -61
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -170
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -39
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1098
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -81
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -60
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -343
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -108
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -48
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -202
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/lead-tools.js
CHANGED
|
@@ -30,18 +30,6 @@ import { RESULT_IMAGES_PER_TURN_CAP, selectResultImages } from "./chat-evidence.
|
|
|
30
30
|
import { CHAT_CONTROLS, chatControlHref, isChatControl } from "./chat-controls.js";
|
|
31
31
|
import { LIMITS } from "./decision.js";
|
|
32
32
|
import { CHAT_TASK_ACTIONS, chatTaskRun, chatTaskStamp, isChatTaskAction } from "./chat-task-actions.js";
|
|
33
|
-
/**
|
|
34
|
-
* The lead's tools (mate arc §2): reads over the approver's ceiling and
|
|
35
|
-
* proposals that become rows — never a write. Every result passes through
|
|
36
|
-
* `leadView`, a fail-closed choke point (ruling 4; slice-1 review finding
|
|
37
|
-
* 9): repos use `r1..rN` in the principal's order, and every string
|
|
38
|
-
* that leaves is scrubbed of path-shaped text, digests, and account names
|
|
39
|
-
* — titles, questions, and reasons included, because a human typed those
|
|
40
|
-
* and a human may have typed a path into them. Consequences and
|
|
41
|
-
* recommendations are never read at all. The coordinator keeps its own
|
|
42
|
-
* richer DTOs. list_repos alone adds bounded display labels from admitted
|
|
43
|
-
* projects after scrubbing; full paths and arbitrary text remain redacted.
|
|
44
|
-
*/
|
|
45
33
|
import { Buffer } from "node:buffer";
|
|
46
34
|
import { LEAD_ASK_OTHER, refArchived } from "./store.js";
|
|
47
35
|
import { releaseFactsOf, tidyDigest, tidyGroups, tidyPreview, TIDY_DEFAULT_DAYS } from "./tidy.js";
|
|
@@ -86,11 +74,8 @@ import { utcMinute } from "./when-html.js";
|
|
|
86
74
|
const REPO_ID = /^r[0-9]{1,3}$/;
|
|
87
75
|
const TASK_ID = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/;
|
|
88
76
|
const ISO_STAMP = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?Z$/;
|
|
89
|
-
// ------------------------------------------------------------- leadView
|
|
90
|
-
/** What a mate-facing string may not carry: an absolute path, a hex digest of 32+ digits, an account name. */
|
|
91
77
|
const PATH_SHAPED = /(?:^|[\s"'`(<[=:,])(\/(?:[A-Za-z0-9._~-]+\/)*[A-Za-z0-9._~-]+)/g;
|
|
92
78
|
const HEX_DIGEST = /\b[0-9a-f]{32,}\b/gi;
|
|
93
|
-
/** Scrub one string. Exact repo paths and their basenames go first (v13: no paths, no basenames), then shapes. */
|
|
94
79
|
export function redactForLead(text, view) {
|
|
95
80
|
let out = text;
|
|
96
81
|
for (const repo of view.repos) {
|
|
@@ -111,7 +96,6 @@ export function redactForLead(text, view) {
|
|
|
111
96
|
}
|
|
112
97
|
return out;
|
|
113
98
|
}
|
|
114
|
-
/** The choke point: every string inside a tool result, recursively, scrubbed. */
|
|
115
99
|
export function leadView(value, view) {
|
|
116
100
|
const walk = (node) => {
|
|
117
101
|
if (typeof node === "string")
|
|
@@ -131,8 +115,6 @@ export function leadView(value, view) {
|
|
|
131
115
|
export function leadViewContextFor(store, who) {
|
|
132
116
|
return { repos: who.repos, names: store.listApprovers().map(one => one.name) };
|
|
133
117
|
}
|
|
134
|
-
/** Project names are deliberate display metadata, not a general basename
|
|
135
|
-
* exemption. Invalid, sensitive or account-identifying labels stay opaque. */
|
|
136
118
|
export function projectLabelForLead(path, index, names) {
|
|
137
119
|
const base = path.replace(/[\\/]+$/, "").split(/[\\/]/).pop() ?? "";
|
|
138
120
|
const label = redactForLead(base, { repos: [], names });
|
|
@@ -140,7 +122,6 @@ export function projectLabelForLead(path, index, names) {
|
|
|
140
122
|
&& !/\b\d{5,}:[A-Za-z0-9_-]{20,}\b/.test(label)
|
|
141
123
|
? label : `Project ${index + 1}`;
|
|
142
124
|
}
|
|
143
|
-
// ------------------------------------------------------------- helpers
|
|
144
125
|
function repoIdOf(who, path) {
|
|
145
126
|
if (path === null)
|
|
146
127
|
return null;
|
|
@@ -153,7 +134,6 @@ function repoPathOf(who, id) {
|
|
|
153
134
|
const path = who.repos[Number(id.slice(1)) - 1];
|
|
154
135
|
return path ?? null;
|
|
155
136
|
}
|
|
156
|
-
/** Plain text of bounded length with no control characters, disguised text, or credential-shaped runs (finding 4). */
|
|
157
137
|
function honest(value, maxChars) {
|
|
158
138
|
return (typeof value === "string" &&
|
|
159
139
|
value.trim() !== "" &&
|
|
@@ -166,7 +146,6 @@ function taskIdOf(args) {
|
|
|
166
146
|
const id = args["task"];
|
|
167
147
|
return typeof id === "string" && TASK_ID.test(id) ? id : null;
|
|
168
148
|
}
|
|
169
|
-
/** The task's ref inside the principal's ceiling, or null — a task outside answers not-found, never its repo. */
|
|
170
149
|
function admittedRef(ctx, taskId) {
|
|
171
150
|
const ref = ctx.store.lookupRef(taskId);
|
|
172
151
|
if (ref === null || ref.repo === null)
|
|
@@ -174,7 +153,6 @@ function admittedRef(ctx, taskId) {
|
|
|
174
153
|
const repoId = repoIdOf(ctx.who, ref.repo);
|
|
175
154
|
return repoId === null ? null : { id: ref.id, repo: ref.repo, repoId };
|
|
176
155
|
}
|
|
177
|
-
/** The same text rule, for the gateway's proposals. */
|
|
178
156
|
export function honestText(value, maxChars) {
|
|
179
157
|
return honest(value, maxChars);
|
|
180
158
|
}
|
|
@@ -190,9 +168,6 @@ export function readTouches(value) {
|
|
|
190
168
|
return null;
|
|
191
169
|
return value;
|
|
192
170
|
}
|
|
193
|
-
/** v39: the rubric a mate or coordinator proposal drafts — mandatory,
|
|
194
|
-
* parsed the same way every other authoring road parses one. `null` means
|
|
195
|
-
* the argument did not even parse into a non-empty rubric. */
|
|
196
171
|
export function readAcceptanceArg(value) {
|
|
197
172
|
const parsed = parseAcceptanceCriteria(value);
|
|
198
173
|
if (parsed.problems.length > 0 || parsed.criteria.length === 0)
|
|
@@ -200,27 +175,16 @@ export function readAcceptanceArg(value) {
|
|
|
200
175
|
return parsed.criteria;
|
|
201
176
|
}
|
|
202
177
|
const tooMany = () => ({ ok: false, message: `this turn already holds ${LEAD_MAX_PROPOSALS_PER_TURN} proposals` });
|
|
203
|
-
/** How far back a task search reads: enough for a busy month, bounded. */
|
|
204
178
|
const SEARCH_FAMILIES = 400;
|
|
205
|
-
/** Words that never name work on their own. */
|
|
206
179
|
const SEARCH_FILLER = new Set(["a", "an", "and", "the", "of", "to", "for", "in", "on", "at", "by", "with", "about", "from", "that", "this", "these", "those", "it", "its", "is", "was", "my", "our", "your", "thing", "things", "stuff", "one", "task", "tasks", "work", "job", "please", "fix", "make"]);
|
|
207
|
-
/** The operator's words for a task, lowercased, without filler. */
|
|
208
180
|
function searchWords(text) {
|
|
209
181
|
return [...new Set(text.toLowerCase().split(/[^a-z0-9]+/).filter(word => word.length > 1 && !SEARCH_FILLER.has(word)))].slice(0, 12);
|
|
210
182
|
}
|
|
211
|
-
/** How many of the words appear in the task's own text (a word also matches its plural or a longer form). */
|
|
212
183
|
function searchHits(words, fields) {
|
|
213
184
|
const text = fields.join(" ").toLowerCase();
|
|
214
185
|
return words.filter(word => text.includes(word.length > 3 && word.endsWith("s") ? word.slice(0, -1) : word)).length;
|
|
215
186
|
}
|
|
216
187
|
const notFound = () => ({ ok: false, message: "not-found: no such task in your projects" });
|
|
217
|
-
// ------------------------------------------------- shared queries (§2)
|
|
218
|
-
// The one set of queries both the lead and the MCP gateway read. Every
|
|
219
|
-
// row names its repo by INDEX into the caller's admitted list; the view
|
|
220
|
-
// then labels it — `rN` for the lead, the path for a coordinator whose
|
|
221
|
-
// allowlist is its authority. Consequences and recommendations are never
|
|
222
|
-
// read here at all.
|
|
223
|
-
/** Replace every `repoIndex` with a `repo` label, recursively. */
|
|
224
188
|
export function labelRepos(value, label) {
|
|
225
189
|
const walk = (node) => {
|
|
226
190
|
if (Array.isArray(node))
|
|
@@ -240,8 +204,6 @@ export function labelRepos(value, label) {
|
|
|
240
204
|
return walk(value);
|
|
241
205
|
}
|
|
242
206
|
export function recapOver(store, repos, now, since) {
|
|
243
|
-
// Ages arrive rounded to the hour, so the horizon is inclusive by half an
|
|
244
|
-
// hour: a row newer than `since` is never dropped (finding 8).
|
|
245
207
|
const horizonHours = since === null ? Infinity : Math.max(0, (now.getTime() - Date.parse(since)) / 3_600_000) + 0.5;
|
|
246
208
|
const snapshot = store.chatSnapshot(repos, now);
|
|
247
209
|
const recent = (rows) => rows.filter(one => one.ageHours <= horizonHours);
|
|
@@ -258,8 +220,6 @@ export function recapOver(store, repos, now, since) {
|
|
|
258
220
|
queued: mine(snapshot.tasks).filter(one => one.state === "queued").length,
|
|
259
221
|
finished: mine(tasks).filter(one => one.state === "done").length,
|
|
260
222
|
failed: mine(tasks).filter(one => one.state === "failed").length,
|
|
261
|
-
// v39: a finished task whose proof is short or refuted reads as
|
|
262
|
-
// waiting on you too — the same split the inbox and board make.
|
|
263
223
|
needsVerification: mine(tasks).filter(one => one.state === "done" && !one.proofAccepted && (one.proofVerdict === "short" || one.proofVerdict === "refuted")).length,
|
|
264
224
|
};
|
|
265
225
|
});
|
|
@@ -282,12 +242,6 @@ export function decisionsOver(store, repos, now) {
|
|
|
282
242
|
truncated: snapshot.decisionsSaturated,
|
|
283
243
|
};
|
|
284
244
|
}
|
|
285
|
-
/**
|
|
286
|
-
* One decision as a proposer may read it (mate arc v3, rule change #3):
|
|
287
|
-
* the question, each option's id, label, reversibility, and consequence —
|
|
288
|
-
* never the recap or the builder's recommendation. `repoIndex` names the
|
|
289
|
-
* task's repo for the view; a decision outside `repos` is null.
|
|
290
|
-
*/
|
|
291
245
|
export function decisionOver(store, repos, decisionId, now) {
|
|
292
246
|
const decision = store.getDecision(decisionId);
|
|
293
247
|
if (decision === null)
|
|
@@ -299,8 +253,6 @@ export function decisionOver(store, repos, decisionId, now) {
|
|
|
299
253
|
const repoIndex = repos.indexOf(ref.repo);
|
|
300
254
|
if (repoIndex === -1)
|
|
301
255
|
return null;
|
|
302
|
-
// "Open" is derived, not stored (v3 review, finding 7): a decision past
|
|
303
|
-
// its deadline is expired here whether or not the sweep has run.
|
|
304
256
|
const state = decision.supersededReason !== null ? "closed" : decision.state === "open" && decision.deadline !== null && Date.parse(decision.deadline) <= now.getTime() ? "expired" : decision.state;
|
|
305
257
|
return {
|
|
306
258
|
repoIndex,
|
|
@@ -326,7 +278,6 @@ export function queueOver(store, repo, now) {
|
|
|
326
278
|
return { queueRevision: store.queueRevision(), columns: ordered.map(([column, tasks]) => ({ column, tasks })) };
|
|
327
279
|
}
|
|
328
280
|
export const ISO_STAMP_RULE = ISO_STAMP;
|
|
329
|
-
/** Whether a queued task's scope stands approved as written. */
|
|
330
281
|
function scopeStandingOf(store, taskId) {
|
|
331
282
|
const scope = store.getScope(taskId);
|
|
332
283
|
if (scope === null)
|
|
@@ -337,15 +288,6 @@ function scopeStandingOf(store, taskId) {
|
|
|
337
288
|
}
|
|
338
289
|
const ROLE_WORD = { plan: "planner", build: "builder", repair: "repair", review: "reviewer" };
|
|
339
290
|
const ROLE_OF_WORD = { planner: "plan", plan: "plan", builder: "build", build: "build", repair: "repair", reviewer: "review", review: "review" };
|
|
340
|
-
/**
|
|
341
|
-
* THE AGENTS A TASK RUNS UNDER, as chat reads them (v48): the task's size,
|
|
342
|
-
* the same one-line summary the task page and CLI
|
|
343
|
-
* print, each role's exact agent with its reasons, the standing of those
|
|
344
|
-
* agents (approved / awaiting approval / recommended), and — for a
|
|
345
|
-
* proposal — only the configured, role-valid choices an operator could
|
|
346
|
-
* pick. Nothing here is a term chat may bind on its own; every change goes
|
|
347
|
-
* through a confirmed card into the one authenticated edit transaction.
|
|
348
|
-
*/
|
|
349
291
|
export function agentsOver(store, taskId, now) {
|
|
350
292
|
const ref = store.lookupRef(taskId);
|
|
351
293
|
if (ref === null)
|
|
@@ -379,31 +321,18 @@ export function agentsOver(store, taskId, now) {
|
|
|
379
321
|
demands: route.demands.filter(reason => !/review/i.test(reason)),
|
|
380
322
|
agents: route.legs.filter(leg => leg.phase !== "review").map(leg => ({ role: ROLE_WORD[leg.phase], provider: leg.provider, model: leg.model, chosen: chosenWords(leg), reasons: leg.reasons.map(reason => reason.replace("builder and reviewer", "builder")), problem: leg.problem })),
|
|
381
323
|
problems: routeProblems(route),
|
|
382
|
-
// Only SELECTABLE choices are offered to the lead: a current agent the
|
|
383
|
-
// configuration no longer names appears under `agents` (what runs
|
|
384
|
-
// today) and nowhere a proposal could pick it.
|
|
385
324
|
choices: Object.fromEntries(PHASES.filter(phase => phase !== "review").map(phase => [ROLE_WORD[phase], choices[phase].filter(one => one.selectable).map(one => ({ provider: one.provider, model: one.model, current: one.current }))])),
|
|
386
325
|
};
|
|
387
326
|
}
|
|
388
|
-
/**
|
|
389
|
-
* The tools every request advertises (docs/plans/lead-deferred-tools.md): the ones most replies use, and every tool a
|
|
390
|
-
* guard requires read in an earlier step (search_project_memory before any proposal, get_capabilities before work that
|
|
391
|
-
* needs an agent, get_result before propose_review, get_decision before propose_answer). The rest are found with
|
|
392
|
-
* find_tools and advertised from the next request of the same reply.
|
|
393
|
-
*/
|
|
394
327
|
export const LEAD_CORE_TOOLS = new Set([
|
|
395
328
|
"find_tools", "get_brief", "recap", "list_repos", "get_project_context", "get_project_activity", "search_project_memory", "get_capabilities",
|
|
396
329
|
"list_tasks", "get_task", "get_result", "get_diff", "get_check_log", "list_decisions", "get_decision",
|
|
397
330
|
"get_actions", "get_action_status", "propose_action", "propose_task", "propose_start", "propose_scope", "propose_steer",
|
|
398
331
|
"propose_answer", "propose_review", "remember", "ask_owner", "commit_to",
|
|
399
|
-
// The lead's queue verbs: basic, and small enough that deferring them saves almost nothing.
|
|
400
332
|
"queue", "propose_next", "propose_reserve", "propose_hold", "propose_unhold", "propose_cancel",
|
|
401
|
-
// Task and result acts a reply uses often (links to a control, a result's images and evidence, the task's own acts):
|
|
402
|
-
// small, so deferral is kept for the large, occasional families (flows, subagents, sweeps, project tools).
|
|
403
333
|
"show_control", "get_controls", "get_result_images", "get_acceptance_evidence", "offer_approval", "propose_task_action", "propose_agents",
|
|
404
334
|
"get_agents", "propose_dependency_repair",
|
|
405
335
|
]);
|
|
406
|
-
/** Words a deferred tool is found by, beyond its name and description. */
|
|
407
336
|
const LEAD_TOOL_KEYWORDS = {
|
|
408
337
|
show_card: ["findings", "handover", "card", "table", "chart", "graph", "report", "summary", "numbers", "data", "spend", "projects", "builders", "workers", "integrations", "show", "dashboard"],
|
|
409
338
|
propose_flow: ["flow", "automation", "workflow", "schedule", "trigger", "every", "when", "email", "inbox", "sort", "follow-up", "nudge"],
|
|
@@ -427,16 +356,13 @@ const LEAD_TOOL_KEYWORDS = {
|
|
|
427
356
|
release_commitment: ["promise", "commitment", "release", "forget"],
|
|
428
357
|
get_person: ["person", "people", "who", "member", "teammate"],
|
|
429
358
|
};
|
|
430
|
-
/** At most this many find_tools searches per reply, results per search, and bytes of found tool schemas per reply. */
|
|
431
359
|
export const FIND_TOOLS_PER_TURN = 3;
|
|
432
360
|
export const FIND_TOOLS_MAX_RESULTS = 6;
|
|
433
361
|
export const FIND_TOOLS_SCHEMA_BYTES = 48_000;
|
|
434
362
|
const FIND_TOOLS_NONE = "Nothing matched. The other tools cover flows, subagents, sweeps, agents and models, project tools and integrations, controls and settings pages, holds and the queue, task actions (retry, stop, merge), result images and evidence, people, and promises — search again with one of those words.";
|
|
435
363
|
const MAKE_WORDS = new Set(["make", "add", "create", "set", "draft", "new", "start", "change", "edit", "build", "run", "hold", "cancel", "release", "move", "switch", "turn"]);
|
|
436
364
|
const LOOK_WORDS = new Set(["show", "list", "see", "what", "which", "how", "check", "read", "look", "find", "open", "where"]);
|
|
437
|
-
/** The deferred tools a query finds, best first: an exact name, then words in the name, keywords and description. */
|
|
438
365
|
export function findLeadTools(query) {
|
|
439
|
-
// A plural matches its singular ("sweeps" finds sweep tools).
|
|
440
366
|
const words = query.toLowerCase().split(/[^a-z0-9-]+/).filter(one => one.length >= 3).map(one => one.length > 4 && one.endsWith("s") && !one.endsWith("ss") ? one.slice(0, -1) : one);
|
|
441
367
|
const exact = query.trim().toLowerCase();
|
|
442
368
|
const scored = LEAD_TOOLS.filter(tool => !LEAD_CORE_TOOLS.has(tool.name)).map(tool => {
|
|
@@ -445,7 +371,6 @@ export function findLeadTools(query) {
|
|
|
445
371
|
let score = name === exact ? 100 : 0;
|
|
446
372
|
for (const word of words)
|
|
447
373
|
score += (name.includes(word) ? 5 : 0) + (keywords.includes(word) ? 3 : 0) + (description.includes(word) ? 1 : 0);
|
|
448
|
-
// What the person wants done leans the match: making or changing something → a proposal; looking → a read.
|
|
449
374
|
if (score > 0 && words.some(word => MAKE_WORDS.has(word)))
|
|
450
375
|
score += name.startsWith("propose_") ? 4 : 0;
|
|
451
376
|
if (score > 0 && words.some(word => LOOK_WORDS.has(word)))
|
|
@@ -454,12 +379,10 @@ export function findLeadTools(query) {
|
|
|
454
379
|
}).filter(one => one.score > 0).sort((a, b) => b.score - a.score || a.tool.name.localeCompare(b.tool.name));
|
|
455
380
|
return scored.slice(0, FIND_TOOLS_MAX_RESULTS).map(({ tool }) => ({ name: tool.name, summary: summaryLine(tool.description) }));
|
|
456
381
|
}
|
|
457
|
-
/** A description's first sentence, at most 160 characters. */
|
|
458
382
|
function summaryLine(description) {
|
|
459
383
|
const first = /^(.+?[.!?])(\s|$)/.exec(description)?.[1] ?? description;
|
|
460
384
|
return first.length <= 160 ? first : `${first.slice(0, 157).trimEnd()}…`;
|
|
461
385
|
}
|
|
462
|
-
/** A fixed destination this person may open, checked once for show_control and for a card's Button. */
|
|
463
386
|
function controlTarget(ctx, args) {
|
|
464
387
|
const control = args["control"];
|
|
465
388
|
if (!isChatControl(control))
|
|
@@ -486,7 +409,6 @@ function controlTarget(ctx, args) {
|
|
|
486
409
|
}
|
|
487
410
|
return { ok: true, control, task, project, run };
|
|
488
411
|
}
|
|
489
|
-
/** A card's Button: a control by show_control's own checks, or a proposal drafted earlier in this very reply. */
|
|
490
412
|
function cardButtonOf(ctx, props) {
|
|
491
413
|
if (props["proposal"] !== undefined) {
|
|
492
414
|
const proposal = ctx.store.getLeadProposal(Number(props["proposal"]));
|
|
@@ -502,7 +424,6 @@ function cardButtonOf(ctx, props) {
|
|
|
502
424
|
return target;
|
|
503
425
|
return { ok: true, button: { label: CHAT_CONTROLS[target.control].label, path: chatControlHref(target.control, target.task ?? "", target.run, target.project ?? undefined) } };
|
|
504
426
|
}
|
|
505
|
-
/** What a card reads, as this person, through the reads the lead's own tools use. */
|
|
506
427
|
function cardReaderOf(ctx) {
|
|
507
428
|
const capabilities = (repos) => capabilitiesOf(ctx.store, { repos, admitted: ctx.who.repos, actor: ctx.who.name, integrations: ctx.integrations?.() ?? integrationsNow(integrationIoOf(ctx)), ...(ctx.authMode === undefined ? {} : { authMode: ctx.authMode }), now: ctx.now });
|
|
508
429
|
return { store: ctx.store, now: ctx.now, who: ctx.who, ...(ctx.evidenceRoot === undefined ? {} : { evidenceRoot: ctx.evidenceRoot }), integrations: () => ctx.integrations?.() ?? integrationsNow(integrationIoOf(ctx)),
|
|
@@ -511,7 +432,6 @@ function cardReaderOf(ctx) {
|
|
|
511
432
|
}
|
|
512
433
|
const LEAD_TOOL_HANDLERS = {
|
|
513
434
|
find_tools: {
|
|
514
|
-
// Counted before the call is read, so an invalid search still uses one of the reply's three.
|
|
515
435
|
prepare: (ctx, raw) => { if (ctx.findTools !== undefined)
|
|
516
436
|
ctx.findTools.searches++; return raw; },
|
|
517
437
|
description: "Find the lead's other tools by what you want to do — flows, subagents, sweeps, agents and models, project tools and integrations, controls and settings pages, holds and the queue, task actions (retry, stop, merge), result images and evidence, people, promises. Search before saying something can't be done. Matching tools become available from your next step in this reply: call them then, not in the same step.",
|
|
@@ -609,7 +529,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
609
529
|
return { ok: false, message: 'Use propose_flow for flows.' };
|
|
610
530
|
if (operation.startsWith('subagent_'))
|
|
611
531
|
return { ok: false, message: 'Use propose_subagent for subagents.' };
|
|
612
|
-
// A Start card is drafted only by propose_start, whose preview comes from the turn loop, never from arguments.
|
|
613
532
|
if (operation === 'task_start')
|
|
614
533
|
return { ok: false, message: 'Use propose_start for a small change to start now.' };
|
|
615
534
|
const input = { ...args };
|
|
@@ -731,7 +650,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
731
650
|
if (task === null || admittedRef(ctx, task) === null)
|
|
732
651
|
return notFound();
|
|
733
652
|
const current = ctx.store.taskFamilyOf(task, ctx.who.repos, false)?.current.id ?? task;
|
|
734
|
-
// Its buttons go to the paired Telegram chat (pairedHere), so it is that chat's authority that counts.
|
|
735
653
|
const plan = planInChat(ctx.store, current, ctx.who.name, ctx.now, "telegram", ctx.evidenceRoot);
|
|
736
654
|
if (!plan.ok)
|
|
737
655
|
return { ok: true, body: { offered: false, task: current, why: plan.why, control: "approval" } };
|
|
@@ -870,7 +788,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
870
788
|
const ref = ctx.store.lookupRef(task);
|
|
871
789
|
if (ref === null)
|
|
872
790
|
return { ok: false, message: "That task is not in your projects." };
|
|
873
|
-
// Only what THIS ask selected is recorded under the turn; the turn's own cap still holds across asks.
|
|
874
791
|
const recorded = new Set(ctx.selectEvidence?.(selection.selected.map(one => ({ taskId: task, taskRef: ref.id, run: selection.run, artifact: one.artifact, sha256: one.sha256, format: one.format, bytes: one.bytes, caption: one.caption }))) ?? []);
|
|
875
792
|
const documents = ctx.mediaDelivery === "documents";
|
|
876
793
|
const selectedImages = documents ? selection.selected.filter(one => recorded.has(one.artifact)) : selection.selected;
|
|
@@ -994,7 +911,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
994
911
|
const reachable = (repo) => ctx.who.repos.includes(repo) && ctx.store.accountCanAccess(ctx.who.name, repo);
|
|
995
912
|
const needsYou = (flow, definition, card) => {
|
|
996
913
|
const at = definition?.stages.find(one => one.id === card.stage);
|
|
997
|
-
// A "Person chooses" zone waits for the card's person; a "Person decides" one for its decider.
|
|
998
914
|
if (at?.kind === "choose")
|
|
999
915
|
return flowPersonOf(card, flow) === ctx.who.name;
|
|
1000
916
|
if (at?.kind !== "approval")
|
|
@@ -1014,7 +930,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1014
930
|
const active = cards.filter(one => one.state === "active"), finished = cards.filter(one => one.state !== "active").slice(-10);
|
|
1015
931
|
return { ok: true, body: {
|
|
1016
932
|
flow: flow.id, name: flow.name, project: repoIdOf(ctx.who, flow.repo),
|
|
1017
|
-
// Browser use (flow-browser.ts), only for a flow whose script zones start one. Names never reach the model.
|
|
1018
933
|
...(() => {
|
|
1019
934
|
const view = browserViewOf(ctx.store, flow);
|
|
1020
935
|
return view === null ? {} : { browser: view.status === "allowed" ? "allowed: its browser zones may start Chromium (turn_off_browser stops it)"
|
|
@@ -1045,13 +960,11 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1045
960
|
cards: [...active, ...finished].map(card => ({
|
|
1046
961
|
card: card.id, title: card.title, ...(card.description === null ? {} : { description: card.description.slice(0, 300) }),
|
|
1047
962
|
at: titleOf(card.stage) ?? card.stage, state: card.state, needsYou: card.state === "active" && needsYou(flow, definition, card),
|
|
1048
|
-
// Names never reach the model; a decision says whose it is in its own terms.
|
|
1049
963
|
waiting: card.state === "active" && definition.stages.find(one => one.id === card.stage)?.kind === "choose" && card.waiting !== null
|
|
1050
964
|
? (flowPersonOf(card, flow) === ctx.who.name ? "Waiting for you to choose (operation choose: choice by number, or note to reply)" : "Waiting for someone else to choose")
|
|
1051
965
|
: card.state !== "active" || definition.stages.find(one => one.id === card.stage)?.kind !== "approval" || card.waiting === null ? card.waiting
|
|
1052
966
|
: needsYou(flow, definition, card) ? "Waiting for you to approve or send it back" : "Waiting for someone else to decide",
|
|
1053
967
|
task: card.task ?? card.primaryTask, ...(card.note === null ? {} : { lastNote: card.note.slice(0, 300) }),
|
|
1054
|
-
// Names never reach the model: people read as you or a subagent.
|
|
1055
968
|
owner: card.owner === null ? null : card.owner === ctx.who.name ? "you" : "another person", following: ctx.store.flowCardWatchers(card.id).includes(ctx.who.name),
|
|
1056
969
|
...(() => {
|
|
1057
970
|
const said = ctx.store.flowComments(card.id).filter(one => one.kind === "comment");
|
|
@@ -1064,7 +977,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1064
977
|
return { trigger: trigger.id, kind: trigger.kind, what: config === null ? "can't be read" : describeTrigger(config, ctx.store),
|
|
1065
978
|
startsIn: titleOf(config?.zone ?? definition.start), state: trigger.state, lastCheck: trigger.lastOutcome };
|
|
1066
979
|
}),
|
|
1067
|
-
// "Runs on its own" is the owner's own yes, on its card or the flow page; a model only proposes it.
|
|
1068
980
|
runsOnItsOwn: (() => {
|
|
1069
981
|
const own = activeUnattendedGrant(ctx.store, flow.id, ctx.now);
|
|
1070
982
|
return own === null || own.terms.flowRevision !== flow.revision ? { on: false, change: `Propose allow_unattended with days: the owner's own yes turns it on. Or the flow page: /flows/${flow.id}` }
|
|
@@ -1085,7 +997,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1085
997
|
cards: cards.length, needYou: cards.filter(card => needsYou(flow, definition, card)).length, triggers: ctx.store.flowTriggers(flow.id).length };
|
|
1086
998
|
}),
|
|
1087
999
|
templates: FLOW_TEMPLATES.map(one => ({ template: one.id, about: one.about })),
|
|
1088
|
-
// Scripts belong to a project, not a flow: they exist (and can be saved) before any flow does.
|
|
1089
1000
|
scripts: (repo === null ? ctx.who.repos : [repo]).filter(reachable).map(one => ({ project: repoIdOf(ctx.who, one), scripts: ctx.store.flowScripts(one).map(script => ({ name: script.name, about: script.about, version: script.version })) })),
|
|
1090
1001
|
rule: "Scripts belong to a project, not to a flow: save one with propose_flow save_script and the project's repo, even before any flow exists. A 'check' step in any flow of that project runs it by name.",
|
|
1091
1002
|
} };
|
|
@@ -1093,7 +1004,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1093
1004
|
},
|
|
1094
1005
|
propose_flow: {
|
|
1095
1006
|
description: "Draft a flow change as a card the operator confirms. To make a flow, create with a template or the steps in plain names; leave instructions out unless the operator gave them, and use decider 'me' when they decide. To change one, edit with the whole step list, keeping existing steps by id. For cards use add_card, move_card, approve, send_back with the operator's note, or cancel_card; find the card by what it is about; comment (with @name to ping someone), assign and follow here too. For triage, spam, lead, effort or exception routing, start from the matching template, with the sort as the first step. Use remindAfter and thenMoveTo for follow-ups and decisions that stall. The Issues to PRs template runs GitHub issues labelled toolroll through build, approval, pull request and a comment on the issue. When the operator asks for something to happen every time (fix CI when it fails, turn labelled issues into tasks, queue work overnight, review what went wrong every morning), offer the matching starter; each is one yes, and none merges without a person. When someone new wants a support desk, bug triage, sales follow-up or requests handled, a kit sets up the subagent and its flow in one card. Subagents: propose_subagent adds one (from a template: support, sales, ops, triage), changes one rule section (edit_section), pauses, resumes or removes it, passes it a note, or answers its question for the operator; put it to work with a flow here. When the operator says something like 'Maya can approve refunds up to $100 now', change that section of her soul file; when it's for this week or a one-off, pass it as a note. Subagents use the project's tools under a rule per action (do it, ask first: the operator approves each exact call, never, or up to a limit on a number); propose_subagent use_tool, stop_tool and tool_rule change them, and when a rule has a limit also change the soul file so its words agree. forget or edit_memory when the operator says a subagent has something wrong; a rule change it suggests is a question for the operator, answered only as they say. propose_subagent add_routine puts a card on its desk on a schedule; propose_subagent undo undoes a tool call only when its action has an undo set (tool_rule undoWith). Actions: starter: switch on a starter flow in a project (repo, starter: ci-fix files a fix task when CI fails on the main branch, issue-task makes a task of each GitHub issue labelled toolroll, overnight holds cards added in the day until 22:00 and leaves results for the morning, plane-review reviews the plane's last 24 hours every morning and turns each problem worth fixing into a researched fix and a pull request) — its zones and trigger in one card; offer the matching one when the operator says to do something every time. kit: set up a starter kit in a project (repo, kit: support-desk, bug-triage, sales-follow-up or ops-requests) — a subagent, the flow it works and its buttons, in one card; prefer it when the operator wants a support desk, bug triage, sales follow-up or requests handled. create: a template, or the steps in order (each leads to the next; Done is added; instructions may be left out). 'request' calls a web address (method, url with its host written out, headers — {{secret.NAME}} uses a secret the operator saved on the step, never in chat — and body); 'email' sends mail (to, subject, body; {{card.email}} is the card's email address); 'tool' calls one of the project's tools (server: the tool's name from get_project_tools, tool: its function, args: an object). Put a decision before any of these when they send what a model wrote or what an outsider sent. A 'draft' step has Claude write something from the card (instructions: what to write); follow it with an approval step (decider 'owner' asks the flow's owner in their chat app, where they can approve, edit or send it back), then an 'update' or 'notify' step whose message is '{{stage.<draft id>}}'. A 'sort' step has Jev pick one of its answers; make it the first step (never a holding step before it, or new cards wait unsorted): question, answers (answer, means: a few words Jev reads, goesTo: a step), sureAt (percent, default 80), ifNotSure (a step; otherwise the card waits for a person), and up to 3 alsoNote (score with levels lowest first, or yes-no); a sort has no next, so give each branch's last step its own next. A 'pull-request' step opens a pull request for the card's built result and waits for CI: next when it passes, ifFails when it fails (only this step defaults it: to the build before it, as a revision carrying the failing check); merge ('squash', 'merge' or 'rebase') merges once checks pass, and needs an approval step before it on every path. waitFor 'hours' with from and until (like '22:00' and '06:00') holds cards until the clock is inside those hours. A 'wait' step, after an 'email' step, waits for a reply to that email from someone it went to (waitFor 'reply', the default): next is where a reply goes (the reply is {{stage.<wait id>}}), ifNoReply where the card goes when none comes within wait (like '3 days', up to 30 days); waitFor 'time' just waits, then next. Any step but wait and done can have remindAfter (like '2 days': whoever it waits on is reminded once; 'none' removes it) and, on holding and approval steps, thenMoveTo (a step the card moves to then). subagents (get_subagents): an approval step with subagent (its short name) is decided by that subagent within its rules, and it hands hard ones to the step's decider; a 'subagent' step (subagent, instructions, routes of answer and goesTo) has it read the card, pick where it goes and write what the next steps send (the email body is then {{stage.<id>}}), asking the flow's owner when its rules say to. edit: the full step list, keeping existing steps by id — what a kept step leaves out carries over. add_card (starts in the first zone unless zone is named), move_card, approve, send_back (needs a note), cancel_card, comment (note; @name pings that person), assign (owner: a name, 'me', or 'nobody'), follow, unfollow, save_script (repo, and script: name, about, language python|node|shell, and either body (short) or file (a path in the project, like scripts/enrich.py), and timeoutMinutes; scripts belong to the project, so no flow is needed; a 'check' step in any of its flows names it). A 'check' step runs its script with the card as JSON on stdin (and in $FLOW_INPUT); what it prints is its result for later steps ({{stage.<id>}}); runIn 'folder' (an empty folder: for scripts that work on data) or 'copy' (a copy of the card's work, after setup: for tests on code; the default); routes (answer, goesTo) that a last printed line 'goto: <answer>' picks; ifFails is where a failing script sends the card, such as back to the build (it has no default: without it the card waits there); secrets (names of saved secrets it gets as variables). add_trigger with settings (kind button: label, questions; schedule: schedule like 'daily 09:00 Europe/London', and title, or script (a saved script whose printed items — one per line, a title or JSON with title, description, key — each become a card, once) with secrets; github: repo owner/name, watch issues|pulls|checks, label, branch, from team|anyone; linear: team, state, label; flow: follow (another flow's id), when (its zone); email: folder (default INBOX), sender (addresses or domains), subject (words it must contain); plane-review: at (HH:MM, default 07:30), timeZone — every day it reads the plane's last 24 hours and makes one card per problem worth fixing, a returning problem joining its card); pause_trigger, resume_trigger, remove_trigger with trigger. A 'send' step ('Send to me') sends the card's owner what the step before produced (summary, links, screenshots) in their chat apps, then moves on; a 'choose' step sends the same with 2 to 4 options (label, goesTo: a step, or 'end' to ignore the card) as buttons, ifReplied (where a reply goes as {{note}}; the build before by default), and remindAfter with ifNoReply. choose (card, and choice by number or a note to reply) answers one for the operator. A 'task' step may build in another project: repo (from list_repos). Read get_flows first except to create. allow_browser (flow): when get_flows says a flow's browser zones wait, propose allowing them to start Chromium; the operator allows it with their own password in the secure screen, never on the card. turn_off_browser (flow) stops it.",
|
|
1096
|
-
// An edit's kept steps may leave their kind and name to the zone they keep: they are filled in before the call is read.
|
|
1097
1007
|
prepare: (ctx, given) => {
|
|
1098
1008
|
const editing = given["operation"] === "edit" && Number.isSafeInteger(given["flow"]) ? ctx.store.getFlow(Number(given["flow"])) : null;
|
|
1099
1009
|
const kept = editing !== null && ctx.who.repos.includes(editing.repo) ? flowDefinitionOf(editing) : null;
|
|
@@ -1102,8 +1012,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1102
1012
|
handle: (ctx, read) => {
|
|
1103
1013
|
const args = read;
|
|
1104
1014
|
const pick = (keys) => Object.fromEntries(keys.filter(key => args[key] !== undefined).map(key => [key, args[key]]));
|
|
1105
|
-
// "me" in a step means the operator; the drawing stores their name.
|
|
1106
|
-
// A build step in another project names it as list_repos does (r2); the drawing keeps its path.
|
|
1107
1015
|
const steps = () => stepsFor(Array.isArray(args["steps"]) ? args["steps"] : [], ctx.who.name).map(step => {
|
|
1108
1016
|
if (step === null || typeof step !== "object" || step.repo === undefined)
|
|
1109
1017
|
return step;
|
|
@@ -1120,7 +1028,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1120
1028
|
try {
|
|
1121
1029
|
switch (args["operation"]) {
|
|
1122
1030
|
case "starter": {
|
|
1123
|
-
// a starter flow — its zones and its trigger, one yes.
|
|
1124
1031
|
const repo = repoPathOf(ctx.who, args["repo"]);
|
|
1125
1032
|
if (repo === null)
|
|
1126
1033
|
return { ok: false, message: "Choose a project from list_repos." };
|
|
@@ -1129,7 +1036,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1129
1036
|
break;
|
|
1130
1037
|
}
|
|
1131
1038
|
case "kit": {
|
|
1132
|
-
// a starter kit — a subagent, the flow it works, its buttons.
|
|
1133
1039
|
const repo = repoPathOf(ctx.who, args["repo"]);
|
|
1134
1040
|
if (repo === null)
|
|
1135
1041
|
return { ok: false, message: "Choose a project from list_repos." };
|
|
@@ -1211,7 +1117,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1211
1117
|
}
|
|
1212
1118
|
case "add_trigger": {
|
|
1213
1119
|
const settings = args["settings"] !== null && typeof args["settings"] === "object" ? { ...args["settings"] } : {};
|
|
1214
|
-
// A trigger following another flow names it as "follow"; the drawing stores it as the flow it follows.
|
|
1215
1120
|
if (settings["follow"] !== undefined) {
|
|
1216
1121
|
settings["flow"] = settings["follow"];
|
|
1217
1122
|
delete settings["follow"];
|
|
@@ -1232,7 +1137,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1232
1137
|
operation = "flow_trigger_remove";
|
|
1233
1138
|
input = pick(["trigger"]);
|
|
1234
1139
|
break;
|
|
1235
|
-
// Browser use in the flow's script zones: a proposal only; the person allows it with their own yes on its card.
|
|
1236
1140
|
case "allow_browser":
|
|
1237
1141
|
operation = "flow_browser";
|
|
1238
1142
|
input = pick(["flow"]);
|
|
@@ -1283,17 +1187,13 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1283
1187
|
worksOn: zonesOf(ctx.store, mate).map(one => ({ flow: one.flow, flowName: one.flowName, zone: one.title, how: one.kind })),
|
|
1284
1188
|
today: summaryOf(ctx.store, mate, today.toISOString()).said,
|
|
1285
1189
|
questions: ctx.store.openSubagentQuestions([mate.id]).map(one => ({ question: one.id, card: one.card, asks: one.question, options: one.options.map(option => option.label), askedOf: whoIs(one.askedOf), ...(one.toolCall === null ? {} : { approvesToolCall: true }), ...(one.suggestion === null ? {} : { suggestsRuleChange: true }) })),
|
|
1286
|
-
// v96: where messages to it by name and its routines land, and its routines.
|
|
1287
1190
|
desk: deskOf(ctx.store, mate)?.id ?? null,
|
|
1288
1191
|
routines: routinesOf(ctx.store, mate).map(one => ({ routine: one.id, schedule: one.schedule, text: one.text, working: one.state === "active", last: one.lastOutcome })),
|
|
1289
|
-
// v95: what it remembers (what people told it, and what it kept), newest first.
|
|
1290
1192
|
memory: ctx.store.subagentMemories(mate.id, { limit: args["subagent"] === undefined ? 5 : 40 }).map(one => ({ memory: one.id, text: one.text, from: one.source === "person" ? whoIs(one.createdBy) : "itself" })),
|
|
1291
|
-
// v94: the tools it may use, and its rule for each action.
|
|
1292
1193
|
tools: ctx.store.subagentGrants(mate.id).map(grant => ({ tool: grant.tool, actions: grant.actions.map(action => ({ action: action.name, rule: ruleWords(grant.rules[action.name] ?? defaultRule(action)) })) })),
|
|
1293
1194
|
...(args["subagent"] === undefined ? {} : {
|
|
1294
1195
|
recent: ctx.store.subagentEvents(mate.id, 30).map(one => ({ kind: one.kind, said: one.said, at: one.at })),
|
|
1295
1196
|
toolCalls: ctx.store.subagentCallsOf(mate.id, 20).map(one => ({ call: one.id, card: one.card, what: callWords(one.tool, one.action, one.input, 200), outcome: callOutcome(one), at: one.createdAt, ...(undoFor(ctx.store, one) === null ? {} : { undoWith: undoFor(ctx.store, one) }) })),
|
|
1296
|
-
// v97: its week, as its manager's report reads.
|
|
1297
1197
|
week: weekWords(mate, weekOf(ctx.store, mate, ctx.now)),
|
|
1298
1198
|
}),
|
|
1299
1199
|
})),
|
|
@@ -1360,7 +1260,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1360
1260
|
const mate = Number.isSafeInteger(args["subagent"]) ? ctx.store.getSubagent(Number(args["subagent"])) : null;
|
|
1361
1261
|
if (mate === null || !ctx.who.repos.includes(mate.repo))
|
|
1362
1262
|
return { ok: false, message: "Choose a subagent from get_subagents." };
|
|
1363
|
-
// A tool's name and one of its actions: "shop" and "refund_order", also taken as "shop.refund_order", or the action alone when one tool has it.
|
|
1364
1263
|
let tool = typeof args["tool"] === "string" ? args["tool"].trim() : "", action = typeof args["action"] === "string" ? args["action"].trim() : "";
|
|
1365
1264
|
const dot = tool.search(/\.|→/);
|
|
1366
1265
|
if (dot > 0) {
|
|
@@ -1496,7 +1395,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1496
1395
|
const thread = ctx.store.liveLeadThreadFor(ctx.who.name, { kind: "task", key: root });
|
|
1497
1396
|
if (thread === null || thread.ceilingDigest !== ctx.who.ceilingDigest)
|
|
1498
1397
|
return { ok: true, body: { task: root, messages: [], notice: "No conversation about this task yet." } };
|
|
1499
|
-
// What the lead reads of a task's conversation is what it has been told: admitted messages only (v128).
|
|
1500
1398
|
const messages = ctx.store.listLeadHistory(thread.id, limit).map(one => ({ from: one.role === "operator" ? "operator" : "lead", text: one.text.length > 1_200 ? `${one.text.slice(0, 1_200)}…` : one.text, at: one.createdAt }));
|
|
1501
1399
|
return { ok: true, body: { task: root, title: family?.root.title ?? null, messages, notice: messages.length === limit ? "Only the most recent messages are shown." : null } };
|
|
1502
1400
|
},
|
|
@@ -1598,7 +1496,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1598
1496
|
if (!honest(args["text"], 240))
|
|
1599
1497
|
return { ok: false, message: "Say the correction in one sentence." };
|
|
1600
1498
|
const text = String(args["text"]).trim();
|
|
1601
|
-
// One card per correction: a card still waiting in this conversation for the same change is the one to confirm.
|
|
1602
1499
|
const waiting = ctx.thread === undefined ? [] : ctx.store.listLeadProposals(ctx.thread, ["drafting", "pending", "confirming"])
|
|
1603
1500
|
.filter(one => one.kind === "action" && one.payload["repo"] === repo);
|
|
1604
1501
|
const same = (words) => typeof words === "string" && words.trim().toLowerCase() === text.toLowerCase();
|
|
@@ -1614,7 +1511,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1614
1511
|
}
|
|
1615
1512
|
else if (args["kind"] === "instruction") {
|
|
1616
1513
|
const view = knowledgeView(ctx.store, repo, ctx.who.name), current = view.knowledge.instructions.trim();
|
|
1617
|
-
// The card adds a line to the instructions the lead read; once they have changed it would replace someone else's edit.
|
|
1618
1514
|
if (args["revision"] === undefined)
|
|
1619
1515
|
return { ok: false, message: "Pass the instructions revision from your catch-up (0 when the project has none)." };
|
|
1620
1516
|
if (args["revision"] !== view.revision)
|
|
@@ -1651,7 +1547,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1651
1547
|
const name = typeof args["name"] === "string" && args["name"].trim() !== "" ? args["name"] : undefined;
|
|
1652
1548
|
if (id === undefined && name === undefined)
|
|
1653
1549
|
return { ok: false, message: "Give an id from your catch-up's people index or a name." };
|
|
1654
|
-
// In a team chat, the same people the room's catch-up lists: that room and its members.
|
|
1655
1550
|
const found = personEntry(ctx.store, ctx.who.name, ctx.who.repos, { ...(id === undefined ? {} : { id }), ...(name === undefined ? {} : { name }) }, teamRoomOf(ctx.store, ctx.thread));
|
|
1656
1551
|
if (found === null)
|
|
1657
1552
|
return { ok: false, message: "No one by that name or id works with you. Your catch-up's people index lists who does." };
|
|
@@ -1679,7 +1574,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1679
1574
|
return { ok: false, message: "Choose a project from list_repos." };
|
|
1680
1575
|
const repos = repo === null ? ctx.who.repos.slice(0, 8) : [repo];
|
|
1681
1576
|
const found = capabilitiesOf(ctx.store, { repos, admitted: ctx.who.repos, actor: ctx.who.name, integrations: ctx.integrations?.() ?? integrationsNow(integrationIoOf(ctx)), ...(ctx.authMode === undefined ? {} : { authMode: ctx.authMode }), now: ctx.now });
|
|
1682
|
-
// Only the projects actually read are covered: a proposal on one left out (past the first eight) still needs its own read.
|
|
1683
1577
|
for (const path of repos)
|
|
1684
1578
|
if (!ctx.checkedCapabilities?.has(path))
|
|
1685
1579
|
ctx.checkedCapabilities?.set(path, ctx.step);
|
|
@@ -1736,7 +1630,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1736
1630
|
});
|
|
1737
1631
|
const tools = runtimeStates(ctx.store).map(one => ({ name: one.name, installed: one.installed, latest: one.latest, updateAvailable: one.behind }));
|
|
1738
1632
|
const newModels = ["claude", "codex", "gemini"].flatMap(source => seenModels(ctx.store, source)).filter(model => isNewModel(model, ctx.now)).map(model => ({ name: model.name, id: model.id, price: priceWords(model), released: model.releasedAt }));
|
|
1739
|
-
// Results routing: the same suggestions and rules Settings → Models and `toolroll models suggestions` show.
|
|
1740
1633
|
const suggestions = ctx.who.repos.flatMap(repo => suggestionsFor(ctx.store, repo, ctx.now)).map(one => ({ id: one.id, repo: one.repo, words: suggestionWords(one),
|
|
1741
1634
|
review: `/settings/models?scope=${encodeURIComponent(one.repo)}&suggestion=${encodeURIComponent(one.id)}#models-suggested` }));
|
|
1742
1635
|
const rules = ctx.who.repos.flatMap(repo => rulesOf(ctx.store, repo, ctx.now)).map(one => ({ id: one.id, repo: one.repo, state: one.state, words: earnedRuleWords(ctx.store, one) }));
|
|
@@ -1756,9 +1649,7 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1756
1649
|
const words = searchWords(typeof args["search"] === "string" ? args["search"] : "");
|
|
1757
1650
|
if (typeof args["search"] === "string" && words.length === 0)
|
|
1758
1651
|
return { ok: false, message: "search needs a word that names the work, such as a page, feature or file" };
|
|
1759
|
-
// A search reads further back than the newest page, then ranks by how many of the words each task's title and goal hold.
|
|
1760
1652
|
const listed = ctx.store.taskFamiliesAdmitted(repo === null ? ctx.who.repos : [repo], false, { limit: words.length === 0 ? limit + 1 : SEARCH_FAMILIES, order: words.length === 0 ? "created" : "updated", ...(args["state"] === undefined ? {} : { states: [args["state"]] }) });
|
|
1761
|
-
// A put-away task (v145) is out of every list, the lead's included.
|
|
1762
1653
|
const families = (words.length === 0 ? listed : listed
|
|
1763
1654
|
.map((one, index) => ({ one, index, hits: searchHits(words, [one.root.id, one.root.title, one.current.title, ctx.store.getScope(one.current.id)?.goal ?? "", ctx.store.getScope(one.root.id)?.goal ?? ""]) }))
|
|
1764
1655
|
.filter(match => match.hits > 0)
|
|
@@ -1831,12 +1722,10 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1831
1722
|
attempts: runs.length,
|
|
1832
1723
|
lastAttempt: runs[0] === undefined ? null : { build: runs[0].id, outcome: runs[0].outcome ?? "unfinished", worker: runs[0].runner, tools: ctx.store.runTools(runs[0].id), secretsFenced: ctx.store.runFence(runs[0].id)?.method ?? null },
|
|
1833
1724
|
decisionsOpen,
|
|
1834
|
-
// Operator steering (v120), in the task page's words: read (and when), waiting, or for the next attempt.
|
|
1835
1725
|
steering: (() => {
|
|
1836
1726
|
const live = ctx.store.steeringLiveBuild(ref.id, ctx.now) !== null;
|
|
1837
1727
|
return ctx.store.listSteerNotes(ref.id).slice(-5).map(one => ({ note: one.id, filedAt: one.createdAt, state: steerStandingWords(one, live, utcMinute) }));
|
|
1838
1728
|
})(),
|
|
1839
|
-
// Live steering: the running Claude build a note reaches in seconds and a pause can reach, and its pause.
|
|
1840
1729
|
liveBuild: (() => {
|
|
1841
1730
|
const run = ctx.store.liveInputRun(ref.id, ctx.now);
|
|
1842
1731
|
if (run === null)
|
|
@@ -1845,10 +1734,7 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1845
1734
|
const until = pause?.state === "paused" && pause.pausedAt !== null && pause.limitMs !== null ? new Date(Date.parse(pause.pausedAt) + pause.limitMs).toISOString() : null;
|
|
1846
1735
|
return { build: run, pause: pause?.state ?? null, ...(until === null ? {} : { pausedUntil: until }) };
|
|
1847
1736
|
})(),
|
|
1848
|
-
// The running agent's open questions (Agents board): reply with propose_steer and its question id.
|
|
1849
1737
|
agentQuestions: openAgentQuestions(ctx.store, ref.id).map(one => ({ question: one.id, key: one.key, asks: one.question, askedAt: one.askedAt })),
|
|
1850
|
-
// "Can I merge?" (merge-checklist.ts; `toolroll task ready` is its twin): the answer and each check; a blocker
|
|
1851
|
-
// names its act (run-checks, retry, or fix: Send back with that note), which the person takes.
|
|
1852
1738
|
canMerge: (() => {
|
|
1853
1739
|
const list = mergeChecklistOf(ctx.store, taskId, ctx.now, { principal: "coordinator", repos: ctx.who.repos }, ctx.evidenceRoot);
|
|
1854
1740
|
return list === null ? null : { answer: list.answer, sentence: list.sentence,
|
|
@@ -1919,7 +1805,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1919
1805
|
if (planning !== "auto" && planning !== "required" && planning !== "skip")
|
|
1920
1806
|
return { ok: false, message: "planning is auto, required, or skip" };
|
|
1921
1807
|
const report = args["report"] === true;
|
|
1922
|
-
// A level, or the person's own words ("skip the tests", "run the full checks").
|
|
1923
1808
|
const checks = args["checks"] === undefined ? null : isCheckLevel(args["checks"]) ? args["checks"] : typeof args["checks"] === "string" ? checkLevelFromWords(args["checks"]) : null;
|
|
1924
1809
|
if (args["checks"] !== undefined && checks === null)
|
|
1925
1810
|
return { ok: false, message: "checks is quick, full or off" };
|
|
@@ -1936,8 +1821,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
1936
1821
|
if (!checked.ok)
|
|
1937
1822
|
return { ok: false, message: checked.message };
|
|
1938
1823
|
const { repo, repoId, title } = checked.input;
|
|
1939
|
-
// Eligible: a Start card from the loop's own preview (the request names it back; the card checks it is this
|
|
1940
|
-
// person's, this turn's, on chat). Anything else: today's task card, built directly, and why in the body.
|
|
1941
1824
|
const prepared = ctx.startPrepared;
|
|
1942
1825
|
let why = fastRefusalWords(prepared === undefined ? "classifier" : prepared.eligible ? "classifier" : prepared.reason);
|
|
1943
1826
|
if (prepared !== undefined && prepared.eligible) {
|
|
@@ -2019,8 +1902,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
2019
1902
|
const ref = taskId === null ? null : admittedRef(ctx, taskId);
|
|
2020
1903
|
if (taskId === null || ref === null)
|
|
2021
1904
|
return notFound();
|
|
2022
|
-
// The revision and the place are read in ONE transaction (finding 10):
|
|
2023
|
-
// the door's revision check then vouches for the position it saw.
|
|
2024
1905
|
const seen = ctx.store.transact(() => ({ queueRevision: ctx.store.queueRevision(), position: ctx.store.queuePosition(taskId) }));
|
|
2025
1906
|
if (seen.position === null)
|
|
2026
1907
|
return { ok: false, message: "that task is not queued" };
|
|
@@ -2063,9 +1944,6 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
2063
1944
|
return notFound();
|
|
2064
1945
|
if (!honest(args["reason"], 200))
|
|
2065
1946
|
return { ok: false, message: "reason is plain text ≤200" };
|
|
2066
|
-
// The operator's existing hold, if any, is the CAS material (finding
|
|
2067
|
-
// 10): a hold placed by hand after this proposal must not be
|
|
2068
|
-
// overwritten by model text when the stale card is confirmed.
|
|
2069
1947
|
const existing = ctx.store.activeHolds(ref.id, ctx.now).find(one => one.ownerKind === "operator");
|
|
2070
1948
|
const id = ctx.draft("hold", { task: taskId, repoId: ref.repoId, reason: args["reason"], sawHold: existing?.id ?? null });
|
|
2071
1949
|
if (id === null)
|
|
@@ -2106,14 +1984,11 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
2106
1984
|
}
|
|
2107
1985
|
if (task.state === "done" || task.state === "cancelled")
|
|
2108
1986
|
return { ok: false, message: "that task is finished, so guidance has no next attempt to reach" };
|
|
2109
|
-
// A pause binds to the build running now: confirming it later reaches that build or none.
|
|
2110
1987
|
const sawRun = mode === "note" ? null : ctx.store.liveInputRun(ref.id, ctx.now);
|
|
2111
1988
|
if (mode !== "note" && sawRun === null)
|
|
2112
1989
|
return { ok: false, message: `that task has no running Claude build to ${mode === "resume" ? "resume" : "pause"}; send the guidance as a note instead` };
|
|
2113
1990
|
if (mode === "resume" && ctx.store.pauseStateOf(sawRun) !== "paused")
|
|
2114
1991
|
return { ok: false, message: "that task's build isn't paused, so there is nothing to resume" };
|
|
2115
|
-
// A reply names exactly one open question of this task's running agent; the confirmation re-checks it. A reply is
|
|
2116
|
-
// an ordinary note (the confirmation files it through the question's own door), so it never rides a pause or resume.
|
|
2117
1992
|
if (typeof args["question"] === "number" && mode !== "note")
|
|
2118
1993
|
return { ok: false, message: "a reply to the agent's question is sent as a note; propose it without mode" };
|
|
2119
1994
|
const asked = typeof args["question"] === "number" ? agentQuestion(ctx.store, args["question"]) : null;
|
|
@@ -2346,12 +2221,8 @@ const LEAD_TOOL_HANDLERS = {
|
|
|
2346
2221
|
},
|
|
2347
2222
|
},
|
|
2348
2223
|
};
|
|
2349
|
-
/** The lead's tools, in the order the model is shown them: each one's inputSchema is its contract, derived. */
|
|
2350
2224
|
export const LEAD_TOOLS = Object.keys(LEAD_TOOL_INPUTS).map((name) => {
|
|
2351
2225
|
const input = LEAD_TOOL_INPUTS[name];
|
|
2352
|
-
// Flow proposals already used their strict contract in 0.9.36; keep that validation unchanged. A shared action's
|
|
2353
|
-
// unknown keys reach prepareSharedAction, whose per-operation check refused them in 0.9.36 and still does. Every other
|
|
2354
|
-
// tool ignored unknown arguments and still strips them.
|
|
2355
2226
|
const reader = name === "propose_flow" ? LEAD_TOOL_READ_INPUTS[name] : name === "propose_action" ? LEAD_TOOL_READ_INPUTS[name].loose() : LEAD_TOOL_READ_INPUTS[name].strip();
|
|
2356
2227
|
const handler = LEAD_TOOL_HANDLERS[name];
|
|
2357
2228
|
return {
|
|
@@ -2362,10 +2233,8 @@ export const LEAD_TOOLS = Object.keys(LEAD_TOOL_INPUTS).map((name) => {
|
|
|
2362
2233
|
handle: (ctx, args) => handler.handle(ctx, args),
|
|
2363
2234
|
};
|
|
2364
2235
|
});
|
|
2365
|
-
/** Pages sized under the tool-result cap once wrapped in JSON. */
|
|
2366
2236
|
const DIFF_PAGE_CHARS = 10_000;
|
|
2367
2237
|
const LOG_PAGE_CHARS = 8_000;
|
|
2368
|
-
/** A finished result the person may read: the exact run named, or the task's newest finished build. */
|
|
2369
2238
|
function finishedResultOf(ctx, args) {
|
|
2370
2239
|
const task = taskIdOf(args);
|
|
2371
2240
|
if (task === null)
|
|
@@ -2382,7 +2251,6 @@ function finishedResultOf(ctx, args) {
|
|
|
2382
2251
|
return { ok: false, message: "There is no finished result for that version yet." };
|
|
2383
2252
|
return { ok: true, task, run: found.id };
|
|
2384
2253
|
}
|
|
2385
|
-
/** A unified diff, file by file, with each file's added and removed lines. */
|
|
2386
2254
|
export function patchFiles(patch) {
|
|
2387
2255
|
return patch.split(/^(?=diff --git )/m).filter(part => part.startsWith("diff --git ")).map(part => {
|
|
2388
2256
|
const names = /^diff --git a\/(.+?) b\/(.+)$/m.exec(part);
|
|
@@ -2397,13 +2265,11 @@ export function patchFiles(patch) {
|
|
|
2397
2265
|
return { path: names?.[2] ?? names?.[1] ?? "(unnamed file)", added, removed, text: part };
|
|
2398
2266
|
});
|
|
2399
2267
|
}
|
|
2400
|
-
/** The files Settings → Integrations reads, beside this database, when the surface supplied none. */
|
|
2401
2268
|
function integrationIoOf(ctx) {
|
|
2402
2269
|
const file = ctx.store.databaseFile();
|
|
2403
2270
|
const dir = file === null ? null : dirname(file);
|
|
2404
2271
|
return { store: ctx.store, dir, telegramTokenFile: dir === null ? null : join(dir, "telegram-token"), env: process.env, repos: ctx.who.repos };
|
|
2405
2272
|
}
|
|
2406
|
-
/** The admitted project a proposal is about, when its arguments name one: the project, task, result, flow, card, subagent or decision. */
|
|
2407
2273
|
function proposalRepoOf(ctx, args) {
|
|
2408
2274
|
const { store } = ctx;
|
|
2409
2275
|
const id = (key) => Number.isSafeInteger(args[key]) && Number(args[key]) > 0 ? Number(args[key]) : null;
|
|
@@ -2424,12 +2290,6 @@ function proposalRepoOf(ctx, args) {
|
|
|
2424
2290
|
function hasRecordedDecisions(store, repo) {
|
|
2425
2291
|
return store.handle.prepare("SELECT 1 AS hit FROM project_decision WHERE repo = ? AND status = 'active' LIMIT 1").get(repo) !== undefined;
|
|
2426
2292
|
}
|
|
2427
|
-
/**
|
|
2428
|
-
* A proposal on a project with recorded decisions needs search_project_memory over that project (or every project) in an
|
|
2429
|
-
* EARLIER step of this turn, as propose_review needs get_result first: a recommendation is checked against what the
|
|
2430
|
-
* project already settled. When the arguments name no project, it could be about any of them: each admitted project
|
|
2431
|
-
* with decisions needs a search (one over every project covers them all).
|
|
2432
|
-
*/
|
|
2433
2293
|
function memoryUnsearched(ctx, name, args) {
|
|
2434
2294
|
if (!name.startsWith("propose_"))
|
|
2435
2295
|
return null;
|
|
@@ -2444,11 +2304,6 @@ function memoryUnsearched(ctx, name, args) {
|
|
|
2444
2304
|
? "Your projects have recorded decisions. Search them with search_project_memory first (leave out the project to search them all), then propose in a later step, citing any decision you rely on."
|
|
2445
2305
|
: "This project has recorded decisions. Search them with search_project_memory first, then propose in a later step, citing any decision you rely on." };
|
|
2446
2306
|
}
|
|
2447
|
-
/**
|
|
2448
|
-
* A proposal or promise whose work needs an agent, a worker or an integration (needsCapabilities) needs get_capabilities
|
|
2449
|
-
* read over its project in an EARLIER step of this turn, as a proposal needs its memory search: the
|
|
2450
|
-
* lead never promises what it has not checked can run. One that names no project is covered by any read this turn.
|
|
2451
|
-
*/
|
|
2452
2307
|
function capabilitiesUnread(ctx, name, args) {
|
|
2453
2308
|
const read = ctx.checkedCapabilities;
|
|
2454
2309
|
if (read === undefined || !needsCapabilities(name, args, ctx.channel))
|
|
@@ -2459,13 +2314,10 @@ function capabilitiesUnread(ctx, name, args) {
|
|
|
2459
2314
|
return null;
|
|
2460
2315
|
return { ok: false, message: CAPABILITIES_UNREAD };
|
|
2461
2316
|
}
|
|
2462
|
-
/** remember about-you: a card for one line about the owner. It replaces a line only when the lead names it with
|
|
2463
|
-
* replaces, and then the card shows both; otherwise the line is added. */
|
|
2464
2317
|
function rememberAboutYou(ctx, args) {
|
|
2465
2318
|
const checked = checkAboutYouLine(args["text"]);
|
|
2466
2319
|
if (!checked.ok || !honest(args["text"], 240))
|
|
2467
2320
|
return { ok: false, message: checked.ok ? "Say it in one plain line." : checked.message };
|
|
2468
|
-
// A shared team chat's lead speaks for the room; what the owner's own lead knows about them is theirs.
|
|
2469
2321
|
if (teamRoomOf(ctx.store, ctx.thread) !== null)
|
|
2470
2322
|
return { ok: false, message: "What your lead knows about someone is kept in their own chat with it, not a team chat." };
|
|
2471
2323
|
const lines = aboutYouOf(ctx.store, ctx.who.name);
|
|
@@ -2489,7 +2341,6 @@ function rememberAboutYou(ctx, args) {
|
|
|
2489
2341
|
...(replaces === 0 ? {} : { replaces: { line: replaces, was: lines[replaces - 1] } }),
|
|
2490
2342
|
next: "Once confirmed it is in your next catch-up's aboutYou." } };
|
|
2491
2343
|
}
|
|
2492
|
-
/** get_person names people, subagents and team chat members on purpose; the scrub took them out with the rest. */
|
|
2493
2344
|
function personNamesBack(raw, scrubbed) {
|
|
2494
2345
|
if (!raw.ok || !scrubbed.ok)
|
|
2495
2346
|
return scrubbed;
|
|
@@ -2510,8 +2361,6 @@ export const LEAD_TOOL_SCHEMAS = LEAD_TOOLS.map(({ name, description, inputSchem
|
|
|
2510
2361
|
export function isLeadTool(name) {
|
|
2511
2362
|
return LEAD_TOOLS.some(one => one.name === name);
|
|
2512
2363
|
}
|
|
2513
|
-
/** Scrub every result. Only list_repos then adds validated display metadata
|
|
2514
|
-
* from the same admitted project list; no user-authored result gets an exemption. */
|
|
2515
2364
|
export function executeLeadTool(ctx, name, args, view) {
|
|
2516
2365
|
const tool = LEAD_TOOLS.find(one => one.name === name);
|
|
2517
2366
|
const scrub = view ?? leadViewContextFor(ctx.store, ctx.who);
|
|
@@ -2519,8 +2368,6 @@ export function executeLeadTool(ctx, name, args, view) {
|
|
|
2519
2368
|
return { ok: false, message: `no tool named ${redactForLead(name, scrub)}` };
|
|
2520
2369
|
let result;
|
|
2521
2370
|
try {
|
|
2522
|
-
// The call is read by the contract's compatible reader, before any check or handler: a refusal is every path-named
|
|
2523
|
-
// line (`acceptance[0].evidence: at least 1 item`), so the next step can correct exactly that.
|
|
2524
2371
|
const read = tool.read(ctx, args);
|
|
2525
2372
|
if (!read.ok) {
|
|
2526
2373
|
result = { ok: false, message: read.issues.map(one => one.line).join("\n") };
|
|
@@ -2533,7 +2380,6 @@ export function executeLeadTool(ctx, name, args, view) {
|
|
|
2533
2380
|
catch {
|
|
2534
2381
|
result = { ok: false, message: "that tool refused — the plane could not answer it right now" };
|
|
2535
2382
|
}
|
|
2536
|
-
// A result is checked against its output schema before it is scrubbed; a disagreement is reported, never refused.
|
|
2537
2383
|
if (result.ok)
|
|
2538
2384
|
reportToolOutput("lead", name, LEAD_TOOL_OUTPUTS[name], result.body);
|
|
2539
2385
|
const sanitized = name === "get_person" ? personNamesBack(result, leadView(result, scrub)) : leadView(result, scrub);
|
|
@@ -2544,14 +2390,9 @@ export function executeLeadTool(ctx, name, args, view) {
|
|
|
2544
2390
|
}
|
|
2545
2391
|
return sanitized;
|
|
2546
2392
|
}
|
|
2547
|
-
/** Bytes of a serialized tool result as it will sit inside the request body. */
|
|
2548
2393
|
export function toolResultBytes(text) {
|
|
2549
2394
|
return Buffer.byteLength(JSON.stringify(text), "utf8");
|
|
2550
2395
|
}
|
|
2551
|
-
/** What propose_start may start with, checked before Toolroll asks the classifier (docs/plans/one-step-chat.md C3): the
|
|
2552
|
-
* call's contract, the same memory and capability checks every proposal makes, never a team chat, a project the person
|
|
2553
|
-
* can reach now, and the same text and secret checks as propose_task. The conversation loop runs this, and only then
|
|
2554
|
-
* prepares a preview; the handler runs it again. Invalid input never reaches the classifier. */
|
|
2555
2396
|
export function startInputOf(ctx, args) {
|
|
2556
2397
|
const tool = LEAD_TOOLS.find(one => one.name === "propose_start");
|
|
2557
2398
|
if (tool === undefined)
|
|
@@ -2562,7 +2403,6 @@ export function startInputOf(ctx, args) {
|
|
|
2562
2403
|
const unchecked = memoryUnsearched(ctx, "propose_start", read.value) ?? capabilitiesUnread(ctx, "propose_start", read.value);
|
|
2563
2404
|
if (unchecked !== null && !unchecked.ok)
|
|
2564
2405
|
return { ok: false, message: unchecked.message };
|
|
2565
|
-
// A start is the person's own yes in their own chat with you: a shared team chat proposes an ordinary task.
|
|
2566
2406
|
if (teamRoomOf(ctx.store, ctx.thread) !== null)
|
|
2567
2407
|
return { ok: false, message: "Starting work in one step is for the person's own chat. Use propose_task here." };
|
|
2568
2408
|
const repo = repoPathOf(ctx.who, read.value["repo"]);
|