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
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings → Monitoring (v104): where Toolroll sends what it does, for
|
|
3
|
-
* the tools a company already watches. Kept in `monitoring.json` beside the
|
|
4
|
-
* database (0600, the agent fence keeps agents out), never in the database:
|
|
5
|
-
* the webhook's signing secret and a collector's header value are secrets.
|
|
6
|
-
*
|
|
7
|
-
* - The audit stream: every sealed ledger entry, in order, to a webhook
|
|
8
|
-
* (each request signed) and/or a folder of JSON Lines files.
|
|
9
|
-
* - Traces: each finished run as an OpenTelemetry span, to a collector.
|
|
10
|
-
*/
|
|
11
1
|
import { randomBytes } from "node:crypto";
|
|
12
2
|
import { closeSync, constants, existsSync, fsyncSync, openSync, readFileSync, realpathSync, renameSync, rmSync, writeSync } from "node:fs";
|
|
13
3
|
import { dirname, isAbsolute, join, resolve } from "node:path";
|
|
14
4
|
const FILE = "monitoring.json";
|
|
15
|
-
/** Where an address points, without its path or query (a webhook may carry a key in either). */
|
|
16
5
|
export const origin = (address) => { try {
|
|
17
6
|
return new URL(address).origin;
|
|
18
7
|
}
|
|
@@ -20,7 +9,6 @@ catch {
|
|
|
20
9
|
return "?";
|
|
21
10
|
} };
|
|
22
11
|
export const NO_MONITORING = { webhook: null, folder: null, traces: null };
|
|
23
|
-
/** An address Toolroll may send to: https anywhere, http only to this machine (a collector beside it). */
|
|
24
12
|
export function sendableAddress(value) {
|
|
25
13
|
let url;
|
|
26
14
|
try {
|
|
@@ -36,7 +24,6 @@ export function sendableAddress(value) {
|
|
|
36
24
|
return null;
|
|
37
25
|
return url.toString().replace(/\/+$/, "");
|
|
38
26
|
}
|
|
39
|
-
/** A header name a collector asks for (x-honeycomb-team, DD-API-KEY, Authorization); never one HTTP itself owns. */
|
|
40
27
|
const HEADER_NAME = /^[A-Za-z0-9][A-Za-z0-9-]{0,63}$/;
|
|
41
28
|
const RESERVED_HEADERS = new Set(["host", "content-length", "content-type", "transfer-encoding", "connection", "cookie", "user-agent"]);
|
|
42
29
|
export function readMonitoring(dir) {
|
|
@@ -62,7 +49,6 @@ export function readMonitoring(dir) {
|
|
|
62
49
|
}
|
|
63
50
|
function write(dir, settings) {
|
|
64
51
|
const file = join(dir, FILE);
|
|
65
|
-
// A fresh name, made here (never a file or link already there), readable by its owner only, then swapped in.
|
|
66
52
|
const next = `${file}.${randomBytes(8).toString("hex")}.tmp`;
|
|
67
53
|
const handle = openSync(next, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL | constants.O_NOFOLLOW, 0o600);
|
|
68
54
|
try {
|
|
@@ -80,16 +66,9 @@ function write(dir, settings) {
|
|
|
80
66
|
throw error;
|
|
81
67
|
}
|
|
82
68
|
}
|
|
83
|
-
/** A fresh signing secret for the webhook (shown once; the receiver keeps it to check each request). */
|
|
84
69
|
export function newSigningSecret() {
|
|
85
70
|
return `whsec_${randomBytes(32).toString("base64url")}`;
|
|
86
71
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Save what the form sent. A blank field turns that destination off; a header value left blank keeps the one
|
|
89
|
-
* saved. A new webhook address, or `rotate`, makes a new signing secret, handed back once as `secret`.
|
|
90
|
-
*/
|
|
91
|
-
/** A path as it really is: its nearest existing folder resolved (so /tmp and /private/tmp are one), in one case
|
|
92
|
-
* (macOS folders ignore it). */
|
|
93
72
|
function realish(path) {
|
|
94
73
|
let at = resolve(path), rest = "";
|
|
95
74
|
while (!existsSync(at) && dirname(at) !== at) {
|
|
@@ -119,11 +98,10 @@ export function saveMonitoring(dir, form, previous, forbidden = []) {
|
|
|
119
98
|
if (form.folder.trim() !== "") {
|
|
120
99
|
const path = form.folder.trim();
|
|
121
100
|
if (!isAbsolute(path) || path.length > 500 || /[\u0000-\u001f]/.test(path))
|
|
122
|
-
return { ok: false, said: "The folder is a full path, like /var/log/
|
|
123
|
-
// Never where an agent works or Toolroll keeps its own state: an agent could read the whole stream there.
|
|
101
|
+
return { ok: false, said: "The folder is a full path, like /var/log/toolroll." };
|
|
124
102
|
const real = realish(path);
|
|
125
103
|
if ([dir, ...forbidden].some(one => within(real, realish(one)) || within(realish(one), real)))
|
|
126
|
-
return { ok: false, said: "Choose a folder outside Toolroll's own folder and your projects, like /var/log/
|
|
104
|
+
return { ok: false, said: "Choose a folder outside Toolroll's own folder and your projects, like /var/log/toolroll." };
|
|
127
105
|
folder = { path };
|
|
128
106
|
}
|
|
129
107
|
let traces = null;
|
|
@@ -136,7 +114,6 @@ export function saveMonitoring(dir, form, previous, forbidden = []) {
|
|
|
136
114
|
if (name !== "") {
|
|
137
115
|
if (!HEADER_NAME.test(name) || RESERVED_HEADERS.has(name.toLowerCase()))
|
|
138
116
|
return { ok: false, said: "The header name is letters, digits and dashes, like x-honeycomb-team." };
|
|
139
|
-
// A saved key stays only with the same collector (origin) and header: it never follows the address elsewhere.
|
|
140
117
|
const sameCollector = previous.traces !== null && origin(previous.traces.endpoint) === origin(endpoint) && previous.traces.header?.name === name;
|
|
141
118
|
const value = form.headerValue.trim() !== "" ? form.headerValue.trim() : sameCollector ? previous.traces.header.value : "";
|
|
142
119
|
if (value === "" || value.length > 2000 || /[\u0000-\u001f]/.test(value))
|
|
@@ -149,7 +126,6 @@ export function saveMonitoring(dir, form, previous, forbidden = []) {
|
|
|
149
126
|
write(dir, settings);
|
|
150
127
|
return { ok: true, settings, secret };
|
|
151
128
|
}
|
|
152
|
-
/** The change in words for the ledger: where things go and header names, never a secret or a full address. */
|
|
153
129
|
export function monitoringWords(settings) {
|
|
154
130
|
const parts = [
|
|
155
131
|
settings.webhook === null ? null : `webhook ${origin(settings.webhook.url)}`,
|
|
@@ -158,7 +134,6 @@ export function monitoringWords(settings) {
|
|
|
158
134
|
].filter((one) => one !== null);
|
|
159
135
|
return parts.length === 0 ? "off" : parts.join("; ");
|
|
160
136
|
}
|
|
161
|
-
/** A change for the ledger: before → after, and what changed that the words alone don't show (never the values). */
|
|
162
137
|
export function monitoringChange(before, after, newSecret) {
|
|
163
138
|
const notes = [
|
|
164
139
|
before.webhook !== null && after.webhook !== null && before.webhook.url !== after.webhook.url && origin(before.webhook.url) === origin(after.webhook.url) ? "webhook address changed" : null,
|
package/dist/monitoring-ui.js
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings → Monitoring (v104): an instance operator points Toolroll at
|
|
3
|
-
* the company's tools. One form, the status of each destination beside it,
|
|
4
|
-
* and how Prometheus reads `/metrics`. The signing secret is shown once.
|
|
5
|
-
* Built from the revamp kit; the Settings frame adds the title.
|
|
6
|
-
*/
|
|
7
1
|
import { html, joinHtml } from "./html.js";
|
|
8
2
|
import { targetOf } from "./monitoring.js";
|
|
9
3
|
import { whenUtc } from "./when-html.js";
|
|
10
4
|
import { codeLine, disclose, doc, docHeader, formRow, icon, infoLine, input, note, notice, settingsSection, switchInput } from "./server/kit.js";
|
|
11
5
|
import { kitSectionForm, SECRET_OPT_OUTS } from "./settings-kit.js";
|
|
12
6
|
const when = (at) => whenUtc(at);
|
|
13
|
-
/** The page is kit pieces now; nothing of the old look is left. Kept as an export for the shared stylesheet. */
|
|
14
7
|
export const MONITORING_CSS = "";
|
|
15
|
-
/** How a destination is doing, in one line. */
|
|
16
8
|
function statusLine(view, sink, address) {
|
|
17
|
-
// An empty field already says it's off.
|
|
18
9
|
if (address === null)
|
|
19
10
|
return "";
|
|
20
|
-
// A status for another address (it just changed) says nothing about this one yet.
|
|
21
11
|
const one = view.status.find(row => row.sink === sink && row.target === targetOf(address));
|
|
22
12
|
if (one === undefined || (one.lastOkAt === null && one.lastError === null))
|
|
23
13
|
return html `<p class="k-note" data-monitoring="${sink}" data-state="starting">Starting: the first delivery goes out within a few seconds.</p>`;
|
|
@@ -33,11 +23,11 @@ export function monitoringHtml(view, said) {
|
|
|
33
23
|
const audit = settingsSection({ id: "audit-stream", title: "Audit stream", lead: "Every ledger entry with its seal, as it happens, to your log system.",
|
|
34
24
|
body: joinHtml([
|
|
35
25
|
formRow("Webhook", "Blank: off.", input({ id: "monitoring-webhook", name: "webhook", type: "url", value: s.webhook?.url ?? "",
|
|
36
|
-
attrs: { placeholder: "https://logs.example.com/
|
|
26
|
+
attrs: { placeholder: "https://logs.example.com/toolroll", spellcheck: "false", "aria-label": "Webhook" } })),
|
|
37
27
|
statusLine(view, "webhook", s.webhook?.url ?? null),
|
|
38
28
|
s.webhook === null ? "" : formRow("Signing secret", "Make a new one. It is shown once, after Save.", switchInput({ id: "monitoring-rotate", name: "rotate", label: "Make a new signing secret", on: false, attrs: { value: "1" } }), "inline"),
|
|
39
29
|
formRow("Folder", "JSON Lines, a file per day. Blank: off.", input({ id: "monitoring-folder", name: "folder", value: s.folder?.path ?? "",
|
|
40
|
-
attrs: { placeholder: "/var/log/
|
|
30
|
+
attrs: { placeholder: "/var/log/toolroll", spellcheck: "false", "aria-label": "Folder" } })),
|
|
41
31
|
statusLine(view, "folder", s.folder?.path ?? null),
|
|
42
32
|
]) });
|
|
43
33
|
const traces = settingsSection({ id: "traces", title: "Traces", lead: "Each run as an OpenTelemetry span: timings, model, tokens and cost. Never a prompt or code.",
|
|
@@ -55,12 +45,10 @@ export function monitoringHtml(view, said) {
|
|
|
55
45
|
body: disclose("Example", codeLine(`curl -H "Authorization: Bearer so_…" ${metrics}`)) });
|
|
56
46
|
return joinHtml([
|
|
57
47
|
said.problem ? notice(said.problem) : said.said ? infoLine(said.said) : "",
|
|
58
|
-
// A new signing secret answers with a page of its own (shown once): post as a navigation.
|
|
59
48
|
kitSectionForm({ proof: "monitoring", action: "/settings/monitoring", id: "monitoring-form", gate: true, native: true, body: joinHtml([audit, traces]) }),
|
|
60
49
|
metricsSection,
|
|
61
50
|
]);
|
|
62
51
|
}
|
|
63
|
-
/** The webhook's signing secret, once: a focused page with no script. */
|
|
64
52
|
export function signingSecretHtml(url, secret) {
|
|
65
53
|
return doc(docHeader({ title: "Signing secret", back: ["/settings/monitoring", "Monitoring"] }), settingsSection({ id: "signing-secret", title: "Shown once", lead: html `Give this to the receiver at <span class="k-mono">${url}</span>. It isn't shown again.`,
|
|
66
54
|
body: joinHtml([
|
package/dist/monitoring.js
CHANGED
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Monitoring (v104): what Toolroll does, sent to the tools a company
|
|
3
|
-
* already watches. One loop in `up` makes a pass every few seconds; each
|
|
4
|
-
* destination is sent to by one process at a time (a lease in
|
|
5
|
-
* `monitoring_status`), in ledger order, at least once: its cursor moves only
|
|
6
|
-
* after a delivery lands, so a failure is retried (backing off to five
|
|
7
|
-
* minutes) and nothing is skipped or reordered.
|
|
8
|
-
*
|
|
9
|
-
* - `webhook`: sealed ledger entries, POSTed in batches, each request signed
|
|
10
|
-
* (`x-standing-orders-signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of
|
|
11
|
-
* "<t>.<body>" with the signing secret>`). Each batch carries the chain
|
|
12
|
-
* head, so the receiver keeps its own copy of the checkpoints.
|
|
13
|
-
* - `folder`: the same events as JSON Lines, a file per day.
|
|
14
|
-
* - `traces`: each finished run as an OpenTelemetry span (OTLP/HTTP JSON),
|
|
15
|
-
* and each completed task as the root span its runs hang under. Model,
|
|
16
|
-
* tokens, cost and timings; never a prompt, a diff or a file.
|
|
17
|
-
*/
|
|
18
1
|
import { createHash, createHmac, randomUUID } from "node:crypto";
|
|
19
2
|
import { closeSync, constants, fsyncSync, lstatSync, mkdirSync, openSync, readFileSync, writeSync } from "node:fs";
|
|
20
3
|
import { hostname } from "node:os";
|
|
@@ -26,27 +9,23 @@ const BATCH = 200;
|
|
|
26
9
|
const LEASE_MS = 60_000;
|
|
27
10
|
const TIMEOUT_MS = 10_000;
|
|
28
11
|
const CHECKPOINT_EVERY_MS = 60 * 60_000;
|
|
29
|
-
/** An audit event: the ledger entry and its seal, as the stream sends it. */
|
|
30
12
|
export function auditEvent(entry, instance) {
|
|
31
13
|
return {
|
|
32
14
|
type: "standing-orders.audit", instance, id: entry.id, at: entry.at, actor: entry.actor, project: entry.repo, task: entry.taskId, run: entry.runId,
|
|
33
15
|
action: entry.action, outcome: entry.outcome, source: entry.source, detail: entry.detail, seal: entry.seal,
|
|
34
16
|
};
|
|
35
17
|
}
|
|
36
|
-
/** The signature a receiver recomputes: HMAC-SHA256(secret, "<t>.<body>"), hex. */
|
|
37
18
|
export function signature(secret, timestamp, body) {
|
|
38
19
|
return `t=${timestamp},v1=${createHmac("sha256", secret).update(`${timestamp}.${body}`, "utf8").digest("hex")}`;
|
|
39
20
|
}
|
|
40
21
|
const backoff = (failures) => Math.min(5 * 60_000, 5_000 * 2 ** Math.min(failures, 10));
|
|
41
22
|
const hex = (text, length) => createHash("sha256").update(text, "utf8").digest("hex").slice(0, length);
|
|
42
23
|
const nanos = (at) => `${BigInt(Date.parse(at)) * 1000000n}`;
|
|
43
|
-
/** One pass over every destination that's set up. Returns what it sent, per destination. */
|
|
44
24
|
export async function monitoringPass(store, settings, deps) {
|
|
45
25
|
const sent = {};
|
|
46
26
|
const heads = [];
|
|
47
27
|
const audit = (delivered) => { if (delivered.head !== null)
|
|
48
28
|
heads.push(delivered.head); return delivered.count; };
|
|
49
|
-
// A new destination gets the whole audit history; traces start from now.
|
|
50
29
|
if (settings.webhook !== null)
|
|
51
30
|
sent.webhook = audit(await deliver(store, "webhook", targetOf(settings.webhook.url), () => 0, deps, entries => postSigned(settings.webhook, entries, store, deps)));
|
|
52
31
|
if (settings.folder !== null)
|
|
@@ -56,9 +35,6 @@ export async function monitoringPass(store, settings, deps) {
|
|
|
56
35
|
checkpointSent(store, heads, (deps.now ?? (() => new Date()))());
|
|
57
36
|
return sent;
|
|
58
37
|
}
|
|
59
|
-
/** The furthest head the audit stream delivered, kept as an automatic checkpoint once the whole chain verifies.
|
|
60
|
-
* Automatic checkpoints write no ledger entry, so recording one gives the stream nothing new to send (and checkpoint)
|
|
61
|
-
* next pass. At most one an hour, so a busy stream neither floods the table nor walks the whole chain every pass. */
|
|
62
38
|
function checkpointSent(store, heads, now) {
|
|
63
39
|
const head = heads.reduce((best, one) => best === null || (one !== null && one.through > best.through) ? one : best, null);
|
|
64
40
|
if (head === null)
|
|
@@ -69,12 +45,9 @@ function checkpointSent(store, heads, now) {
|
|
|
69
45
|
try {
|
|
70
46
|
store.ledgerCheckpoint("system", now, { head });
|
|
71
47
|
}
|
|
72
|
-
catch {
|
|
48
|
+
catch { }
|
|
73
49
|
}
|
|
74
|
-
/** A destination's name in its status row: a digest of its address (the address itself may carry a key). */
|
|
75
50
|
export const targetOf = (address) => hex(`standing-orders/monitoring/${address}`, 16);
|
|
76
|
-
/** Send what's due to one destination: hold it, start it over if it now points elsewhere, read after its cursor,
|
|
77
|
-
* hand the batch over, and move the cursor only when it landed and nothing changed meanwhile. */
|
|
78
51
|
async function deliver(store, sink, target, start, deps, send) {
|
|
79
52
|
const now = deps.now ?? (() => new Date());
|
|
80
53
|
const at = now();
|
|
@@ -120,9 +93,6 @@ async function postSigned(webhook, entries, store, deps) {
|
|
|
120
93
|
await post(webhook.url, body, { [SIGNATURE_HEADER]: signature(webhook.secret, timestamp, body), "x-standing-orders-delivery": `${entries[0].id}-${last.id}` }, deps);
|
|
121
94
|
return entries.length;
|
|
122
95
|
}
|
|
123
|
-
/** Append events to the day's file (by each entry's own day), made readable by its owner only. The folder must be
|
|
124
|
-
* a real folder of this user's that nobody else can write to (a link, or a shared folder, could send the stream
|
|
125
|
-
* somewhere else). */
|
|
126
96
|
function appendFolder(folder, entries, instance) {
|
|
127
97
|
mkdirSync(folder, { recursive: true, mode: 0o700 });
|
|
128
98
|
const stat = lstatSync(folder);
|
|
@@ -138,8 +108,7 @@ function appendFolder(folder, entries, instance) {
|
|
|
138
108
|
byDay.set(day, [...(byDay.get(day) ?? []), JSON.stringify(auditEvent(entry, instance))]);
|
|
139
109
|
}
|
|
140
110
|
for (const [day, lines] of byDay) {
|
|
141
|
-
|
|
142
|
-
const handle = openSync(join(folder, `standing-orders-audit-${day}.jsonl`), constants.O_WRONLY | constants.O_APPEND | constants.O_CREAT | constants.O_NOFOLLOW, 0o600);
|
|
111
|
+
const handle = openSync(join(folder, `toolroll-audit-${day}.jsonl`), constants.O_WRONLY | constants.O_APPEND | constants.O_CREAT | constants.O_NOFOLLOW, 0o600);
|
|
143
112
|
try {
|
|
144
113
|
writeSync(handle, `${lines.join("\n")}\n`);
|
|
145
114
|
fsyncSync(handle);
|
|
@@ -151,7 +120,6 @@ function appendFolder(folder, entries, instance) {
|
|
|
151
120
|
}
|
|
152
121
|
const money = (key, value) => value === null ? [] : [{ key, value: { doubleValue: value } }];
|
|
153
122
|
const attr = (key, value) => value === null || value === undefined ? [] : [{ key, value: typeof value === "string" ? { stringValue: value } : Number.isInteger(value) ? { intValue: String(value) } : { doubleValue: value } }];
|
|
154
|
-
/** Spans for the batch's finished runs and completed tasks (the rest of the ledger isn't traced; the cursor passes it). */
|
|
155
123
|
export function spansFor(store, entries) {
|
|
156
124
|
const spans = [];
|
|
157
125
|
const rootOf = (taskId) => store.revisionAncestryStatus(taskId).chain[0] ?? taskId;
|
|
@@ -175,7 +143,6 @@ export function spansFor(store, entries) {
|
|
|
175
143
|
...attr("gen_ai.system", run.provider), ...attr("gen_ai.request.model", run.model), ...attr("gen_ai.usage.input_tokens", run.tokensIn),
|
|
176
144
|
...attr("gen_ai.usage.output_tokens", run.tokensOut), ...money("standing_orders.cost_usd", run.costUsd),
|
|
177
145
|
],
|
|
178
|
-
// The outcome's word only: a run's reason is free text (a path, a provider's message).
|
|
179
146
|
status: failed ? { code: 2, message: run.outcome ?? "failed" } : { code: 1 },
|
|
180
147
|
});
|
|
181
148
|
}
|
|
@@ -207,7 +174,6 @@ async function postTraces(traces, entries, store, deps) {
|
|
|
207
174
|
await post(url, body, traces.header === null ? {} : { [traces.header.name]: traces.header.value }, deps);
|
|
208
175
|
return spans.length;
|
|
209
176
|
}
|
|
210
|
-
/** This build's version, from its package.json ("unknown" when it can't be read). */
|
|
211
177
|
export function packageVersion() {
|
|
212
178
|
try {
|
|
213
179
|
const parsed = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8"));
|
|
@@ -217,11 +183,9 @@ export function packageVersion() {
|
|
|
217
183
|
return "unknown";
|
|
218
184
|
}
|
|
219
185
|
}
|
|
220
|
-
/** Who this process is, for the lease: host, pid and a random part (a restarted pid is a new holder). */
|
|
221
186
|
export function monitoringHolder() {
|
|
222
187
|
return `${hostname()}:${process.pid}:${randomUUID().slice(0, 8)}`;
|
|
223
188
|
}
|
|
224
|
-
/** The loop `up` runs: a pass every `everyMs`, settings read afresh each time (a change applies at the next pass). */
|
|
225
189
|
export function startMonitoring(options) {
|
|
226
190
|
const holder = monitoringHolder();
|
|
227
191
|
let stopped = false, timer = null;
|
package/dist/names.js
CHANGED
|
@@ -1,26 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The product's internal name, and every older one it still answers to.
|
|
3
|
-
*
|
|
4
|
-
* Toolroll was Standing Orders, which was nightorders. A rename must never
|
|
5
|
-
* orphan an installation: new things use the new name, while a folder,
|
|
6
|
-
* variable, branch, launchd job or skill that already exists under an older
|
|
7
|
-
* name keeps being found. Nothing is moved; the old one is used until one
|
|
8
|
-
* exists under the new name. Strings that feed a hash, a digest or a stored
|
|
9
|
-
* format id are not names in this sense and stay byte-identical.
|
|
10
|
-
*/
|
|
11
1
|
import { existsSync } from "node:fs";
|
|
12
2
|
import { join } from "node:path";
|
|
13
3
|
export const NAME = "toolroll";
|
|
14
|
-
/** Older names, newest first. */
|
|
15
4
|
export const LEGACY_NAMES = ["standing-orders", "nightorders"];
|
|
16
5
|
export const NAMES = [NAME, ...LEGACY_NAMES];
|
|
17
|
-
/**
|
|
18
|
-
* A file inside the product's folder under `base` (~/.config, ~/.cache, or a
|
|
19
|
-
* home dotfolder when `dot` is set). The first name that already holds the
|
|
20
|
-
* file wins; otherwise the file goes into the folder that holds the database,
|
|
21
|
-
* else the first folder that exists, else a new-name folder — so one install
|
|
22
|
-
* keeps one folder, and a fresh one gets ~/.config/toolroll.
|
|
23
|
-
*/
|
|
24
6
|
export function namedPath(base, rest, options = {}) {
|
|
25
7
|
const names = options.names ?? NAMES;
|
|
26
8
|
const folder = (name) => join(base, options.dot ? `.${name}` : name);
|
|
@@ -29,71 +11,50 @@ export function namedPath(base, rest, options = {}) {
|
|
|
29
11
|
return join(folder(name), ...rest);
|
|
30
12
|
return join(namedFolder(base, options), ...rest);
|
|
31
13
|
}
|
|
32
|
-
/** The product's folder under `base`: see namedPath. */
|
|
33
14
|
export function namedFolder(base, options = {}) {
|
|
34
15
|
const names = options.names ?? NAMES;
|
|
35
16
|
const folder = (name) => join(base, options.dot ? `.${name}` : name);
|
|
36
17
|
const chosen = names.find(name => existsSync(join(folder(name), "orders.db"))) ?? names.find(name => existsSync(folder(name))) ?? names[0];
|
|
37
18
|
return folder(chosen);
|
|
38
19
|
}
|
|
39
|
-
/** Every folder under `base` that any name has made, for fencing and cleanup. */
|
|
40
20
|
export function existingFolders(base, options = {}) {
|
|
41
21
|
return NAMES.map(name => join(base, options.dot ? `.${name}` : name)).filter(path => existsSync(path));
|
|
42
22
|
}
|
|
43
|
-
/** ~/.config (or $XDG_CONFIG_HOME). */
|
|
44
23
|
export function configBase(env, home) {
|
|
45
24
|
const xdg = env["XDG_CONFIG_HOME"];
|
|
46
25
|
return xdg !== undefined && xdg !== "" ? xdg : join(home, ".config");
|
|
47
26
|
}
|
|
48
27
|
export const ENV_PREFIX = "TOOLROLL_";
|
|
49
28
|
export const LEGACY_ENV_PREFIX = "STANDING_ORDERS_";
|
|
50
|
-
/**
|
|
51
|
-
* An environment setting by its suffix ("DB" → TOOLROLL_DB). The new name
|
|
52
|
-
* wins whenever it is set; the old STANDING_ORDERS_ one is the fallback.
|
|
53
|
-
*/
|
|
54
29
|
export function envValue(env, suffix) {
|
|
55
|
-
// Empty counts as unset: a blank TOOLROLL_DB must not hide an isolating STANDING_ORDERS_DB.
|
|
56
30
|
const current = env[ENV_PREFIX + suffix];
|
|
57
31
|
return current !== undefined && current !== "" ? current : env[LEGACY_ENV_PREFIX + suffix];
|
|
58
32
|
}
|
|
59
|
-
/** The Telegram bot token's variable, and the name it had before the rename: agents never see either.
|
|
60
|
-
* Kept here, in a module with no imports of its own, so builder.ts can read it at load time. */
|
|
61
33
|
export const TELEGRAM_TOKEN_ENV = `${ENV_PREFIX}TELEGRAM_TOKEN`;
|
|
62
34
|
export const TELEGRAM_TOKEN_ENVS = [TELEGRAM_TOKEN_ENV, `${LEGACY_ENV_PREFIX}TELEGRAM_TOKEN`];
|
|
63
|
-
/** Both names of a setting, for a child the plane starts: older tools read the old one. */
|
|
64
35
|
export function envTwins(suffix, value) {
|
|
65
36
|
return { [ENV_PREFIX + suffix]: value, [LEGACY_ENV_PREFIX + suffix]: value };
|
|
66
37
|
}
|
|
67
|
-
/** True for a variable of either name ("TOOLROLL_DB", "STANDING_ORDERS_DB"). */
|
|
68
38
|
export function isOwnEnv(key) {
|
|
69
39
|
return /^(TOOLROLL|STANDING_ORDERS)_/i.test(key);
|
|
70
40
|
}
|
|
71
|
-
/** New task branches are toolroll/<id>; the plane's older ones stay its own. */
|
|
72
41
|
export const BRANCH_PREFIX = `${NAME}/`;
|
|
73
42
|
export const BRANCH_PREFIXES = [BRANCH_PREFIX, "standing-orders/"];
|
|
74
43
|
export function taskBranch(id) {
|
|
75
44
|
return `${BRANCH_PREFIX}${id}`;
|
|
76
45
|
}
|
|
77
|
-
/** A branch the plane made, under either name. */
|
|
78
46
|
export function isOwnBranch(branch) {
|
|
79
47
|
return BRANCH_PREFIXES.some(prefix => branch.startsWith(prefix));
|
|
80
48
|
}
|
|
81
|
-
/**
|
|
82
|
-
* Whether a head branch is inside a publication grant's prefix. A grant made
|
|
83
|
-
* for the plane's own branches under one name covers the same branches under
|
|
84
|
-
* the other: a standing-orders/ grant still publishes toolroll/<id> work.
|
|
85
|
-
*/
|
|
86
49
|
export function headWithin(head, prefix) {
|
|
87
50
|
if (head.startsWith(prefix))
|
|
88
51
|
return true;
|
|
89
52
|
const own = BRANCH_PREFIXES.find(one => prefix.startsWith(one));
|
|
90
53
|
return own !== undefined && BRANCH_PREFIXES.some(one => head.startsWith(one + prefix.slice(own.length)));
|
|
91
54
|
}
|
|
92
|
-
/** Every name a task's own branch may have, newest first. */
|
|
93
55
|
export function taskBranches(id) {
|
|
94
56
|
return BRANCH_PREFIXES.map(prefix => `${prefix}${id}`);
|
|
95
57
|
}
|
|
96
|
-
/** The first candidate branch that already exists (a retry reuses its branch), else the first — the new name. */
|
|
97
58
|
export async function existingOrFirst(candidates, exists) {
|
|
98
59
|
for (const candidate of candidates)
|
|
99
60
|
if (await exists(candidate))
|
package/dist/needs-you.js
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
/** Every reason a task, result or flow card can wait on a person, in one
|
|
2
|
-
* place: the plain sentence it shows and the one action that resolves it
|
|
3
|
-
* (task-status.ts reads it for every surface). A reason no person can act
|
|
4
|
-
* on is not Needs you: it is a Waiting reason, worded as what it waits for.
|
|
5
|
-
*
|
|
6
|
-
* The words never name the machine's internals; `plainSentence` keeps a
|
|
7
|
-
* recorded reason only when it is free of them. */
|
|
8
|
-
/** The action's code: the WorkAction that owns the act, or one of the acts a surface renders itself. */
|
|
9
|
-
/** The reason a storage hold carries before the check's own words (dispose.ts holdForStorage; dispatch.ts and
|
|
10
|
-
* work-index.ts read it back). */
|
|
11
1
|
export const STORAGE_HOLD_PREFIX = "protected-storage — ";
|
|
12
|
-
/** Where "Connect a builder" and "Start the builder" lead (code `start-worker`): the Start a builder page, which shows
|
|
13
|
-
* the one command to run and the open project's builder state. Every signed-in person can open it, a project-limited
|
|
14
|
-
* one included (System is instance-only). Never the task's own page, which only repeats that nothing is connected. */
|
|
15
2
|
export const START_BUILDER_HREF = "/start-builder";
|
|
16
|
-
/** Start a builder for one task: the page reports that task's own project, whatever project is open. */
|
|
17
3
|
export const startBuilderHref = (taskId) => taskId === null ? START_BUILDER_HREF : `${START_BUILDER_HREF}?task=${encodeURIComponent(taskId)}`;
|
|
18
|
-
/** What starts a builder: run on the machine where the project lives, in the project's folder. */
|
|
19
4
|
export const START_BUILDER_COMMAND = "toolroll up";
|
|
20
5
|
const always = () => true;
|
|
21
6
|
const build = (context) => context.build == null ? "the last build" : `build #${context.build}`;
|
|
@@ -25,47 +10,35 @@ export const NEEDS = {
|
|
|
25
10
|
card: { sentence: () => "This card is waiting for your approval.", action: { code: "approve-card", label: "Approve card" } },
|
|
26
11
|
answer: { sentence: () => "Answer the question so the work can continue.", action: { code: "answer-decision", label: "Answer the question" }, useReason: always },
|
|
27
12
|
questions: { sentence: () => "Too many questions are open. Answer one so this task can start.", action: { code: "inspect-decisions", label: "Answer questions" } },
|
|
28
|
-
"sign-in": { sentence: context => `${context.provider ?? "Your agent"} needs you to sign in again. The task starts on its own after.`, action: { code: "sign-in", label: "Sign in again" }, useReason: reason => /sign in|API key/i.test(reason) },
|
|
29
|
-
// Toolroll proves a build stopped itself (stop-proof.ts); nobody is asked to vouch for it. Only when this computer
|
|
30
|
-
// can't look, or something Toolroll didn't start is using the build's folder, is the work held: the person can close
|
|
31
|
-
// what's theirs and have it look again, nothing more.
|
|
13
|
+
"sign-in": { sentence: context => `${context.provider ?? "Your agent"} needs you to sign in again. The task starts on its own after.`, action: { code: "sign-in", label: "Sign in again" }, useReason: reason => /sign(?:ed)? in|API key/i.test(reason) },
|
|
32
14
|
"stop-unproven": { sentence: context => `Toolroll can't prove ${build(context)} stopped from this computer, so the work is held. Close anything of yours that is using its folder, then check again.`, action: { code: "recheck-stopped", label: "Check again" } },
|
|
33
15
|
hold: { sentence: () => "A hold is keeping this task from starting. Review it to release it.", action: { code: "inspect-hold", label: "Review hold" } },
|
|
34
|
-
// The storage check couldn't finish (protected-storage.ts): its own words say which program macOS may need to allow.
|
|
35
16
|
storage: { sentence: () => "Toolroll couldn't finish checking other apps' data before starting. Allow it in Privacy & Security, then try again.", action: { code: "unhold", label: "Try again" }, useReason: always },
|
|
36
17
|
"choose-project": { sentence: () => "Choose a project so a builder can start.", action: { code: "place-task", label: "Choose a project" } },
|
|
37
18
|
"define-task": { sentence: () => "Say what the task should do so it can be planned.", action: { code: "write-scope", label: "Define the task" } },
|
|
38
19
|
"fix-request": { sentence: () => "The request can't be planned as written. Edit it so the planner can start.", action: { code: "write-scope", label: "Edit the request" },
|
|
39
|
-
// Its own size and limit say exactly what to shorten.
|
|
40
20
|
useReason: reason => /the planner can carry at most/.test(reason) },
|
|
41
21
|
"choose-agent": { sentence: () => "Choose an agent to build this.", action: { code: "select-agent", label: "Choose an agent" } },
|
|
42
22
|
"fix-dependency": { sentence: () => "A task this one waits on didn't finish. Fix or remove it so this one can start.", action: { code: "repair-dependency", label: "Fix the required task" },
|
|
43
23
|
useReason: reason => /didn't finish|did not finish|before it finished/i.test(reason), withReason: reason => {
|
|
44
|
-
// A reason that already says what to do is said once.
|
|
45
24
|
const said = reason.replace(/[.\s]*$/, ".");
|
|
46
25
|
return /Fix or remove it so this one can start\.$/.test(said) ? said : `${said} Fix or remove it so this one can start.`;
|
|
47
26
|
} },
|
|
48
27
|
"add-requirement": { sentence: () => "This project is missing something the task needs. Add it so a builder can start.", action: { code: "repair-capability", label: "Add the requirement" } },
|
|
49
28
|
"connect-builder": { sentence: () => "No builder works on this project yet. Connect one so the task can start.", action: { code: "start-worker", label: "Connect a builder" } },
|
|
50
29
|
"start-builder": { sentence: () => "The builder is offline. Start the builder.", action: { code: "start-worker", label: "Start the builder" } },
|
|
51
|
-
// The same act as before (it opens the build, where Retry is): only the words are plainer.
|
|
52
30
|
vanished: { sentence: context => `${Build(context)} stopped unexpectedly. Retry it.`, action: { code: "reconcile-run", label: "Open the build" } },
|
|
53
31
|
"review-result": { sentence: () => "Check the result, then accept it or send it back.", action: { code: "open-result", label: "Open result" } },
|
|
54
|
-
// Accepting it would not help: it was built to terms that are no longer the plan.
|
|
55
32
|
rebuild: { sentence: context => `${Build(context)} was made to an earlier plan. Retry it on the current plan.`, action: { code: "retry-task", label: "Retry" } },
|
|
56
|
-
// The plan was rewritten after the build and not yet approved: the yes comes first, then Build again.
|
|
57
33
|
replan: { sentence: context => `The plan changed after ${build(context)}. Approve the new plan, then retry it.`, action: { code: "approve-scope", label: "Approve plan" } },
|
|
58
34
|
"earlier-version": { sentence: context => context.task == null ? "An earlier version of this task still needs you. Finish it first." : `An earlier version, ${context.task}, still needs you. Finish it first.`,
|
|
59
35
|
action: { code: "inspect-task", label: "Open earlier version" } },
|
|
60
|
-
// An actionable need, never a quiet Waiting: a person opens it to retry or archive it.
|
|
61
36
|
history: { sentence: () => "Toolroll can't read this task's history. Open it to retry or archive it.", action: { code: "inspect-task", label: "Open the task" } },
|
|
62
|
-
// A finding the reviewer and the agent couldn't settle (findings.ts): only a person closes it.
|
|
63
37
|
finding: { sentence: () => "A finding has used its rounds. Read both sides and decide.", action: { code: "inspect-findings", label: "Open finding" } },
|
|
64
38
|
other: { sentence: () => "Open the task to see what it needs from you.", action: { code: "inspect-task", label: "Open the task" }, useReason: always },
|
|
65
39
|
};
|
|
66
40
|
export const ASKS = ["decide", "review", "unblock"];
|
|
67
41
|
export const ASK_LABEL = { decide: "Decide", review: "Review", unblock: "Unblock" };
|
|
68
|
-
/** `mismatch`: the saved report doesn't match its changes; `planChanged`: the plan changed after it was built. */
|
|
69
42
|
export function askChipOf(read) {
|
|
70
43
|
if (read.headline === "Failed")
|
|
71
44
|
return "Failed";
|
|
@@ -83,6 +56,8 @@ export function askChipOf(read) {
|
|
|
83
56
|
return "Question";
|
|
84
57
|
if (read.need === "hold")
|
|
85
58
|
return "On hold";
|
|
59
|
+
if (read.need === "fix-dependency")
|
|
60
|
+
return "Blocked";
|
|
86
61
|
if (read.need === "vanished" || read.need === "stop-unproven")
|
|
87
62
|
return "Stopped";
|
|
88
63
|
if (read.need === "sign-in")
|
|
@@ -131,12 +106,8 @@ export const WAITS = {
|
|
|
131
106
|
"app-update": () => "Waiting: Toolroll is updating. New work starts after it.",
|
|
132
107
|
"other-task": context => context.task == null ? "Waiting for another task to finish first." : `Waiting for ${context.task} to finish first.`,
|
|
133
108
|
};
|
|
134
|
-
/** Words that name the machine's internals (plain-words.ts, the one table); no Needs you or Waiting sentence carries
|
|
135
|
-
* them, and a recorded reason that does is replaced by the need's own words. */
|
|
136
109
|
export { BANNED_WORDS, PLAIN_WORDS, bannedWordsIn, hasInternalWords } from "./plain-words.js";
|
|
137
110
|
import { hasInternalWords } from "./plain-words.js";
|
|
138
|
-
/** The sentence for a need: its recorded reason when the need keeps one and
|
|
139
|
-
* it reads plainly, otherwise the need's own words. */
|
|
140
111
|
export function needSentence(key, reason, context = {}) {
|
|
141
112
|
const need = NEEDS[key];
|
|
142
113
|
const plain = reason?.trim() || null;
|
|
@@ -144,8 +115,6 @@ export function needSentence(key, reason, context = {}) {
|
|
|
144
115
|
return need.sentence(context);
|
|
145
116
|
return need.withReason === undefined ? plain : need.withReason(plain);
|
|
146
117
|
}
|
|
147
|
-
/** Waits whose words need a fact (when it retries, which task it waits on): without it, a plain recorded reason that
|
|
148
|
-
* already says it is kept. */
|
|
149
118
|
const WAITS_WITH_FACTS = {
|
|
150
119
|
"retry-later": context => context.retry != null, "other-task": context => context.task != null,
|
|
151
120
|
};
|
|
@@ -156,9 +125,6 @@ export function waitSentence(key, reason, context = {}) {
|
|
|
156
125
|
return WAITS_WITH_FACTS[key]?.(context) === false && known !== null ? known : WAITS[key](context);
|
|
157
126
|
return known ?? "Waiting for the work to continue on its own.";
|
|
158
127
|
}
|
|
159
|
-
/** A finished run Toolroll can't yet prove stopped (store.stopQuiescenceFact). Nobody is asked to confirm it:
|
|
160
|
-
* `unprovable` is Toolroll's own check still to run (stop-proof.ts), which settles by itself; `unknown` is that this
|
|
161
|
-
* computer can't look, or something Toolroll didn't start is in the build's folder — held, with nothing to vouch for. */
|
|
162
128
|
export function processNeedOf(fact) {
|
|
163
129
|
if (fact === null)
|
|
164
130
|
return null;
|
|
@@ -171,7 +137,6 @@ export function processNeedOf(fact) {
|
|
|
171
137
|
return { wait: fact.kind === "elsewhere" ? "other-computer" : "build-stopping", build: fact.run };
|
|
172
138
|
}
|
|
173
139
|
export const CODE_READING = {
|
|
174
|
-
// Plain states: nothing is asked and nothing is waited on by name.
|
|
175
140
|
queued: { stage: "queued" }, ready: { stage: "queued" }, "provider-quota": { stage: "queued" },
|
|
176
141
|
running: { stage: "building" }, reviewing: { stage: "reviewing" }, "review-pending": { stage: "building" }, "checks-running": { stage: "checking" },
|
|
177
142
|
"ready-to-check": { stage: "finished", act: "open-result" }, "ready-to-review": { stage: "finished" }, "report-ready": { stage: "finished" }, "no-change": { stage: "finished" },
|
|
@@ -179,21 +144,17 @@ export const CODE_READING = {
|
|
|
179
144
|
complete: { stage: "complete", act: "open-result" }, cancelled: { stage: "stopped", act: "inspect-task" }, paused: { stage: "stopped" },
|
|
180
145
|
stopped: { stage: "stopped", act: "resume-run" },
|
|
181
146
|
failed: { stage: "failed", act: "retry-task" }, "checks-failed": { stage: "failed" },
|
|
182
|
-
// The same failure again and again: a need over Retry, its own act, said plainly.
|
|
183
147
|
"waiting-incident": { stage: "failed", act: "retry-task" },
|
|
184
|
-
// Waits: Toolroll or another task moves these on; no person is asked.
|
|
185
148
|
stopping: { stage: "waiting", wait: "build-stopping" },
|
|
186
149
|
"build-stopping": { stage: "waiting", wait: "build-stopping" }, "other-computer": { stage: "waiting", wait: "other-computer" },
|
|
187
150
|
"planning-ready": { stage: "waiting", wait: "plan-next" }, "scouting-ready": { stage: "waiting", wait: "research-next" },
|
|
188
151
|
"worker-at-capacity": { stage: "waiting", wait: "builders-busy" }, "retry-scheduled": { stage: "waiting", wait: "retry-later" },
|
|
189
152
|
updating: { stage: "waiting", wait: "app-update" }, "waiting-dependency": { stage: "waiting", wait: "other-task" },
|
|
190
|
-
// Needs, each over the act it has always had.
|
|
191
153
|
"history-problem": { stage: "needs-you", need: "history", act: "inspect-task" },
|
|
192
154
|
"earlier-active": { stage: "needs-you", need: "earlier-version", act: "inspect-task" },
|
|
193
155
|
"waiting-decision": { stage: "needs-you", need: "answer", act: "answer-decision" },
|
|
194
156
|
"finding-held": { stage: "needs-you", need: "finding", act: "inspect-findings" },
|
|
195
157
|
"decision-queue": { stage: "needs-you", need: "questions", act: "inspect-decisions" },
|
|
196
|
-
// A saved result that can't simply be accepted yet: its own reason (resultHoldUpSentence) is the sentence.
|
|
197
158
|
"result-needs-attention": { stage: "needs-you", need: "other", act: "inspect-run" },
|
|
198
159
|
"process-needs-attention": { stage: "needs-you", need: "stop-unproven", act: "inspect-run" },
|
|
199
160
|
"vanished-run": { stage: "needs-you", need: "vanished", act: "reconcile-run" },
|
|
@@ -215,14 +176,10 @@ export const CODE_READING = {
|
|
|
215
176
|
"evidence-mismatch": { stage: "needs-you", need: "review-result" }, "record-incomplete": { stage: "needs-you", need: "review-result" },
|
|
216
177
|
"evidence-damaged": { stage: "needs-you", need: "review-result" },
|
|
217
178
|
};
|
|
218
|
-
/** A code that waits on Toolroll or another task: no person is asked. */
|
|
219
179
|
export const isWaitCode = (code) => CODE_READING[code]?.stage === "waiting";
|
|
220
|
-
/** Notification kinds that need nothing from a person: they stay in the activity log and never ping a phone. */
|
|
221
180
|
export const ACTIVITY_ONLY_KINDS = new Set(["check-progress"]);
|
|
222
|
-
/** Dispatch and work-index codes that wait on a person, as their need (read from CODE_READING). */
|
|
223
181
|
export const CODE_NEED = Object.fromEntries(Object.entries(CODE_READING)
|
|
224
182
|
.flatMap(([code, reading]) => reading.need === undefined ? [] : [[code, reading.need]]));
|
|
225
|
-
/** A stopped run's recorded reason code, in words (the run record, the thread, a failed task's status). */
|
|
226
183
|
export const RUN_REASON_WORDS = {
|
|
227
184
|
agent: "the agent failed",
|
|
228
185
|
"agent-reported": "the agent reported it could not finish",
|
|
@@ -274,9 +231,6 @@ export const RUN_REASON_WORDS = {
|
|
|
274
231
|
"attempts-exhausted": "it failed too many times in a row",
|
|
275
232
|
"plan-revised": "the plan changed, so a fresh attempt took over",
|
|
276
233
|
};
|
|
277
|
-
/** A run's recorded reason in words. A recorded code is never shown as it is
|
|
278
|
-
* stored: one with no words of its own reads as an unexpected stop; a reason
|
|
279
|
-
* already written as words (it has a space) is said as written. */
|
|
280
234
|
export function runReasonWords(reason) {
|
|
281
235
|
const known = RUN_REASON_WORDS[reason];
|
|
282
236
|
if (known !== undefined)
|
|
@@ -285,11 +239,8 @@ export function runReasonWords(reason) {
|
|
|
285
239
|
return "the agent asked a question";
|
|
286
240
|
return /\s/.test(reason.trim()) ? reason.trim() : "the attempt stopped unexpectedly";
|
|
287
241
|
}
|
|
288
|
-
/** The latest finished build attempt among a task's runs (any order), whatever its outcome: planning and reviewing
|
|
289
|
-
* are not attempts, and an older failure never stands in for a newer attempt. */
|
|
290
242
|
export function latestFinishedAttempt(runs) {
|
|
291
243
|
let latest = null;
|
|
292
|
-
// Ended means a finish time or an outcome: a reconcile can mark a run failed without stamping finished_at.
|
|
293
244
|
for (const run of runs)
|
|
294
245
|
if ((run.finishedAt !== null || (run.outcome ?? null) !== null) && run.role !== "planner" && run.role !== "reviewer" && (latest === null || run.id > latest.id))
|
|
295
246
|
latest = run;
|
|
@@ -297,23 +248,17 @@ export function latestFinishedAttempt(runs) {
|
|
|
297
248
|
}
|
|
298
249
|
export const NO_REASON_RECORDED = "No reason was recorded for this attempt.";
|
|
299
250
|
export const INTERNAL_ERROR = "The attempt stopped with an internal error.";
|
|
300
|
-
/** About as long as one plain line reads. */
|
|
301
251
|
export const REASON_LINE_LIMIT = 140;
|
|
302
|
-
/** A recorded reason that is machine output, not words: a stack trace, a file path or "Error:" text. Its detail
|
|
303
|
-
* belongs behind a link, never in the line itself. */
|
|
304
252
|
export function isInternalErrorReason(reason) {
|
|
305
253
|
const text = reason?.trim() ?? "";
|
|
306
254
|
if (text === "" || RUN_REASON_WORDS[text] !== undefined)
|
|
307
255
|
return false;
|
|
308
|
-
return /\b[A-Za-z]*(?:Error|Exception):/.test(text)
|
|
309
|
-
|| /^\s*at\s+\S+/m.test(text) && /\n/.test(text)
|
|
310
|
-
// An absolute path of two or more segments (/Users/…, ~/x/y): plain sentences may name a project file (src/ledger.ts).
|
|
256
|
+
return /\b[A-Za-z]*(?:Error|Exception):/.test(text)
|
|
257
|
+
|| /^\s*at\s+\S+/m.test(text) && /\n/.test(text)
|
|
311
258
|
|| /(?:^|[\s(“"'])~?\/(?:[\w.@-]+\/)+[\w.@-]+/.test(text)
|
|
312
|
-
|| /[A-Za-z]:\\/.test(text)
|
|
313
|
-
|| /\.[cm]?[jt]sx?:\d+/.test(text);
|
|
259
|
+
|| /[A-Za-z]:\\/.test(text)
|
|
260
|
+
|| /\.[cm]?[jt]sx?:\d+/.test(text);
|
|
314
261
|
}
|
|
315
|
-
/** A failed attempt in one plain line: its recorded reason in words (first line only, about 140 characters at most),
|
|
316
|
-
* that it stopped with an internal error when the reason is machine output, or that none was recorded. */
|
|
317
262
|
export function failedAttemptSentence(reason) {
|
|
318
263
|
const code = reason?.trim() ?? "";
|
|
319
264
|
if (code === "")
|
|
@@ -325,8 +270,6 @@ export function failedAttemptSentence(reason) {
|
|
|
325
270
|
: `${words.slice(0, REASON_LINE_LIMIT - 1).replace(/\s+\S*$/, "").replace(/[,;:\s]+$/, "")}…`;
|
|
326
271
|
return `${line.charAt(0).toUpperCase()}${line.slice(1)}${line.endsWith("…") ? "" : "."}`;
|
|
327
272
|
}
|
|
328
|
-
/** What to change before the next attempt, by a stopped run's recorded reason: one plain suggestion, the note Retry
|
|
329
|
-
* starts with. A reason with no suggestion of its own gets the general one. */
|
|
330
273
|
const STOP_SUGGESTIONS = {
|
|
331
274
|
acceptance: "Before handing off, check each approved requirement against the changes.",
|
|
332
275
|
timeout: "Split the work into smaller steps, or name the one part to finish first.",
|
|
@@ -353,28 +296,22 @@ export function stopSuggestionOf(reason) {
|
|
|
353
296
|
const code = reason?.trim() ?? "";
|
|
354
297
|
return STOP_SUGGESTIONS[code] ?? GENERAL_SUGGESTION;
|
|
355
298
|
}
|
|
356
|
-
/** A signed requirement in the middle of a sentence: its first letter lowered unless it starts a name or an acronym. */
|
|
357
299
|
function inSentence(statement) {
|
|
358
300
|
const plain = statement.trim().replace(/[.\s]+$/, "");
|
|
359
301
|
return /^[A-Z][a-z]/.test(plain) ? `${plain.charAt(0).toLowerCase()}${plain.slice(1)}` : plain;
|
|
360
302
|
}
|
|
361
|
-
/** The suggestion for a requirement the result missed: make sure of it before handing off. */
|
|
362
303
|
export function missedRequirementSuggestion(statement) {
|
|
363
304
|
return `Before handing off, make sure ${inSentence(statement)}.`;
|
|
364
305
|
}
|
|
365
|
-
/** The suggestion for a check that failed on the result: make it pass, starting with the line it ended on. */
|
|
366
306
|
export function failingCheckSuggestion(line) {
|
|
367
307
|
return `Make the check pass. It ended on: ${line.replace(/[.\s]+$/, "")}.`;
|
|
368
308
|
}
|
|
369
|
-
/** The line for a missed requirement: “Missed: <statement>”, cut to one line. */
|
|
370
309
|
export function missedRequirementLine(statement) {
|
|
371
310
|
const plain = statement.trim().replace(/\s+/g, " ").replace(/[.\s]+$/, "");
|
|
372
311
|
const cut = plain.length <= REASON_LINE_LIMIT - 10 ? plain : `${plain.slice(0, REASON_LINE_LIMIT - 11).replace(/\s+\S*$/, "")}…`;
|
|
373
312
|
return `Missed a requirement: ${cut}${cut.endsWith("…") ? "" : "."}`;
|
|
374
313
|
}
|
|
375
|
-
/** The longest note Retry's field takes. */
|
|
376
314
|
export const RETRY_NOTE_LIMIT = 500;
|
|
377
|
-
/** Retry's note, prefilled with the suggestion: cut to what the field takes, at a word, so the form always posts. */
|
|
378
315
|
export function retryNoteOf(suggestion) {
|
|
379
316
|
const plain = suggestion.trim();
|
|
380
317
|
if (plain.length <= RETRY_NOTE_LIMIT)
|
package/dist/never-index.js
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Spotlight leaves Toolroll's churn alone: a `.metadata_never_index` file in a folder tells macOS not to index it or
|
|
3
|
-
* what is inside. Toolroll puts one in the folders it fills and empties all day — the checkouts folder and each
|
|
4
|
-
* project's folder in it (never inside a checkout, where a build's `git add -A` would commit it), shared dependency
|
|
5
|
-
* installs, staged runtimes and test temp roots. Measured Oct 4: fseventsd at 15 GB with 107k test temp folders.
|
|
6
|
-
*
|
|
7
|
-
* A marker that can't be written is only noted: it never decides whether anything is removed.
|
|
8
|
-
*/
|
|
9
1
|
import { writeFileSync } from "node:fs";
|
|
10
2
|
import { join } from "node:path";
|
|
11
3
|
export const NEVER_INDEX = ".metadata_never_index";
|
|
12
|
-
/** Put the marker in `dir` (an existing folder). False when it couldn't be written. */
|
|
13
4
|
export function markNeverIndex(dir) {
|
|
14
5
|
try {
|
|
15
6
|
writeFileSync(join(dir, NEVER_INDEX), "", { flag: "a" });
|