toolroll 0.9.104 → 0.9.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -5
- package/README.md +18 -20
- package/dist/accent-colors.js +0 -29
- package/dist/acp-agents.js +0 -3
- package/dist/acp-attest.js +0 -30
- package/dist/acp-check.js +3 -70
- package/dist/acp-client.js +3 -94
- package/dist/acp-inspect.js +1 -20
- package/dist/action-ledger.js +0 -8
- package/dist/activity-line.js +0 -14
- package/dist/actor.js +0 -15
- package/dist/advanced-schema.js +12 -0
- package/dist/advanced-view.js +26 -0
- package/dist/advanced.js +61 -0
- package/dist/agent-board.js +0 -117
- package/dist/agent-fence.js +11 -367
- package/dist/agent-onboard.js +12 -50
- package/dist/agent-pulse.js +5 -38
- package/dist/agent-state-words.js +0 -8
- package/dist/agent-state.js +1 -45
- package/dist/agent-turns.js +3 -17
- package/dist/agentconfig.js +1 -99
- package/dist/agents-board.js +0 -60
- package/dist/agents-live.js +1 -8
- package/dist/api-tokens.js +0 -27
- package/dist/approval-authority.js +0 -59
- package/dist/approval-password.js +0 -10
- package/dist/approval-policy.js +0 -29
- package/dist/approval-rules-ui.js +0 -9
- package/dist/assignment-adapters.js +0 -14
- package/dist/assignment-brief.js +1 -17
- package/dist/assignment-delivery.js +0 -22
- package/dist/assignment-presentation.js +0 -14
- package/dist/assignment-status.js +1 -30
- package/dist/assignment-ui.js +0 -12
- package/dist/assignment.js +17 -139
- package/dist/attest.js +0 -38
- package/dist/audit-cli.js +0 -9
- package/dist/backend.js +0 -59
- package/dist/backup-ui.js +0 -12
- package/dist/backup.js +8 -61
- package/dist/batch-checks.js +0 -20
- package/dist/batch-policy.js +0 -4
- package/dist/beads.js +0 -48
- package/dist/bin.js +0 -8
- package/dist/board.js +1 -36
- package/dist/boot-identity.js +0 -42
- package/dist/bounded-spawn.js +4 -28
- package/dist/brand-mark.js +0 -21
- package/dist/brief-fence.js +0 -16
- package/dist/browser/terminal.css +1 -1
- package/dist/browser/terminal.js +16 -16
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +26 -26
- package/dist/browser-crew.js +0 -8
- package/dist/browser-shell.js +2 -15
- package/dist/browser-workspace.js +6 -30
- package/dist/budget-alerts.js +1 -4
- package/dist/build-review.js +2 -50
- package/dist/builder-restart.js +0 -13
- package/dist/builder.js +21 -1035
- package/dist/canonical-json.js +0 -12
- package/dist/capscan.js +1 -32
- package/dist/card-catalog.js +0 -12
- package/dist/card-cli.js +0 -1
- package/dist/card-render.js +0 -25
- package/dist/card-sources.js +0 -10
- package/dist/chat-acceptance.js +0 -7
- package/dist/chat-actions.js +5 -190
- package/dist/chat-admission.js +0 -7
- package/dist/chat-approval.js +0 -25
- package/dist/chat-ask.js +0 -17
- package/dist/chat-card-part.js +0 -3
- package/dist/chat-card.js +0 -6
- package/dist/chat-channel.js +2 -83
- package/dist/chat-continuity.js +0 -31
- package/dist/chat-controls.js +0 -7
- package/dist/chat-core.js +0 -55
- package/dist/chat-decide.js +2 -153
- package/dist/chat-delivery-state.js +0 -49
- package/dist/chat-delivery.js +2 -143
- package/dist/chat-display.js +0 -2
- package/dist/chat-evidence.js +0 -65
- package/dist/chat-flow.js +0 -72
- package/dist/chat-follow.js +0 -13
- package/dist/chat-inbox.js +0 -34
- package/dist/chat-live-schema.js +0 -14
- package/dist/chat-live.js +2 -87
- package/dist/chat-message-states.js +13 -40
- package/dist/chat-messages.js +0 -153
- package/dist/chat-migration.js +0 -57
- package/dist/chat-polish.js +0 -7
- package/dist/chat-quiet.js +0 -37
- package/dist/chat-review.js +0 -4
- package/dist/chat-rooms.js +0 -22
- package/dist/chat-settings-page.js +0 -4
- package/dist/chat-task-actions.js +0 -7
- package/dist/chat-terms.js +0 -21
- package/dist/chat-voice.js +0 -38
- package/dist/chat-warmth.js +1 -3
- package/dist/check-access.js +0 -30
- package/dist/check-facts.js +2 -62
- package/dist/check-failure.js +0 -98
- package/dist/check-levels-ui.js +4 -10
- package/dist/check-levels.js +3 -35
- package/dist/check-load.js +1 -49
- package/dist/check-only-standing.js +0 -6
- package/dist/check-only.js +0 -22
- package/dist/check-progress.js +0 -32
- package/dist/check-repair.js +2 -35
- package/dist/check-report.js +1 -108
- package/dist/check-stamp.js +0 -20
- package/dist/checkout-cleanup.js +0 -84
- package/dist/checkout-proof.js +1 -13
- package/dist/child-database.js +0 -3
- package/dist/claim.js +4 -508
- package/dist/claude-print.js +0 -10
- package/dist/cli-fast.js +0 -8
- package/dist/cli-help.js +90 -78
- package/dist/cli-http.js +0 -10
- package/dist/cli.js +26 -241
- package/dist/code-extract.js +0 -6
- package/dist/code-map-acts.js +0 -7
- package/dist/code-map-admission.js +2 -26
- package/dist/code-map-build.js +3 -24
- package/dist/code-map-cli.js +0 -4
- package/dist/code-map-main.js +0 -6
- package/dist/code-map-read.js +0 -12
- package/dist/code-map-report.js +0 -9
- package/dist/code-map-shape.js +0 -19
- package/dist/code-map-store.js +0 -26
- package/dist/codex-limits.js +1 -17
- package/dist/coding-context.js +0 -10
- package/dist/coding-handoff.js +0 -14
- package/dist/coding-provider.js +0 -39
- package/dist/coding-shipping-ui.js +0 -1
- package/dist/coding-ui.js +0 -1
- package/dist/coding-update.js +1 -18
- package/dist/coding-workspace.js +0 -27
- package/dist/commit-extract.js +0 -83
- package/dist/connect-cli.js +0 -19
- package/dist/console-chrome.js +1 -34
- package/dist/console-instance.js +2 -91
- package/dist/container-state.js +0 -4
- package/dist/containment.js +2 -105
- package/dist/contract-changes.js +0 -6
- package/dist/contracts/acceptance-terms.js +0 -7
- package/dist/contracts/chat-actions.js +0 -46
- package/dist/contracts/chat-callback-rows.js +0 -8
- package/dist/contracts/chat-card.js +0 -14
- package/dist/contracts/chat-content.js +0 -55
- package/dist/contracts/chat-tables.js +0 -7
- package/dist/contracts/cli.js +0 -59
- package/dist/contracts/coding-activity.js +0 -15
- package/dist/contracts/coding-context.js +0 -15
- package/dist/contracts/coding-handoff.js +0 -11
- package/dist/contracts/coding-workspace.js +0 -14
- package/dist/contracts/console-api.js +1 -54
- package/dist/contracts/contract-test.js +0 -14
- package/dist/contracts/contract.js +0 -48
- package/dist/contracts/decision.js +0 -20
- package/dist/contracts/diff-stat.js +0 -16
- package/dist/contracts/discord-callback.js +0 -9
- package/dist/contracts/flow-card.js +0 -18
- package/dist/contracts/flow-propose.js +0 -8
- package/dist/contracts/flow-send.js +0 -31
- package/dist/contracts/flow.js +0 -112
- package/dist/contracts/gateway-tools.js +0 -22
- package/dist/contracts/handoff.js +0 -22
- package/dist/contracts/integration-metadata.js +0 -39
- package/dist/contracts/lead-context.js +0 -14
- package/dist/contracts/lead-tools.js +0 -49
- package/dist/contracts/mcp-oauth.js +0 -12
- package/dist/contracts/memory-pass.js +0 -21
- package/dist/contracts/model-catalog.js +0 -9
- package/dist/contracts/observation-request.js +0 -11
- package/dist/contracts/plan.js +0 -16
- package/dist/contracts/project-knowledge.js +0 -26
- package/dist/contracts/project-memory.js +0 -16
- package/dist/contracts/project-skills.js +0 -31
- package/dist/contracts/proof.js +0 -23
- package/dist/contracts/provider.js +0 -9
- package/dist/contracts/recipes.js +0 -16
- package/dist/contracts/release-check.js +0 -61
- package/dist/contracts/release-terms.js +0 -27
- package/dist/contracts/retention.js +0 -12
- package/dist/contracts/review-findings.js +0 -13
- package/dist/contracts/route-results.js +0 -15
- package/dist/contracts/route.js +0 -33
- package/dist/contracts/scope.js +0 -29
- package/dist/contracts/scout-report.js +0 -34
- package/dist/contracts/slack-callback.js +0 -11
- package/dist/contracts/sort-answer.js +0 -24
- package/dist/contracts/stage-output.js +0 -46
- package/dist/contracts/storage.js +0 -8
- package/dist/contracts/store-json.js +0 -41
- package/dist/contracts/subagent-turn.js +0 -23
- package/dist/contracts/task-sizing.js +0 -10
- package/dist/contracts/teams-callback.js +0 -7
- package/dist/contracts/telegram-callback.js +0 -27
- package/dist/contracts/trigger-payloads.js +0 -41
- package/dist/contracts/update-journal.js +0 -47
- package/dist/contracts/verification-receipt.js +0 -36
- package/dist/contracts/verification-view.js +0 -15
- package/dist/contracts/youiyoux-request.js +0 -26
- package/dist/control-setup.js +0 -7
- package/dist/control-ui.js +0 -3
- package/dist/controller-service.js +0 -4
- package/dist/controller-supervisor.js +0 -15
- package/dist/converse.js +3 -129
- package/dist/coordinator-proposals.js +1 -6
- package/dist/coordinator.js +0 -65
- package/dist/credentials-ui.js +0 -6
- package/dist/daemon.js +0 -137
- package/dist/database-reclaim.js +0 -3
- package/dist/decision.js +0 -78
- package/dist/demo-chat.js +4 -15
- package/dist/demo-sign-in.js +77 -0
- package/dist/demo.js +5 -194
- package/dist/deploy-gate.js +0 -20
- package/dist/deploy-lock.js +0 -4
- package/dist/deploy-phase.js +0 -22
- package/dist/deploy-rescue.js +0 -21
- package/dist/deprecations.js +0 -12
- package/dist/design/kit.css +9 -6
- package/dist/design/kit.js +2 -33
- package/dist/desktop-access.js +0 -9
- package/dist/desktop-bundle.js +1 -3
- package/dist/desktop-host.js +0 -34
- package/dist/desktop-update-gate.js +0 -8
- package/dist/desktop-update-recovery.js +1 -18
- package/dist/desktop-update.js +2 -48
- package/dist/digest-times.js +0 -2
- package/dist/disclosure.js +0 -5
- package/dist/discord-api.js +0 -6
- package/dist/discord-chat.js +0 -31
- package/dist/discord.js +0 -7
- package/dist/discover.js +0 -50
- package/dist/dispatch.js +61 -60
- package/dist/dispose.js +0 -208
- package/dist/doctor.js +0 -48
- package/dist/easy-start-args.js +7 -7
- package/dist/easy-start.js +32 -45
- package/dist/egress.js +1 -63
- package/dist/email-settings.js +0 -8
- package/dist/envelope.js +50 -86
- package/dist/eval-gate.js +1 -37
- package/dist/eval-hooks.js +0 -120
- package/dist/eval-oracle-main.js +0 -7
- package/dist/eval-oracle.js +3 -42
- package/dist/eval-world.js +1 -23
- package/dist/evals.js +6 -134
- package/dist/evidence-pack.js +0 -29
- package/dist/evidence-pair.js +0 -17
- package/dist/evidence.js +4 -280
- package/dist/exec.js +19 -404
- package/dist/exhaustion.js +0 -30
- package/dist/export-ui.js +0 -7
- package/dist/export.js +1 -38
- package/dist/failing-first.js +0 -6
- package/dist/fallback-schema.js +0 -5
- package/dist/fallback.js +0 -81
- package/dist/fast-start.js +0 -97
- package/dist/fast-terms.js +0 -3
- package/dist/fenced-check-coverage.js +0 -11
- package/dist/findings.js +1 -63
- package/dist/first-run.js +4 -57
- package/dist/first-tasks-child.js +0 -5
- package/dist/flaky-ci.js +1 -24
- package/dist/flaky-cli.js +0 -4
- package/dist/flaky.js +0 -43
- package/dist/fleet-schema.js +0 -11
- package/dist/flow-actions.js +0 -31
- package/dist/flow-browser.js +0 -42
- package/dist/flow-cadence.js +1 -24
- package/dist/flow-card-task.js +0 -11
- package/dist/flow-changed.js +0 -16
- package/dist/flow-code.js +1 -45
- package/dist/flow-draft.js +0 -17
- package/dist/flow-engine.js +2 -76
- package/dist/flow-gallery-ui.js +0 -28
- package/dist/flow-gallery.js +0 -54
- package/dist/flow-insights.js +0 -12
- package/dist/flow-items.js +0 -27
- package/dist/flow-live.js +0 -31
- package/dist/flow-people.js +0 -14
- package/dist/flow-pull-request.js +0 -32
- package/dist/flow-replies.js +0 -9
- package/dist/flow-result-card.js +0 -8
- package/dist/flow-schedule.js +0 -74
- package/dist/flow-scripts.js +0 -13
- package/dist/flow-secrets.js +0 -10
- package/dist/flow-send.js +0 -45
- package/dist/flow-share.js +0 -60
- package/dist/flow-sort.js +1 -24
- package/dist/flow-starters-ui.js +0 -2
- package/dist/flow-starters.js +0 -13
- package/dist/flow-steps.js +0 -80
- package/dist/flow-triggers.js +2 -256
- package/dist/flow-unattended-words.js +0 -13
- package/dist/flow-unattended.js +2 -115
- package/dist/flows-cli.js +2 -36
- package/dist/flows-ui.js +0 -51
- package/dist/flows.js +0 -158
- package/dist/folder-gate.js +0 -21
- package/dist/folder-look.js +0 -42
- package/dist/follow-through-brief.js +0 -6
- package/dist/follow-through-cli.js +0 -5
- package/dist/fonts.js +0 -13
- package/dist/gaps.js +0 -20
- package/dist/gate-failure.js +0 -7
- package/dist/git-floor.js +0 -12
- package/dist/git-incident.js +2 -38
- package/dist/git-views.js +0 -24
- package/dist/git.js +0 -31
- package/dist/github-import.js +0 -22
- package/dist/github-jobs.js +0 -12
- package/dist/google-mail.js +2 -27
- package/dist/grant.js +0 -110
- package/dist/graph.js +0 -108
- package/dist/guides.js +4 -15
- package/dist/handover-note.js +0 -12
- package/dist/health-cli.js +0 -2
- package/dist/home-groups.js +0 -15
- package/dist/html.js +0 -54
- package/dist/install-method.js +0 -12
- package/dist/integrations-ui.js +0 -15
- package/dist/integrations.js +7 -50
- package/dist/invoke.js +1 -381
- package/dist/is-record.js +0 -1
- package/dist/issues.js +0 -48
- package/dist/jsonl-discriminants.js +0 -6
- package/dist/keymap.js +0 -17
- package/dist/keys.js +0 -56
- package/dist/kits-ui.js +0 -3
- package/dist/kits.js +1 -24
- package/dist/knowledge-cli.js +0 -4
- package/dist/knowledge-ui.js +0 -8
- package/dist/landed-cleanup.js +0 -119
- package/dist/laptop-background.js +0 -85
- package/dist/laptop-service.js +0 -67
- package/dist/latency-timeline.js +2 -23
- package/dist/lead-about.js +0 -7
- package/dist/lead-answer-eval.js +0 -39
- package/dist/lead-capabilities.js +0 -19
- package/dist/lead-cli-live.js +0 -22
- package/dist/lead-cli.js +0 -27
- package/dist/lead-commitments.js +1 -27
- package/dist/lead-context.js +2 -42
- package/dist/lead-contract.js +0 -8
- package/dist/lead-doors.js +0 -105
- package/dist/lead-follow.js +0 -41
- package/dist/lead-identity.js +1 -4
- package/dist/lead-latency-schema.js +0 -13
- package/dist/lead-people.js +3 -18
- package/dist/lead-progress.js +0 -12
- package/dist/lead-queue-runtime.js +0 -26
- package/dist/lead-queue.js +0 -35
- package/dist/lead-route.js +0 -33
- package/dist/lead-status.js +0 -37
- package/dist/lead-sweep.js +0 -18
- package/dist/lead-tools.js +0 -160
- package/dist/lead-voice.js +0 -54
- package/dist/lead.js +2 -105
- package/dist/learning-child.js +0 -6
- package/dist/learning-look.js +0 -14
- package/dist/ledger-chain.js +0 -34
- package/dist/ledger-csv.js +0 -2
- package/dist/ledger-view.js +0 -3
- package/dist/lesson-notes.js +0 -56
- package/dist/limits-ui.js +0 -14
- package/dist/link.js +0 -79
- package/dist/live-backup.js +3 -33
- package/dist/live-bus.js +7 -81
- package/dist/live-children-read.js +4 -47
- package/dist/live-children.js +4 -44
- package/dist/live-detail.js +0 -17
- package/dist/live-input.js +5 -68
- package/dist/live-main-read.js +1 -14
- package/dist/live-notes.js +0 -12
- package/dist/live-open.js +1 -23
- package/dist/live-records.js +4 -151
- package/dist/live-reply.js +1 -51
- package/dist/live-terminal.js +12 -111
- package/dist/live.js +4 -130
- package/dist/local-owner-acts.js +0 -53
- package/dist/local-owner.js +2 -93
- package/dist/log.js +0 -8
- package/dist/login-secrets.js +2 -38
- package/dist/machine-check.js +0 -2
- package/dist/machine-identity.js +1 -46
- package/dist/mailbox.js +0 -30
- package/dist/maintenance.js +1 -3
- package/dist/mcp-connect.js +0 -88
- package/dist/mcp-core.js +0 -45
- package/dist/mcp-http.js +0 -13
- package/dist/mcp-oauth.js +0 -37
- package/dist/mcp-person.js +0 -11
- package/dist/mcp.js +3 -73
- package/dist/memory-cli.js +0 -3
- package/dist/memory-pass.js +0 -53
- package/dist/memory-tidy.js +0 -55
- package/dist/memory-use.js +2 -24
- package/dist/merge-checklist.js +21 -29
- package/dist/metrics.js +0 -10
- package/dist/mobile-viewport.js +0 -6
- package/dist/model-catalog.js +1 -33
- package/dist/model-choices.js +9 -84
- package/dist/model-names.js +0 -9
- package/dist/models-cli.js +0 -13
- package/dist/models-ui.js +0 -17
- package/dist/modes.js +0 -35
- package/dist/monitoring-settings.js +2 -27
- package/dist/monitoring-ui.js +2 -14
- package/dist/monitoring.js +2 -38
- package/dist/names.js +0 -39
- package/dist/needs-you.js +7 -70
- package/dist/never-index.js +0 -9
- package/dist/nightly-check.js +0 -74
- package/dist/nightly-github.js +0 -168
- package/dist/notification-delivery.js +0 -3
- package/dist/notification-rows.js +0 -17
- package/dist/oauth-run-token.js +1 -37
- package/dist/observations.js +0 -16
- package/dist/oidc.js +1 -20
- package/dist/onboard.js +4 -57
- package/dist/one-step-chat-schema.js +0 -15
- package/dist/openrouter-models.js +0 -6
- package/dist/operate-remote-arguments.js +0 -17
- package/dist/operate-remote.js +0 -33
- package/dist/operate.js +227 -2326
- package/dist/orphan-sweep.js +3 -37
- package/dist/page-work-contract.js +0 -3
- package/dist/password-bearer.js +1 -11
- package/dist/passwordless.js +0 -3
- package/dist/peek-cli.js +0 -46
- package/dist/peek.js +2 -61
- package/dist/people-audit-ui.js +0 -6
- package/dist/person-proof.js +0 -6
- package/dist/phase-routing.js +8 -183
- package/dist/plain-schema.js +0 -14
- package/dist/plain-words.js +18 -12
- package/dist/plan-auto.js +0 -20
- package/dist/plan-login.js +0 -16
- package/dist/plan.js +0 -68
- package/dist/plane-review.js +0 -56
- package/dist/planner-source.js +0 -96
- package/dist/planner.js +0 -117
- package/dist/policy-ui.js +0 -8
- package/dist/policy.js +0 -47
- package/dist/prepared-evidence.js +0 -5
- package/dist/principal.js +0 -29
- package/dist/probe.js +0 -30
- package/dist/process-custody.js +0 -15
- package/dist/process-liveness.js +0 -32
- package/dist/process-tree.js +3 -29
- package/dist/project-access.js +0 -10
- package/dist/project-admission.js +1 -41
- package/dist/project-cli.js +0 -6
- package/dist/project-concurrency.js +0 -35
- package/dist/project-delete-ui.js +4 -29
- package/dist/project-delete.js +1 -73
- package/dist/project-demo.js +0 -13
- package/dist/project-file.js +0 -2
- package/dist/project-identity.js +0 -41
- package/dist/project-knowledge.js +0 -39
- package/dist/project-learning.js +3 -55
- package/dist/project-memory.js +2 -45
- package/dist/project-outcomes.js +0 -6
- package/dist/project-sandbox.js +0 -23
- package/dist/project-skills.js +0 -12
- package/dist/project-tools.js +6 -184
- package/dist/project.js +0 -48
- package/dist/prompt.js +0 -31
- package/dist/proof.js +0 -220
- package/dist/proposal.js +0 -50
- package/dist/protected-storage-look.js +0 -6
- package/dist/protected-storage.js +1 -84
- package/dist/provider-auth.js +3 -69
- package/dist/provider-capture.js +1 -15
- package/dist/provider-connection.js +0 -8
- package/dist/provider-home.js +0 -25
- package/dist/provider-limits.js +0 -14
- package/dist/provider.js +0 -324
- package/dist/public-access.js +0 -34
- package/dist/public-check.js +0 -16
- package/dist/publish.js +1 -150
- package/dist/pull-request-flow.js +0 -77
- package/dist/pull-request-schema.js +0 -4
- package/dist/pull-request-ui.js +0 -5
- package/dist/pulls.js +0 -80
- package/dist/push.js +5 -89
- package/dist/quick-start.js +1 -23
- package/dist/read-executor-worker.js +0 -1
- package/dist/read-executor.js +0 -10
- package/dist/read-only-request.js +0 -7
- package/dist/recipe-ui.js +0 -6
- package/dist/recipes.js +0 -13
- package/dist/release-adapters.js +6 -214
- package/dist/release-approval.js +0 -74
- package/dist/release-authority.js +0 -42
- package/dist/release-auto.js +0 -142
- package/dist/release-card.js +0 -100
- package/dist/release-carry.js +0 -132
- package/dist/release-ci-hold.js +0 -20
- package/dist/release-cli.js +0 -46
- package/dist/release-coverage.js +0 -16
- package/dist/release-gate.js +0 -30
- package/dist/release-git.js +0 -24
- package/dist/release-links.js +0 -17
- package/dist/release-net.js +0 -42
- package/dist/release-next.js +0 -25
- package/dist/release-recheck.js +0 -89
- package/dist/release-refusal.js +0 -18
- package/dist/release-view.js +0 -5
- package/dist/release.js +7 -341
- package/dist/releases.js +0 -49
- package/dist/remote-audit.js +0 -25
- package/dist/remote-command.js +0 -16
- package/dist/remote-destination.js +5 -26
- package/dist/remote-exec.js +1 -27
- package/dist/remote-main.js +1 -53
- package/dist/remote-run.js +0 -5
- package/dist/remote.js +0 -49
- package/dist/render.js +0 -133
- package/dist/reply-shape.js +0 -85
- package/dist/reply-voice.js +0 -7
- package/dist/report-summary.js +0 -5
- package/dist/reported-usage.js +0 -30
- package/dist/repos.js +9 -62
- package/dist/repository-context.js +1 -24
- package/dist/request-budget-ui.js +0 -4
- package/dist/request-budget.js +0 -23
- package/dist/restart-certification.js +0 -37
- package/dist/result-actions.js +0 -62
- package/dist/result-acts.js +0 -34
- package/dist/result-completion.js +0 -25
- package/dist/result-evidence-readers.js +0 -3
- package/dist/result-follow-ups.js +1 -39
- package/dist/result-review.js +0 -86
- package/dist/result-shots.js +0 -39
- package/dist/retention-ui.js +0 -7
- package/dist/retention.js +2 -46
- package/dist/review-context.js +0 -129
- package/dist/review-evidence.js +0 -4
- package/dist/review-switch.js +1 -7
- package/dist/reviewer.js +0 -35
- package/dist/route-change-check.js +0 -2
- package/dist/route-change.js +0 -16
- package/dist/route-hooks.js +0 -27
- package/dist/route-results.js +2 -58
- package/dist/route-rules.js +1 -106
- package/dist/route-savings.js +0 -36
- package/dist/route-store.js +1 -133
- package/dist/run-closeout.js +2 -50
- package/dist/run-efficiency.js +2 -44
- package/dist/run-ending.js +0 -13
- package/dist/runner-process.js +0 -33
- package/dist/runner.js +17 -189
- package/dist/sample-project.js +2 -27
- package/dist/sandbox-launch.js +4 -25
- package/dist/sandbox-runtime.js +1 -88
- package/dist/scan.js +0 -27
- package/dist/scope.js +4 -567
- package/dist/scout-browser-lock.js +0 -6
- package/dist/scout-browser.js +2 -68
- package/dist/scout-net.js +1 -32
- package/dist/scout-report.js +0 -22
- package/dist/scout.js +1 -116
- package/dist/secret-mint.js +0 -6
- package/dist/serve.js +21 -555
- package/dist/server/agents-computers.js +0 -10
- package/dist/server/agents-live-filed.js +0 -13
- package/dist/server/agents-live-lead.js +0 -19
- package/dist/server/agents-live-room.js +0 -19
- package/dist/server/chat.js +2 -194
- package/dist/server/chrome.js +17 -263
- package/dist/server/console.css +4 -4
- package/dist/server/edge-refusal.js +0 -3
- package/dist/server/flows.js +5 -74
- package/dist/server/guards.js +1 -88
- package/dist/server/handler-registry.js +0 -2
- package/dist/server/home-asks.js +1 -22
- package/dist/server/home.js +1 -30
- package/dist/server/http.js +0 -82
- package/dist/server/in-place.js +0 -15
- package/dist/server/kit-standalone.js +0 -20
- package/dist/server/kit.js +2 -114
- package/dist/server/last-checks.js +0 -2
- package/dist/server/live.js +1 -36
- package/dist/server/merge-ready-view.js +0 -6
- package/dist/server/mutation-key.js +3 -40
- package/dist/server/pages-assets.js +0 -16
- package/dist/server/pages.js +7 -195
- package/dist/server/people-tokens.js +3 -101
- package/dist/server/remote-hooks.js +0 -13
- package/dist/server/remote.js +0 -28
- package/dist/server/render-chat.js +8 -144
- package/dist/server/render-code-map.js +0 -5
- package/dist/server/render-flaky.js +0 -8
- package/dist/server/render-follow-through.js +2 -5
- package/dist/server/render-history.js +2 -34
- package/dist/server/render-new-task.js +2 -29
- package/dist/server/render-pages.js +1 -111
- package/dist/server/render-people.js +2 -46
- package/dist/server/render-projects.js +15 -32
- package/dist/server/render-release.js +1 -14
- package/dist/server/render-results.js +4 -355
- package/dist/server/render-settings.js +0 -15
- package/dist/server/render-tasks.js +13 -493
- package/dist/server/request-context.js +2 -9
- package/dist/server/retired-routes.js +0 -11
- package/dist/server/route-policy.js +0 -3
- package/dist/server/route-table.js +6 -135
- package/dist/server/runtime.js +0 -1
- package/dist/server/session.js +0 -28
- package/dist/server/settings.js +40 -246
- package/dist/server/signup-gate.js +0 -11
- package/dist/server/sweeps.js +0 -6
- package/dist/server/task-views.js +9 -227
- package/dist/server/tasks.js +5 -539
- package/dist/server/terminals.js +2 -46
- package/dist/server/welcome.js +2 -22
- package/dist/server-telemetry.js +0 -9
- package/dist/settings-groups-ui.js +50 -63
- package/dist/settings-kit-script.js +0 -19
- package/dist/settings-kit.js +0 -63
- package/dist/settings-proofs.js +0 -23
- package/dist/setup-guide.js +1 -9
- package/dist/shared-deps.js +9 -84
- package/dist/sign-in-guard.js +0 -27
- package/dist/skills-ui.js +0 -2
- package/dist/skills.js +2 -54
- package/dist/slack-api.js +0 -3
- package/dist/slack-chat.js +0 -25
- package/dist/slack-settings.js +0 -1
- package/dist/slack-socket.js +0 -5
- package/dist/slack.js +0 -4
- package/dist/sleep.js +0 -1
- package/dist/source-key.js +0 -10
- package/dist/spend-report.js +0 -29
- package/dist/spend-ui.js +0 -26
- package/dist/spend.js +0 -40
- package/dist/sqlite-runtime.js +0 -2
- package/dist/sqlite-telemetry.js +0 -9
- package/dist/sso-settings.js +0 -13
- package/dist/sso-ui.js +0 -2
- package/dist/staged-runtimes.js +5 -39
- package/dist/steer-capabilities.js +1 -7
- package/dist/steer-controls.js +0 -10
- package/dist/steer-live.js +0 -31
- package/dist/steer-mailbox.js +4 -65
- package/dist/steer-status.js +0 -7
- package/dist/stop-proof.js +5 -62
- package/dist/storage-sweep-child.js +1 -5
- package/dist/storage-sweep-process.js +2 -20
- package/dist/storage-sweep-schedule.js +0 -32
- package/dist/storage-sweep.js +2 -51
- package/dist/storage-ui.js +0 -18
- package/dist/storage.js +0 -31
- package/dist/store-baseline.js +0 -14
- package/dist/store.js +109 -4763
- package/dist/stream-scope.js +0 -16
- package/dist/structured-output.js +0 -39
- package/dist/style-asset.js +0 -2
- package/dist/subagent-admin.js +0 -9
- package/dist/subagent-desk.js +0 -29
- package/dist/subagent-memory.js +0 -38
- package/dist/subagent-question.js +0 -29
- package/dist/subagent-tools.js +1 -60
- package/dist/subagent-week.js +0 -28
- package/dist/subagent-work.js +1 -39
- package/dist/subagents-ui.js +1 -13
- package/dist/subagents.js +0 -40
- package/dist/subscription-chat.js +1 -42
- package/dist/summary.js +0 -19
- package/dist/surface.js +0 -75
- package/dist/sweep-gate.js +0 -2
- package/dist/sweep-quarantine.js +2 -13
- package/dist/sync.js +0 -47
- package/dist/tailnet.js +0 -9
- package/dist/tamper-scan.js +0 -15
- package/dist/task-activity.js +1 -16
- package/dist/task-aliases.js +0 -3
- package/dist/task-archive.js +0 -7
- package/dist/task-base.js +0 -18
- package/dist/task-composer.js +0 -2
- package/dist/task-control.js +0 -74
- package/dist/task-live.js +0 -23
- package/dist/task-moves.js +0 -28
- package/dist/task-outcome-cli.js +17 -28
- package/dist/task-review-brief.js +0 -7
- package/dist/task-sizing.js +0 -47
- package/dist/task-source.js +0 -23
- package/dist/task-status.js +0 -106
- package/dist/task-text.js +0 -12
- package/dist/team-chat-authorization.js +0 -3
- package/dist/team-contract.js +0 -2
- package/dist/team-http.js +0 -4
- package/dist/team-leads.js +1 -16
- package/dist/team-runtime.js +0 -13
- package/dist/team-ui.js +0 -1
- package/dist/team-updates.js +0 -4
- package/dist/teams-api.js +0 -12
- package/dist/teams-chat.js +0 -28
- package/dist/teams.js +0 -12
- package/dist/teardown-git.js +6 -294
- package/dist/telegram-flow.js +0 -51
- package/dist/telegram-lead.js +2 -203
- package/dist/telegram-live.js +1 -42
- package/dist/telegram-progress.js +0 -18
- package/dist/telegram-settings.js +0 -7
- package/dist/telegram-status.js +0 -46
- package/dist/telegram-team.js +1 -33
- package/dist/telegram.js +6 -454
- package/dist/templates.js +0 -24
- package/dist/terminal-catalog.js +2 -20
- package/dist/terminal-text.js +0 -12
- package/dist/test-infra.js +0 -50
- package/dist/test-temp.js +3 -26
- package/dist/text-limits.js +0 -92
- package/dist/tidy.js +0 -76
- package/dist/tier-report.js +0 -2
- package/dist/token-notices.js +1 -9
- package/dist/tokens-cli.js +0 -13
- package/dist/tool-broker.js +2 -53
- package/dist/tool-launcher.js +0 -14
- package/dist/tool-secret-store.js +3 -125
- package/dist/toolroll-update-cli.js +0 -9
- package/dist/toolroll-update-ui.js +0 -14
- package/dist/toolroll-update.js +13 -252
- package/dist/tools-ui.js +0 -17
- package/dist/transitions-recipes.js +0 -2
- package/dist/tree-proof.js +0 -23
- package/dist/tui-contract.js +0 -8
- package/dist/tui-source.js +16 -36
- package/dist/tui.js +1 -1
- package/dist/typed-start.js +0 -27
- package/dist/unfenced-test-support.js +0 -5
- package/dist/up-processes.js +1 -40
- package/dist/up-role-child.js +1 -13
- package/dist/update-notice.js +0 -1
- package/dist/vanished-retry.js +0 -40
- package/dist/verification-evidence.js +0 -39
- package/dist/version.js +0 -1
- package/dist/wake-hub.js +0 -28
- package/dist/webhook-limits.js +0 -7
- package/dist/webhook-readers.js +0 -30
- package/dist/webhook-signing.js +0 -14
- package/dist/webhooks.js +0 -54
- package/dist/welcome-facts.js +2 -14
- package/dist/when-html.js +0 -27
- package/dist/work-index.js +26 -98
- package/dist/work-summary.js +2 -17
- package/dist/workspace-motion.js +0 -2
- package/dist/workspace-revision.js +1 -21
- package/dist/workspace-ui.js +15 -135
- package/dist/worktree-notices.js +0 -3
- package/dist/worktree.js +0 -308
- package/dist/writes-mode.js +0 -1
- package/dist/youiyoux-intake.js +4 -159
- package/package.json +4 -3
- package/dist/accent-colors.d.ts +0 -51
- package/dist/acp-agents.d.ts +0 -43
- package/dist/acp-attest.d.ts +0 -44
- package/dist/acp-check.d.ts +0 -37
- package/dist/acp-client.d.ts +0 -163
- package/dist/acp-inspect.d.ts +0 -23
- package/dist/action-ledger.d.ts +0 -27
- package/dist/activity-line.d.ts +0 -29
- package/dist/actor.d.ts +0 -11
- package/dist/agent-board.d.ts +0 -229
- package/dist/agent-fence.d.ts +0 -479
- package/dist/agent-onboard.d.ts +0 -158
- package/dist/agent-pulse.d.ts +0 -43
- package/dist/agent-state-words.d.ts +0 -19
- package/dist/agent-state.d.ts +0 -65
- package/dist/agent-turns.d.ts +0 -52
- package/dist/agentconfig.d.ts +0 -191
- package/dist/agents-board.d.ts +0 -145
- package/dist/agents-live.d.ts +0 -31
- package/dist/api-tokens.d.ts +0 -80
- package/dist/approval-authority.d.ts +0 -51
- package/dist/approval-password.d.ts +0 -31
- package/dist/approval-policy.d.ts +0 -69
- package/dist/approval-rules-ui.d.ts +0 -40
- package/dist/assignment-adapters.d.ts +0 -152
- package/dist/assignment-brief.d.ts +0 -83
- package/dist/assignment-delivery.d.ts +0 -86
- package/dist/assignment-presentation.d.ts +0 -37
- package/dist/assignment-status.d.ts +0 -71
- package/dist/assignment-ui.d.ts +0 -68
- package/dist/assignment.d.ts +0 -350
- package/dist/attest.d.ts +0 -59
- package/dist/audit-cli.d.ts +0 -17
- package/dist/backend.d.ts +0 -97
- package/dist/backup-ui.d.ts +0 -32
- package/dist/backup.d.ts +0 -92
- package/dist/batch-checks.d.ts +0 -15
- package/dist/batch-policy.d.ts +0 -23
- package/dist/beads.d.ts +0 -34
- package/dist/bin.d.ts +0 -2
- package/dist/board.d.ts +0 -134
- package/dist/boot-identity.d.ts +0 -64
- package/dist/bounded-spawn.d.ts +0 -57
- package/dist/brand-icons.d.ts +0 -168
- package/dist/brand-mark.d.ts +0 -28
- package/dist/brief-fence.d.ts +0 -9
- package/dist/browser-crew.d.ts +0 -12
- package/dist/browser-shell.d.ts +0 -9
- package/dist/browser-workspace.d.ts +0 -1985
- package/dist/budget-alerts.d.ts +0 -19
- package/dist/build-review.d.ts +0 -38
- package/dist/builder-restart.d.ts +0 -21
- package/dist/builder.d.ts +0 -409
- package/dist/canonical-json.d.ts +0 -14
- package/dist/capscan.d.ts +0 -35
- package/dist/card-catalog.d.ts +0 -209
- package/dist/card-cli.d.ts +0 -43
- package/dist/card-render.d.ts +0 -43
- package/dist/card-sources.d.ts +0 -68
- package/dist/chat-acceptance.d.ts +0 -74
- package/dist/chat-actions.d.ts +0 -460
- package/dist/chat-admission.d.ts +0 -19
- package/dist/chat-approval.d.ts +0 -58
- package/dist/chat-ask.d.ts +0 -32
- package/dist/chat-card-part.d.ts +0 -11
- package/dist/chat-card.d.ts +0 -46
- package/dist/chat-channel.d.ts +0 -126
- package/dist/chat-continuity.d.ts +0 -32
- package/dist/chat-controls.d.ts +0 -117
- package/dist/chat-core.d.ts +0 -177
- package/dist/chat-decide.d.ts +0 -269
- package/dist/chat-delivery-state.d.ts +0 -132
- package/dist/chat-delivery.d.ts +0 -71
- package/dist/chat-display.d.ts +0 -1
- package/dist/chat-evidence.d.ts +0 -123
- package/dist/chat-flow.d.ts +0 -70
- package/dist/chat-follow.d.ts +0 -20
- package/dist/chat-inbox.d.ts +0 -57
- package/dist/chat-live-schema.d.ts +0 -17
- package/dist/chat-live.d.ts +0 -161
- package/dist/chat-message-states.d.ts +0 -75
- package/dist/chat-messages.d.ts +0 -338
- package/dist/chat-migration.d.ts +0 -30
- package/dist/chat-polish.d.ts +0 -17
- package/dist/chat-quiet.d.ts +0 -40
- package/dist/chat-review.d.ts +0 -51
- package/dist/chat-rooms.d.ts +0 -123
- package/dist/chat-settings-page.d.ts +0 -43
- package/dist/chat-task-actions.d.ts +0 -59
- package/dist/chat-terms.d.ts +0 -29
- package/dist/chat-voice.d.ts +0 -69
- package/dist/chat-warmth.d.ts +0 -21
- package/dist/check-access.d.ts +0 -54
- package/dist/check-facts.d.ts +0 -126
- package/dist/check-failure.d.ts +0 -113
- package/dist/check-levels-ui.d.ts +0 -36
- package/dist/check-levels.d.ts +0 -70
- package/dist/check-load.d.ts +0 -85
- package/dist/check-only-standing.d.ts +0 -36
- package/dist/check-only.d.ts +0 -15
- package/dist/check-progress.d.ts +0 -78
- package/dist/check-repair.d.ts +0 -47
- package/dist/check-report.d.ts +0 -177
- package/dist/check-stamp.d.ts +0 -46
- package/dist/checkout-cleanup.d.ts +0 -157
- package/dist/checkout-proof.d.ts +0 -28
- package/dist/child-database.d.ts +0 -12
- package/dist/claim.d.ts +0 -627
- package/dist/claude-print.d.ts +0 -12
- package/dist/cli-fast.d.ts +0 -8
- package/dist/cli-help.d.ts +0 -8
- package/dist/cli-http.d.ts +0 -58
- package/dist/cli.d.ts +0 -149
- package/dist/code-extract.d.ts +0 -44
- package/dist/code-map-acts.d.ts +0 -24
- package/dist/code-map-admission.d.ts +0 -52
- package/dist/code-map-build.d.ts +0 -63
- package/dist/code-map-cli.d.ts +0 -153
- package/dist/code-map-main.d.ts +0 -1
- package/dist/code-map-read.d.ts +0 -106
- package/dist/code-map-report.d.ts +0 -37
- package/dist/code-map-shape.d.ts +0 -172
- package/dist/code-map-store.d.ts +0 -136
- package/dist/codex-limits.d.ts +0 -15
- package/dist/coding-context.d.ts +0 -18
- package/dist/coding-handoff.d.ts +0 -39
- package/dist/coding-provider.d.ts +0 -88
- package/dist/coding-shipping-ui.d.ts +0 -5
- package/dist/coding-types.d.ts +0 -16
- package/dist/coding-ui.d.ts +0 -19
- package/dist/coding-update.d.ts +0 -28
- package/dist/coding-workspace.d.ts +0 -141
- package/dist/commit-extract.d.ts +0 -135
- package/dist/connect-cli.d.ts +0 -34
- package/dist/console-chrome.d.ts +0 -41
- package/dist/console-instance.d.ts +0 -157
- package/dist/container-state.d.ts +0 -5
- package/dist/containment.d.ts +0 -205
- package/dist/contract-changes.d.ts +0 -52
- package/dist/contracts/acceptance-terms.d.ts +0 -14
- package/dist/contracts/chat-actions.d.ts +0 -465
- package/dist/contracts/chat-callback-rows.d.ts +0 -59
- package/dist/contracts/chat-card.d.ts +0 -91
- package/dist/contracts/chat-content.d.ts +0 -551
- package/dist/contracts/chat-tables.d.ts +0 -12
- package/dist/contracts/cli.d.ts +0 -987
- package/dist/contracts/coding-activity.d.ts +0 -64
- package/dist/contracts/coding-context.d.ts +0 -97
- package/dist/contracts/coding-handoff.d.ts +0 -44
- package/dist/contracts/coding-workspace.d.ts +0 -165
- package/dist/contracts/console-api.d.ts +0 -540
- package/dist/contracts/contract-test.d.ts +0 -45
- package/dist/contracts/contract.d.ts +0 -92
- package/dist/contracts/decision.d.ts +0 -45
- package/dist/contracts/diff-stat.d.ts +0 -58
- package/dist/contracts/discord-callback.d.ts +0 -45
- package/dist/contracts/flow-card.d.ts +0 -53
- package/dist/contracts/flow-propose.d.ts +0 -334
- package/dist/contracts/flow-send.d.ts +0 -245
- package/dist/contracts/flow.d.ts +0 -19565
- package/dist/contracts/gateway-tools.d.ts +0 -472
- package/dist/contracts/handoff.d.ts +0 -91
- package/dist/contracts/health.d.ts +0 -82
- package/dist/contracts/integration-metadata.d.ts +0 -100
- package/dist/contracts/lead-context.d.ts +0 -165
- package/dist/contracts/lead-tools.d.ts +0 -2312
- package/dist/contracts/mcp-oauth.d.ts +0 -53
- package/dist/contracts/memory-pass.d.ts +0 -157
- package/dist/contracts/model-catalog.d.ts +0 -21
- package/dist/contracts/observation-request.d.ts +0 -37
- package/dist/contracts/plan.d.ts +0 -58
- package/dist/contracts/project-knowledge.d.ts +0 -159
- package/dist/contracts/project-memory.d.ts +0 -119
- package/dist/contracts/project-skills.d.ts +0 -120
- package/dist/contracts/proof.d.ts +0 -136
- package/dist/contracts/provider.d.ts +0 -40
- package/dist/contracts/recipes.d.ts +0 -166
- package/dist/contracts/release-check.d.ts +0 -371
- package/dist/contracts/release-terms.d.ts +0 -107
- package/dist/contracts/retention.d.ts +0 -42
- package/dist/contracts/review-findings.d.ts +0 -46
- package/dist/contracts/route-results.d.ts +0 -121
- package/dist/contracts/route.d.ts +0 -897
- package/dist/contracts/scope.d.ts +0 -105
- package/dist/contracts/scout-report.d.ts +0 -234
- package/dist/contracts/slack-callback.d.ts +0 -43
- package/dist/contracts/sort-answer.d.ts +0 -83
- package/dist/contracts/stage-output.d.ts +0 -127
- package/dist/contracts/storage.d.ts +0 -37
- package/dist/contracts/store-json.d.ts +0 -313
- package/dist/contracts/subagent-turn.d.ts +0 -43
- package/dist/contracts/task-sizing.d.ts +0 -24
- package/dist/contracts/teams-callback.d.ts +0 -13
- package/dist/contracts/telegram-callback.d.ts +0 -120
- package/dist/contracts/trigger-payloads.d.ts +0 -389
- package/dist/contracts/update-journal.d.ts +0 -254
- package/dist/contracts/verification-receipt.d.ts +0 -200
- package/dist/contracts/verification-view.d.ts +0 -102
- package/dist/contracts/youiyoux-request.d.ts +0 -248
- package/dist/control-setup.d.ts +0 -44
- package/dist/control-ui.d.ts +0 -37
- package/dist/controller-service.d.ts +0 -1
- package/dist/controller-supervisor.d.ts +0 -38
- package/dist/converse.d.ts +0 -316
- package/dist/coordinator-proposals.d.ts +0 -29
- package/dist/coordinator.d.ts +0 -186
- package/dist/credentials-ui.d.ts +0 -33
- package/dist/daemon.d.ts +0 -226
- package/dist/database-reclaim.d.ts +0 -4
- package/dist/decision.d.ts +0 -119
- package/dist/demo-chat.d.ts +0 -32
- package/dist/demo.d.ts +0 -153
- package/dist/deploy-gate.d.ts +0 -20
- package/dist/deploy-lock.d.ts +0 -8
- package/dist/deploy-phase.d.ts +0 -37
- package/dist/deploy-rescue.d.ts +0 -42
- package/dist/deprecations.d.ts +0 -20
- package/dist/design/kit.d.ts +0 -216
- package/dist/desktop-access.d.ts +0 -28
- package/dist/desktop-bundle.d.ts +0 -16
- package/dist/desktop-host.d.ts +0 -54
- package/dist/desktop-update-gate.d.ts +0 -12
- package/dist/desktop-update-recovery.d.ts +0 -14
- package/dist/desktop-update.d.ts +0 -147
- package/dist/digest-times.d.ts +0 -3
- package/dist/disclosure.d.ts +0 -6
- package/dist/discord-api.d.ts +0 -24
- package/dist/discord-chat.d.ts +0 -27
- package/dist/discord-settings.d.ts +0 -4
- package/dist/discord.d.ts +0 -10
- package/dist/discover.d.ts +0 -75
- package/dist/dispatch.d.ts +0 -123
- package/dist/dispose.d.ts +0 -194
- package/dist/doctor.d.ts +0 -67
- package/dist/easy-start-args.d.ts +0 -13
- package/dist/easy-start.d.ts +0 -77
- package/dist/egress.d.ts +0 -121
- package/dist/email-settings.d.ts +0 -34
- package/dist/envelope.d.ts +0 -47
- package/dist/eval-gate.d.ts +0 -51
- package/dist/eval-hooks.d.ts +0 -94
- package/dist/eval-oracle-main.d.ts +0 -1
- package/dist/eval-oracle.d.ts +0 -60
- package/dist/eval-world.d.ts +0 -17
- package/dist/evals.d.ts +0 -299
- package/dist/evidence-pack.d.ts +0 -186
- package/dist/evidence-pair.d.ts +0 -53
- package/dist/evidence.d.ts +0 -371
- package/dist/exec.d.ts +0 -355
- package/dist/exhaustion.d.ts +0 -58
- package/dist/export-ui.d.ts +0 -11
- package/dist/export.d.ts +0 -48
- package/dist/failing-first.d.ts +0 -31
- package/dist/fallback-schema.d.ts +0 -8
- package/dist/fallback.d.ts +0 -138
- package/dist/fast-start.d.ts +0 -213
- package/dist/fast-terms.d.ts +0 -9
- package/dist/fenced-check-coverage.d.ts +0 -62
- package/dist/findings.d.ts +0 -224
- package/dist/first-run.d.ts +0 -197
- package/dist/first-tasks-child.d.ts +0 -1
- package/dist/flaky-ci.d.ts +0 -31
- package/dist/flaky-cli.d.ts +0 -60
- package/dist/flaky.d.ts +0 -83
- package/dist/fleet-schema.d.ts +0 -17
- package/dist/flow-actions.d.ts +0 -79
- package/dist/flow-browser.d.ts +0 -103
- package/dist/flow-cadence.d.ts +0 -48
- package/dist/flow-card-task.d.ts +0 -11
- package/dist/flow-changed.d.ts +0 -14
- package/dist/flow-code.d.ts +0 -84
- package/dist/flow-draft.d.ts +0 -42
- package/dist/flow-engine.d.ts +0 -82
- package/dist/flow-gallery-ui.d.ts +0 -73
- package/dist/flow-gallery.d.ts +0 -147
- package/dist/flow-insights.d.ts +0 -104
- package/dist/flow-items.d.ts +0 -37
- package/dist/flow-live.d.ts +0 -16
- package/dist/flow-people.d.ts +0 -23
- package/dist/flow-pull-request.d.ts +0 -14
- package/dist/flow-replies.d.ts +0 -48
- package/dist/flow-result-card.d.ts +0 -22
- package/dist/flow-schedule.d.ts +0 -154
- package/dist/flow-scripts.d.ts +0 -31
- package/dist/flow-secrets.d.ts +0 -13
- package/dist/flow-send.d.ts +0 -54
- package/dist/flow-share.d.ts +0 -78
- package/dist/flow-sort.d.ts +0 -63
- package/dist/flow-starters-ui.d.ts +0 -15
- package/dist/flow-starters.d.ts +0 -63
- package/dist/flow-steps.d.ts +0 -52
- package/dist/flow-triggers.d.ts +0 -303
- package/dist/flow-unattended-words.d.ts +0 -48
- package/dist/flow-unattended.d.ts +0 -259
- package/dist/flows-cli.d.ts +0 -358
- package/dist/flows-ui.d.ts +0 -70
- package/dist/flows.d.ts +0 -136
- package/dist/folder-gate.d.ts +0 -32
- package/dist/folder-look.d.ts +0 -110
- package/dist/follow-through-brief.d.ts +0 -12
- package/dist/follow-through-cli.d.ts +0 -23
- package/dist/fonts.d.ts +0 -19
- package/dist/gaps.d.ts +0 -35
- package/dist/gate-failure.d.ts +0 -40
- package/dist/git-floor.d.ts +0 -16
- package/dist/git-incident.d.ts +0 -65
- package/dist/git-views.d.ts +0 -20
- package/dist/git.d.ts +0 -54
- package/dist/github-import.d.ts +0 -62
- package/dist/github-jobs.d.ts +0 -25
- package/dist/google-mail.d.ts +0 -59
- package/dist/grant.d.ts +0 -136
- package/dist/graph.d.ts +0 -164
- package/dist/guides.d.ts +0 -22
- package/dist/handover-note.d.ts +0 -33
- package/dist/health-cli.d.ts +0 -3
- package/dist/home-groups.d.ts +0 -39
- package/dist/html.d.ts +0 -85
- package/dist/install-method.d.ts +0 -17
- package/dist/integrations-ui.d.ts +0 -17
- package/dist/integrations.d.ts +0 -138
- package/dist/invoke.d.ts +0 -228
- package/dist/is-record.d.ts +0 -2
- package/dist/issues.d.ts +0 -41
- package/dist/jsonl-discriminants.d.ts +0 -11
- package/dist/keymap.d.ts +0 -43
- package/dist/keys.d.ts +0 -108
- package/dist/kits-ui.d.ts +0 -16
- package/dist/kits.d.ts +0 -88
- package/dist/knowledge-cli.d.ts +0 -132
- package/dist/knowledge-ui.d.ts +0 -45
- package/dist/landed-cleanup.d.ts +0 -175
- package/dist/laptop-background.d.ts +0 -187
- package/dist/laptop-service.d.ts +0 -111
- package/dist/latency-timeline.d.ts +0 -46
- package/dist/lead-about.d.ts +0 -35
- package/dist/lead-answer-eval.d.ts +0 -93
- package/dist/lead-capabilities.d.ts +0 -57
- package/dist/lead-cli-live.d.ts +0 -56
- package/dist/lead-cli.d.ts +0 -58
- package/dist/lead-commitments.d.ts +0 -84
- package/dist/lead-context.d.ts +0 -45
- package/dist/lead-contract.d.ts +0 -10
- package/dist/lead-doors.d.ts +0 -122
- package/dist/lead-follow.d.ts +0 -26
- package/dist/lead-identity.d.ts +0 -23
- package/dist/lead-latency-schema.d.ts +0 -24
- package/dist/lead-people.d.ts +0 -55
- package/dist/lead-progress.d.ts +0 -67
- package/dist/lead-queue-runtime.d.ts +0 -46
- package/dist/lead-queue.d.ts +0 -104
- package/dist/lead-route.d.ts +0 -56
- package/dist/lead-status.d.ts +0 -116
- package/dist/lead-sweep.d.ts +0 -67
- package/dist/lead-tools.d.ts +0 -167
- package/dist/lead-voice.d.ts +0 -85
- package/dist/lead.d.ts +0 -142
- package/dist/learning-child.d.ts +0 -1
- package/dist/learning-look.d.ts +0 -25
- package/dist/ledger-chain.d.ts +0 -46
- package/dist/ledger-csv.d.ts +0 -4
- package/dist/ledger-view.d.ts +0 -27
- package/dist/lesson-notes.d.ts +0 -81
- package/dist/limits-ui.d.ts +0 -34
- package/dist/link.d.ts +0 -72
- package/dist/live-backup.d.ts +0 -39
- package/dist/live-bus.d.ts +0 -141
- package/dist/live-children-read.d.ts +0 -52
- package/dist/live-children.d.ts +0 -73
- package/dist/live-detail.d.ts +0 -27
- package/dist/live-input.d.ts +0 -68
- package/dist/live-main-read.d.ts +0 -19
- package/dist/live-notes.d.ts +0 -20
- package/dist/live-open.d.ts +0 -28
- package/dist/live-records.d.ts +0 -149
- package/dist/live-reply.d.ts +0 -83
- package/dist/live-terminal.d.ts +0 -273
- package/dist/live.d.ts +0 -152
- package/dist/local-owner-acts.d.ts +0 -83
- package/dist/local-owner.d.ts +0 -135
- package/dist/log.d.ts +0 -7
- package/dist/login-secrets.d.ts +0 -60
- package/dist/machine-check.d.ts +0 -16
- package/dist/machine-identity.d.ts +0 -75
- package/dist/mailbox.d.ts +0 -57
- package/dist/maintenance.d.ts +0 -13
- package/dist/mcp-connect.d.ts +0 -181
- package/dist/mcp-core.d.ts +0 -110
- package/dist/mcp-http.d.ts +0 -32
- package/dist/mcp-oauth.d.ts +0 -92
- package/dist/mcp-person.d.ts +0 -22
- package/dist/mcp.d.ts +0 -20
- package/dist/memory-cli.d.ts +0 -768
- package/dist/memory-pass.d.ts +0 -151
- package/dist/memory-tidy.d.ts +0 -181
- package/dist/memory-use.d.ts +0 -35
- package/dist/merge-checklist.d.ts +0 -55
- package/dist/metrics.d.ts +0 -6
- package/dist/mobile-viewport.d.ts +0 -7
- package/dist/model-catalog.d.ts +0 -123
- package/dist/model-choices.d.ts +0 -235
- package/dist/model-names.d.ts +0 -6
- package/dist/models-cli.d.ts +0 -307
- package/dist/models-ui.d.ts +0 -161
- package/dist/modes.d.ts +0 -99
- package/dist/monitoring-settings.d.ts +0 -44
- package/dist/monitoring-ui.d.ts +0 -23
- package/dist/monitoring.d.ts +0 -34
- package/dist/names.d.ts +0 -67
- package/dist/needs-you.d.ts +0 -164
- package/dist/never-index.d.ts +0 -3
- package/dist/nightly-check.d.ts +0 -107
- package/dist/nightly-github.d.ts +0 -318
- package/dist/notification-delivery.d.ts +0 -19
- package/dist/notification-rows.d.ts +0 -30
- package/dist/oauth-run-token.d.ts +0 -51
- package/dist/observations.d.ts +0 -36
- package/dist/oidc.d.ts +0 -71
- package/dist/onboard.d.ts +0 -108
- package/dist/one-step-chat-schema.d.ts +0 -22
- package/dist/openrouter-models.d.ts +0 -34
- package/dist/operate-remote-arguments.d.ts +0 -36
- package/dist/operate-remote.d.ts +0 -98
- package/dist/operate.d.ts +0 -401
- package/dist/orphan-sweep.d.ts +0 -65
- package/dist/page-work-contract.d.ts +0 -21
- package/dist/password-bearer.d.ts +0 -25
- package/dist/passwordless.d.ts +0 -23
- package/dist/peek-cli.d.ts +0 -112
- package/dist/peek.d.ts +0 -110
- package/dist/people-audit-ui.d.ts +0 -16
- package/dist/person-proof.d.ts +0 -2
- package/dist/phase-routing.d.ts +0 -401
- package/dist/plain-schema.d.ts +0 -23
- package/dist/plain-words.d.ts +0 -20
- package/dist/plan-auto.d.ts +0 -25
- package/dist/plan-login.d.ts +0 -14
- package/dist/plan.d.ts +0 -188
- package/dist/plane-review.d.ts +0 -54
- package/dist/planner-source.d.ts +0 -225
- package/dist/planner.d.ts +0 -76
- package/dist/policy-ui.d.ts +0 -22
- package/dist/policy.d.ts +0 -92
- package/dist/prepared-evidence.d.ts +0 -17
- package/dist/principal.d.ts +0 -42
- package/dist/probe.d.ts +0 -46
- package/dist/process-custody.d.ts +0 -17
- package/dist/process-liveness.d.ts +0 -13
- package/dist/process-tree.d.ts +0 -39
- package/dist/project-access.d.ts +0 -17
- package/dist/project-activity.d.ts +0 -20
- package/dist/project-admission.d.ts +0 -105
- package/dist/project-cli.d.ts +0 -19
- package/dist/project-concurrency.d.ts +0 -62
- package/dist/project-delete-ui.d.ts +0 -96
- package/dist/project-delete.d.ts +0 -59
- package/dist/project-demo.d.ts +0 -12
- package/dist/project-file.d.ts +0 -3
- package/dist/project-identity.d.ts +0 -52
- package/dist/project-knowledge.d.ts +0 -124
- package/dist/project-learning.d.ts +0 -120
- package/dist/project-memory.d.ts +0 -70
- package/dist/project-outcomes.d.ts +0 -119
- package/dist/project-sandbox.d.ts +0 -59
- package/dist/project-skills.d.ts +0 -139
- package/dist/project-tools.d.ts +0 -318
- package/dist/project.d.ts +0 -65
- package/dist/prompt.d.ts +0 -33
- package/dist/proof.d.ts +0 -457
- package/dist/proposal.d.ts +0 -70
- package/dist/protected-storage-look.d.ts +0 -1
- package/dist/protected-storage.d.ts +0 -98
- package/dist/provider-auth.d.ts +0 -143
- package/dist/provider-capture.d.ts +0 -34
- package/dist/provider-connection.d.ts +0 -23
- package/dist/provider-home.d.ts +0 -22
- package/dist/provider-limits.d.ts +0 -37
- package/dist/provider.d.ts +0 -369
- package/dist/public-access.d.ts +0 -61
- package/dist/public-check.d.ts +0 -37
- package/dist/publish.d.ts +0 -146
- package/dist/pull-request-flow.d.ts +0 -189
- package/dist/pull-request-schema.d.ts +0 -5
- package/dist/pull-request-ui.d.ts +0 -25
- package/dist/pulls.d.ts +0 -121
- package/dist/push.d.ts +0 -120
- package/dist/quality.d.ts +0 -8
- package/dist/quick-start.d.ts +0 -26
- package/dist/read-executor-worker.d.ts +0 -1
- package/dist/read-executor.d.ts +0 -66
- package/dist/read-only-request.d.ts +0 -4
- package/dist/recipe-ui.d.ts +0 -21
- package/dist/recipes.d.ts +0 -56
- package/dist/release-adapters.d.ts +0 -205
- package/dist/release-approval.d.ts +0 -180
- package/dist/release-authority.d.ts +0 -173
- package/dist/release-auto.d.ts +0 -184
- package/dist/release-card.d.ts +0 -170
- package/dist/release-carry.d.ts +0 -261
- package/dist/release-ci-hold.d.ts +0 -41
- package/dist/release-cli.d.ts +0 -34
- package/dist/release-coverage.d.ts +0 -16
- package/dist/release-gate.d.ts +0 -84
- package/dist/release-git.d.ts +0 -43
- package/dist/release-links.d.ts +0 -29
- package/dist/release-net.d.ts +0 -90
- package/dist/release-next.d.ts +0 -48
- package/dist/release-recheck.d.ts +0 -146
- package/dist/release-refusal.d.ts +0 -32
- package/dist/release-view.d.ts +0 -37
- package/dist/release.d.ts +0 -806
- package/dist/releases.d.ts +0 -94
- package/dist/remote-audit.d.ts +0 -79
- package/dist/remote-command.d.ts +0 -45
- package/dist/remote-destination.d.ts +0 -36
- package/dist/remote-exec.d.ts +0 -38
- package/dist/remote-main.d.ts +0 -111
- package/dist/remote-run.d.ts +0 -20
- package/dist/remote.d.ts +0 -67
- package/dist/render.d.ts +0 -64
- package/dist/reply-shape.d.ts +0 -106
- package/dist/reply-voice.d.ts +0 -23
- package/dist/report-summary.d.ts +0 -22
- package/dist/reported-usage.d.ts +0 -69
- package/dist/repos.d.ts +0 -67
- package/dist/repository-context-ui.d.ts +0 -3
- package/dist/repository-context.d.ts +0 -66
- package/dist/request-budget-ui.d.ts +0 -14
- package/dist/request-budget.d.ts +0 -127
- package/dist/restart-certification.d.ts +0 -133
- package/dist/result-actions.d.ts +0 -36
- package/dist/result-acts.d.ts +0 -112
- package/dist/result-completion.d.ts +0 -39
- package/dist/result-evidence-readers.d.ts +0 -42
- package/dist/result-follow-ups.d.ts +0 -118
- package/dist/result-review.d.ts +0 -220
- package/dist/result-shots.d.ts +0 -59
- package/dist/retention-ui.d.ts +0 -21
- package/dist/retention.d.ts +0 -77
- package/dist/review-context.d.ts +0 -245
- package/dist/review-evidence.d.ts +0 -33
- package/dist/review-switch.d.ts +0 -36
- package/dist/reviewer.d.ts +0 -99
- package/dist/route-change-check.d.ts +0 -4
- package/dist/route-change.d.ts +0 -22
- package/dist/route-hooks.d.ts +0 -54
- package/dist/route-results.d.ts +0 -75
- package/dist/route-rules.d.ts +0 -324
- package/dist/route-savings.d.ts +0 -136
- package/dist/route-store.d.ts +0 -300
- package/dist/run-closeout.d.ts +0 -89
- package/dist/run-efficiency.d.ts +0 -74
- package/dist/run-ending.d.ts +0 -21
- package/dist/runner-process.d.ts +0 -76
- package/dist/runner.d.ts +0 -324
- package/dist/sample-project.d.ts +0 -31
- package/dist/sandbox-launch.d.ts +0 -1
- package/dist/sandbox-runtime.d.ts +0 -128
- package/dist/scan.d.ts +0 -32
- package/dist/scope.d.ts +0 -1098
- package/dist/scout-browser-lock.d.ts +0 -69
- package/dist/scout-browser.d.ts +0 -107
- package/dist/scout-net.d.ts +0 -25
- package/dist/scout-report.d.ts +0 -23
- package/dist/scout.d.ts +0 -142
- package/dist/secret-mint.d.ts +0 -1
- package/dist/serve.d.ts +0 -11
- package/dist/server/agents-computers.d.ts +0 -9
- package/dist/server/agents-live-filed.d.ts +0 -17
- package/dist/server/agents-live-lead.d.ts +0 -47
- package/dist/server/agents-live-room.d.ts +0 -23
- package/dist/server/chat.d.ts +0 -39
- package/dist/server/chrome.d.ts +0 -328
- package/dist/server/edge-refusal.d.ts +0 -7
- package/dist/server/flows.d.ts +0 -8
- package/dist/server/guards.d.ts +0 -81
- package/dist/server/handler-context.d.ts +0 -22
- package/dist/server/handler-registry.d.ts +0 -23
- package/dist/server/home-asks.d.ts +0 -45
- package/dist/server/home.d.ts +0 -65
- package/dist/server/http.d.ts +0 -337
- package/dist/server/in-place.d.ts +0 -15
- package/dist/server/kit-standalone.d.ts +0 -22
- package/dist/server/kit.d.ts +0 -452
- package/dist/server/last-checks.d.ts +0 -17
- package/dist/server/live.d.ts +0 -74
- package/dist/server/merge-ready-view.d.ts +0 -10
- package/dist/server/mutation-key.d.ts +0 -70
- package/dist/server/pages-assets.d.ts +0 -11
- package/dist/server/pages.d.ts +0 -8
- package/dist/server/people-tokens.d.ts +0 -18
- package/dist/server/remote-hooks.d.ts +0 -29
- package/dist/server/remote.d.ts +0 -60
- package/dist/server/render-chat.d.ts +0 -439
- package/dist/server/render-code-map.d.ts +0 -30
- package/dist/server/render-flaky.d.ts +0 -20
- package/dist/server/render-follow-through.d.ts +0 -11
- package/dist/server/render-history.d.ts +0 -51
- package/dist/server/render-new-task.d.ts +0 -54
- package/dist/server/render-pages.d.ts +0 -236
- package/dist/server/render-people.d.ts +0 -102
- package/dist/server/render-projects.d.ts +0 -104
- package/dist/server/render-release.d.ts +0 -19
- package/dist/server/render-results.d.ts +0 -758
- package/dist/server/render-settings.d.ts +0 -93
- package/dist/server/render-tasks.d.ts +0 -783
- package/dist/server/request-context.d.ts +0 -78
- package/dist/server/retired-routes.d.ts +0 -17
- package/dist/server/route-policy.d.ts +0 -18
- package/dist/server/route-table.d.ts +0 -114
- package/dist/server/runtime.d.ts +0 -343
- package/dist/server/session.d.ts +0 -192
- package/dist/server/settings.d.ts +0 -76
- package/dist/server/signup-gate.d.ts +0 -9
- package/dist/server/sweeps.d.ts +0 -4
- package/dist/server/task-views.d.ts +0 -98
- package/dist/server/tasks.d.ts +0 -108
- package/dist/server/terminals.d.ts +0 -31
- package/dist/server/welcome.d.ts +0 -28
- package/dist/server-telemetry.d.ts +0 -87
- package/dist/settings-groups-ui.d.ts +0 -286
- package/dist/settings-kit-script.d.ts +0 -21
- package/dist/settings-kit.d.ts +0 -173
- package/dist/settings-proofs.d.ts +0 -64
- package/dist/setup-guide.d.ts +0 -39
- package/dist/shared-deps.d.ts +0 -115
- package/dist/sign-in-guard.d.ts +0 -70
- package/dist/skills-ui.d.ts +0 -12
- package/dist/skills.d.ts +0 -99
- package/dist/slack-api.d.ts +0 -59
- package/dist/slack-chat.d.ts +0 -37
- package/dist/slack-settings.d.ts +0 -4
- package/dist/slack-socket.d.ts +0 -12
- package/dist/slack.d.ts +0 -6
- package/dist/sleep.d.ts +0 -2
- package/dist/source-key.d.ts +0 -2
- package/dist/spend-report.d.ts +0 -87
- package/dist/spend-ui.d.ts +0 -80
- package/dist/spend.d.ts +0 -142
- package/dist/sqlite-runtime.d.ts +0 -3
- package/dist/sqlite-telemetry.d.ts +0 -9
- package/dist/sso-settings.d.ts +0 -33
- package/dist/sso-ui.d.ts +0 -26
- package/dist/staged-runtimes.d.ts +0 -54
- package/dist/steer-capabilities.d.ts +0 -32
- package/dist/steer-controls.d.ts +0 -14
- package/dist/steer-live.d.ts +0 -19
- package/dist/steer-mailbox.d.ts +0 -46
- package/dist/steer-status.d.ts +0 -25
- package/dist/stop-proof.d.ts +0 -67
- package/dist/storage-sweep-child.d.ts +0 -1
- package/dist/storage-sweep-process.d.ts +0 -55
- package/dist/storage-sweep-schedule.d.ts +0 -30
- package/dist/storage-sweep.d.ts +0 -77
- package/dist/storage-ui.d.ts +0 -23
- package/dist/storage.d.ts +0 -68
- package/dist/store-baseline.d.ts +0 -19
- package/dist/store.d.ts +0 -8613
- package/dist/stream-scope.d.ts +0 -18
- package/dist/structured-output.d.ts +0 -57
- package/dist/style-asset.d.ts +0 -7
- package/dist/subagent-admin.d.ts +0 -53
- package/dist/subagent-desk.d.ts +0 -59
- package/dist/subagent-memory.d.ts +0 -65
- package/dist/subagent-question.d.ts +0 -59
- package/dist/subagent-tools.d.ts +0 -125
- package/dist/subagent-week.d.ts +0 -68
- package/dist/subagent-work.d.ts +0 -76
- package/dist/subagents-ui.d.ts +0 -22
- package/dist/subagents.d.ts +0 -146
- package/dist/subscription-chat.d.ts +0 -54
- package/dist/summary.d.ts +0 -33
- package/dist/surface.d.ts +0 -49
- package/dist/sweep-gate.d.ts +0 -10
- package/dist/sweep-quarantine.d.ts +0 -29
- package/dist/sync.d.ts +0 -94
- package/dist/tailnet.d.ts +0 -11
- package/dist/tamper-scan.d.ts +0 -4
- package/dist/task-activity.d.ts +0 -27
- package/dist/task-aliases.d.ts +0 -5
- package/dist/task-archive.d.ts +0 -13
- package/dist/task-base.d.ts +0 -39
- package/dist/task-composer.d.ts +0 -14
- package/dist/task-control.d.ts +0 -159
- package/dist/task-live.d.ts +0 -8
- package/dist/task-moves.d.ts +0 -90
- package/dist/task-outcome-cli.d.ts +0 -48
- package/dist/task-review-brief.d.ts +0 -69
- package/dist/task-sizing.d.ts +0 -58
- package/dist/task-source.d.ts +0 -77
- package/dist/task-status.d.ts +0 -324
- package/dist/task-text.d.ts +0 -31
- package/dist/team-chat-authorization.d.ts +0 -11
- package/dist/team-contract.d.ts +0 -103
- package/dist/team-http.d.ts +0 -25
- package/dist/team-leads.d.ts +0 -85
- package/dist/team-runtime.d.ts +0 -25
- package/dist/team-ui.d.ts +0 -4
- package/dist/team-updates.d.ts +0 -8
- package/dist/teams-api.d.ts +0 -33
- package/dist/teams-chat.d.ts +0 -36
- package/dist/teams-settings.d.ts +0 -14
- package/dist/teams.d.ts +0 -24
- package/dist/teardown-git.d.ts +0 -164
- package/dist/telegram-flow.d.ts +0 -112
- package/dist/telegram-lead.d.ts +0 -151
- package/dist/telegram-live.d.ts +0 -116
- package/dist/telegram-progress.d.ts +0 -20
- package/dist/telegram-settings.d.ts +0 -9
- package/dist/telegram-status.d.ts +0 -83
- package/dist/telegram-team.d.ts +0 -68
- package/dist/telegram.d.ts +0 -271
- package/dist/templates.d.ts +0 -69
- package/dist/terminal-catalog.d.ts +0 -11
- package/dist/terminal-text.d.ts +0 -11
- package/dist/test-infra.d.ts +0 -34
- package/dist/test-temp.d.ts +0 -40
- package/dist/text-limits.d.ts +0 -297
- package/dist/tidy.d.ts +0 -130
- package/dist/tier-report.d.ts +0 -44
- package/dist/token-notices.d.ts +0 -11
- package/dist/tokens-cli.d.ts +0 -21
- package/dist/tool-broker.d.ts +0 -52
- package/dist/tool-launcher.d.ts +0 -1
- package/dist/tool-secret-store.d.ts +0 -167
- package/dist/toolroll-update-cli.d.ts +0 -15
- package/dist/toolroll-update-ui.d.ts +0 -47
- package/dist/toolroll-update.d.ts +0 -265
- package/dist/tools-ui.d.ts +0 -51
- package/dist/transitions-recipes.d.ts +0 -1
- package/dist/tree-proof.d.ts +0 -34
- package/dist/tui-contract.d.ts +0 -202
- package/dist/tui-source.d.ts +0 -14
- package/dist/typed-start.d.ts +0 -51
- package/dist/unfenced-test-support.d.ts +0 -2
- package/dist/up-processes.d.ts +0 -162
- package/dist/up-role-child.d.ts +0 -1
- package/dist/update-notice.d.ts +0 -5
- package/dist/vanished-retry.d.ts +0 -30
- package/dist/verification-evidence.d.ts +0 -68
- package/dist/version.d.ts +0 -2
- package/dist/wake-hub.d.ts +0 -72
- package/dist/webhook-limits.d.ts +0 -23
- package/dist/webhook-readers.d.ts +0 -56
- package/dist/webhook-signing.d.ts +0 -27
- package/dist/webhooks.d.ts +0 -84
- package/dist/welcome-facts.d.ts +0 -18
- package/dist/when-html.d.ts +0 -40
- package/dist/work-index.d.ts +0 -175
- package/dist/work-summary.d.ts +0 -61
- package/dist/workspace-motion.d.ts +0 -4
- package/dist/workspace-revision.d.ts +0 -48
- package/dist/workspace-ui.d.ts +0 -385
- package/dist/worktree-notices.d.ts +0 -13
- package/dist/worktree.d.ts +0 -365
- package/dist/writes-mode.d.ts +0 -9
- package/dist/youiyoux-intake.d.ts +0 -234
package/dist/mcp-oauth.js
CHANGED
|
@@ -7,22 +7,13 @@ import { PKCE_CHALLENGE, readOAuthRegistration, readOAuthTokenRequest } from "./
|
|
|
7
7
|
import { html, htmlString, joinHtml, postForm, scriptElement, styleElement } from "./html.js";
|
|
8
8
|
import { KEY_FILL_SCRIPT } from "./server/mutation-key.js";
|
|
9
9
|
import { withFormToken } from "./server/request-context.js";
|
|
10
|
-
/** How long each piece lives. A code is spent at once; a grant ends after 30 days and the person consents again. */
|
|
11
10
|
export const OAUTH_TIMES = { requestMs: 10 * 60_000, codeMs: 60_000, accessSeconds: 3600, grantDays: 30 };
|
|
12
|
-
/** The most sign-ins waiting at once, and registered clients kept. */
|
|
13
11
|
export const OAUTH_LIMITS = { requests: 200, requestsPerSource: 20, clients: 500, clientsPerSource: 20 };
|
|
14
|
-
/** The most a registration or form body may be. */
|
|
15
12
|
const MAX_BODY = 16 * 1024;
|
|
16
13
|
export const OAUTH_SCOPES = ["read", "act"];
|
|
17
14
|
const REFRESH_SHAPE = /^sor_([a-f0-9]{12})_([A-Za-z0-9_-]{43})$/;
|
|
18
15
|
export const RESOURCE_PATH = "/mcp";
|
|
19
16
|
export const resourceMetadataUrl = (origin) => `${origin}/.well-known/oauth-protected-resource${RESOURCE_PATH}`;
|
|
20
|
-
// ---- what a bearer may do -------------------------------------------------------------------------------------------
|
|
21
|
-
/**
|
|
22
|
-
* Whether an API token may sign in to this request's path now. An ordinary token: yes (its own checks are elsewhere).
|
|
23
|
-
* An MCP sign-in's token: only at /mcp, only while its access secret is fresh and the account is at the generation
|
|
24
|
-
* that consented.
|
|
25
|
-
*/
|
|
26
17
|
export function oauthTokenAllowed(store, tokenId, path, now) {
|
|
27
18
|
const grant = store.oauthGrant(tokenId);
|
|
28
19
|
if (grant === null)
|
|
@@ -32,15 +23,10 @@ export function oauthTokenAllowed(store, tokenId, path, now) {
|
|
|
32
23
|
const account = store.accountOf(grant.account);
|
|
33
24
|
return account !== null && account.revokedAt === null && account.generation === grant.generation;
|
|
34
25
|
}
|
|
35
|
-
/** The projects an MCP sign-in's token was granted (the person's live access still applies), or null for an ordinary token. */
|
|
36
26
|
export const oauthProjects = (store, tokenId) => store.oauthGrant(tokenId)?.projects ?? null;
|
|
37
27
|
const sha256 = (text) => createHash("sha256").update(text, "utf8").digest("hex");
|
|
38
28
|
const same = (a, b) => { const x = Buffer.from(a), y = Buffer.from(b); return x.length === y.length && timingSafeEqual(x, y); };
|
|
39
29
|
const clean = (text) => text.replace(/[\u0000-\u001f\u007f-\u009f\u200b-\u200f\u202a-\u202e\u2066-\u2069]+/g, " ").replace(/\s+/g, " ").trim();
|
|
40
|
-
/**
|
|
41
|
-
* A redirect a client may register: https anywhere, or http on 127.0.0.1 / [::1] (RFC 8252 §7.3), with no
|
|
42
|
-
* credentials or fragment.
|
|
43
|
-
*/
|
|
44
30
|
export function redirectAllowed(value) {
|
|
45
31
|
let url;
|
|
46
32
|
try {
|
|
@@ -53,7 +39,6 @@ export function redirectAllowed(value) {
|
|
|
53
39
|
return false;
|
|
54
40
|
return url.protocol === "https:" || url.protocol === "http:" && (url.hostname === "127.0.0.1" || url.hostname === "[::1]");
|
|
55
41
|
}
|
|
56
|
-
/** A redirect matches a registered one exactly; on a loopback http address any port does (RFC 8252 §7.3). */
|
|
57
42
|
export function redirectMatches(presented, registered) {
|
|
58
43
|
if (registered.includes(presented))
|
|
59
44
|
return presented;
|
|
@@ -81,26 +66,18 @@ export function createOAuthHttp(options) {
|
|
|
81
66
|
response.end(JSON.stringify(body));
|
|
82
67
|
};
|
|
83
68
|
const oauthError = (response, status, error, description) => json(response, status, { error, error_description: description });
|
|
84
|
-
/** A page of this sign-in: script-free (but for the key fill, on a consent while the browser key is required), never
|
|
85
|
-
* framed, posting only to this console. */
|
|
86
69
|
const page = (response, status, document, fill = false) => {
|
|
87
70
|
const nonce = fill && options.keyFill?.() === true ? randomBytes(16).toString("base64") : null;
|
|
88
71
|
response.writeHead(status, { "content-type": "text/html; charset=utf-8", "cache-control": "no-store", "referrer-policy": "no-referrer", "x-content-type-options": "nosniff", "x-frame-options": "DENY",
|
|
89
72
|
"content-security-policy": `default-src 'none'; style-src 'unsafe-inline';${nonce === null ? "" : ` script-src 'nonce-${nonce}';`} form-action 'self'; frame-ancestors 'none'; base-uri 'none'` });
|
|
90
73
|
response.end(nonce === null ? htmlString(document) : htmlString(document).replace(/<\/body><\/html>$/, `${htmlString(scriptElement(KEY_FILL_SCRIPT, { nonce }))}</body></html>`));
|
|
91
74
|
};
|
|
92
|
-
/**
|
|
93
|
-
* On to an address by a page that moves on by itself, never a redirect: a redirect answering a form is held to
|
|
94
|
-
* the consent page's form-action 'self', so the browser would stop it on the way to the client. Also how a
|
|
95
|
-
* sign-in that arrived from another app reaches this console's own pages with the session cookie (SameSite=Strict).
|
|
96
|
-
*/
|
|
97
75
|
const moveOn = (response, to, words) => {
|
|
98
76
|
response.writeHead(200, { "content-type": "text/html; charset=utf-8", "cache-control": "no-store", "referrer-policy": "no-referrer", "x-content-type-options": "nosniff", "x-frame-options": "DENY",
|
|
99
77
|
"content-security-policy": "default-src 'none'; style-src 'unsafe-inline'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'" });
|
|
100
78
|
response.end(htmlString(html `<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="refresh" content="0;url=${to}"><title>Toolroll</title>${STYLE}<main><p>${words} <a href="${to}">Continue</a></p></main></html>`));
|
|
101
79
|
};
|
|
102
80
|
const problemPage = (response, status, title, said) => page(response, status, shell(title, html `<h1>${title}</h1><p>${said}</p>`));
|
|
103
|
-
/** Back to the client with an answer: the code, or an error, and its state; `iss` names this console (RFC 9207). */
|
|
104
81
|
const backToClient = (response, origin, redirectUri, state, answer, words) => {
|
|
105
82
|
const to = new URL(redirectUri);
|
|
106
83
|
for (const [key, value] of Object.entries(answer))
|
|
@@ -135,7 +112,6 @@ export function createOAuthHttp(options) {
|
|
|
135
112
|
if (one.expires <= now)
|
|
136
113
|
waiting.delete(id);
|
|
137
114
|
};
|
|
138
|
-
// ---- discovery ----
|
|
139
115
|
const resourceMetadata = (origin) => ({
|
|
140
116
|
resource: `${origin}${RESOURCE_PATH}`, authorization_servers: [origin], scopes_supported: [...OAUTH_SCOPES], bearer_methods_supported: ["header"], resource_name: "Toolroll",
|
|
141
117
|
});
|
|
@@ -152,7 +128,6 @@ export function createOAuthHttp(options) {
|
|
|
152
128
|
code_challenge_methods_supported: ["S256"],
|
|
153
129
|
authorization_response_iss_parameter_supported: true,
|
|
154
130
|
});
|
|
155
|
-
// ---- registration ----
|
|
156
131
|
async function register(request, response) {
|
|
157
132
|
if (request.method !== "POST")
|
|
158
133
|
return oauthError(response, 405, "invalid_request", "Register with a POST.");
|
|
@@ -191,7 +166,6 @@ export function createOAuthHttp(options) {
|
|
|
191
166
|
grant_types: ["authorization_code", "refresh_token"], response_types: ["code"], token_endpoint_auth_method: "none",
|
|
192
167
|
});
|
|
193
168
|
}
|
|
194
|
-
// ---- the sign-in and consent ----
|
|
195
169
|
function authorizeStart(request, response, url, origin) {
|
|
196
170
|
const now = options.clock().getTime();
|
|
197
171
|
prune(now);
|
|
@@ -203,7 +177,6 @@ export function createOAuthHttp(options) {
|
|
|
203
177
|
}
|
|
204
178
|
const client = store.oauthClient(params.get("client_id") ?? "");
|
|
205
179
|
const redirectUri = client === null ? null : redirectMatches(params.get("redirect_uri") ?? "", client.redirectUris);
|
|
206
|
-
// Registration is anonymous. Even a registered redirect is untrusted until the person decides.
|
|
207
180
|
if (client === null || redirectUri === null)
|
|
208
181
|
return problemPage(response, 400, "This sign-in link isn't valid", "Your MCP client isn't registered here, or asked to return somewhere it didn't register. Start again from the client.");
|
|
209
182
|
const state = params.get("state");
|
|
@@ -243,7 +216,6 @@ export function createOAuthHttp(options) {
|
|
|
243
216
|
const step = session.sso?.fresh === true
|
|
244
217
|
? html `<p class="meta">Confirmed with ${session.sso.label}.</p><input type="hidden" name="password" value="">`
|
|
245
218
|
: html `<label class="field">Your Toolroll password<input type="password" name="password" autocomplete="current-password" required></label>${session.sso === null ? "" : html `<p class="meta"><a href="/login/sso?reauth=1&return=${encodeURIComponent(`/oauth/authorize?request=${id}`)}">Confirm with ${session.sso.label}</a> instead.</p>`}`;
|
|
246
|
-
// The consent form carries the console session's own CSRF token (checked against session.csrf on the post).
|
|
247
219
|
const consentForm = (body) => withFormToken(session.csrf, () => postForm("/oauth/authorize", body, { hidden: { request: id } }));
|
|
248
220
|
const body = joinHtml([
|
|
249
221
|
html `<h1>${title}</h1>`,
|
|
@@ -291,10 +263,8 @@ export function createOAuthHttp(options) {
|
|
|
291
263
|
return problemPage(response, 400, "This form isn't valid", "Start again from your MCP client.");
|
|
292
264
|
const text = await readBody(request);
|
|
293
265
|
const form = new URLSearchParams(text ?? "");
|
|
294
|
-
// The person's own act: their session's CSRF value, posted from this console's own page.
|
|
295
266
|
if (text === null || !options.sameSite(request) || !same(form.get("csrf") ?? "", session.csrf))
|
|
296
267
|
return problemPage(response, 403, "This form expired", "Nothing was allowed. Start again from your MCP client.");
|
|
297
|
-
// Easy-start C2: on a protected loopback install, the key only this console's own page holds.
|
|
298
268
|
if (options.keyed !== undefined && !options.keyed(request, form))
|
|
299
269
|
return problemPage(response, 403, "Reconnect to Toolroll", "This tab isn't connected to Toolroll, so nothing was allowed. Open Toolroll, reconnect, then start again from your MCP client.");
|
|
300
270
|
const id = form.get("request") ?? "";
|
|
@@ -324,14 +294,12 @@ export function createOAuthHttp(options) {
|
|
|
324
294
|
const mine = options.projectsFor(session.name);
|
|
325
295
|
if (chosen.length === 0)
|
|
326
296
|
return again(400, "Choose at least one project.");
|
|
327
|
-
// Never named back: a project outside the person's access is refused without saying whether it exists.
|
|
328
297
|
if (!chosen.every(path => mine.includes(path)))
|
|
329
298
|
return again(403, "Choose from your own projects.");
|
|
330
299
|
if (!adapterPolicy({ caller: "cookie", capability: account.role === "approver" ? "act" : "read", viewer: account.role === "viewer" }, "step-up", source => source === "none" && chosen.every(path => mine.includes(path))).ok)
|
|
331
300
|
return again(403, "Choose from your own projects.");
|
|
332
301
|
if (!options.confirm(request, session, form.get("password") ?? ""))
|
|
333
302
|
return again(403, "Enter your Toolroll password to allow access.");
|
|
334
|
-
// Re-proved after the step-up: the code carries the generation the person consented under, never a newer one.
|
|
335
303
|
const current = store.accountOf(session.name);
|
|
336
304
|
if (current === null || current.revokedAt !== null || current.generation !== session.generation)
|
|
337
305
|
return problemPage(response, 403, "Sign in first", "Your access changed. Sign in again; nothing was allowed.");
|
|
@@ -341,7 +309,6 @@ export function createOAuthHttp(options) {
|
|
|
341
309
|
challenge: one.challenge, expiresAt: new Date(now.getTime() + OAUTH_TIMES.codeMs).toISOString() });
|
|
342
310
|
return backToClient(response, origin, one.redirectUri, one.state, { code }, "Allowed. Returning to your MCP client…");
|
|
343
311
|
}
|
|
344
|
-
// ---- tokens ----
|
|
345
312
|
async function token(request, response, origin) {
|
|
346
313
|
if (request.method !== "POST")
|
|
347
314
|
return oauthError(response, 405, "invalid_request", "Use POST.");
|
|
@@ -373,14 +340,12 @@ export function createOAuthHttp(options) {
|
|
|
373
340
|
if (client === null)
|
|
374
341
|
return oauthError(response, 401, "invalid_client", "This client isn't registered here.");
|
|
375
342
|
const invalid = () => oauthError(response, 400, "invalid_grant", "This sign-in is no longer valid. Sign in again from your MCP client.");
|
|
376
|
-
/** The projects still in the person's reach, of those granted; a grant that reaches none is over. */
|
|
377
343
|
const reachable = (account, projects) => { const mine = options.projectsFor(account); return projects.filter(path => mine.includes(path)); };
|
|
378
344
|
if (ask.grant_type === "authorization_code") {
|
|
379
345
|
const codeHash = sha256(ask.code);
|
|
380
346
|
const taken = store.takeOAuthCode(codeHash, now);
|
|
381
347
|
if (taken === null)
|
|
382
348
|
return invalid();
|
|
383
|
-
// A code spent twice: whatever it made ends too (RFC 6749 §4.1.2).
|
|
384
349
|
if ("used" in taken) {
|
|
385
350
|
if (taken.used !== null)
|
|
386
351
|
store.revokeApiToken(taken.used, "toolroll", now, "its sign-in code was used twice");
|
|
@@ -415,7 +380,6 @@ export function createOAuthHttp(options) {
|
|
|
415
380
|
return rotated.reason === "invalid_scope" ? oauthError(response, 400, "invalid_scope", "A refresh can't widen access.") : invalid();
|
|
416
381
|
return json(response, 200, { access_token: `so_${id}_${accessSecret}`, token_type: "Bearer", expires_in: OAUTH_TIMES.accessSeconds, refresh_token: `sor_${id}_${refresh}`, scope: rotated.access });
|
|
417
382
|
}
|
|
418
|
-
/** Handles the sign-in's addresses; false for any other path. */
|
|
419
383
|
return async (request, response, url) => {
|
|
420
384
|
const path = url.pathname;
|
|
421
385
|
const discovery = path === "/.well-known/oauth-protected-resource" || path === `/.well-known/oauth-protected-resource${RESOURCE_PATH}` || path === "/.well-known/oauth-authorization-server";
|
|
@@ -459,7 +423,6 @@ export function createOAuthHttp(options) {
|
|
|
459
423
|
return true;
|
|
460
424
|
};
|
|
461
425
|
}
|
|
462
|
-
/** The sign-in's pages stand alone: no stylesheet, script or font loads here, so the palette rides inline. */
|
|
463
426
|
const STYLE = styleElement([
|
|
464
427
|
`:root{color-scheme:light dark;--ground:#efefef;--paper:#fff;--ink:#171717;--muted:#666;--line:#e6e6e6;--soft:#f2f2f2;--accent:#171717;--on-accent:#fff;--problem:#b42318}`,
|
|
465
428
|
`@media (prefers-color-scheme:dark){:root{--ground:#0b0b0b;--paper:#161616;--ink:#ededed;--muted:#a1a1a1;--line:#262626;--soft:#1f1f1f;--accent:#ededed;--on-accent:#0b0b0b;--problem:#ff8a80}}`,
|
package/dist/mcp-person.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
import { adapterPolicy } from "./server/route-policy.js";
|
|
2
|
-
/**
|
|
3
|
-
* A person's tools on the HTTP gateway. A person signs in with their own API token (api-tokens.ts) and every tool call
|
|
4
|
-
* is the exact `toolroll` command line they could type, run on the server under their principal through
|
|
5
|
-
* `runOperateAs` with source "mcp": the command's own authorization, project grants and attribution apply, and its
|
|
6
|
-
* `--json` envelope is the answer. Nothing here reads data directly — a coordinator handler would skip the person's
|
|
7
|
-
* project grants — and nothing here approves, answers or changes people or policy: those verbs have no tool.
|
|
8
|
-
*
|
|
9
|
-
* tools/list follows the account's role and the token's scope; dispatch checks again, independent of the list.
|
|
10
|
-
*/
|
|
11
2
|
import { parseContract, toModelSchema } from "./contracts/contract.js";
|
|
12
3
|
import { PERSON_TOOL_INPUTS, PERSON_TOOL_OUTPUTS } from "./contracts/gateway-tools.js";
|
|
13
4
|
import { reportToolOutput } from "./contracts/lead-tools.js";
|
|
@@ -51,12 +42,10 @@ const TOOLS = {
|
|
|
51
42
|
},
|
|
52
43
|
};
|
|
53
44
|
const NAMES = Object.keys(PERSON_TOOL_INPUTS);
|
|
54
|
-
/** What this person may call: every read, and the acts only on an act token of an account that acts. */
|
|
55
45
|
export function personTools(person) {
|
|
56
46
|
return NAMES.filter(name => mayCall(person, name)).map(name => ({ name, description: TOOLS[name].description, inputSchema: toModelSchema(PERSON_TOOL_INPUTS[name]) }));
|
|
57
47
|
}
|
|
58
48
|
const mayCall = (person, name) => !TOOLS[name].acts || person.principal.scope === "act" && person.role === "approver";
|
|
59
|
-
/** One person tools/call: read by its schema, checked against the person, then run as the command it names. */
|
|
60
49
|
export async function callPersonTool(person, store, runAs, params) {
|
|
61
50
|
const name = typeof params["name"] === "string" ? params["name"] : "";
|
|
62
51
|
if (!NAMES.includes(name))
|
package/dist/mcp.js
CHANGED
|
@@ -1,32 +1,4 @@
|
|
|
1
1
|
import { statSync } from 'node:fs';
|
|
2
|
-
/**
|
|
3
|
-
* `toolroll mcp` — the MCP stdio adapter (MCP gateway spec v6). What a
|
|
4
|
-
* call means lives in the transport-free core (mcp-core.ts); this file owns
|
|
5
|
-
* the stdio transport, era pinning and the connection's lifecycle.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Zero-dep JSON-RPC 2.0 over stdio, newline-delimited; stdout carries
|
|
9
|
-
* protocol bytes ONLY (logs go to stderr); clean EOF is clean shutdown.
|
|
10
|
-
* Two pinned protocol revisions:
|
|
11
|
-
*
|
|
12
|
-
* - modern `2026-07-28`: stateless; every request carries its version in
|
|
13
|
-
* `_meta`; `server/discover` describes the server; successful results
|
|
14
|
-
* are schema-complete (`resultType: "complete"`, and tools/list +
|
|
15
|
-
* discover carry `ttlMs: 0` with the narrowest `cacheScope`).
|
|
16
|
-
* - legacy `2025-11-25`: the initialize era — a client asking for an
|
|
17
|
-
* unsupported version is answered WITH this one (negotiation, not
|
|
18
|
-
* refusal); `notifications/initialized` is received and ignored. The
|
|
19
|
-
* eras never cross: initialize never counter-offers the modern one.
|
|
20
|
-
*
|
|
21
|
-
* No JSON-RPC batching in either era (arrays reject). A cancellation is a
|
|
22
|
-
* notification: the server stops work on that id and suppresses its
|
|
23
|
-
* response entirely. Limits: request ≤ 256 KiB, JSON depth ≤ 32.
|
|
24
|
-
*
|
|
25
|
-
* EVERY tool call authenticates the coordinator credential; the schema
|
|
26
|
-
* version is re-read per call (a concurrent migration refuses in words
|
|
27
|
-
* and the server exits). Protocol errors are JSON-RPC errors; tool-level
|
|
28
|
-
* refusals are successful `tools/call` results with `isError: true`.
|
|
29
|
-
*/
|
|
30
2
|
import { PACKAGE_VERSION } from "./version.js";
|
|
31
3
|
import { authenticateCoordinator } from "./coordinator.js";
|
|
32
4
|
import { LEGACY, META_CAPABILITIES, META_SERVER, META_VERSION, MODERN, TOOLS, UNSUPPORTED_VERSION, callCoordinatorTool, capabilitiesShape, readMessage, shapeResult, toolsPayload, } from "./mcp-core.js";
|
|
@@ -42,18 +14,12 @@ function fileIdentity(path) {
|
|
|
42
14
|
return null;
|
|
43
15
|
}
|
|
44
16
|
}
|
|
45
|
-
/** Still the same file at the same path: not moved aside, deleted, or replaced by a rename. */
|
|
46
17
|
function sameFile(was) {
|
|
47
18
|
const now = fileIdentity(was.path);
|
|
48
19
|
return now !== null && now.dev === was.dev && now.ino === was.ino;
|
|
49
20
|
}
|
|
50
|
-
/** Serve until EOF. The store is already open through the non-migrating
|
|
51
|
-
* door; the token was startup-verified by the caller (and dies here again
|
|
52
|
-
* if it does not hold). */
|
|
53
21
|
export function serveMcp(store, token, io, clock = () => new Date(), enrolled = null, evidenceRoot) {
|
|
54
|
-
/** Per connection: which decisions this credential read in full (v3). */
|
|
55
22
|
const readDecisions = new Set();
|
|
56
|
-
/** The database file this server opened, by identity (null in memory). */
|
|
57
23
|
const database = fileIdentity(store.databaseFile());
|
|
58
24
|
const auth = authenticateCoordinator(store, token);
|
|
59
25
|
if (!auth.ok) {
|
|
@@ -65,37 +31,23 @@ export function serveMcp(store, token, io, clock = () => new Date(), enrolled =
|
|
|
65
31
|
: "no live coordinator credential matches this token",
|
|
66
32
|
};
|
|
67
33
|
}
|
|
68
|
-
// Cancellation semantics on a SERIAL server (round-2 finding 2, stated
|
|
69
|
-
// rather than pretended): every request completes before the next line
|
|
70
|
-
// is read, so no cancellation can arrive while its target is genuinely
|
|
71
|
-
// in flight — and the revision permits ignoring cancellations for
|
|
72
|
-
// completed requests. The registry exists so any future asynchronous
|
|
73
|
-
// tool inherits correct suppression, and so a pre-cancelled FUTURE id
|
|
74
|
-
// can never be blacklisted (the in-flight check).
|
|
75
34
|
const cancelled = new Set();
|
|
76
35
|
const inFlight = new Set();
|
|
77
|
-
// Legacy lifecycle state (review finding 2): initialize must come first
|
|
78
|
-
// in the handshake era; the modern era is stateless by design.
|
|
79
36
|
let initializeSeen = false;
|
|
80
37
|
let legacyReady = false;
|
|
81
|
-
// Stdio pins ONE era per connection (round-2 finding 2): the first
|
|
82
|
-
// era-classified request decides, and the other era's metadata refuses.
|
|
83
38
|
let pinnedEra = null;
|
|
84
39
|
const error = (id, code, message) => io.write(JSON.stringify({ jsonrpc: "2.0", id, error: { code, message } }));
|
|
85
40
|
const respond = (id, era, result, cacheable) => {
|
|
86
41
|
if (id !== null && cancelled.has(JSON.stringify(id)))
|
|
87
|
-
return;
|
|
42
|
+
return;
|
|
88
43
|
io.write(JSON.stringify({ jsonrpc: "2.0", id, result: shapeResult(era, result, cacheable) }));
|
|
89
44
|
};
|
|
90
45
|
const callTool = (id, era, params) => {
|
|
91
|
-
// A restore or rollback puts a different file at the database's path: this server's connection still reads and
|
|
92
|
-
// writes the one it replaced, so it answers nothing more and exits (the agent starts it again on the new one).
|
|
93
46
|
if (database !== null && !sameFile(database)) {
|
|
94
47
|
error(id, -32000, "the database was replaced underneath this server (a Toolroll restore or rollback) — restart it");
|
|
95
48
|
io.exit(0);
|
|
96
49
|
return;
|
|
97
50
|
}
|
|
98
|
-
// A moved schema or a credential that no longer stands refuses in words and the server exits clean.
|
|
99
51
|
const outcome = callCoordinatorTool({ store, token, enrolled, clock, readDecisions, ...(evidenceRoot === undefined ? {} : { evidenceRoot }) }, params);
|
|
100
52
|
if (outcome.kind === "result")
|
|
101
53
|
return respond(id, era, outcome.result, false);
|
|
@@ -112,36 +64,25 @@ export function serveMcp(store, token, io, clock = () => new Date(), enrolled =
|
|
|
112
64
|
return;
|
|
113
65
|
}
|
|
114
66
|
const { id, method, params, meta } = read;
|
|
115
|
-
// Every method — lifecycle included — refuses on a moved schema
|
|
116
|
-
// (review finding 3): a server that answers discover from one world
|
|
117
|
-
// and tools from another is lying to somebody.
|
|
118
67
|
if (!store.schemaCurrent()) {
|
|
119
68
|
error(id, -32000, "the database schema moved underneath this server — restart it");
|
|
120
69
|
io.exit(0);
|
|
121
70
|
return;
|
|
122
71
|
}
|
|
123
72
|
if (method === "notifications/cancelled") {
|
|
124
|
-
// Cancellation touches IN-FLIGHT work only (review finding 2): an id
|
|
125
|
-
// never seen, already answered, or yet to arrive is not cancellable —
|
|
126
|
-
// pre-cancelling the future would let a peer suppress request ids
|
|
127
|
-
// forever.
|
|
128
73
|
const target = params["requestId"];
|
|
129
74
|
if (target !== undefined && inFlight.has(JSON.stringify(target))) {
|
|
130
75
|
cancelled.add(JSON.stringify(target));
|
|
131
76
|
}
|
|
132
|
-
return;
|
|
77
|
+
return;
|
|
133
78
|
}
|
|
134
79
|
if (method === "notifications/initialized") {
|
|
135
|
-
// Only a handshake that actually happened completes (round-2 f2).
|
|
136
80
|
if (initializeSeen)
|
|
137
81
|
legacyReady = true;
|
|
138
82
|
return;
|
|
139
83
|
}
|
|
140
84
|
if (method.startsWith("notifications/"))
|
|
141
|
-
return;
|
|
142
|
-
// An unsupported protocol version refuses -32022 with the revision's
|
|
143
|
-
// OWN shape for EVERY request — server/discover included (round-3
|
|
144
|
-
// finding 4): the ask precedes any per-method branch.
|
|
85
|
+
return;
|
|
145
86
|
const declared = typeof meta[META_VERSION] === "string" ? meta[META_VERSION] : null;
|
|
146
87
|
if (declared !== null && declared !== MODERN && declared !== LEGACY) {
|
|
147
88
|
io.write(JSON.stringify({
|
|
@@ -162,8 +103,6 @@ export function serveMcp(store, token, io, clock = () => new Date(), enrolled =
|
|
|
162
103
|
}
|
|
163
104
|
pinnedEra = "legacy";
|
|
164
105
|
initializeSeen = true;
|
|
165
|
-
// The handshake era can only negotiate ITSELF: an unsupported ask is
|
|
166
|
-
// answered WITH the legacy version, never the modern one.
|
|
167
106
|
respond(id, "legacy", {
|
|
168
107
|
protocolVersion: LEGACY,
|
|
169
108
|
capabilities: { tools: {} },
|
|
@@ -177,8 +116,6 @@ export function serveMcp(store, token, io, clock = () => new Date(), enrolled =
|
|
|
177
116
|
return;
|
|
178
117
|
}
|
|
179
118
|
if (declared !== MODERN || !capabilitiesShape(meta[META_CAPABILITIES])) {
|
|
180
|
-
// The modern era's requests carry BOTH namespaced keys (round-2
|
|
181
|
-
// finding 1) — a bare discover is not a modern request.
|
|
182
119
|
error(id, -32600, `server/discover requires _meta["${META_VERSION}"] = "${MODERN}" and _meta["${META_CAPABILITIES}"]`);
|
|
183
120
|
return;
|
|
184
121
|
}
|
|
@@ -192,10 +129,6 @@ export function serveMcp(store, token, io, clock = () => new Date(), enrolled =
|
|
|
192
129
|
}, true);
|
|
193
130
|
return;
|
|
194
131
|
}
|
|
195
|
-
// Era classification precedes every remaining method — ping and unknown
|
|
196
|
-
// methods included (round-3 finding 1): a refused modern ping still pins
|
|
197
|
-
// the modern era, and a cross-era unknown method refuses on the pin
|
|
198
|
-
// instead of slipping past it.
|
|
199
132
|
const era = declared === MODERN ? "modern" : "legacy";
|
|
200
133
|
if (era === "modern" && !capabilitiesShape(meta[META_CAPABILITIES])) {
|
|
201
134
|
error(id, -32600, `a ${MODERN} request carries _meta["${META_CAPABILITIES}"]`);
|
|
@@ -207,7 +140,6 @@ export function serveMcp(store, token, io, clock = () => new Date(), enrolled =
|
|
|
207
140
|
}
|
|
208
141
|
pinnedEra = era;
|
|
209
142
|
if (method === "ping") {
|
|
210
|
-
// ping left the protocol in 2026-07-28 — only the handshake era has it.
|
|
211
143
|
if (era === "modern") {
|
|
212
144
|
error(id, -32601, "ping is not part of the modern revision");
|
|
213
145
|
return;
|
|
@@ -215,8 +147,6 @@ export function serveMcp(store, token, io, clock = () => new Date(), enrolled =
|
|
|
215
147
|
respond(id, "legacy", {}, false);
|
|
216
148
|
return;
|
|
217
149
|
}
|
|
218
|
-
// The handshake era operates only after its lifecycle completed; the
|
|
219
|
-
// modern era is stateless and needs no handshake.
|
|
220
150
|
if (era === "legacy" && !legacyReady && (method === "tools/list" || method === "tools/call")) {
|
|
221
151
|
error(id, -32002, "not initialized — the handshake era requires initialize and notifications/initialized first");
|
|
222
152
|
return;
|
package/dist/memory-cli.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/** `toolroll memory …`: the project's decisions and one search over its
|
|
2
|
-
* memory, from the terminal. Reads use the remembered local login; writes
|
|
3
|
-
* record who did them. Nothing here starts a model. */
|
|
4
1
|
import { envelopeJson } from './envelope.js';
|
|
5
2
|
import { decisionHistory, getDecision, listDecisions, recordDecision, retireDecision, searchMemory } from './project-memory.js';
|
|
6
3
|
import { decideProposal, defaultAnalyzer, defaultTidyAnalyzer, listProposals, memoryStatus, runMemoryPass } from './memory-pass.js';
|
package/dist/memory-pass.js
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The backward pass over project memory (modelled on backpass, 2026-09-21):
|
|
3
|
-
* sessions are the loss signal, the always-loaded instructions are the
|
|
4
|
-
* weights, and nothing lands without verbatim evidence from at least two
|
|
5
|
-
* distinct sessions and a person's accept. Four stages, all read-only until
|
|
6
|
-
* apply: collect sessions (plane threads and crew runs from the database,
|
|
7
|
-
* Claude Code and Codex session files on this machine), distil each to a
|
|
8
|
-
* bounded trace, analyse each trace once per surface version, aggregate
|
|
9
|
-
* gaps in a ledger that survives runs, then propose a few edits. `apply`
|
|
10
|
-
* is the one writer, and it writes through the ordinary knowledge and
|
|
11
|
-
* decision stores so every edit keeps its revision.
|
|
12
|
-
*/
|
|
13
1
|
import { inEvalWorld } from './eval-gate.js';
|
|
14
2
|
import { createHash } from 'node:crypto';
|
|
15
3
|
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
@@ -27,19 +15,14 @@ import { currentLocalOwner } from './local-owner.js';
|
|
|
27
15
|
import { CONTRADICTION_SCHEMA } from './memory-tidy.js';
|
|
28
16
|
import { contractError, parseContract } from './contracts/contract.js';
|
|
29
17
|
import { MEMORY_VERDICT_MODEL_SCHEMA, MEMORY_VERDICT_VERSION, memoryEvidenceSchema, memoryProposalSchema, memoryVerdictReadSchema, readSavedVerdict, savedVerdictSchema } from './contracts/memory-pass.js';
|
|
30
|
-
/** One session's trace, in characters (TEXT_LIMITS.memoryTrace). */
|
|
31
18
|
export const MEMORY_TRACE_BYTES = TEXT_LIMITS.memoryTrace;
|
|
32
19
|
export const MEMORY_MIN_SESSIONS = 2;
|
|
33
20
|
export const MEMORY_MAX_PROPOSALS = 6;
|
|
34
|
-
/** The project instructions' budget: the same limit knowledge holds them to. */
|
|
35
21
|
export const INSTRUCTION_BUDGET_BYTES = TEXT_LIMITS.knowledgeInstructionsBytes;
|
|
36
|
-
/** How many claims of each kind one verdict keeps. */
|
|
37
22
|
const VERDICT_ITEMS = 20;
|
|
38
23
|
export const MEMORY_GAP_MAX_AGE_MS = 90 * 24 * 3_600_000;
|
|
39
24
|
const sha = (text) => createHash('sha256').update(text).digest('hex');
|
|
40
|
-
/** The Claude Code project directory for a checkout: the path with every slash turned into a dash. */
|
|
41
25
|
export const claudeProjectDir = (cwd, home = homedir()) => join(home, '.claude', 'projects', cwd.replaceAll('/', '-'));
|
|
42
|
-
/** Coarse by design: a line that trips the secret scanner is dropped whole, named by pattern. */
|
|
43
26
|
function redact(text) {
|
|
44
27
|
const hits = new Map(scanForSecrets(text).map(hit => [hit.line, hit.name]));
|
|
45
28
|
if (hits.size === 0)
|
|
@@ -54,7 +37,6 @@ catch {
|
|
|
54
37
|
return [];
|
|
55
38
|
} });
|
|
56
39
|
const obj = (v) => (v !== null && typeof v === 'object' && !Array.isArray(v) ? v : {});
|
|
57
|
-
/** Claude Code: one JSONL per session; user/assistant text verbatim, tool calls one line, results clipped, thinking dropped. */
|
|
58
40
|
export function distillClaude(path) {
|
|
59
41
|
const lines = [];
|
|
60
42
|
for (const raw of jsonLines(path)) {
|
|
@@ -79,7 +61,6 @@ export function distillClaude(path) {
|
|
|
79
61
|
}
|
|
80
62
|
return redact(lines.join('\n'));
|
|
81
63
|
}
|
|
82
|
-
/** Codex: rollout JSONL; messages and custom tool calls, outputs clipped. */
|
|
83
64
|
export function distillCodex(path) {
|
|
84
65
|
const lines = [];
|
|
85
66
|
for (const raw of jsonLines(path)) {
|
|
@@ -140,7 +121,6 @@ function fileSources(repo, kind, home) {
|
|
|
140
121
|
}
|
|
141
122
|
return out;
|
|
142
123
|
}
|
|
143
|
-
/** The plane's own sessions: lead threads that touched the project, and finished crew runs with their handoff and check output. */
|
|
144
124
|
function planeSources(store, repo, evidenceRoot) {
|
|
145
125
|
const out = [];
|
|
146
126
|
const threads = store.handle.prepare(`SELECT c.thread AS thread, c.id AS conversation, MAX(m.id) AS last, MAX(m.created_at) AS at FROM team_conversation c JOIN lead_message m ON m.thread=c.thread AND m.pending=0
|
|
@@ -173,7 +153,6 @@ export function collectSessions(store, repo, options = {}) {
|
|
|
173
153
|
const sources = [...planeSources(store, repo, options.evidenceRoot), ...(options.local === false ? [] : [...fileSources(repo, 'claude', home), ...fileSources(repo, 'codex', home)])];
|
|
174
154
|
return sources.sort((a, b) => b.at.localeCompare(a.at));
|
|
175
155
|
}
|
|
176
|
-
/** The always-loaded surface: instruction lines with stable ids, active decisions with theirs. Its hash keys the analysis cache. */
|
|
177
156
|
export function memorySurface(store, repo, actor) {
|
|
178
157
|
const view = knowledgeView(store, repo, actor);
|
|
179
158
|
const instructions = view.knowledge.instructions.split('\n').map(line => line.trim()).filter(Boolean).map((text, index) => ({ id: `IN-${String(index + 1).padStart(3, '0')}`, text }));
|
|
@@ -190,10 +169,8 @@ export function analysisPrompt(surface, openGaps) {
|
|
|
190
169
|
'Rules: every item needs a verbatim quote copied from the trace or it is discarded; negative evidence outranks positive; class harm means following the instruction caused damage, non-compliance means it was ignored; a mistake caused by the harness or task framing is domain orchestration; report nothing rather than something weak; an empty array is a good answer.',
|
|
191
170
|
].join('\n');
|
|
192
171
|
}
|
|
193
|
-
/** The production analyser: one call through the configured chat provider, no tools, no history. */
|
|
194
172
|
export function defaultAnalyzer(store, options) {
|
|
195
173
|
return async (input) => {
|
|
196
|
-
// An eval world makes no provider call it can't record (eval-gate.ts, Codex round 1 #3): the backward pass waits.
|
|
197
174
|
if (inEvalWorld())
|
|
198
175
|
return { ok: false, problem: 'The backward pass makes no provider call in an eval world.' };
|
|
199
176
|
const config = store.getChatConfig();
|
|
@@ -219,12 +196,10 @@ export function defaultAnalyzer(store, options) {
|
|
|
219
196
|
const answer = await performLeadRequest(request, config.provider, AbortSignal.timeout(options.timeoutMs ?? 120_000), options.fetcher);
|
|
220
197
|
return answer.ok ? { ok: true, text: answer.answer.text } : { ok: false, problem: answer.problem };
|
|
221
198
|
}
|
|
222
|
-
// The verdict's own schema is the harness's structured output, so the answer is the verdict itself.
|
|
223
199
|
const answer = await performSubscriptionLeadRequest({ provider: config.provider, model: config.model, system, dataDocument, history, tools: [], outputSchema: MEMORY_VERDICT_MODEL_SCHEMA, timeoutMs: options.timeoutMs ?? 180_000 }, options.runner);
|
|
224
200
|
return answer.ok ? { ok: true, text: answer.answer.text } : { ok: false, problem: answer.problem };
|
|
225
201
|
};
|
|
226
202
|
}
|
|
227
|
-
/** The clean-up's question to the chat model, asked only on a person's request (memory-tidy.ts proposeTidy). */
|
|
228
203
|
export function defaultTidyAnalyzer(store, options = {}) {
|
|
229
204
|
return async (input) => {
|
|
230
205
|
if (inEvalWorld())
|
|
@@ -255,10 +230,6 @@ export function defaultTidyAnalyzer(store, options = {}) {
|
|
|
255
230
|
};
|
|
256
231
|
}
|
|
257
232
|
const UNREADABLE = 'The analysis was not a readable verdict.';
|
|
258
|
-
/**
|
|
259
|
-
* Read the analyser's answer with the tolerant parse-side schema, then keep only claims whose quote
|
|
260
|
-
* is really in the trace and, for an instruction's effect, whose id is on the surface audited.
|
|
261
|
-
*/
|
|
262
233
|
export function parseVerdict(text, trace, surface) {
|
|
263
234
|
const start = text.indexOf('{'), end = text.lastIndexOf('}');
|
|
264
235
|
if (start < 0 || end <= start)
|
|
@@ -284,14 +255,8 @@ export function parseVerdict(text, trace, surface) {
|
|
|
284
255
|
gaps: list(read.value.gaps),
|
|
285
256
|
} };
|
|
286
257
|
}
|
|
287
|
-
/** A verdict as a session keeps it: through its schema, with its version. */
|
|
288
258
|
const keptVerdict = (verdict) => JSON.stringify(savedVerdictSchema.parse({ version: MEMORY_VERDICT_VERSION, ...verdict }));
|
|
289
259
|
const gapKey = (mistake) => sha(mistake.toLowerCase().replace(/[^\p{L}\p{N}]+/gu, ' ').trim()).slice(0, 16);
|
|
290
|
-
/**
|
|
291
|
-
* Collect, distil, analyse and aggregate for one project. Never writes memory:
|
|
292
|
-
* it fills the ledger and the proposal queue. Each session is analysed once
|
|
293
|
-
* per surface version; a failed analysis is named and retried next run.
|
|
294
|
-
*/
|
|
295
260
|
export async function runMemoryPass(store, args, now = new Date()) {
|
|
296
261
|
const surface = memorySurface(store, args.repo, args.actor);
|
|
297
262
|
const sessions = collectSessions(store, args.repo, { ...(args.evidenceRoot === undefined ? {} : { evidenceRoot: args.evidenceRoot }), ...(args.home === undefined ? {} : { home: args.home }), ...(args.local === undefined ? {} : { local: args.local }) }).slice(0, args.maxSessions ?? 100);
|
|
@@ -347,8 +312,6 @@ export async function runMemoryPass(store, args, now = new Date()) {
|
|
|
347
312
|
report.proposals = synthesizeProposals(store, args.repo, args.actor, surface, now);
|
|
348
313
|
return report;
|
|
349
314
|
}
|
|
350
|
-
// ---- 4. propose --------------------------------------------------------------------
|
|
351
|
-
/** A proposal row through its schema; one that does not read as a proposal names the field. */
|
|
352
315
|
function proposalOf(row) {
|
|
353
316
|
const read = memoryProposalSchema.safeParse({ id: Number(row['id']), repo: String(row['repo']), kind: row['kind'], fingerprint: String(row['fingerprint']), title: String(row['title']), rationale: String(row['rationale']),
|
|
354
317
|
beforeText: row['before_text'] === null ? null : String(row['before_text']), afterText: String(row['after_text']), evidence: JSON.parse(String(row['evidence'])),
|
|
@@ -357,20 +320,11 @@ function proposalOf(row) {
|
|
|
357
320
|
throw Error(`Memory proposal ${String(row['id'])} could not be read: ${contractError(read.error).join('; ')}`);
|
|
358
321
|
return read.data;
|
|
359
322
|
}
|
|
360
|
-
/**
|
|
361
|
-
* Turn corroborated gaps and harm into a few proposals: an addition needs
|
|
362
|
-
* the gap seen in at least two distinct sessions; a removal needs harm from
|
|
363
|
-
* following the instruction in two sessions. Under the instruction budget an
|
|
364
|
-
* addition is proposed only when it fits; over it, the run says so instead
|
|
365
|
-
* of growing the file. A rejected fingerprint is not proposed again until
|
|
366
|
-
* more sessions corroborate it.
|
|
367
|
-
*/
|
|
368
323
|
export function synthesizeProposals(store, repo, actor, surface, now = new Date()) {
|
|
369
324
|
const view = knowledgeView(store, repo, actor);
|
|
370
325
|
const budgetLeft = INSTRUCTION_BUDGET_BYTES - Buffer.byteLength(view.knowledge.instructions);
|
|
371
326
|
let made = 0;
|
|
372
327
|
store.transact(() => {
|
|
373
|
-
// A lesson note is bound to its own recorded facts, not to the surface.
|
|
374
328
|
store.handle.prepare("UPDATE memory_proposal SET status='stale' WHERE repo=? AND status='pending' AND surface<>? AND surface<>?").run(repo, surface.version, NOTE_SURFACE);
|
|
375
329
|
const pendingFingerprints = new Set(store.handle.prepare("SELECT fingerprint FROM memory_proposal WHERE repo=? AND status='pending'").all(repo).map(row => String(row['fingerprint'])));
|
|
376
330
|
const rejected = new Map(store.handle.prepare('SELECT fingerprint, sessions FROM memory_rejection WHERE repo=?').all(repo).map(row => [String(row['fingerprint']), Number(row['sessions'])]));
|
|
@@ -385,7 +339,6 @@ export function synthesizeProposals(store, repo, actor, surface, now = new Date(
|
|
|
385
339
|
pendingFingerprints.add(fingerprint);
|
|
386
340
|
made++;
|
|
387
341
|
};
|
|
388
|
-
// Additions from corroborated gaps.
|
|
389
342
|
const gaps = store.handle.prepare("SELECT g.id, g.key, g.mistake, g.proposed FROM memory_gap g WHERE g.repo=? AND g.retired_at IS NULL AND g.domain='project' ORDER BY g.last_seen DESC").all(repo);
|
|
390
343
|
for (const gap of gaps) {
|
|
391
344
|
const sightings = store.handle.prepare('SELECT session, quote FROM memory_sighting WHERE gap=? ORDER BY at').all(Number(gap['id'])).map(row => ({ session: String(row['session']), quote: String(row['quote']) }));
|
|
@@ -403,7 +356,6 @@ export function synthesizeProposals(store, repo, actor, surface, now = new Date(
|
|
|
403
356
|
}
|
|
404
357
|
consider('instruction-add', `add:${String(gap['key'])}`, `Add: ${clip(proposed, 80)}`, `Mistake seen in ${new Set(sightings.map(s => s.session)).size} sessions: ${String(gap['mistake'])}`, null, proposed, sightings);
|
|
405
358
|
}
|
|
406
|
-
// Removals from harm.
|
|
407
359
|
const harm = new Map();
|
|
408
360
|
for (const row of store.handle.prepare("SELECT id, verdict FROM memory_session WHERE repo=? AND surface=? AND verdict IS NOT NULL").all(repo, surface.version)) {
|
|
409
361
|
let kept;
|
|
@@ -432,12 +384,10 @@ export function synthesizeProposals(store, repo, actor, surface, now = new Date(
|
|
|
432
384
|
export function listProposals(store, repo, status = 'pending') {
|
|
433
385
|
return store.handle.prepare(`SELECT * FROM memory_proposal WHERE repo=? AND (?='all' OR status=?) ORDER BY id DESC LIMIT 100`).all(repo, status, status).map(row => proposalOf(row));
|
|
434
386
|
}
|
|
435
|
-
/** The one writer: accept applies the edit through the knowledge or decision store as the person; reject remembers the fingerprint and its corroboration. */
|
|
436
387
|
export function decideProposal(store, args, now = new Date()) {
|
|
437
388
|
refuseLeadMemoryWrite();
|
|
438
389
|
return store.transact(() => {
|
|
439
390
|
refuseLeadMemoryWrite();
|
|
440
|
-
// A person who may change this project's memory, read inside the write (a revoked account or lost access refuses).
|
|
441
391
|
if (!store.accountCanAccess(args.actor, args.repo) || store.accountOf(args.actor)?.role !== 'approver')
|
|
442
392
|
throw Error('Project memory is outside your access.');
|
|
443
393
|
const row = store.handle.prepare('SELECT * FROM memory_proposal WHERE id=? AND repo=?').get(args.id, args.repo);
|
|
@@ -447,7 +397,6 @@ export function decideProposal(store, args, now = new Date()) {
|
|
|
447
397
|
if (proposal.status !== 'pending')
|
|
448
398
|
throw Error('That proposal was already decided.');
|
|
449
399
|
const note = lessonNoteOf(store, proposal.id);
|
|
450
|
-
// The laptop's local owner may decide lesson notes and clean-ups, nothing else here (D3): the act says which.
|
|
451
400
|
const local = currentLocalOwner();
|
|
452
401
|
if (local !== null && (note === null || local.act !== 'memory-review'))
|
|
453
402
|
throw Error('Sign in with your password to do this.');
|
|
@@ -461,7 +410,6 @@ export function decideProposal(store, args, now = new Date()) {
|
|
|
461
410
|
.run(args.repo, proposal.fingerprint, now.toISOString(), args.actor, proposal.sessions);
|
|
462
411
|
}
|
|
463
412
|
else if (note !== null) {
|
|
464
|
-
// A person's words, not the draft: "failed then passed" is what Toolroll recorded; what it means is theirs to say.
|
|
465
413
|
const claim = (args.claim ?? '').trim();
|
|
466
414
|
if (claim === '' || claim === proposal.afterText.trim())
|
|
467
415
|
throw Error('Write the note in your own words before accepting it.');
|
|
@@ -493,7 +441,6 @@ export function memoryStatus(store, repo, actor) {
|
|
|
493
441
|
pending: Number(store.handle.prepare("SELECT COUNT(*) AS n FROM memory_proposal WHERE repo=? AND status='pending'").get(repo)?.['n'] ?? 0),
|
|
494
442
|
included: includedLines(store, repo, actor, view.knowledge.references) };
|
|
495
443
|
}
|
|
496
|
-
/** "Last included" for every decision, reference and adopted lesson, in the order they're listed elsewhere. */
|
|
497
444
|
function includedLines(store, repo, actor, references) {
|
|
498
445
|
const use = memoryUseOf(store, repo);
|
|
499
446
|
const line = (kind, item, title) => ({ kind, item, title, words: lastIncludedWords(use.get(`${kind}:${item}`)) });
|