@wjarka/cezarion 0.15.1 → 0.16.0
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/README.md +167 -46
- package/dist/agent-config/catalog.d.ts +6 -2
- package/dist/agent-config/catalog.js +78 -3
- package/dist/agent-config/catalog.js.map +1 -1
- package/dist/agent-config/model-settings/shared.js +6 -3
- package/dist/agent-config/model-settings/shared.js.map +1 -1
- package/dist/agent-config/models.js +4 -0
- package/dist/agent-config/models.js.map +1 -1
- package/dist/agent-config/validate.js +6 -0
- package/dist/agent-config/validate.js.map +1 -1
- package/dist/artifacts/cli.js +10 -2
- package/dist/artifacts/cli.js.map +1 -1
- package/dist/automations/coordinator.d.ts +7 -0
- package/dist/automations/coordinator.js +22 -2
- package/dist/automations/coordinator.js.map +1 -1
- package/dist/automations/github-poller.d.ts +4 -4
- package/dist/automations/github-poller.js.map +1 -1
- package/dist/automations/schedule-runner.d.ts +130 -0
- package/dist/automations/schedule-runner.js +326 -0
- package/dist/automations/schedule-runner.js.map +1 -0
- package/dist/automations/scheduler.d.ts +38 -7
- package/dist/automations/scheduler.js +90 -22
- package/dist/automations/scheduler.js.map +1 -1
- package/dist/automations/store.d.ts +80 -3
- package/dist/automations/store.js +208 -16
- package/dist/automations/store.js.map +1 -1
- package/dist/automations/task-template.d.ts +42 -6
- package/dist/automations/task-template.js +152 -24
- package/dist/automations/task-template.js.map +1 -1
- package/dist/automations/types.d.ts +142 -6
- package/dist/automations/types.js +64 -6
- package/dist/automations/types.js.map +1 -1
- package/dist/autosave-holders.js +8 -12
- package/dist/autosave-holders.js.map +1 -1
- package/dist/ci-wait/client.d.ts +8 -1
- package/dist/ci-wait/client.js +43 -1
- package/dist/ci-wait/client.js.map +1 -1
- package/dist/ci-wait/controller.d.ts +83 -4
- package/dist/ci-wait/controller.js +76 -11
- package/dist/ci-wait/controller.js.map +1 -1
- package/dist/ci-wait/errors.d.ts +7 -1
- package/dist/ci-wait/errors.js +36 -0
- package/dist/ci-wait/errors.js.map +1 -1
- package/dist/ci-wait/github.d.ts +2 -0
- package/dist/ci-wait/github.js +3 -1
- package/dist/ci-wait/github.js.map +1 -1
- package/dist/ci-wait/mcp.d.ts +2 -98
- package/dist/ci-wait/mcp.js +11 -25
- package/dist/ci-wait/mcp.js.map +1 -1
- package/dist/ci-wait/supervisor.d.ts +2 -1
- package/dist/ci-wait/supervisor.js +2 -1
- package/dist/ci-wait/supervisor.js.map +1 -1
- package/dist/ci-wait/tools.d.ts +307 -0
- package/dist/ci-wait/tools.js +63 -0
- package/dist/ci-wait/tools.js.map +1 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/contract/agent-config.d.ts +5 -0
- package/dist/contract/agent-profiles.d.ts +15 -0
- package/dist/contract/automation-schedule.d.ts +60 -0
- package/dist/contract/automations.d.ts +208 -36
- package/dist/contract/delegation.d.ts +96 -0
- package/dist/contract/discovery.d.ts +7 -0
- package/dist/contract/github.d.ts +1 -0
- package/dist/contract/health.d.ts +6 -0
- package/dist/contract/index.d.ts +3 -0
- package/dist/contract/index.js +1445 -745
- package/dist/contract/preview.d.ts +508 -0
- package/dist/contract/runs.d.ts +716 -15
- package/dist/contract/skills.d.ts +39 -0
- package/dist/contract/workflows.d.ts +6 -0
- package/dist/contract/workspace.d.ts +65 -0
- package/dist/contract/zoned-time.d.ts +35 -0
- package/dist/core/agent-env.d.ts +11 -0
- package/dist/core/agent-env.js +27 -5
- package/dist/core/agent-env.js.map +1 -1
- package/dist/core/agent-profiles.js +7 -0
- package/dist/core/agent-profiles.js.map +1 -1
- package/dist/core/agent-runner.d.ts +49 -1
- package/dist/core/agent-runner.js +2 -1
- package/dist/core/agent-runner.js.map +1 -1
- package/dist/core/backend-detect.d.ts +3 -2
- package/dist/core/backend-detect.js +27 -1
- package/dist/core/backend-detect.js.map +1 -1
- package/dist/core/claude-cli-runner.d.ts +1 -0
- package/dist/core/claude-cli-runner.js +69 -19
- package/dist/core/claude-cli-runner.js.map +1 -1
- package/dist/core/codex-app-server-runner.d.ts +1 -0
- package/dist/core/codex-app-server-runner.js +200 -25
- package/dist/core/codex-app-server-runner.js.map +1 -1
- package/dist/core/codex-app-server-transport.d.ts +7 -3
- package/dist/core/codex-app-server-transport.js +11 -9
- package/dist/core/codex-app-server-transport.js.map +1 -1
- package/dist/core/cursor-acp-runner.d.ts +1 -0
- package/dist/core/cursor-acp-runner.js +24 -9
- package/dist/core/cursor-acp-runner.js.map +1 -1
- package/dist/core/host-model-catalog.js +2 -0
- package/dist/core/host-model-catalog.js.map +1 -1
- package/dist/core/managed-session.js +2 -0
- package/dist/core/managed-session.js.map +1 -1
- package/dist/core/model-identity.js +2 -0
- package/dist/core/model-identity.js.map +1 -1
- package/dist/core/model-presets.js +3 -0
- package/dist/core/model-presets.js.map +1 -1
- package/dist/core/omp-model-catalog.d.ts +43 -0
- package/dist/core/omp-model-catalog.js +205 -0
- package/dist/core/omp-model-catalog.js.map +1 -0
- package/dist/core/omp-runner.d.ts +73 -0
- package/dist/core/omp-runner.js +990 -0
- package/dist/core/omp-runner.js.map +1 -0
- package/dist/core/omp-ui-mapper.d.ts +106 -0
- package/dist/core/omp-ui-mapper.js +882 -0
- package/dist/core/omp-ui-mapper.js.map +1 -0
- package/dist/core/opencode-server-runner.d.ts +18 -4
- package/dist/core/opencode-server-runner.js +337 -96
- package/dist/core/opencode-server-runner.js.map +1 -1
- package/dist/core/opencode-session-error.d.ts +11 -0
- package/dist/core/opencode-session-error.js +26 -0
- package/dist/core/opencode-session-error.js.map +1 -0
- package/dist/core/opencode-ui-mapper.js +4 -36
- package/dist/core/opencode-ui-mapper.js.map +1 -1
- package/dist/core/pi-runner.d.ts +1 -0
- package/dist/core/pi-runner.js +75 -12
- package/dist/core/pi-runner.js.map +1 -1
- package/dist/core/provider-auth.d.ts +9 -2
- package/dist/core/provider-auth.js +43 -6
- package/dist/core/provider-auth.js.map +1 -1
- package/dist/core/runner-factory.js +3 -0
- package/dist/core/runner-factory.js.map +1 -1
- package/dist/core/runner-model-catalog.js +1 -0
- package/dist/core/runner-model-catalog.js.map +1 -1
- package/dist/core/runner-stderr.d.ts +2 -0
- package/dist/core/runner-stderr.js +20 -0
- package/dist/core/runner-stderr.js.map +1 -0
- package/dist/core/session-process.d.ts +22 -0
- package/dist/core/session-process.js +202 -0
- package/dist/core/session-process.js.map +1 -0
- package/dist/core/ui-events.d.ts +1 -1
- package/dist/core/usage-limit.js +3 -60
- package/dist/core/usage-limit.js.map +1 -1
- package/dist/data-gitignore.d.ts +6 -0
- package/dist/data-gitignore.js +57 -0
- package/dist/data-gitignore.js.map +1 -0
- package/dist/delegation/capacity.d.ts +19 -0
- package/dist/delegation/capacity.js +34 -0
- package/dist/delegation/capacity.js.map +1 -0
- package/dist/delegation/cli.js +13 -4
- package/dist/delegation/cli.js.map +1 -1
- package/dist/delegation/conversations.d.ts +4 -2
- package/dist/delegation/conversations.js +8 -12
- package/dist/delegation/conversations.js.map +1 -1
- package/dist/delegation/credentials.d.ts +2 -0
- package/dist/delegation/credentials.js +10 -0
- package/dist/delegation/credentials.js.map +1 -1
- package/dist/delegation/destroy-observation.d.ts +42 -0
- package/dist/delegation/destroy-observation.js +115 -0
- package/dist/delegation/destroy-observation.js.map +1 -0
- package/dist/delegation/execution-identity.d.ts +6 -0
- package/dist/delegation/execution-identity.js +1 -1
- package/dist/delegation/execution-identity.js.map +1 -1
- package/dist/delegation/policy.d.ts +3 -2
- package/dist/delegation/policy.js +7 -5
- package/dist/delegation/policy.js.map +1 -1
- package/dist/delegation/process-liveness.d.ts +57 -20
- package/dist/delegation/process-liveness.js +114 -92
- package/dist/delegation/process-liveness.js.map +1 -1
- package/dist/delegation/provision.js +6 -6
- package/dist/delegation/provision.js.map +1 -1
- package/dist/delegation/results.js +4 -2
- package/dist/delegation/results.js.map +1 -1
- package/dist/delegation/retry-backoff.d.ts +23 -0
- package/dist/delegation/retry-backoff.js +18 -0
- package/dist/delegation/retry-backoff.js.map +1 -0
- package/dist/delegation/routes.d.ts +64 -58
- package/dist/delegation/scratch-cleanup.d.ts +29 -0
- package/dist/delegation/scratch-cleanup.js +143 -0
- package/dist/delegation/scratch-cleanup.js.map +1 -0
- package/dist/delegation/service.d.ts +20 -1
- package/dist/delegation/service.js +233 -70
- package/dist/delegation/service.js.map +1 -1
- package/dist/delegation/transport.d.ts +12 -6
- package/dist/delegation/workspace.d.ts +23 -4
- package/dist/delegation/workspace.js +147 -31
- package/dist/delegation/workspace.js.map +1 -1
- package/dist/git-worktree-lock-helper.js +8 -3
- package/dist/git-worktree-lock-helper.js.map +1 -1
- package/dist/git-worktree-lock.d.ts +6 -1
- package/dist/git-worktree-lock.js +10 -4
- package/dist/git-worktree-lock.js.map +1 -1
- package/dist/git-worktree-release.d.ts +20 -0
- package/dist/git-worktree-release.js +27 -0
- package/dist/git-worktree-release.js.map +1 -0
- package/dist/git-worktree.d.ts +8 -2
- package/dist/git-worktree.js +19 -2
- package/dist/git-worktree.js.map +1 -1
- package/dist/handoff.d.ts +2 -2
- package/dist/handoff.js +1 -1
- package/dist/index.js +109 -76
- package/dist/index.js.map +1 -1
- package/dist/paths.d.ts +1 -1
- package/dist/paths.js +5 -1
- package/dist/paths.js.map +1 -1
- package/dist/preview/cdp.d.ts +13 -0
- package/dist/preview/cdp.js +69 -0
- package/dist/preview/cdp.js.map +1 -0
- package/dist/preview/chromium.d.ts +75 -0
- package/dist/preview/chromium.js +394 -0
- package/dist/preview/chromium.js.map +1 -0
- package/dist/preview/dev-server.d.ts +68 -0
- package/dist/preview/dev-server.js +341 -0
- package/dist/preview/dev-server.js.map +1 -0
- package/dist/preview/host.d.ts +154 -0
- package/dist/preview/host.js +681 -0
- package/dist/preview/host.js.map +1 -0
- package/dist/preview/registration.d.ts +63 -0
- package/dist/preview/registration.js +109 -0
- package/dist/preview/registration.js.map +1 -0
- package/dist/preview/session.d.ts +73 -0
- package/dist/preview/session.js +347 -0
- package/dist/preview/session.js.map +1 -0
- package/dist/preview/url.d.ts +6 -0
- package/dist/preview/url.js +17 -0
- package/dist/preview/url.js.map +1 -0
- package/dist/runs/agent-tmpdir-removal.d.ts +15 -0
- package/dist/runs/agent-tmpdir-removal.js +60 -0
- package/dist/runs/agent-tmpdir-removal.js.map +1 -0
- package/dist/runs/agent-tmpdir.d.ts +12 -1
- package/dist/runs/agent-tmpdir.js +123 -34
- package/dist/runs/agent-tmpdir.js.map +1 -1
- package/dist/runs/delegation-state.d.ts +5 -1
- package/dist/runs/delegation-state.js +9 -0
- package/dist/runs/delegation-state.js.map +1 -1
- package/dist/runs/event-history.d.ts +4 -4
- package/dist/runs/event-history.js +97 -117
- package/dist/runs/event-history.js.map +1 -1
- package/dist/runs/history-compressor.d.ts +29 -0
- package/dist/runs/history-compressor.js +116 -0
- package/dist/runs/history-compressor.js.map +1 -0
- package/dist/runs/history-file.d.ts +36 -0
- package/dist/runs/history-file.js +463 -0
- package/dist/runs/history-file.js.map +1 -0
- package/dist/runs/human-ask-summary.js +18 -13
- package/dist/runs/human-ask-summary.js.map +1 -1
- package/dist/runs/legacy-index.d.ts +62 -0
- package/dist/runs/legacy-index.js +168 -0
- package/dist/runs/legacy-index.js.map +1 -0
- package/dist/runs/raw-record.d.ts +52 -0
- package/dist/runs/raw-record.js +145 -0
- package/dist/runs/raw-record.js.map +1 -0
- package/dist/runs/retention.d.ts +13 -6
- package/dist/runs/retention.js +42 -13
- package/dist/runs/retention.js.map +1 -1
- package/dist/runs/run-claims.d.ts +23 -0
- package/dist/runs/run-claims.js +24 -0
- package/dist/runs/run-claims.js.map +1 -0
- package/dist/runs/run-database.d.ts +385 -0
- package/dist/runs/run-database.js +930 -0
- package/dist/runs/run-database.js.map +1 -0
- package/dist/runs/run-index.d.ts +35 -9
- package/dist/runs/run-index.js +200 -25
- package/dist/runs/run-index.js.map +1 -1
- package/dist/runs/run-row.d.ts +44 -0
- package/dist/runs/run-row.js +84 -0
- package/dist/runs/run-row.js.map +1 -0
- package/dist/runs/run-search.d.ts +29 -0
- package/dist/runs/run-search.js +63 -0
- package/dist/runs/run-search.js.map +1 -0
- package/dist/runs/store-open-error.d.ts +24 -0
- package/dist/runs/store-open-error.js +61 -0
- package/dist/runs/store-open-error.js.map +1 -0
- package/dist/runs/store.d.ts +667 -32
- package/dist/runs/store.js +2153 -324
- package/dist/runs/store.js.map +1 -1
- package/dist/runs/transcript-facts.d.ts +77 -0
- package/dist/runs/transcript-facts.js +302 -0
- package/dist/runs/transcript-facts.js.map +1 -0
- package/dist/runs/webhook.js +5 -4
- package/dist/runs/webhook.js.map +1 -1
- package/dist/runs/worker-execution.d.ts +22 -0
- package/dist/runs/worker-execution.js +30 -0
- package/dist/runs/worker-execution.js.map +1 -0
- package/dist/server/capabilities.d.ts +1 -0
- package/dist/server/capabilities.js +2 -0
- package/dist/server/capabilities.js.map +1 -1
- package/dist/server/cockpit-ownership.d.ts +8 -0
- package/dist/server/cockpit-ownership.js +19 -0
- package/dist/server/cockpit-ownership.js.map +1 -1
- package/dist/server/forge/github.d.ts +1 -4
- package/dist/server/forge/github.js +47 -23
- package/dist/server/forge/github.js.map +1 -1
- package/dist/server/git.js +1 -1
- package/dist/server/git.js.map +1 -1
- package/dist/server/open-in-app.js +1 -0
- package/dist/server/open-in-app.js.map +1 -1
- package/dist/server/preview-socket.d.ts +36 -0
- package/dist/server/preview-socket.js +126 -0
- package/dist/server/preview-socket.js.map +1 -0
- package/dist/server/project-context.d.ts +31 -4
- package/dist/server/project-context.js +73 -9
- package/dist/server/project-context.js.map +1 -1
- package/dist/server/provider-action-gate.js +1 -0
- package/dist/server/provider-action-gate.js.map +1 -1
- package/dist/server/repo-branches.d.ts +4 -3
- package/dist/server/repo-branches.js +5 -4
- package/dist/server/repo-branches.js.map +1 -1
- package/dist/server/server.d.ts +4500 -2727
- package/dist/server/server.js +651 -202
- package/dist/server/server.js.map +1 -1
- package/dist/server/upgrade-router.d.ts +23 -0
- package/dist/server/upgrade-router.js +53 -0
- package/dist/server/upgrade-router.js.map +1 -0
- package/dist/server/validators.d.ts +6 -1
- package/dist/server/validators.js +4 -4
- package/dist/server/validators.js.map +1 -1
- package/dist/server/ws.d.ts +16 -16
- package/dist/server/ws.js +56 -54
- package/dist/server/ws.js.map +1 -1
- package/dist/skills-remote.d.ts +14 -0
- package/dist/skills-remote.js +91 -15
- package/dist/skills-remote.js.map +1 -1
- package/dist/task-cli/cli.js +40 -16
- package/dist/task-cli/cli.js.map +1 -1
- package/dist/task-cli/discovery.d.ts +4 -3
- package/dist/task-cli/discovery.js +4 -3
- package/dist/task-cli/discovery.js.map +1 -1
- package/dist/task-cli/http.d.ts +2 -0
- package/dist/task-cli/http.js +10 -4
- package/dist/task-cli/http.js.map +1 -1
- package/dist/task-cli/projections.d.ts +5 -2
- package/dist/task-cli/projections.js +13 -0
- package/dist/task-cli/projections.js.map +1 -1
- package/dist/task-cli/watch.d.ts +15 -2
- package/dist/task-cli/watch.js +31 -9
- package/dist/task-cli/watch.js.map +1 -1
- package/dist/ui-state.d.ts +4 -3
- package/dist/ui-state.js +8 -3
- package/dist/ui-state.js.map +1 -1
- package/dist/workflows/grouped-command.d.ts +31 -0
- package/dist/workflows/grouped-command.js +143 -0
- package/dist/workflows/grouped-command.js.map +1 -0
- package/dist/workflows/run.d.ts +223 -42
- package/dist/workflows/run.js +1316 -398
- package/dist/workflows/run.js.map +1 -1
- package/dist/workflows/types.d.ts +12 -0
- package/dist/workflows/types.js +20 -0
- package/dist/workflows/types.js.map +1 -1
- package/dist/workspace/agent-accounts.d.ts +5 -1
- package/dist/workspace/agent-accounts.js +1 -0
- package/dist/workspace/agent-accounts.js.map +1 -1
- package/dist/workspace/agent-profiles.js +1 -1
- package/dist/workspace/agent-profiles.js.map +1 -1
- package/dist/workspace/config.d.ts +3 -1
- package/dist/workspace/config.js +1 -0
- package/dist/workspace/config.js.map +1 -1
- package/dist/worktree-setup.d.ts +85 -0
- package/dist/worktree-setup.js +164 -0
- package/dist/worktree-setup.js.map +1 -0
- package/package.json +7 -5
- package/scripts/benchmark-run-store-fixture.ts +428 -0
- package/scripts/benchmark-run-store.ts +743 -0
- package/scripts/benchmark-stuck-destroys.ts +143 -0
- package/scripts/mock-autonomous.mjs +11 -0
- package/scripts/mock-ci-tool.mjs +20 -5
- package/scripts/mock-claude.mjs +110 -1
- package/scripts/mock-codex-app-server.mjs +117 -2
- package/scripts/mock-codex-coalesce-steer.mjs +59 -0
- package/scripts/mock-codex-reverse-steer.mjs +130 -0
- package/scripts/mock-cursor-acp.mjs +75 -1
- package/scripts/mock-omp-rpc.mjs +605 -0
- package/scripts/mock-opencode-serve.mjs +312 -22
- package/scripts/mock-pi-rpc.mjs +109 -3
- package/scripts/mock-runner-crash.mjs +42 -0
- package/scripts/mock-silent-tail.mjs +78 -0
- package/scripts/mock-turn-messages.mjs +5 -0
- package/scripts/omp-ci-wait.mjs +29 -0
- package/scripts/omp-restrict-delegation.yml +4 -0
- package/scripts/pi-ci-wait.mjs +12 -9
- package/scripts/seed-archive-profile.ts +3 -3
- package/web/dist/assets/agent-accounts-CFOBMVHc.js +1 -0
- package/web/dist/assets/alert-dialog-BrpNUwMt.js +1 -0
- package/web/dist/assets/app-window-CSHwDX9N.js +1 -0
- package/web/dist/assets/button-C_rd7CPp.js +43 -0
- package/web/dist/assets/compare-variants-D6WXhvXA.js +1 -0
- package/web/dist/assets/diff-DrEARXTV.js +3 -0
- package/web/dist/assets/diff-controls-B1-j7nFg.js +1 -0
- package/web/dist/assets/{diff-view-DPn6bQ5W.js → diff-view-DvGLjdTk.js} +3 -3
- package/web/dist/assets/dropdown-menu-BegOZFrj.js +1 -0
- package/web/dist/assets/format-DpNe3S0A.js +1 -0
- package/web/dist/assets/git-toolbar-Cw4ljmhB.js +1 -0
- package/web/dist/assets/github-CfV5sqL0.js +1 -0
- package/web/dist/assets/{image-preview-DJ8cgb1Z.js → image-preview-FOEfqpZP.js} +1 -1
- package/web/dist/assets/index-DgWWlOLy.js +13 -0
- package/web/dist/assets/index-fBFnuvxu.css +1 -0
- package/web/dist/assets/{nav-row-styles-3j64kH5s.js → nav-row-styles-vp2JbhuJ.js} +1 -1
- package/web/dist/assets/play-CmVAj_fu.js +1 -0
- package/web/dist/assets/popover-BohP6WTx.js +1 -0
- package/web/dist/assets/preview-pane-connected-qTA5KNoJ.js +3 -0
- package/web/dist/assets/preview-state-vuMviq6q.js +1 -0
- package/web/dist/assets/prompt-templates-Cubdut_C.js +15 -0
- package/web/dist/assets/repo-git-Cf4t5PD0.js +1 -0
- package/web/dist/assets/{run-diff-5-RRdcVz.js → run-diff-BpkUW37Z.js} +3 -3
- package/web/dist/assets/run-header-68WHf9wV.js +1 -0
- package/web/dist/assets/skills-DiVIgKeU.js +1 -0
- package/web/dist/assets/square-terminal-B6RYYieR.js +1 -0
- package/web/dist/assets/status-dot-CqTJHSP9.js +1 -0
- package/web/dist/assets/{tab-link-K0hjzEXR.js → tab-link-B07Hu4QX.js} +1 -1
- package/web/dist/assets/task-changes--lQF6EYf.js +1 -0
- package/web/dist/assets/task-commits-Cx0qy4DN.js +1 -0
- package/web/dist/assets/task-files-D50s-gKW.js +2 -0
- package/web/dist/assets/task-github-item-DaqmSwYT.js +1 -0
- package/web/dist/assets/task-thread-BPQ64lui.js +7 -0
- package/web/dist/assets/{task-thread-Bw_nQuTx.css → task-thread-zNE2Q9E-.css} +1 -1
- package/web/dist/assets/textarea-D20O4Pw0.js +1 -0
- package/web/dist/assets/thread-state-DWcFMrvb.js +4 -0
- package/web/dist/assets/use-hand-to-agent-state-BLIGmwbd.css +1 -0
- package/web/dist/assets/use-hand-to-agent-state-Cy9eyyfL.js +1 -0
- package/web/dist/assets/{utils-fzNfbPzA.js → utils-JsL3ZsJf.js} +1 -1
- package/web/dist/assets/workflows-jwG7uxqi.js +11 -0
- package/web/dist/assets/{zoomable-image-CDmZ_Rtl.js → zoomable-image-BJJ64KGc.js} +1 -1
- package/web/dist/cezarion-lockup-dark.svg +1 -13
- package/web/dist/cezarion-lockup-light.svg +1 -13
- package/web/dist/cezarion-mark-dark.svg +1 -12
- package/web/dist/cezarion-mark-light.svg +1 -12
- package/web/dist/index.html +16 -21
- package/web/dist/assets/agent-accounts-CU2ZDv24.js +0 -1
- package/web/dist/assets/alert-dialog-C-xYE_dg.js +0 -43
- package/web/dist/assets/chevron-right-BENZ-1ZN.js +0 -1
- package/web/dist/assets/collapsible-DD9J91Iv.js +0 -1
- package/web/dist/assets/compare-variants-5FmqpFSN.js +0 -1
- package/web/dist/assets/diff-controls-Bj0YrioE.js +0 -1
- package/web/dist/assets/diff-rE8rm75J2.js +0 -3
- package/web/dist/assets/diff-stat-BKDCSVfJ.js +0 -1
- package/web/dist/assets/dropdown-menu-Ch5BYQh_.js +0 -1
- package/web/dist/assets/format-dBiNDNVe.js +0 -1
- package/web/dist/assets/git-toolbar-ClVvf5iF.js +0 -1
- package/web/dist/assets/github-BkNOyour.css +0 -1
- package/web/dist/assets/github-DeZMeMwJ.js +0 -1
- package/web/dist/assets/github-item-detail-W5F6GVjF.js +0 -1
- package/web/dist/assets/github-sidebar-model-DcMu-IK2.js +0 -1
- package/web/dist/assets/highlighter-CdHqIwFr.js +0 -3
- package/web/dist/assets/index-CatemBEL.js +0 -8
- package/web/dist/assets/index-MvfD8bZJ.css +0 -1
- package/web/dist/assets/markdown-zdKeLIYA.js +0 -2
- package/web/dist/assets/mobile-run-bar-BCfmFi8V.js +0 -1
- package/web/dist/assets/prompt-templates-CBPp39IU.js +0 -15
- package/web/dist/assets/reference-chip-D6owncJT.js +0 -1
- package/web/dist/assets/repo-git-CtdkZFey.js +0 -1
- package/web/dist/assets/run-header-BcjoDi0W.js +0 -1
- package/web/dist/assets/sheet-ChnYVrp1.js +0 -1
- package/web/dist/assets/skills-C8YKp2vr.js +0 -1
- package/web/dist/assets/task-changes-BW8YdWG8.js +0 -1
- package/web/dist/assets/task-commits-q2kB2y6L.js +0 -1
- package/web/dist/assets/task-files-pPL6_3Cr.js +0 -2
- package/web/dist/assets/task-github-item-BXF5R52U.js +0 -1
- package/web/dist/assets/task-thread-DtkFL3EC.js +0 -10
- package/web/dist/assets/textarea-DxlkE-Yd.js +0 -1
- package/web/dist/assets/token-metrics-DIAjrPlM.js +0 -1
- package/web/dist/assets/use-desktop-CrDny2uG.js +0 -1
- package/web/dist/assets/use-submit-shortcut-KWJsC906.js +0 -1
- package/web/dist/assets/workflows-TmcPEj2K.js +0 -11
- /package/web/dist/assets/{lib-BQXq3kEf2.js → lib-BQXq3kEf.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-database.js","sourceRoot":"","sources":["../../src/runs/run-database.ts"],"names":[],"mappings":"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"}
|
package/dist/runs/run-index.d.ts
CHANGED
|
@@ -1,19 +1,45 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type RunSummary } from '../contract/index.js';
|
|
2
|
+
import { type RepoHandle } from './store.ts';
|
|
3
|
+
/** A cold project's runs as list rows, and whether older archived roots were left out. */
|
|
4
|
+
export interface ColdRunIndex {
|
|
5
|
+
runs: RunSummary[];
|
|
6
|
+
truncated: boolean;
|
|
7
|
+
}
|
|
2
8
|
/**
|
|
3
|
-
* The READ-ONLY
|
|
9
|
+
* The READ-ONLY reader of a project's runs, for the workspace-level run index (`GET
|
|
4
10
|
* /workspace/runs-index`) — the one place that must read a project's runs WITHOUT owning it.
|
|
5
11
|
*
|
|
6
12
|
* `RunStore.open` cannot be used here and the reason is the whole point of this module. Opening a
|
|
7
|
-
* store `mkdir`s `<dataDir>/runs/`, and the caller that opens one
|
|
8
|
-
* `ProjectContext` — which prunes orphan worktrees and calls
|
|
9
|
-
* interrupted runs. Building the workspace index must never do any
|
|
10
|
-
* tasks exist" would restart agents across every registered project,
|
|
11
|
-
* would spend tokens. Cold projects are precisely the ones the index
|
|
12
|
-
* `contexts.peek()` (which returns nothing for them) is not an answer either.
|
|
13
|
+
* store `mkdir`s `<dataDir>/runs/`, migrates or imports `runs.db`, and the caller that opens one
|
|
14
|
+
* goes on to build a `ProjectContext` — which prunes orphan worktrees and calls
|
|
15
|
+
* `manager.recover()`, resuming interrupted runs. Building the workspace index must never do any
|
|
16
|
+
* of that: answering "which tasks exist" would restart agents across every registered project,
|
|
17
|
+
* and typing into a search box would spend tokens. Cold projects are precisely the ones the index
|
|
18
|
+
* exists to reach, so `contexts.peek()` (which returns nothing for them) is not an answer either.
|
|
19
|
+
*
|
|
20
|
+
* Once a project's `runs.db` has completed its import it is the only source: `runs.json` beside it
|
|
21
|
+
* is frozen history (#779). The rows — with `archivedWindow`, the run lists' window (#864): every
|
|
22
|
+
* unarchived run plus the newest archived roots — come from the stored summary column, read
|
|
23
|
+
* through a read-only connection that creates no directory or database and runs no migration.
|
|
24
|
+
* Before that, the legacy `runs.json` is parsed read-only, exactly as it always was. A database
|
|
25
|
+
* that exists but cannot be read contributes nothing — never the stale `runs.json` beside it.
|
|
13
26
|
*
|
|
14
27
|
* What this does share with the store is the schema and `reconcileLoadedRun`, so a `running` row
|
|
15
28
|
* left behind by a crashed process reads as interrupted here exactly as it would once the project
|
|
16
29
|
* were opened for real. A second, subtly different parse of that field would show a task as
|
|
17
30
|
* running in the palette and failed the moment you clicked it.
|
|
18
31
|
*/
|
|
19
|
-
export declare function readRunIndexFromDisk(dataDir: string,
|
|
32
|
+
export declare function readRunIndexFromDisk(dataDir: string, options?: {
|
|
33
|
+
handle?: RepoHandle | null;
|
|
34
|
+
archivedWindow?: number;
|
|
35
|
+
roots?: boolean;
|
|
36
|
+
}): ColdRunIndex;
|
|
37
|
+
/**
|
|
38
|
+
* A cold project's ROOT runs, archived or not, that match `query` (`matchesRunQuery`), newest
|
|
39
|
+
* first: at most `limit`, and whether more matched. The workspace search behind ⌘K (#864), with
|
|
40
|
+
* the same side-effect-free contract as `readRunIndexFromDisk`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function searchRunIndexFromDisk(dataDir: string, query: string, options: {
|
|
43
|
+
handle?: RepoHandle | null;
|
|
44
|
+
limit: number;
|
|
45
|
+
}): ColdRunIndex;
|
package/dist/runs/run-index.js
CHANGED
|
@@ -1,50 +1,225 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { runSummarySchema, toRunSummary } from '../contract/index.js';
|
|
4
|
+
import { RUNS_DB_FILE, RUNS_IMPORT_COMPLETE_KEY, RunDatabase } from './run-database.js';
|
|
5
|
+
import { decodeRunRecord, LEGACY_INDEX_FILE, reconcileLoadedRun, rescopeRun, parseRunRecords } from './store.js';
|
|
4
6
|
import { refreshHumanAskSummary } from './human-ask-summary.js';
|
|
7
|
+
import { matchesRunQuery, sqlPrefilterTokens } from './run-search.js';
|
|
8
|
+
const EMPTY = { runs: [], truncated: false };
|
|
9
|
+
/** Projects whose unreadable rows this process has already reported: ⌘K reads the index on every
|
|
10
|
+
* keystroke's request, and one warning per project is enough. */
|
|
11
|
+
const reportedUnreadable = new Set();
|
|
5
12
|
/**
|
|
6
|
-
* The READ-ONLY
|
|
13
|
+
* The READ-ONLY reader of a project's runs, for the workspace-level run index (`GET
|
|
7
14
|
* /workspace/runs-index`) — the one place that must read a project's runs WITHOUT owning it.
|
|
8
15
|
*
|
|
9
16
|
* `RunStore.open` cannot be used here and the reason is the whole point of this module. Opening a
|
|
10
|
-
* store `mkdir`s `<dataDir>/runs/`, and the caller that opens one
|
|
11
|
-
* `ProjectContext` — which prunes orphan worktrees and calls
|
|
12
|
-
* interrupted runs. Building the workspace index must never do any
|
|
13
|
-
* tasks exist" would restart agents across every registered project,
|
|
14
|
-
* would spend tokens. Cold projects are precisely the ones the index
|
|
15
|
-
* `contexts.peek()` (which returns nothing for them) is not an answer either.
|
|
17
|
+
* store `mkdir`s `<dataDir>/runs/`, migrates or imports `runs.db`, and the caller that opens one
|
|
18
|
+
* goes on to build a `ProjectContext` — which prunes orphan worktrees and calls
|
|
19
|
+
* `manager.recover()`, resuming interrupted runs. Building the workspace index must never do any
|
|
20
|
+
* of that: answering "which tasks exist" would restart agents across every registered project,
|
|
21
|
+
* and typing into a search box would spend tokens. Cold projects are precisely the ones the index
|
|
22
|
+
* exists to reach, so `contexts.peek()` (which returns nothing for them) is not an answer either.
|
|
23
|
+
*
|
|
24
|
+
* Once a project's `runs.db` has completed its import it is the only source: `runs.json` beside it
|
|
25
|
+
* is frozen history (#779). The rows — with `archivedWindow`, the run lists' window (#864): every
|
|
26
|
+
* unarchived run plus the newest archived roots — come from the stored summary column, read
|
|
27
|
+
* through a read-only connection that creates no directory or database and runs no migration.
|
|
28
|
+
* Before that, the legacy `runs.json` is parsed read-only, exactly as it always was. A database
|
|
29
|
+
* that exists but cannot be read contributes nothing — never the stale `runs.json` beside it.
|
|
16
30
|
*
|
|
17
31
|
* What this does share with the store is the schema and `reconcileLoadedRun`, so a `running` row
|
|
18
32
|
* left behind by a crashed process reads as interrupted here exactly as it would once the project
|
|
19
33
|
* were opened for real. A second, subtly different parse of that field would show a task as
|
|
20
34
|
* running in the palette and failed the moment you clicked it.
|
|
21
35
|
*/
|
|
22
|
-
export function readRunIndexFromDisk(dataDir,
|
|
23
|
-
|
|
36
|
+
export function readRunIndexFromDisk(dataDir, options = {}) {
|
|
37
|
+
return readCold(dataDir, EMPTY, (db) => readDatabase(db, dataDir, options), () => readLegacyIndex(dataDir, options));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A cold project's ROOT runs, archived or not, that match `query` (`matchesRunQuery`), newest
|
|
41
|
+
* first: at most `limit`, and whether more matched. The workspace search behind ⌘K (#864), with
|
|
42
|
+
* the same side-effect-free contract as `readRunIndexFromDisk`.
|
|
43
|
+
*/
|
|
44
|
+
export function searchRunIndexFromDisk(dataDir, query, options) {
|
|
45
|
+
return readCold(dataDir, EMPTY, (db) => searchDatabase(db, dataDir, query, options), () => {
|
|
46
|
+
const { runs } = readLegacyIndex(dataDir, options);
|
|
47
|
+
return firstMatches(runs.filter((run) => run.delegation?.role !== 'worker'), query, options.limit);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/** The source rule both readers share: an imported `runs.db` is the only source, a `runs.db` that
|
|
51
|
+
* cannot be read contributes `empty`, and before the import the legacy `runs.json` is read. */
|
|
52
|
+
function readCold(dataDir, empty, fromDatabase, fromLegacy) {
|
|
53
|
+
let db;
|
|
54
|
+
try {
|
|
55
|
+
db = RunDatabase.openReadOnly(join(dataDir, RUNS_DB_FILE));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return empty;
|
|
59
|
+
}
|
|
60
|
+
if (db) {
|
|
61
|
+
try {
|
|
62
|
+
if (db.getMeta(RUNS_IMPORT_COMPLETE_KEY) !== undefined)
|
|
63
|
+
return fromDatabase(db);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return empty;
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
db.close();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return fromLegacy();
|
|
73
|
+
}
|
|
74
|
+
/** The newest `limit` of `runs` that match, and whether another one did. */
|
|
75
|
+
function firstMatches(runs, query, limit) {
|
|
76
|
+
const matched = [];
|
|
77
|
+
for (const run of runs) {
|
|
78
|
+
if (!matchesRunQuery(run, query))
|
|
79
|
+
continue;
|
|
80
|
+
if (matched.length === limit)
|
|
81
|
+
return { runs: matched, truncated: true };
|
|
82
|
+
matched.push(run);
|
|
83
|
+
}
|
|
84
|
+
return { runs: matched, truncated: false };
|
|
85
|
+
}
|
|
86
|
+
/** `runs` (newest first) with archived roots past `archivedWindow` cut, and whether any were. */
|
|
87
|
+
function applyWindow(runs, archivedWindow) {
|
|
88
|
+
if (archivedWindow === undefined)
|
|
89
|
+
return { runs, truncated: false };
|
|
90
|
+
let archived = 0;
|
|
91
|
+
const kept = runs.filter((run) => !run.archived || ++archived <= archivedWindow);
|
|
92
|
+
return { runs: kept, truncated: archived > archivedWindow };
|
|
93
|
+
}
|
|
94
|
+
function readDatabase(db, dataDir, { handle, archivedWindow, roots }) {
|
|
95
|
+
// One archived root past the window is how "there are older ones" is known without counting.
|
|
96
|
+
const rows = archivedWindow === undefined ? db.listSummaries() : db.listWindowSummaries(archivedWindow + 1, { roots });
|
|
97
|
+
return applyWindow(projectRows(db, rows, dataDir, handle), archivedWindow);
|
|
98
|
+
}
|
|
99
|
+
function searchDatabase(db, dataDir, query, { handle, limit }) {
|
|
100
|
+
// Match on the stored summary first, so only candidates pay for a decode; each candidate is
|
|
101
|
+
// projected and matched again as it is read, because reading it cold can drop a foreign
|
|
102
|
+
// reference it matched on. The scan stops at one match past the limit counted AFTER that, so
|
|
103
|
+
// dropped candidates can never use up the cap and hide an older real match (#864 review).
|
|
104
|
+
const matched = [];
|
|
105
|
+
db.visitRootSummaries(sqlPrefilterTokens(query), (row) => {
|
|
106
|
+
const summary = parseSummary(row.summary);
|
|
107
|
+
if (summary !== undefined && !matchesRunQuery(summary, query))
|
|
108
|
+
return true;
|
|
109
|
+
const [projected] = projectRows(db, [row], dataDir, handle);
|
|
110
|
+
if (projected && matchesRunQuery(projected, query))
|
|
111
|
+
matched.push(projected);
|
|
112
|
+
return matched.length <= limit;
|
|
113
|
+
});
|
|
114
|
+
return matched.length > limit ? { runs: matched.slice(0, limit), truncated: true } : { runs: matched, truncated: false };
|
|
115
|
+
}
|
|
116
|
+
/** Rows as list rows: the stored summary when reading cold cannot change it, else the decoded
|
|
117
|
+
* record projected as the store would. A row that decodes to nothing is left out. */
|
|
118
|
+
function projectRows(db, rows, dataDir, handle) {
|
|
119
|
+
const summaries = rows.map((row) => parseSummary(row.summary));
|
|
120
|
+
const decode = rows.filter((row, i) => {
|
|
121
|
+
const summary = summaries[i];
|
|
122
|
+
return summary === undefined || needsRecord(summary, handle);
|
|
123
|
+
});
|
|
124
|
+
const records = new Map(db.getMany(decode.map((row) => row.id)).map((row) => [row.id, decodeRunRecord(row.data)]));
|
|
125
|
+
const runs = [];
|
|
126
|
+
let unreadable = 0;
|
|
127
|
+
rows.forEach((row, i) => {
|
|
128
|
+
const summary = summaries[i];
|
|
129
|
+
if (summary !== undefined && !needsRecord(summary, handle)) {
|
|
130
|
+
runs.push(summary);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
// A row that decodes to nothing is one the store leaves out of its list rows too.
|
|
134
|
+
const record = records.get(row.id);
|
|
135
|
+
if (record)
|
|
136
|
+
runs.push(coldSummary(record, dataDir, handle));
|
|
137
|
+
else
|
|
138
|
+
unreadable++;
|
|
139
|
+
});
|
|
140
|
+
if (unreadable > 0 && !reportedUnreadable.has(dataDir)) {
|
|
141
|
+
reportedUnreadable.add(dataDir);
|
|
142
|
+
console.warn(`[cez] ${unreadable} run(s) in ${join(dataDir, RUNS_DB_FILE)} could not be read; they are left out of the run index and left in the database untouched.`);
|
|
143
|
+
}
|
|
144
|
+
return runs;
|
|
145
|
+
}
|
|
146
|
+
function parseSummary(text) {
|
|
147
|
+
try {
|
|
148
|
+
const parsed = runSummarySchema.safeParse(JSON.parse(text));
|
|
149
|
+
return parsed.success ? parsed.data : undefined;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Whether reading this run cold could change its stored summary: the questions
|
|
157
|
+
* `reconcileLoadedRun`, `rescopeRun` and the ask refresh would answer, asked of the summary. Only
|
|
158
|
+
* these runs pay for decoding their full record; every other row is served as stored.
|
|
159
|
+
*
|
|
160
|
+
* One case is invisible from here: a finished run that still carries an accepted Stop (`stopping`
|
|
161
|
+
* is not in the summary) would read as cancelled once its record were decoded. The writer clears
|
|
162
|
+
* `stopping` as the run settles, so that takes a crash inside that window.
|
|
163
|
+
*/
|
|
164
|
+
function needsRecord(summary, handle) {
|
|
165
|
+
// A live-looking run reads as interrupted (or cancelled, after an accepted Stop).
|
|
166
|
+
if (summary.status === 'queued' || summary.status === 'running' || summary.status === 'waiting')
|
|
167
|
+
return true;
|
|
168
|
+
// Monitoring state, and a usage-limit resume on anything but a failed run, are cleared.
|
|
169
|
+
if (summary.activity !== undefined)
|
|
170
|
+
return true;
|
|
171
|
+
if (summary.autoResumeAt !== undefined && summary.status !== 'failed')
|
|
172
|
+
return true;
|
|
173
|
+
// A referenced PR that an older cezar's created-PR declaration erased is restored.
|
|
174
|
+
if (summary.referencedPullRequestUrl === undefined && summary.markerRefs?.pr !== undefined)
|
|
175
|
+
return true;
|
|
176
|
+
// A foreign reference the prompt does not corroborate is dropped; the prompt is in the record.
|
|
177
|
+
if (handle && (summary.referencedPullRequestUrl !== undefined || summary.referencedIssueUrl !== undefined))
|
|
178
|
+
return true;
|
|
179
|
+
// A root waiting on workers has its pending human question re-read from the transcript.
|
|
180
|
+
return summary.delegation?.role === 'root' && summary.delegation.wait !== undefined;
|
|
181
|
+
}
|
|
182
|
+
function readLegacyIndex(dataDir, { handle, archivedWindow, roots }) {
|
|
183
|
+
const indexPath = join(dataDir, LEGACY_INDEX_FILE);
|
|
24
184
|
if (!existsSync(indexPath))
|
|
25
|
-
return
|
|
185
|
+
return EMPTY;
|
|
26
186
|
try {
|
|
27
187
|
const raw = JSON.parse(readFileSync(indexPath, 'utf8'));
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return parsed.data.map((run) => {
|
|
35
|
-
if (run.delegation?.role === 'root' && (run.status === 'waiting' || run.delegation.wait !== undefined)) {
|
|
36
|
-
refreshHumanAskSummary(run, dataDir);
|
|
37
|
-
}
|
|
38
|
-
reconcileLoadedRun(run);
|
|
39
|
-
rescopeRun(run, handle);
|
|
40
|
-
return run;
|
|
188
|
+
if (!Array.isArray(raw))
|
|
189
|
+
return EMPTY;
|
|
190
|
+
// A record that does not parse costs that record only, exactly as its import will (store.ts).
|
|
191
|
+
const records = raw.flatMap((entry) => {
|
|
192
|
+
const parsed = parseRunRecords([entry]);
|
|
193
|
+
return parsed.success ? parsed.data : [];
|
|
41
194
|
});
|
|
195
|
+
// The window leaves archived workers out, as `RunDatabase.listWindowSummaries` does, and
|
|
196
|
+
// with `roots` every worker.
|
|
197
|
+
const listed = archivedWindow === undefined
|
|
198
|
+
? records
|
|
199
|
+
: records.filter((run) => run.delegation?.role !== 'worker' || (!run.archived && !roots));
|
|
200
|
+
// Reconciling never moves `createdAt` or `archived`, so the window is cut before projecting.
|
|
201
|
+
const newest = listed.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
202
|
+
const { runs: kept, truncated } = applyWindow(newest, archivedWindow);
|
|
203
|
+
return { runs: kept.map((run) => coldSummary(run, dataDir, handle)), truncated };
|
|
42
204
|
}
|
|
43
205
|
catch {
|
|
44
206
|
// Corrupt or unreadable index. A project that cannot be read contributes nothing to the
|
|
45
207
|
// index rather than failing the whole workspace's search — the same degrade-quietly rule
|
|
46
208
|
// the rest of the registry follows.
|
|
47
|
-
return
|
|
209
|
+
return EMPTY;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* One record read cold, as its list row. `reconcileLoadedRun` mutates, which is safe here in a way
|
|
214
|
+
* it is not in the store: the record was just parsed into a fresh object nothing else holds.
|
|
215
|
+
* Never `keepLive` — this reader has no RunManager, so there is nothing to recover into.
|
|
216
|
+
*/
|
|
217
|
+
function coldSummary(run, dataDir, handle) {
|
|
218
|
+
if (run.delegation?.role === 'root' && (run.status === 'waiting' || run.delegation.wait !== undefined)) {
|
|
219
|
+
refreshHumanAskSummary(run, dataDir);
|
|
48
220
|
}
|
|
221
|
+
reconcileLoadedRun(run);
|
|
222
|
+
rescopeRun(run, handle);
|
|
223
|
+
return toRunSummary(run);
|
|
49
224
|
}
|
|
50
225
|
//# sourceMappingURL=run-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-index.js","sourceRoot":"","sources":["../../src/runs/run-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"run-index.js","sourceRoot":"","sources":["../../src/runs/run-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { RunRowInput } from './run-database.ts';
|
|
2
|
+
import type { RunRecord } from './store.ts';
|
|
3
|
+
/** Status-only live predicate: queued, running or waiting. */
|
|
4
|
+
export declare function isLiveStatus(status: string): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Whether this record says the run is still in motion (#779, Amendment 2 item 5): what puts a
|
|
7
|
+
* row in the `live` column, so `RunStore.open` loads and recovers it, and what keeps a record in
|
|
8
|
+
* the store's memory. True when any of these holds:
|
|
9
|
+
* - its status is queued, running or waiting;
|
|
10
|
+
* - a wake is pending: a monitoring check (`monitoringWakeAt`), a usage-limit resume
|
|
11
|
+
* (`autoResumeAt`) or a CI wait (`ciWait`);
|
|
12
|
+
* - it waits on its delegation family: a parent on its workers, or a worker on its parent;
|
|
13
|
+
* - an owned worker's destroy has not completed (its retry is pending);
|
|
14
|
+
* - a root's Finish has not settled (`finishRequestedAt`). A waiting root is live anyway; a
|
|
15
|
+
* cancelled one is a snapshot older controllers left, which only the delegation sweep repairs
|
|
16
|
+
* (`commitRootFinishCancellation`), and until it does, Continue refuses the root and its workers;
|
|
17
|
+
* - an accepted Stop has not settled yet (`stopping`), or a monitoring `activity` is still on it.
|
|
18
|
+
* `reconcileLoadedRun` rewrites both, so open loads those rows and the next save persists the
|
|
19
|
+
* normalized record and its summary.
|
|
20
|
+
*
|
|
21
|
+
* Only what the record itself says. The store adds what a record cannot know: the runs a
|
|
22
|
+
* RunManager pins, and their delegation families (see `RunStore`'s held set).
|
|
23
|
+
*
|
|
24
|
+
* The `live` column is computed when a row is written and never recomputed on read. Once a
|
|
25
|
+
* release has shipped `runs.db`, changing this predicate needs a migration (`MIGRATIONS` in
|
|
26
|
+
* run-database.ts) that recomputes `live` for every row; without one, a row keeps the old answer
|
|
27
|
+
* until it is next written, and a run the new predicate calls live is never loaded or recovered.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isLiveRecord(run: RunRecord): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* The one place a run record becomes a database row (#779): the complete record as `data`, its
|
|
32
|
+
* `toRunSummary()` projection as `summary` (the projection every list route reads, so a summary
|
|
33
|
+
* has exactly one owner — Amendment 2 of the #779 plan), and the columns the store queries
|
|
34
|
+
* without decoding either. Every column is computed here, in the same upsert as `data`, so a row
|
|
35
|
+
* never disagrees with its own columns.
|
|
36
|
+
*
|
|
37
|
+
* `summary` carries everything derivable from the record. The live `usage` sample the list routes
|
|
38
|
+
* attach is not: it describes a process, not the run, and is never persisted.
|
|
39
|
+
*
|
|
40
|
+
* `data` defaults to the record itself. The store passes the record merged with what its stored
|
|
41
|
+
* JSON held beyond the schema (`encodeRawRecord`, raw-record.ts), and the import passes the
|
|
42
|
+
* record's original JSON, so a field this cezar does not know is never lost by a write.
|
|
43
|
+
*/
|
|
44
|
+
export declare function encodeRunRow(run: RunRecord, data?: string): RunRowInput;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { toRunSummary } from '../contract/index.js';
|
|
2
|
+
const LIVE_STATUSES = new Set(['queued', 'running', 'waiting']);
|
|
3
|
+
/** Status-only live predicate: queued, running or waiting. */
|
|
4
|
+
export function isLiveStatus(status) {
|
|
5
|
+
return LIVE_STATUSES.has(status);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Whether this record says the run is still in motion (#779, Amendment 2 item 5): what puts a
|
|
9
|
+
* row in the `live` column, so `RunStore.open` loads and recovers it, and what keeps a record in
|
|
10
|
+
* the store's memory. True when any of these holds:
|
|
11
|
+
* - its status is queued, running or waiting;
|
|
12
|
+
* - a wake is pending: a monitoring check (`monitoringWakeAt`), a usage-limit resume
|
|
13
|
+
* (`autoResumeAt`) or a CI wait (`ciWait`);
|
|
14
|
+
* - it waits on its delegation family: a parent on its workers, or a worker on its parent;
|
|
15
|
+
* - an owned worker's destroy has not completed (its retry is pending);
|
|
16
|
+
* - a root's Finish has not settled (`finishRequestedAt`). A waiting root is live anyway; a
|
|
17
|
+
* cancelled one is a snapshot older controllers left, which only the delegation sweep repairs
|
|
18
|
+
* (`commitRootFinishCancellation`), and until it does, Continue refuses the root and its workers;
|
|
19
|
+
* - an accepted Stop has not settled yet (`stopping`), or a monitoring `activity` is still on it.
|
|
20
|
+
* `reconcileLoadedRun` rewrites both, so open loads those rows and the next save persists the
|
|
21
|
+
* normalized record and its summary.
|
|
22
|
+
*
|
|
23
|
+
* Only what the record itself says. The store adds what a record cannot know: the runs a
|
|
24
|
+
* RunManager pins, and their delegation families (see `RunStore`'s held set).
|
|
25
|
+
*
|
|
26
|
+
* The `live` column is computed when a row is written and never recomputed on read. Once a
|
|
27
|
+
* release has shipped `runs.db`, changing this predicate needs a migration (`MIGRATIONS` in
|
|
28
|
+
* run-database.ts) that recomputes `live` for every row; without one, a row keeps the old answer
|
|
29
|
+
* until it is next written, and a run the new predicate calls live is never loaded or recovered.
|
|
30
|
+
*/
|
|
31
|
+
export function isLiveRecord(run) {
|
|
32
|
+
if (LIVE_STATUSES.has(run.status))
|
|
33
|
+
return true;
|
|
34
|
+
if (run.monitoringWakeAt !== undefined || run.autoResumeAt !== undefined || run.ciWait !== undefined)
|
|
35
|
+
return true;
|
|
36
|
+
if (run.delegation && run.delegation.role !== 'invalid' && run.delegation.wait !== undefined)
|
|
37
|
+
return true;
|
|
38
|
+
if (run.delegation?.role === 'worker' && run.delegation.destroy !== undefined && run.delegation.destroy.phase !== 'complete')
|
|
39
|
+
return true;
|
|
40
|
+
if (run.delegation?.role === 'root' && run.delegation.finishRequestedAt !== undefined)
|
|
41
|
+
return true;
|
|
42
|
+
return run.stopping !== undefined || run.activity !== undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The one place a run record becomes a database row (#779): the complete record as `data`, its
|
|
46
|
+
* `toRunSummary()` projection as `summary` (the projection every list route reads, so a summary
|
|
47
|
+
* has exactly one owner — Amendment 2 of the #779 plan), and the columns the store queries
|
|
48
|
+
* without decoding either. Every column is computed here, in the same upsert as `data`, so a row
|
|
49
|
+
* never disagrees with its own columns.
|
|
50
|
+
*
|
|
51
|
+
* `summary` carries everything derivable from the record. The live `usage` sample the list routes
|
|
52
|
+
* attach is not: it describes a process, not the run, and is never persisted.
|
|
53
|
+
*
|
|
54
|
+
* `data` defaults to the record itself. The store passes the record merged with what its stored
|
|
55
|
+
* JSON held beyond the schema (`encodeRawRecord`, raw-record.ts), and the import passes the
|
|
56
|
+
* record's original JSON, so a field this cezar does not know is never lost by a write.
|
|
57
|
+
*/
|
|
58
|
+
export function encodeRunRow(run, data = JSON.stringify(run)) {
|
|
59
|
+
const worker = run.delegation?.role === 'worker' ? run.delegation : undefined;
|
|
60
|
+
return {
|
|
61
|
+
id: run.id,
|
|
62
|
+
createdAt: run.createdAt,
|
|
63
|
+
finishedAt: run.finishedAt ?? null,
|
|
64
|
+
status: run.status,
|
|
65
|
+
archived: run.archived,
|
|
66
|
+
live: isLiveRecord(run),
|
|
67
|
+
parentRunId: worker ? worker.parentRunId : null,
|
|
68
|
+
clientRequestId: run.clientRequestId ?? null,
|
|
69
|
+
groupId: run.groupId ?? null,
|
|
70
|
+
// Materialized only: retention reclaims the directory and keeps the path on the record.
|
|
71
|
+
worktreePath: run.worktreePath !== undefined && run.worktreeReclaimedAt === undefined ? run.worktreePath : null,
|
|
72
|
+
branch: ownedBranch(run, worker?.workspace.branch),
|
|
73
|
+
baseBranch: run.baseBranch ?? null,
|
|
74
|
+
data,
|
|
75
|
+
summary: JSON.stringify(toRunSummary(run)),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/** The branch a run owns: its own, else the one an owned worker was planned with, else the task
|
|
79
|
+
* branch its worktree implies (`branchFor` in git-worktree.ts, which this module must not import:
|
|
80
|
+
* tests replace that module wholesale). */
|
|
81
|
+
function ownedBranch(run, plannedWorkerBranch) {
|
|
82
|
+
return run.branch ?? plannedWorkerBranch ?? (run.worktreePath !== undefined ? `cez/${run.id.slice(0, 8)}` : null);
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=run-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-row.js","sourceRoot":"","sources":["../../src/runs/run-row.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one rule for "does this run match what was typed" (#864): the archived-runs page, the store's
|
|
3
|
+
* search and the cold reader's search all ask it, so a run found in one place is found in all.
|
|
4
|
+
*
|
|
5
|
+
* Every whitespace-separated token must match. A token matches a substring of the run's text
|
|
6
|
+
* fields. A number — with a leading `#` stripped — matches the prose fields as a substring, the
|
|
7
|
+
* id as a prefix, and the reference numbers EXACTLY, never digits inside a URL: `86` finding
|
|
8
|
+
* #864 would turn every short query into noise.
|
|
9
|
+
*
|
|
10
|
+
* Pure and dependency-free on purpose: the cold reader imports it, and the cold reader must stay
|
|
11
|
+
* cheap to load.
|
|
12
|
+
*/
|
|
13
|
+
import type { RunSummary } from '../contract/index.js';
|
|
14
|
+
/** The shortest query the search routes accept. One character matches nearly every run. */
|
|
15
|
+
export declare const MIN_SEARCH_QUERY_LENGTH = 2;
|
|
16
|
+
/** The `#N` in a forge URL — `…/pull/774` → 774. Null when the tail is not a number, so a URL
|
|
17
|
+
* shape we do not recognise invalidates nothing rather than inventing a key. */
|
|
18
|
+
export declare function refNumberFromUrl(url: string): number | null;
|
|
19
|
+
/** The query as lowercased, whitespace-split tokens, empties dropped. */
|
|
20
|
+
export declare function searchTokens(query: string): string[];
|
|
21
|
+
/**
|
|
22
|
+
* The tokens SQL may narrow rows with, as `instr(lower(summary), ?) > 0` over the stored summary
|
|
23
|
+
* JSON. Only tokens that read the same there: ASCII, since SQLite's `lower()` folds ASCII alone,
|
|
24
|
+
* and without `"` or `\`, which JSON escapes. Leaving a token out only widens the prefilter;
|
|
25
|
+
* `matchesRunQuery` still checks it.
|
|
26
|
+
*/
|
|
27
|
+
export declare function sqlPrefilterTokens(query: string): string[];
|
|
28
|
+
/** Whether every token of `query` matches `run`. A blank query matches nothing. */
|
|
29
|
+
export declare function matchesRunQuery(run: RunSummary, query: string): boolean;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** The shortest query the search routes accept. One character matches nearly every run. */
|
|
2
|
+
export const MIN_SEARCH_QUERY_LENGTH = 2;
|
|
3
|
+
/** The `#N` in a forge URL — `…/pull/774` → 774. Null when the tail is not a number, so a URL
|
|
4
|
+
* shape we do not recognise invalidates nothing rather than inventing a key. */
|
|
5
|
+
export function refNumberFromUrl(url) {
|
|
6
|
+
const last = /\/(\d+)\/?$/.exec(url.trim());
|
|
7
|
+
const parsed = last ? Number(last[1]) : Number.NaN;
|
|
8
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : null;
|
|
9
|
+
}
|
|
10
|
+
/** The query as lowercased, whitespace-split tokens, empties dropped. */
|
|
11
|
+
export function searchTokens(query) {
|
|
12
|
+
return query.trim().toLowerCase().split(/\s+/).filter((token) => token !== '');
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The tokens SQL may narrow rows with, as `instr(lower(summary), ?) > 0` over the stored summary
|
|
16
|
+
* JSON. Only tokens that read the same there: ASCII, since SQLite's `lower()` folds ASCII alone,
|
|
17
|
+
* and without `"` or `\`, which JSON escapes. Leaving a token out only widens the prefilter;
|
|
18
|
+
* `matchesRunQuery` still checks it.
|
|
19
|
+
*/
|
|
20
|
+
export function sqlPrefilterTokens(query) {
|
|
21
|
+
return searchTokens(query)
|
|
22
|
+
.map((token) => token.replace(/^#/, ''))
|
|
23
|
+
.filter((token) => token !== '' && /^[\x20-\x7e]+$/.test(token) && !/["\\]/.test(token));
|
|
24
|
+
}
|
|
25
|
+
function referenceNumbers(run) {
|
|
26
|
+
const numbers = new Set();
|
|
27
|
+
for (const url of [run.pullRequestUrl, run.referencedPullRequestUrl, run.referencedIssueUrl]) {
|
|
28
|
+
const number = url ? refNumberFromUrl(url) : null;
|
|
29
|
+
if (number !== null)
|
|
30
|
+
numbers.add(String(number));
|
|
31
|
+
}
|
|
32
|
+
for (const number of [run.prNumber, run.issueNumber, run.markerRefs?.pr, run.markerRefs?.issue]) {
|
|
33
|
+
if (typeof number === 'number' && Number.isInteger(number) && number > 0)
|
|
34
|
+
numbers.add(String(number));
|
|
35
|
+
}
|
|
36
|
+
return numbers;
|
|
37
|
+
}
|
|
38
|
+
/** Whether every token of `query` matches `run`. A blank query matches nothing. */
|
|
39
|
+
export function matchesRunQuery(run, query) {
|
|
40
|
+
const tokens = searchTokens(query);
|
|
41
|
+
if (tokens.length === 0)
|
|
42
|
+
return false;
|
|
43
|
+
// The fields a person reads. A number typed is a reference or part of a title, never a digit
|
|
44
|
+
// run inside a URL or a uuid: `86` must not find #864 through `…/issues/864` (#864 review).
|
|
45
|
+
const prose = [run.title, run.titleSummary, run.branch, run.workflow, run.workflowLabel]
|
|
46
|
+
.filter((field) => typeof field === 'string').map((field) => field.toLowerCase());
|
|
47
|
+
const urls = [run.pullRequestUrl, run.referencedPullRequestUrl, run.referencedIssueUrl]
|
|
48
|
+
.filter((field) => typeof field === 'string').map((field) => field.toLowerCase());
|
|
49
|
+
const id = run.id.toLowerCase();
|
|
50
|
+
let numbers;
|
|
51
|
+
return tokens.every((token) => {
|
|
52
|
+
if (prose.some((field) => field.includes(token)))
|
|
53
|
+
return true;
|
|
54
|
+
const bare = token.replace(/^#/, '');
|
|
55
|
+
if (/^\d+$/.test(bare)) {
|
|
56
|
+
numbers ??= referenceNumbers(run);
|
|
57
|
+
// A pasted id starts with digits as often as letters, so a number may still be its prefix.
|
|
58
|
+
return numbers.has(String(Number(bare))) || id.startsWith(bare);
|
|
59
|
+
}
|
|
60
|
+
return id.includes(token) || urls.some((field) => field.includes(token));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=run-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-search.js","sourceRoot":"","sources":["../../src/runs/run-search.ts"],"names":[],"mappings":"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"}
|