@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,130 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// #486 review round 2: buffers each `turn/steer` RPC response and writes it AFTER
|
|
3
|
+
// the following `turn/completed` (or `turn/failed`) notification. Codex reads
|
|
4
|
+
// stdout with `for await`, so microtasks run between those lines: the completed
|
|
5
|
+
// boundary settles before startOrSteerTurn sees the steer result.
|
|
6
|
+
// Do not wrap mock:steer-race / mock:steer-strand — those already emit completed
|
|
7
|
+
// then the steer response; this wrapper would hold that response until a later turn.
|
|
8
|
+
//
|
|
9
|
+
// Default (unread): drop the in-turn userMessage/agentMessage echo of the held
|
|
10
|
+
// steer so the follow-up was accepted and never read. CEZ_MOCK_REVERSE_ECHO=1
|
|
11
|
+
// keeps those echoes (read-in-turn) and still delays the steer response.
|
|
12
|
+
// CEZ_MOCK_DELAY_TURN_STARTED_MS holds stdout after a follow-up turn/start
|
|
13
|
+
// response so turn/started arrives later (review round 4).
|
|
14
|
+
//
|
|
15
|
+
// A steer that lands after this turn already completed (release() before the
|
|
16
|
+
// RPC was on the wire) must not be held for a later completed that never
|
|
17
|
+
// comes — that deadlocked holdsHumanInput() until teardown (#486 round 5).
|
|
18
|
+
import { spawn } from 'node:child_process';
|
|
19
|
+
import { fileURLToPath } from 'node:url';
|
|
20
|
+
import { dirname, join } from 'node:path';
|
|
21
|
+
|
|
22
|
+
const echoInTurn = process.env.CEZ_MOCK_REVERSE_ECHO === '1';
|
|
23
|
+
const delayTurnStartedMs = Number.parseInt(process.env.CEZ_MOCK_DELAY_TURN_STARTED_MS ?? '0', 10) || 0;
|
|
24
|
+
const child = spawn(process.execPath, [join(dirname(fileURLToPath(import.meta.url)), 'mock-codex-app-server.mjs'), ...process.argv.slice(2)], {
|
|
25
|
+
stdio: ['pipe', 'pipe', 'inherit'],
|
|
26
|
+
env: process.env,
|
|
27
|
+
});
|
|
28
|
+
const steerIds = new Set();
|
|
29
|
+
const steeredClientIds = new Set();
|
|
30
|
+
const steeredTexts = new Set();
|
|
31
|
+
const followUpStartIds = new Set();
|
|
32
|
+
let turnStartCount = 0;
|
|
33
|
+
let forwardedCompleted = false;
|
|
34
|
+
let stdinBuf = '';
|
|
35
|
+
process.stdin.setEncoding('utf8');
|
|
36
|
+
process.stdin.on('data', chunk => {
|
|
37
|
+
child.stdin.write(chunk);
|
|
38
|
+
stdinBuf += chunk;
|
|
39
|
+
let idx;
|
|
40
|
+
while ((idx = stdinBuf.indexOf('\n')) >= 0) {
|
|
41
|
+
const line = stdinBuf.slice(0, idx);
|
|
42
|
+
stdinBuf = stdinBuf.slice(idx + 1);
|
|
43
|
+
try {
|
|
44
|
+
const msg = JSON.parse(line);
|
|
45
|
+
if (msg.method === 'turn/steer' && typeof msg.id === 'number') {
|
|
46
|
+
steerIds.add(msg.id);
|
|
47
|
+
const clientId = msg.params?.clientUserMessageId;
|
|
48
|
+
if (typeof clientId === 'string') steeredClientIds.add(clientId);
|
|
49
|
+
const text = msg.params?.input?.map?.((part) => part.text ?? '').join('\n') ?? '';
|
|
50
|
+
if (text) steeredTexts.add(text);
|
|
51
|
+
} else if (msg.method === 'turn/start' && typeof msg.id === 'number') {
|
|
52
|
+
turnStartCount += 1;
|
|
53
|
+
if (turnStartCount > 1) followUpStartIds.add(msg.id);
|
|
54
|
+
}
|
|
55
|
+
} catch { /* ignore a partial or non-JSON line */ }
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
process.stdin.on('end', () => child.stdin.end());
|
|
59
|
+
|
|
60
|
+
let outBuf = '';
|
|
61
|
+
const held = [];
|
|
62
|
+
let stdoutPaused = false;
|
|
63
|
+
const pausedChunks = [];
|
|
64
|
+
let resumeTimer;
|
|
65
|
+
const resumeStdout = () => {
|
|
66
|
+
stdoutPaused = false;
|
|
67
|
+
resumeTimer = undefined;
|
|
68
|
+
const pending = pausedChunks.splice(0);
|
|
69
|
+
for (const chunk of pending) process.stdout.write(chunk);
|
|
70
|
+
};
|
|
71
|
+
child.stdout.setEncoding('utf8');
|
|
72
|
+
child.stdout.on('data', chunk => {
|
|
73
|
+
outBuf += chunk;
|
|
74
|
+
let idx;
|
|
75
|
+
while ((idx = outBuf.indexOf('\n')) >= 0) {
|
|
76
|
+
const line = outBuf.slice(0, idx + 1);
|
|
77
|
+
outBuf = outBuf.slice(idx + 1);
|
|
78
|
+
if (stdoutPaused) {
|
|
79
|
+
pausedChunks.push(line);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
let msg;
|
|
83
|
+
try { msg = JSON.parse(line); } catch { process.stdout.write(line); continue; }
|
|
84
|
+
if (typeof msg.id === 'number' && steerIds.has(msg.id) && (msg.result !== undefined || msg.error !== undefined)) {
|
|
85
|
+
steerIds.delete(msg.id);
|
|
86
|
+
if (forwardedCompleted) {
|
|
87
|
+
process.stdout.write(line);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
held.push(line);
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
if (held.length && isSteerEcho(msg)) {
|
|
94
|
+
if (echoInTurn) process.stdout.write(line);
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if ((msg.method === 'turn/completed' || msg.method === 'turn/failed') && held.length) {
|
|
98
|
+
forwardedCompleted = true;
|
|
99
|
+
process.stdout.write(line + held.splice(0).join(''));
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (msg.method === 'turn/completed' || msg.method === 'turn/failed') forwardedCompleted = true;
|
|
103
|
+
if (msg.method === 'turn/started') forwardedCompleted = false;
|
|
104
|
+
process.stdout.write(line);
|
|
105
|
+
if (delayTurnStartedMs > 0 && typeof msg.id === 'number' && followUpStartIds.has(msg.id) && msg.result !== undefined) {
|
|
106
|
+
followUpStartIds.delete(msg.id);
|
|
107
|
+
stdoutPaused = true;
|
|
108
|
+
resumeTimer = setTimeout(resumeStdout, delayTurnStartedMs);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
child.on('exit', (code, signal) => {
|
|
113
|
+
if (resumeTimer) clearTimeout(resumeTimer);
|
|
114
|
+
// A killed follow-up whose turn/started is still paused must not flush into a
|
|
115
|
+
// closing runner; with the hold fix the delay elapses before close.
|
|
116
|
+
if (!stdoutPaused) {
|
|
117
|
+
if (outBuf) process.stdout.write(outBuf);
|
|
118
|
+
if (held.length) process.stdout.write(held.join(''));
|
|
119
|
+
}
|
|
120
|
+
if (signal) process.kill(process.pid, signal);
|
|
121
|
+
else process.exit(code ?? 0);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
function isSteerEcho(msg) {
|
|
125
|
+
const item = msg.params?.item;
|
|
126
|
+
if (!item || typeof item !== 'object') return false;
|
|
127
|
+
if (item.type === 'userMessage' && typeof item.clientId === 'string' && steeredClientIds.has(item.clientId)) return true;
|
|
128
|
+
if (item.type === 'agentMessage' && typeof item.text === 'string' && steeredTexts.has(item.text)) return true;
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
@@ -14,6 +14,13 @@ function watchdogStall(prompt) {
|
|
|
14
14
|
if (prompt.includes('held-pipe')) {
|
|
15
15
|
watchdogSpawn(process.execPath, ['-e', 'setTimeout(() => {}, 5000)'], { stdio: ['ignore', process.stdout, process.stderr] });
|
|
16
16
|
}
|
|
17
|
+
if (prompt.includes('leftover')) {
|
|
18
|
+
// hearsay-tools/cezarion#890: one child stays in the session's process group and ignores
|
|
19
|
+
// SIGTERM; one leaves the group with setsid. Both exit on their own as a cleanup backstop.
|
|
20
|
+
const leftover = (file) => `process.on('SIGTERM',()=>{}); require('fs').writeFileSync(${JSON.stringify(file)}, String(process.pid)); setTimeout(()=>{},20000)`;
|
|
21
|
+
watchdogSpawn(process.execPath, ['-e', leftover('leftover-group.pid')], { stdio: 'ignore' });
|
|
22
|
+
watchdogSpawn(process.execPath, ['-e', leftover('leftover-session.pid')], { stdio: 'ignore', detached: true }).unref();
|
|
23
|
+
}
|
|
17
24
|
return true;
|
|
18
25
|
}
|
|
19
26
|
|
|
@@ -28,6 +35,15 @@ async function afterParityPark(prompt) {
|
|
|
28
35
|
if (!gate) throw new Error('post-park scenario requires a release path');
|
|
29
36
|
while (!parityGateFs.existsSync(gate)) await new Promise(resolve => setTimeout(resolve, 10));
|
|
30
37
|
}
|
|
38
|
+
async function waitForMockRelease(fallbackMs) {
|
|
39
|
+
const file = process.env.CEZ_MOCK_RELEASE_FILE;
|
|
40
|
+
if (!file) { if (fallbackMs) await new Promise(r => setTimeout(r, fallbackMs)); return; }
|
|
41
|
+
const deadline = Date.now() + 15_000;
|
|
42
|
+
while (!parityGateFs.existsSync(file)) {
|
|
43
|
+
if (Date.now() > deadline) throw new Error('CEZ_MOCK_RELEASE_FILE was not created');
|
|
44
|
+
await new Promise(r => setTimeout(r, 10));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
31
47
|
|
|
32
48
|
const record = (file, value) => { if (file) appendFileSync(file, `${JSON.stringify(value, (key, value) => key === 'env' && Array.isArray(value) ? value.map(item => item.name?.startsWith('CEZ_TOOL_') ? { ...item, value: '[redacted]' } : item) : value)}\n`); };
|
|
33
49
|
record(process.env.CEZ_MOCK_ARGS_FILE, process.argv.slice(2));
|
|
@@ -66,6 +82,45 @@ const question = { id: 'tests', prompt: 'Which test runner?', options: [{ id: 'v
|
|
|
66
82
|
async function prompt(id, content) {
|
|
67
83
|
const input = content.filter(b => b.type === 'text').map(b => b.text).join('\n');
|
|
68
84
|
prompts += 1;
|
|
85
|
+
if (input.includes('mock:autonomous') || input.startsWith('Continue working autonomously until the task is fully complete.')) {
|
|
86
|
+
const { autonomousReply } = await import('./mock-autonomous.mjs');
|
|
87
|
+
text(autonomousReply(input)); complete(id); return;
|
|
88
|
+
}
|
|
89
|
+
if (input.includes('mock:silent-tail') || input.includes('mock:tool-tail') || input.includes('Your last turn ended without a message to the user.')) {
|
|
90
|
+
const silent = await import('./mock-silent-tail.mjs');
|
|
91
|
+
silent.noteSilentTailPrompt(input);
|
|
92
|
+
if (silent.isFinalMessageNudge(input)) {
|
|
93
|
+
const kind = silent.finalMessageNudgeKind();
|
|
94
|
+
if (kind === 'ack-only') return;
|
|
95
|
+
if (kind === 'late') await silent.sleep(silent.LATE_REPLY_MS);
|
|
96
|
+
if (kind === 'silent') update({ sessionUpdate: 'agent_thought_chunk', content: { type: 'text', text: silent.SILENT_TAIL_REASONING } });
|
|
97
|
+
else {
|
|
98
|
+
if (kind === 'slow-done') {
|
|
99
|
+
text(silent.SLOW_DONE_PREFIX);
|
|
100
|
+
await silent.sleep(silent.SLOW_DONE_TAIL_MS);
|
|
101
|
+
}
|
|
102
|
+
text(kind === 'standing' ? silent.FINAL_MESSAGE_STANDING : silent.SILENT_TAIL_DONE);
|
|
103
|
+
}
|
|
104
|
+
complete(id); return;
|
|
105
|
+
}
|
|
106
|
+
if (silent.isSilentTailScenario(input)) {
|
|
107
|
+
text(silent.SILENT_TAIL_OPENING);
|
|
108
|
+
update({ sessionUpdate: 'tool_call', toolCallId: 'silent-gh', title: 'Create issue', kind: 'execute', status: 'in_progress', rawInput: { command: 'gh issue create' } });
|
|
109
|
+
update({ sessionUpdate: 'tool_call_update', toolCallId: 'silent-gh', status: 'completed', content: [{ type: 'content', content: { type: 'text', text: 'created' } }] });
|
|
110
|
+
update({ sessionUpdate: 'agent_thought_chunk', content: { type: 'text', text: silent.SILENT_TAIL_REASONING } });
|
|
111
|
+
complete(id); return;
|
|
112
|
+
}
|
|
113
|
+
if (silent.isToolTailScenario(input)) {
|
|
114
|
+
text(silent.TOOL_TAIL_OPENING);
|
|
115
|
+
update({ sessionUpdate: 'tool_call', toolCallId: 'tool-tail-git', title: 'git status', kind: 'execute', status: 'in_progress', rawInput: { command: 'git status --short' } });
|
|
116
|
+
update({ sessionUpdate: 'tool_call_update', toolCallId: 'tool-tail-git', status: 'completed', content: [{ type: 'content', content: { type: 'text', text: ' M src/example.ts' } }] });
|
|
117
|
+
complete(id); return;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (input.includes('mock:crash-stderr')) {
|
|
121
|
+
const { crashWithStderr } = await import('./mock-runner-crash.mjs');
|
|
122
|
+
if (crashWithStderr(input, '{"method":"session/update","params":')) return;
|
|
123
|
+
}
|
|
69
124
|
if (input.includes('mock:ci-wait')) { const { ciPrompt } = await import('./mock-ci-tool.mjs'); text(await ciPrompt('cursor', ciWire, input)); complete(id); return; }
|
|
70
125
|
if (resumeDone) { resumeDone = false; text('Resumed work finished.\nCEZ:DONE'); complete(id); return; }
|
|
71
126
|
if (watchdogStall(input)) return;
|
|
@@ -73,6 +128,20 @@ async function prompt(id, content) {
|
|
|
73
128
|
for (let i = 0; i < 24; i++) { text('working\n'); await new Promise(r => setTimeout(r, 100)); }
|
|
74
129
|
complete(id); return;
|
|
75
130
|
}
|
|
131
|
+
if (input.includes('mock:hold-done')) {
|
|
132
|
+
await waitForMockRelease(400);
|
|
133
|
+
text('parity hold-done: content after the pause\nCEZ:DONE'); complete(id); return;
|
|
134
|
+
}
|
|
135
|
+
if (input.includes('mock:hold-ask')) {
|
|
136
|
+
await waitForMockRelease(400);
|
|
137
|
+
text('Pick one.\n\nCEZ:ASK {"questions":[{"header":"Library","question":"Which test library?","options":[{"label":"Vitest"},{"label":"Node test"}]}]}');
|
|
138
|
+
complete(id); return;
|
|
139
|
+
}
|
|
140
|
+
if (input.includes('mock:hold-gated')) {
|
|
141
|
+
await waitForMockRelease(500);
|
|
142
|
+
text('parity hold-gated: content after the pause');
|
|
143
|
+
complete(id); return;
|
|
144
|
+
}
|
|
76
145
|
if (input.includes('mock:hold')) await new Promise(r => setTimeout(r, 500));
|
|
77
146
|
if (input.includes('mock:rpc-error')) { emit({ id, error: { code: -32603, message: 'Provider rejected request' } }); return; }
|
|
78
147
|
// #443 provider-error envelopes: the specific scenarios must be matched BEFORE the
|
|
@@ -95,8 +164,13 @@ async function prompt(id, content) {
|
|
|
95
164
|
if (input.includes('mock:provider-error-verbose')) { text(`\n\nError: usage limit reached. The request ${'x'.repeat(600)} could not be completed, try again at ${new Date(Date.now() + 6 * 3600000).toISOString()}.`); complete(id); return; }
|
|
96
165
|
if (input.includes('mock:provider-error') && !input.includes('mock:provider-error-')) { text('\n\nError: [unauthenticated] Backend rejected authentication.'); complete(id); return; }
|
|
97
166
|
// #401: ACP has chunks only, so completion must flush the same text to v1/v2.
|
|
167
|
+
if (input.includes('mock:turn-messages:')) {
|
|
168
|
+
const { turnMessages } = await import('./mock-turn-messages.mjs');
|
|
169
|
+
for (const message of turnMessages(input)) text(message + '\n');
|
|
170
|
+
complete(id); return;
|
|
171
|
+
}
|
|
98
172
|
if (input.includes('mock:ask-snapshot')) {
|
|
99
|
-
text('Using the CEZ:ASK structured question format instead:\n\nCEZ:ASK {"questions":[{"header":"Library","question":"Which test library?","options":[{"label":"Vitest"},{"label":"Node test"}]}]}'); complete(id); return;
|
|
173
|
+
text(input.includes('mock:ask-snapshot-bad') ? 'CEZ:ASK {not valid json' : 'Using the CEZ:ASK structured question format instead:\n\nCEZ:ASK {"questions":[{"header":"Library","question":"Which test library?","options":[{"label":"Vitest"},{"label":"Node test"}]}]}'); complete(id); return;
|
|
100
174
|
}
|
|
101
175
|
if (input.includes('mock:ask-prose')) { text('Use `CEZ:ASK {"questions":[]}` in your reply.\n> CEZ:ASK {not valid json'); complete(id); return; }
|
|
102
176
|
if (input.includes('mock:ask-bad')) { pendingAsk = { id }; emit({ id: 'bad-question', method: 'cursor/ask_question', params: { questions: [] } }); return; }
|