@wjarka/cezarion 0.16.0 → 0.17.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/LICENSE +1 -0
- package/README.md +594 -207
- package/dist/agent-config/account-identity.d.ts +3 -19
- package/dist/agent-config/account-identity.js +8 -5
- package/dist/agent-config/account-identity.js.map +1 -1
- package/dist/agent-config/catalog.d.ts +3 -14
- package/dist/agent-config/catalog.js.map +1 -1
- package/dist/agent-config/files.d.ts +2 -6
- package/dist/agent-config/files.js +2 -6
- package/dist/agent-config/files.js.map +1 -1
- package/dist/agent-config/model-settings/types.d.ts +1 -1
- package/dist/agent-config/seed.d.ts +11 -3
- package/dist/agent-config/seed.js +52 -48
- package/dist/agent-config/seed.js.map +1 -1
- package/dist/agent-config/service.js +3 -2
- package/dist/agent-config/service.js.map +1 -1
- package/dist/agent-config/validate.d.ts +1 -4
- package/dist/agent-config/validate.js.map +1 -1
- package/dist/application-update/helper.d.ts +2 -2
- package/dist/application-update/helper.js +7 -12
- package/dist/application-update/helper.js.map +1 -1
- package/dist/application-update/launcher.d.ts +4 -0
- package/dist/application-update/launcher.js +18 -12
- package/dist/application-update/launcher.js.map +1 -1
- package/dist/application-update/service.d.ts +3 -3
- package/dist/application-update/service.js +1 -1
- package/dist/application-update/service.js.map +1 -1
- package/dist/archive-on-merge-setting.d.ts +15 -0
- package/dist/archive-on-merge-setting.js +14 -0
- package/dist/archive-on-merge-setting.js.map +1 -0
- package/dist/artifacts/cli.d.ts +8 -0
- package/dist/artifacts/cli.js +21 -2
- package/dist/artifacts/cli.js.map +1 -1
- package/dist/artifacts/resolve.js +2 -1
- package/dist/artifacts/resolve.js.map +1 -1
- package/dist/artifacts/store.js.map +1 -1
- package/dist/automations/automation-cli.d.ts +59 -0
- package/dist/automations/automation-cli.js +509 -0
- package/dist/automations/automation-cli.js.map +1 -0
- package/dist/automations/builtin-skill.d.ts +7 -0
- package/dist/automations/builtin-skill.js +14 -0
- package/dist/automations/builtin-skill.js.map +1 -0
- package/dist/automations/github-baseline.d.ts +3 -0
- package/dist/automations/github-baseline.js +17 -0
- package/dist/automations/github-baseline.js.map +1 -0
- package/dist/automations/github-poller.d.ts +23 -4
- package/dist/automations/github-poller.js +157 -88
- package/dist/automations/github-poller.js.map +1 -1
- package/dist/automations/prompts.d.ts +12 -0
- package/dist/automations/prompts.js +160 -0
- package/dist/automations/prompts.js.map +1 -0
- package/dist/automations/schedule-runner.d.ts +43 -24
- package/dist/automations/schedule-runner.js +207 -20
- package/dist/automations/schedule-runner.js.map +1 -1
- package/dist/automations/scheduler.d.ts +10 -2
- package/dist/automations/scheduler.js +200 -54
- package/dist/automations/scheduler.js.map +1 -1
- package/dist/automations/service.d.ts +777 -0
- package/dist/automations/service.js +444 -0
- package/dist/automations/service.js.map +1 -0
- package/dist/automations/store.d.ts +17 -7
- package/dist/automations/store.js +88 -17
- package/dist/automations/store.js.map +1 -1
- package/dist/automations/task-template.d.ts +7 -2
- package/dist/automations/task-template.js +93 -44
- package/dist/automations/task-template.js.map +1 -1
- package/dist/automations/tool-adapter.d.ts +6 -0
- package/dist/automations/tool-adapter.js +108 -0
- package/dist/automations/tool-adapter.js.map +1 -0
- package/dist/automations/types.d.ts +1 -405
- package/dist/automations/types.js +1 -218
- package/dist/automations/types.js.map +1 -1
- package/dist/autosave-cleanup.d.ts +26 -0
- package/dist/autosave-cleanup.js +87 -0
- package/dist/autosave-cleanup.js.map +1 -0
- package/dist/autosave-git.d.ts +3 -0
- package/dist/autosave-git.js +67 -35
- package/dist/autosave-git.js.map +1 -1
- package/dist/autosave-group.d.ts +8 -0
- package/dist/autosave-group.js +61 -0
- package/dist/autosave-group.js.map +1 -0
- package/dist/autosave-holders.d.ts +31 -4
- package/dist/autosave-holders.js +92 -7
- package/dist/autosave-holders.js.map +1 -1
- package/dist/autosave-windows.d.ts +14 -0
- package/dist/autosave-windows.js +36 -2
- package/dist/autosave-windows.js.map +1 -1
- package/dist/ci-wait/client.d.ts +20 -3
- package/dist/ci-wait/client.js +40 -44
- package/dist/ci-wait/client.js.map +1 -1
- package/dist/ci-wait/controller.d.ts +622 -36
- package/dist/ci-wait/controller.js +152 -20
- package/dist/ci-wait/controller.js.map +1 -1
- package/dist/ci-wait/errors.d.ts +19 -0
- package/dist/ci-wait/errors.js +180 -2
- package/dist/ci-wait/errors.js.map +1 -1
- package/dist/ci-wait/github.d.ts +25 -1
- package/dist/ci-wait/github.js +76 -9
- package/dist/ci-wait/github.js.map +1 -1
- package/dist/ci-wait/mcp.d.ts +0 -1
- package/dist/ci-wait/mcp.js +0 -2
- package/dist/ci-wait/mcp.js.map +1 -1
- package/dist/ci-wait/supervisor.d.ts +7 -0
- package/dist/ci-wait/supervisor.js +113 -17
- package/dist/ci-wait/supervisor.js.map +1 -1
- package/dist/ci-wait/tools.d.ts +536 -16
- package/dist/ci-wait/tools.js +165 -20
- package/dist/ci-wait/tools.js.map +1 -1
- package/dist/config.d.ts +3 -17
- package/dist/config.js +4 -60
- package/dist/config.js.map +1 -1
- package/dist/contract/active-provider.d.ts +12 -0
- package/dist/contract/agent-profiles.d.ts +2 -10
- package/dist/contract/ask-schema.d.ts +22 -4
- package/dist/contract/ask.d.ts +6 -4
- package/dist/contract/attachments.d.ts +35 -0
- package/dist/contract/attention.d.ts +46 -37
- package/dist/contract/automation-requests.d.ts +308 -0
- package/dist/contract/automation-schedule.d.ts +40 -11
- package/dist/contract/automation-storage.d.ts +512 -0
- package/dist/contract/automations.d.ts +421 -40
- package/dist/contract/ci-wait.d.ts +41 -4
- package/dist/contract/config-requests.d.ts +36 -0
- package/dist/contract/conversations.d.ts +24 -10
- package/dist/contract/defined.d.ts +8 -0
- package/dist/contract/delegation.d.ts +312 -8
- package/dist/contract/events.d.ts +24 -3
- package/dist/contract/github-requests.d.ts +26 -0
- package/dist/contract/github.d.ts +60 -27
- package/dist/contract/handoff.d.ts +43 -0
- package/dist/contract/health.d.ts +2 -2
- package/dist/contract/image-path.d.ts +6 -0
- package/dist/contract/index.d.ts +31 -0
- package/dist/contract/index.js +3756 -1525
- package/dist/contract/live-coordination.d.ts +158 -0
- package/dist/contract/live-limits.d.ts +8 -0
- package/dist/contract/live.d.ts +123 -0
- package/dist/contract/pending-ask.d.ts +58 -0
- package/dist/contract/permissions.d.ts +54 -0
- package/dist/contract/preview.d.ts +33 -0
- package/dist/contract/project-limits.d.ts +33 -0
- package/dist/contract/projects.d.ts +486 -20
- package/dist/contract/provider-requests.d.ts +77 -0
- package/dist/contract/query-requests.d.ts +52 -0
- package/dist/contract/repo-requests.d.ts +12 -0
- package/dist/contract/run-labels.d.ts +8 -0
- package/dist/contract/run-limits.d.ts +8 -0
- package/dist/contract/run-predicates.d.ts +32 -0
- package/dist/contract/run-requests.d.ts +33 -0
- package/dist/contract/run-search.d.ts +193 -0
- package/dist/contract/runs.d.ts +2232 -1894
- package/dist/contract/scheduled-tasks.d.ts +187 -0
- package/dist/contract/skills.d.ts +22 -772
- package/dist/contract/team-skill-ref.d.ts +10 -0
- package/dist/{core → contract}/tool-display.d.ts +4 -10
- package/dist/contract/ui-state-requests.d.ts +60 -0
- package/dist/contract/version.d.ts +3 -0
- package/dist/contract/voice.d.ts +213 -0
- package/dist/contract/waits.d.ts +1204 -0
- package/dist/contract/workflow-file.d.ts +37 -0
- package/dist/contract/workflow-requests.d.ts +7 -0
- package/dist/contract/workflows.d.ts +1 -2
- package/dist/contract/workspace.d.ts +34 -82
- package/dist/contract/zoned-time.d.ts +2 -11
- package/dist/core/agent-env.d.ts +4 -16
- package/dist/core/agent-env.js +14 -16
- package/dist/core/agent-env.js.map +1 -1
- package/dist/core/agent-profiles.d.ts +28 -40
- package/dist/core/agent-profiles.js +56 -51
- package/dist/core/agent-profiles.js.map +1 -1
- package/dist/core/agent-runner.d.ts +88 -44
- package/dist/core/agent-runner.js +17 -18
- package/dist/core/agent-runner.js.map +1 -1
- package/dist/core/ask.d.ts +3 -0
- package/dist/core/ask.js +12 -0
- package/dist/core/ask.js.map +1 -1
- package/dist/core/backend-detect.js +16 -2
- package/dist/core/backend-detect.js.map +1 -1
- package/dist/core/claude-cli-runner.d.ts +23 -4
- package/dist/core/claude-cli-runner.js +280 -76
- package/dist/core/claude-cli-runner.js.map +1 -1
- package/dist/core/claude-model-catalog.d.ts +2 -10
- package/dist/core/claude-model-catalog.js +2 -10
- package/dist/core/claude-model-catalog.js.map +1 -1
- package/dist/core/claude-ui-mapper.d.ts +2 -2
- package/dist/core/claude-ui-mapper.js +94 -2
- package/dist/core/claude-ui-mapper.js.map +1 -1
- package/dist/core/codex-app-server-runner.d.ts +3 -4
- package/dist/core/codex-app-server-runner.js +146 -51
- package/dist/core/codex-app-server-runner.js.map +1 -1
- package/dist/core/codex-app-server-transport.d.ts +4 -3
- package/dist/core/codex-app-server-transport.js +11 -7
- package/dist/core/codex-app-server-transport.js.map +1 -1
- package/dist/core/codex-approvals.d.ts +12 -0
- package/dist/core/codex-approvals.js +161 -0
- package/dist/core/codex-approvals.js.map +1 -0
- package/dist/core/codex-permissions.d.ts +1 -1
- package/dist/core/codex-ui-mapper.js +45 -1
- package/dist/core/codex-ui-mapper.js.map +1 -1
- package/dist/core/cursor-acp-runner.d.ts +1 -1
- package/dist/core/cursor-acp-runner.js +39 -15
- package/dist/core/cursor-acp-runner.js.map +1 -1
- package/dist/core/cursor-cli-flags.d.ts +19 -0
- package/dist/core/cursor-cli-flags.js +47 -0
- package/dist/core/cursor-cli-flags.js.map +1 -0
- package/dist/core/cursor-model-catalog.d.ts +22 -0
- package/dist/core/cursor-model-catalog.js +53 -24
- package/dist/core/cursor-model-catalog.js.map +1 -1
- package/dist/core/cursor-print-capabilities.d.ts +16 -0
- package/dist/core/cursor-print-capabilities.js +141 -0
- package/dist/core/cursor-print-capabilities.js.map +1 -0
- package/dist/core/cursor-print-process.d.ts +31 -0
- package/dist/core/cursor-print-process.js +117 -0
- package/dist/core/cursor-print-process.js.map +1 -0
- package/dist/core/cursor-print-runner.d.ts +31 -0
- package/dist/core/cursor-print-runner.js +555 -0
- package/dist/core/cursor-print-runner.js.map +1 -0
- package/dist/core/cursor-print-tool-catalog.d.ts +10 -0
- package/dist/core/cursor-print-tool-catalog.js +91 -0
- package/dist/core/cursor-print-tool-catalog.js.map +1 -0
- package/dist/core/cursor-print-ui-mapper.d.ts +47 -0
- package/dist/core/cursor-print-ui-mapper.js +553 -0
- package/dist/core/cursor-print-ui-mapper.js.map +1 -0
- package/dist/core/cursor-runner.d.ts +24 -0
- package/dist/core/cursor-runner.js +149 -0
- package/dist/core/cursor-runner.js.map +1 -0
- package/dist/core/cursor-ui-mapper.js +5 -2
- package/dist/core/cursor-ui-mapper.js.map +1 -1
- package/dist/core/defined.d.ts +1 -0
- package/dist/core/defined.js +2 -0
- package/dist/core/defined.js.map +1 -0
- package/dist/core/hook-items.d.ts +14 -0
- package/dist/core/hook-items.js +13 -0
- package/dist/core/hook-items.js.map +1 -0
- package/dist/core/host-model-catalog.d.ts +2 -9
- package/dist/core/host-model-catalog.js +2 -9
- package/dist/core/host-model-catalog.js.map +1 -1
- package/dist/core/managed-session.js +15 -3
- package/dist/core/managed-session.js.map +1 -1
- package/dist/core/model-identity.d.ts +4 -21
- package/dist/core/model-identity.js.map +1 -1
- package/dist/core/model-presets.d.ts +2 -13
- package/dist/core/model-presets.js +2 -13
- package/dist/core/model-presets.js.map +1 -1
- package/dist/core/omp-model-catalog.js.map +1 -1
- package/dist/core/omp-runner.d.ts +6 -7
- package/dist/core/omp-runner.js +92 -33
- package/dist/core/omp-runner.js.map +1 -1
- package/dist/core/omp-ui-mapper.js +1 -1
- package/dist/core/omp-ui-mapper.js.map +1 -1
- package/dist/core/opencode-model-catalog.js.map +1 -1
- package/dist/core/opencode-permissions.d.ts +52 -0
- package/dist/core/opencode-permissions.js +101 -0
- package/dist/core/opencode-permissions.js.map +1 -0
- package/dist/core/opencode-server-runner.d.ts +10 -9
- package/dist/core/opencode-server-runner.js +286 -28
- package/dist/core/opencode-server-runner.js.map +1 -1
- package/dist/core/opencode-session-error.d.ts +15 -7
- package/dist/core/opencode-session-error.js +25 -9
- package/dist/core/opencode-session-error.js.map +1 -1
- package/dist/core/opencode-ui-mapper.js +2 -2
- package/dist/core/opencode-ui-mapper.js.map +1 -1
- package/dist/core/pi-model-catalog.js.map +1 -1
- package/dist/core/pi-runner.d.ts +12 -4
- package/dist/core/pi-runner.js +171 -63
- package/dist/core/pi-runner.js.map +1 -1
- package/dist/core/pi-ui-mapper.js +1 -1
- package/dist/core/pi-ui-mapper.js.map +1 -1
- package/dist/core/process-usage.d.ts +5 -0
- package/dist/core/process-usage.js +24 -4
- package/dist/core/process-usage.js.map +1 -1
- package/dist/core/provider-auth.d.ts +16 -107
- package/dist/core/provider-auth.js +16 -132
- package/dist/core/provider-auth.js.map +1 -1
- package/dist/core/runner-factory.d.ts +4 -1
- package/dist/core/runner-factory.js +3 -3
- package/dist/core/runner-factory.js.map +1 -1
- package/dist/core/runner-runtime.d.ts +22 -0
- package/dist/core/runner-runtime.js +66 -5
- package/dist/core/runner-runtime.js.map +1 -1
- package/dist/core/runner-tool-grants.d.ts +21 -0
- package/dist/core/runner-tool-grants.js +64 -0
- package/dist/core/runner-tool-grants.js.map +1 -0
- package/dist/core/secret-redaction.d.ts +3 -20
- package/dist/core/secret-redaction.js +3 -20
- package/dist/core/secret-redaction.js.map +1 -1
- package/dist/core/session-process.d.ts +22 -2
- package/dist/core/session-process.js +170 -12
- package/dist/core/session-process.js.map +1 -1
- package/dist/core/shell-env.d.ts +2 -15
- package/dist/core/shell-env.js +2 -15
- package/dist/core/shell-env.js.map +1 -1
- package/dist/core/ui-events.d.ts +60 -47
- package/dist/core/ui-events.js +0 -23
- package/dist/core/ui-events.js.map +1 -1
- package/dist/core/usage-limit.js.map +1 -1
- package/dist/data-gitignore.js +3 -1
- package/dist/data-gitignore.js.map +1 -1
- package/dist/delegation/capacity.d.ts +4 -8
- package/dist/delegation/capacity.js +4 -8
- package/dist/delegation/capacity.js.map +1 -1
- package/dist/delegation/cli.js +123 -21
- package/dist/delegation/cli.js.map +1 -1
- package/dist/delegation/context.d.ts +19 -3
- package/dist/delegation/context.js +217 -22
- package/dist/delegation/context.js.map +1 -1
- package/dist/delegation/conversations.d.ts +4 -3
- package/dist/delegation/conversations.js +7 -5
- package/dist/delegation/conversations.js.map +1 -1
- package/dist/delegation/destroy-observation.d.ts +1 -1
- package/dist/delegation/destroy-observation.js.map +1 -1
- package/dist/delegation/effort.js.map +1 -1
- package/dist/delegation/execution-identity.d.ts +1 -1
- package/dist/delegation/execution-identity.js +41 -7
- package/dist/delegation/execution-identity.js.map +1 -1
- package/dist/delegation/idle-test-app.d.ts +4 -0
- package/dist/delegation/idle-test-app.js +174 -0
- package/dist/delegation/idle-test-app.js.map +1 -0
- package/dist/delegation/input.js.map +1 -1
- package/dist/delegation/park-notice.d.ts +42 -0
- package/dist/delegation/park-notice.js +71 -0
- package/dist/delegation/park-notice.js.map +1 -0
- package/dist/delegation/policy.d.ts +2 -0
- package/dist/delegation/policy.js +9 -1
- package/dist/delegation/policy.js.map +1 -1
- package/dist/delegation/process-liveness.d.ts +10 -15
- package/dist/delegation/process-liveness.js +11 -35
- package/dist/delegation/process-liveness.js.map +1 -1
- package/dist/delegation/provision.js +21 -19
- package/dist/delegation/provision.js.map +1 -1
- package/dist/delegation/questions.d.ts +3 -1
- package/dist/delegation/questions.js +10 -5
- package/dist/delegation/questions.js.map +1 -1
- package/dist/delegation/readiness.d.ts +2 -2
- package/dist/delegation/results.d.ts +4 -1
- package/dist/delegation/results.js +49 -18
- package/dist/delegation/results.js.map +1 -1
- package/dist/delegation/retry-backoff.d.ts +8 -0
- package/dist/delegation/retry-backoff.js +8 -0
- package/dist/delegation/retry-backoff.js.map +1 -1
- package/dist/delegation/routes.d.ts +114 -30
- package/dist/delegation/routes.js +4 -1
- package/dist/delegation/routes.js.map +1 -1
- package/dist/delegation/scratch-cleanup.d.ts +4 -5
- package/dist/delegation/scratch-cleanup.js +10 -8
- package/dist/delegation/scratch-cleanup.js.map +1 -1
- package/dist/delegation/service.d.ts +12 -4
- package/dist/delegation/service.js +76 -28
- package/dist/delegation/service.js.map +1 -1
- package/dist/delegation/transport.d.ts +154 -70
- package/dist/delegation/wait.d.ts +11 -0
- package/dist/delegation/wait.js +24 -0
- package/dist/delegation/wait.js.map +1 -1
- package/dist/delegation/windows-test-app.d.ts +5 -0
- package/dist/delegation/windows-test-app.js +63 -0
- package/dist/delegation/windows-test-app.js.map +1 -0
- package/dist/delegation/windows-workspace-identity.d.ts +3 -0
- package/dist/delegation/windows-workspace-identity.js +22 -0
- package/dist/delegation/windows-workspace-identity.js.map +1 -0
- package/dist/delegation/workspace.d.ts +5 -10
- package/dist/delegation/workspace.js +136 -75
- package/dist/delegation/workspace.js.map +1 -1
- package/dist/detached-process.d.ts +103 -0
- package/dist/detached-process.js +301 -0
- package/dist/detached-process.js.map +1 -0
- package/dist/discovery/catalog.d.ts +2 -1
- package/dist/discovery/catalog.js.map +1 -1
- package/dist/discovery/cli.js +3 -1
- package/dist/discovery/cli.js.map +1 -1
- package/dist/git-diff-base.d.ts +6 -61
- package/dist/git-diff-base.js +6 -70
- package/dist/git-diff-base.js.map +1 -1
- package/dist/git-index-copy.d.ts +4 -0
- package/dist/git-index-copy.js +10 -0
- package/dist/git-index-copy.js.map +1 -0
- package/dist/git-worktree-lock.d.ts +2 -4
- package/dist/git-worktree-lock.js +2 -4
- package/dist/git-worktree-lock.js.map +1 -1
- package/dist/git-worktree-release.d.ts +2 -2
- package/dist/git-worktree-release.js.map +1 -1
- package/dist/git-worktree.d.ts +47 -76
- package/dist/git-worktree.js +240 -94
- package/dist/git-worktree.js.map +1 -1
- package/dist/handoff.d.ts +51 -41
- package/dist/handoff.js +130 -78
- package/dist/handoff.js.map +1 -1
- package/dist/index.js +60 -39
- package/dist/index.js.map +1 -1
- package/dist/merge-observations.d.ts +13 -0
- package/dist/merge-observations.js +55 -0
- package/dist/merge-observations.js.map +1 -0
- package/dist/open-url.js +4 -14
- package/dist/open-url.js.map +1 -1
- package/dist/paths.d.ts +10 -13
- package/dist/paths.js +36 -17
- package/dist/paths.js.map +1 -1
- package/dist/planner.d.ts +2 -1
- package/dist/planner.js +9 -6
- package/dist/planner.js.map +1 -1
- package/dist/preview/agent-address.d.ts +34 -0
- package/dist/preview/agent-address.js +51 -0
- package/dist/preview/agent-address.js.map +1 -0
- package/dist/preview/agent-marker.d.ts +17 -0
- package/dist/preview/agent-marker.js +71 -0
- package/dist/preview/agent-marker.js.map +1 -0
- package/dist/preview/cdp-proxy.d.ts +54 -0
- package/dist/preview/cdp-proxy.js +151 -0
- package/dist/preview/cdp-proxy.js.map +1 -0
- package/dist/preview/cdp.d.ts +39 -3
- package/dist/preview/cdp.js +155 -57
- package/dist/preview/cdp.js.map +1 -1
- package/dist/preview/chromium.d.ts +18 -6
- package/dist/preview/chromium.js +112 -25
- package/dist/preview/chromium.js.map +1 -1
- package/dist/preview/dev-server.d.ts +1 -1
- package/dist/preview/dev-server.js +20 -44
- package/dist/preview/dev-server.js.map +1 -1
- package/dist/preview/host.d.ts +70 -3
- package/dist/preview/host.js +314 -28
- package/dist/preview/host.js.map +1 -1
- package/dist/preview/registration.d.ts +10 -5
- package/dist/preview/registration.js +2 -0
- package/dist/preview/registration.js.map +1 -1
- package/dist/preview/session.d.ts +2 -0
- package/dist/preview/session.js +10 -0
- package/dist/preview/session.js.map +1 -1
- package/dist/process-wait/exit-file.d.ts +29 -0
- package/dist/process-wait/exit-file.js +67 -0
- package/dist/process-wait/exit-file.js.map +1 -0
- package/dist/process-wait/supervisor.d.ts +30 -0
- package/dist/process-wait/supervisor.js +71 -0
- package/dist/process-wait/supervisor.js.map +1 -0
- package/dist/release/snapshot.d.ts +6 -6
- package/dist/runs/agent-tmpdir.d.ts +51 -36
- package/dist/runs/agent-tmpdir.js +389 -132
- package/dist/runs/agent-tmpdir.js.map +1 -1
- package/dist/runs/auto-name.d.ts +6 -6
- package/dist/runs/auto-name.js +1 -1
- package/dist/runs/auto-name.js.map +1 -1
- package/dist/runs/client-request.d.ts +3 -3
- package/dist/runs/client-request.js +3 -3
- package/dist/runs/client-request.js.map +1 -1
- package/dist/runs/delegation-state.d.ts +11 -2
- package/dist/runs/delegation-state.js.map +1 -1
- package/dist/runs/event-history-agent-context.d.ts +14 -0
- package/dist/runs/event-history-agent-context.js +105 -0
- package/dist/runs/event-history-agent-context.js.map +1 -0
- package/dist/runs/event-history-context.d.ts +15 -0
- package/dist/runs/event-history-context.js +109 -0
- package/dist/runs/event-history-context.js.map +1 -0
- package/dist/runs/event-history.d.ts +4 -1
- package/dist/runs/event-history.js +29 -130
- package/dist/runs/event-history.js.map +1 -1
- package/dist/runs/history-stream.d.ts +2 -0
- package/dist/runs/history-stream.js +62 -0
- package/dist/runs/history-stream.js.map +1 -0
- package/dist/runs/legacy-index.d.ts +6 -19
- package/dist/runs/legacy-index.js +6 -19
- package/dist/runs/legacy-index.js.map +1 -1
- package/dist/runs/live-item-snapshots.d.ts +13 -0
- package/dist/runs/live-item-snapshots.js +79 -0
- package/dist/runs/live-item-snapshots.js.map +1 -0
- package/dist/runs/loaded-run-healing.d.ts +3 -0
- package/dist/runs/loaded-run-healing.js +17 -0
- package/dist/runs/loaded-run-healing.js.map +1 -0
- package/dist/runs/outcome-commit.d.ts +98 -0
- package/dist/runs/outcome-commit.js +132 -0
- package/dist/runs/outcome-commit.js.map +1 -0
- package/dist/runs/pull-requests.d.ts +14 -0
- package/dist/runs/pull-requests.js +96 -0
- package/dist/runs/pull-requests.js.map +1 -0
- package/dist/runs/raw-record.d.ts +3 -15
- package/dist/runs/raw-record.js +3 -15
- package/dist/runs/raw-record.js.map +1 -1
- package/dist/runs/retention.d.ts +2 -2
- package/dist/runs/retention.js +7 -0
- package/dist/runs/retention.js.map +1 -1
- package/dist/runs/review-gate.d.ts +1 -1
- package/dist/runs/review-gate.js.map +1 -1
- package/dist/runs/run-claims.d.ts +2 -9
- package/dist/runs/run-claims.js.map +1 -1
- package/dist/runs/run-database.d.ts +29 -34
- package/dist/runs/run-database.js +124 -46
- package/dist/runs/run-database.js.map +1 -1
- package/dist/runs/run-index.d.ts +6 -25
- package/dist/runs/run-index.js +25 -38
- package/dist/runs/run-index.js.map +1 -1
- package/dist/runs/run-row.d.ts +5 -34
- package/dist/runs/run-row.js +13 -38
- package/dist/runs/run-row.js.map +1 -1
- package/dist/runs/store.d.ts +1597 -744
- package/dist/runs/store.js +1231 -739
- package/dist/runs/store.js.map +1 -1
- package/dist/runs/task-markers.d.ts +1 -0
- package/dist/runs/task-markers.js +5 -1
- package/dist/runs/task-markers.js.map +1 -1
- package/dist/runs/task-refs.d.ts +3 -3
- package/dist/runs/transcript-facts-fold.d.ts +64 -0
- package/dist/runs/transcript-facts-fold.js +109 -0
- package/dist/runs/transcript-facts-fold.js.map +1 -0
- package/dist/runs/transcript-facts-load.d.ts +11 -0
- package/dist/runs/transcript-facts-load.js +66 -0
- package/dist/runs/transcript-facts-load.js.map +1 -0
- package/dist/runs/transcript-facts-queue.d.ts +30 -0
- package/dist/runs/transcript-facts-queue.js +227 -0
- package/dist/runs/transcript-facts-queue.js.map +1 -0
- package/dist/runs/transcript-facts-worker.d.ts +15 -0
- package/dist/runs/transcript-facts-worker.js +26 -0
- package/dist/runs/transcript-facts-worker.js.map +1 -0
- package/dist/runs/transcript-facts.d.ts +13 -51
- package/dist/runs/transcript-facts.js +86 -202
- package/dist/runs/transcript-facts.js.map +1 -1
- package/dist/runs/ui-event-sink.d.ts +5 -30
- package/dist/runs/ui-event-sink.js +8 -30
- package/dist/runs/ui-event-sink.js.map +1 -1
- package/dist/runs/webhook.d.ts +104 -38
- package/dist/runs/webhook.js +180 -77
- package/dist/runs/webhook.js.map +1 -1
- package/dist/server/app-type.d.ts +2 -17
- package/dist/server/archive-on-merge.d.ts +35 -0
- package/dist/server/archive-on-merge.js +202 -0
- package/dist/server/archive-on-merge.js.map +1 -0
- package/dist/server/capabilities.d.ts +3 -15
- package/dist/server/capabilities.js +6 -19
- package/dist/server/capabilities.js.map +1 -1
- package/dist/server/checkout-progress.d.ts +10 -0
- package/dist/server/checkout-progress.js +27 -0
- package/dist/server/checkout-progress.js.map +1 -0
- package/dist/server/checkout.d.ts +10 -19
- package/dist/server/checkout.js +15 -45
- package/dist/server/checkout.js.map +1 -1
- package/dist/server/cockpit-ownership.d.ts +2 -0
- package/dist/server/cockpit-ownership.js +9 -0
- package/dist/server/cockpit-ownership.js.map +1 -1
- package/dist/server/cold-repo-handles.d.ts +2 -7
- package/dist/server/cold-repo-handles.js +2 -7
- package/dist/server/cold-repo-handles.js.map +1 -1
- package/dist/server/completion-actions.d.ts +30 -0
- package/dist/server/completion-actions.js +204 -0
- package/dist/server/completion-actions.js.map +1 -0
- package/dist/server/create-project.d.ts +71 -0
- package/dist/server/create-project.js +448 -0
- package/dist/server/create-project.js.map +1 -0
- package/dist/server/forge/github-filters.d.ts +7 -1
- package/dist/server/forge/github-filters.js +66 -51
- package/dist/server/forge/github-filters.js.map +1 -1
- package/dist/server/forge/github-merge-requirements.d.ts +18 -0
- package/dist/server/forge/github-merge-requirements.js +137 -0
- package/dist/server/forge/github-merge-requirements.js.map +1 -0
- package/dist/server/forge/github.d.ts +98 -111
- package/dist/server/forge/github.js +625 -306
- package/dist/server/forge/github.js.map +1 -1
- package/dist/server/forge/types.d.ts +25 -22
- package/dist/server/fs-browse.d.ts +3 -28
- package/dist/server/fs-browse.js.map +1 -1
- package/dist/server/git-changes.d.ts +5 -15
- package/dist/server/git-changes.js +3 -50
- package/dist/server/git-changes.js.map +1 -1
- package/dist/server/git.d.ts +3 -1
- package/dist/server/git.js +12 -0
- package/dist/server/git.js.map +1 -1
- package/dist/server/github.d.ts +1 -1
- package/dist/server/github.js +1 -1
- package/dist/server/github.js.map +1 -1
- package/dist/server/launch-key.d.ts +2 -4
- package/dist/server/launch-key.js +2 -4
- package/dist/server/launch-key.js.map +1 -1
- package/dist/server/live-routes.d.ts +68 -0
- package/dist/server/live-routes.js +147 -0
- package/dist/server/live-routes.js.map +1 -0
- package/dist/server/open-in-app.d.ts +4 -13
- package/dist/server/open-in-app.js +5 -41
- package/dist/server/open-in-app.js.map +1 -1
- package/dist/server/open-in-targets.d.ts +42 -0
- package/dist/server/open-in-targets.js +110 -0
- package/dist/server/open-in-targets.js.map +1 -0
- package/dist/server/open-in-terminal.d.ts +3 -0
- package/dist/server/open-in-terminal.js +6 -26
- package/dist/server/open-in-terminal.js.map +1 -1
- package/dist/server/preview-cdp-socket.d.ts +21 -0
- package/dist/server/preview-cdp-socket.js +112 -0
- package/dist/server/preview-cdp-socket.js.map +1 -0
- package/dist/server/preview-socket.d.ts +11 -11
- package/dist/server/preview-socket.js +22 -22
- package/dist/server/preview-socket.js.map +1 -1
- package/dist/server/preview-sockets.d.ts +14 -0
- package/dist/server/preview-sockets.js +18 -0
- package/dist/server/preview-sockets.js.map +1 -0
- package/dist/server/project-context.d.ts +54 -18
- package/dist/server/project-context.js +178 -5
- package/dist/server/project-context.js.map +1 -1
- package/dist/server/provider-action-gate.d.ts +0 -2
- package/dist/server/provider-action-gate.js +0 -21
- package/dist/server/provider-action-gate.js.map +1 -1
- package/dist/server/provider-auth-runtime.d.ts +3 -18
- package/dist/server/provider-auth-runtime.js +3 -18
- package/dist/server/provider-auth-runtime.js.map +1 -1
- package/dist/server/repo-branches.d.ts +3 -9
- package/dist/server/repo-branches.js +6 -22
- package/dist/server/repo-branches.js.map +1 -1
- package/dist/server/run-event-feed.d.ts +20 -0
- package/dist/server/run-event-feed.js +190 -0
- package/dist/server/run-event-feed.js.map +1 -0
- package/dist/server/server-deps.d.ts +37 -0
- package/dist/server/server-deps.js +114 -0
- package/dist/server/server-deps.js.map +1 -0
- package/dist/server/server.d.ts +14082 -11998
- package/dist/server/server.js +785 -1647
- package/dist/server/server.js.map +1 -1
- package/dist/server/start-run-options.d.ts +82 -0
- package/dist/server/start-run-options.js +111 -0
- package/dist/server/start-run-options.js.map +1 -0
- package/dist/server/validators.d.ts +3 -29
- package/dist/server/validators.js +1 -2
- package/dist/server/validators.js.map +1 -1
- package/dist/server/ws.d.ts +3 -23
- package/dist/server/ws.js +3 -23
- package/dist/server/ws.js.map +1 -1
- package/dist/server-install/engine.d.ts +6 -9
- package/dist/server-install/engine.js +2 -9
- package/dist/server-install/engine.js.map +1 -1
- package/dist/server-install/platforms/ubuntu-vps.d.ts +1 -1
- package/dist/server-install/state.d.ts +2 -4
- package/dist/server-install/state.js +2 -4
- package/dist/server-install/state.js.map +1 -1
- package/dist/server-install/steps.d.ts +2 -5
- package/dist/server-install/steps.js +3 -6
- package/dist/server-install/steps.js.map +1 -1
- package/dist/server-install/types.d.ts +3 -6
- package/dist/server-install/types.js +2 -5
- package/dist/server-install/types.js.map +1 -1
- package/dist/server-install/ui.d.ts +2 -8
- package/dist/server-install/ui.js +3 -3
- package/dist/server-install/ui.js.map +1 -1
- package/dist/session-context.d.ts +64 -0
- package/dist/session-context.js +264 -0
- package/dist/session-context.js.map +1 -0
- package/dist/skills-provision.d.ts +62 -0
- package/dist/skills-provision.js +325 -0
- package/dist/skills-provision.js.map +1 -0
- package/dist/skills-remote.d.ts +29 -27
- package/dist/skills-remote.js +236 -100
- package/dist/skills-remote.js.map +1 -1
- package/dist/skills.d.ts +25 -36
- package/dist/skills.js +43 -54
- package/dist/skills.js.map +1 -1
- package/dist/subcommands.d.ts +11 -0
- package/dist/subcommands.js +24 -0
- package/dist/subcommands.js.map +1 -0
- package/dist/task-cli/cli.js +78 -25
- package/dist/task-cli/cli.js.map +1 -1
- package/dist/task-cli/discovery.d.ts +4 -2
- package/dist/task-cli/discovery.js +14 -13
- package/dist/task-cli/discovery.js.map +1 -1
- package/dist/task-cli/hint.d.ts +20 -0
- package/dist/task-cli/hint.js +14 -0
- package/dist/task-cli/hint.js.map +1 -0
- package/dist/task-cli/http.d.ts +1 -0
- package/dist/task-cli/http.js +3 -1
- package/dist/task-cli/http.js.map +1 -1
- package/dist/task-cli/projections.d.ts +14 -11
- package/dist/task-cli/projections.js +15 -11
- package/dist/task-cli/projections.js.map +1 -1
- package/dist/task-cli/watch.d.ts +18 -10
- package/dist/task-cli/watch.js +128 -20
- package/dist/task-cli/watch.js.map +1 -1
- package/dist/ui-state.d.ts +17 -3
- package/dist/ui-state.js +56 -9
- package/dist/ui-state.js.map +1 -1
- package/dist/update-check.d.ts +0 -10
- package/dist/update-check.js +1 -16
- package/dist/update-check.js.map +1 -1
- package/dist/voice/decide.d.ts +32 -0
- package/dist/voice/decide.js +297 -0
- package/dist/voice/decide.js.map +1 -0
- package/dist/voice/decision-log.d.ts +52 -0
- package/dist/voice/decision-log.js +107 -0
- package/dist/voice/decision-log.js.map +1 -0
- package/dist/voice/engine.d.ts +119 -0
- package/dist/voice/engine.js +60 -0
- package/dist/voice/engine.js.map +1 -0
- package/dist/voice/fake-engine.d.ts +10 -0
- package/dist/voice/fake-engine.js +192 -0
- package/dist/voice/fake-engine.js.map +1 -0
- package/dist/voice/jev-engine.d.ts +17 -0
- package/dist/voice/jev-engine.js +110 -0
- package/dist/voice/jev-engine.js.map +1 -0
- package/dist/voice/pending-ask.d.ts +17 -0
- package/dist/voice/pending-ask.js +50 -0
- package/dist/voice/pending-ask.js.map +1 -0
- package/dist/voice/routes.d.ts +115 -0
- package/dist/voice/routes.js +91 -0
- package/dist/voice/routes.js.map +1 -0
- package/dist/voice/sentence.d.ts +21 -0
- package/dist/voice/sentence.js +61 -0
- package/dist/voice/sentence.js.map +1 -0
- package/dist/voice/thresholds.d.ts +28 -0
- package/dist/voice/thresholds.js +29 -0
- package/dist/voice/thresholds.js.map +1 -0
- package/dist/webhooks/cli.d.ts +18 -0
- package/dist/webhooks/cli.js +145 -0
- package/dist/webhooks/cli.js.map +1 -0
- package/dist/webhooks/prompt.d.ts +5 -0
- package/dist/webhooks/prompt.js +26 -0
- package/dist/webhooks/prompt.js.map +1 -0
- package/dist/workflows/active-run.d.ts +167 -0
- package/dist/workflows/active-run.js +21 -0
- package/dist/workflows/active-run.js.map +1 -0
- package/dist/workflows/continuation-admission.d.ts +913 -0
- package/dist/workflows/continuation-admission.js +265 -0
- package/dist/workflows/continuation-admission.js.map +1 -0
- package/dist/workflows/execution-account.d.ts +13 -0
- package/dist/workflows/execution-account.js +18 -0
- package/dist/workflows/execution-account.js.map +1 -0
- package/dist/workflows/input-acknowledgement.d.ts +152 -0
- package/dist/workflows/input-acknowledgement.js +38 -0
- package/dist/workflows/input-acknowledgement.js.map +1 -0
- package/dist/workflows/line-order.d.ts +5 -0
- package/dist/workflows/line-order.js +25 -0
- package/dist/workflows/line-order.js.map +1 -0
- package/dist/workflows/outcome-batches.d.ts +20 -0
- package/dist/workflows/outcome-batches.js +25 -0
- package/dist/workflows/outcome-batches.js.map +1 -0
- package/dist/workflows/question-routing.d.ts +8 -0
- package/dist/workflows/question-routing.js +18 -0
- package/dist/workflows/question-routing.js.map +1 -0
- package/dist/workflows/run-scheduling.d.ts +35 -0
- package/dist/workflows/run-scheduling.js +61 -0
- package/dist/workflows/run-scheduling.js.map +1 -0
- package/dist/workflows/run-states.d.ts +190 -0
- package/dist/workflows/run-states.js +295 -0
- package/dist/workflows/run-states.js.map +1 -0
- package/dist/workflows/run.d.ts +1296 -278
- package/dist/workflows/run.js +5730 -3265
- package/dist/workflows/run.js.map +1 -1
- package/dist/workflows/turn-end.d.ts +116 -0
- package/dist/workflows/turn-end.js +68 -0
- package/dist/workflows/turn-end.js.map +1 -0
- package/dist/workflows/types.d.ts +35 -130
- package/dist/workflows/types.js +47 -100
- package/dist/workflows/types.js.map +1 -1
- package/dist/workflows/waits.d.ts +74 -0
- package/dist/workflows/waits.js +197 -0
- package/dist/workflows/waits.js.map +1 -0
- package/dist/workspace/agent-accounts.d.ts +5 -38
- package/dist/workspace/agent-accounts.js +14 -40
- package/dist/workspace/agent-accounts.js.map +1 -1
- package/dist/workspace/agent-profiles.d.ts +40 -16
- package/dist/workspace/agent-profiles.js +77 -17
- package/dist/workspace/agent-profiles.js.map +1 -1
- package/dist/workspace/config.d.ts +48 -49
- package/dist/workspace/config.js +68 -72
- package/dist/workspace/config.js.map +1 -1
- package/dist/workspace/migrations.d.ts +3 -13
- package/dist/workspace/migrations.js.map +1 -1
- package/dist/workspace/projects-cli.d.ts +1 -1
- package/dist/workspace/projects-cli.js.map +1 -1
- package/dist/workspace/projects.d.ts +15 -18
- package/dist/workspace/projects.js +20 -16
- package/dist/workspace/projects.js.map +1 -1
- package/dist/workspace/semaphore.d.ts +11 -45
- package/dist/workspace/semaphore.js +6 -18
- package/dist/workspace/semaphore.js.map +1 -1
- package/dist/workspace/ui-state.d.ts +6 -4
- package/dist/workspace/ui-state.js +6 -4
- package/dist/workspace/ui-state.js.map +1 -1
- package/dist/workspace/webhooks.d.ts +40 -0
- package/dist/workspace/webhooks.js +146 -0
- package/dist/workspace/webhooks.js.map +1 -0
- package/dist/worktree-manifest.d.ts +165 -0
- package/dist/worktree-manifest.js +530 -0
- package/dist/worktree-manifest.js.map +1 -0
- package/dist/worktree-setup.js.map +1 -1
- package/package.json +6 -5
- package/scripts/benchmark-run-store-fixture.ts +7 -3
- package/scripts/check-pack.mjs +3 -1
- package/scripts/inline-contract.mjs +80 -27
- package/scripts/install-as-command.mjs +3 -1
- package/scripts/measure-transcript-facts-health.mjs +87 -0
- package/scripts/measure-transcript-facts-lag.mjs +68 -0
- package/scripts/mock-ci-tool.mjs +49 -6
- package/scripts/mock-claude-model-refusal.mjs +42 -0
- package/scripts/mock-claude.mjs +833 -591
- package/scripts/mock-codex-app-server.mjs +785 -418
- package/scripts/mock-cursor-acp.mjs +296 -125
- package/scripts/mock-cursor-print.mjs +256 -0
- package/scripts/mock-deferred-turn-start.mjs +16 -0
- package/scripts/mock-delivery-control.d.mts +23 -0
- package/scripts/mock-delivery-control.mjs +80 -0
- package/scripts/mock-env-record.mjs +11 -0
- package/scripts/mock-failure-control.d.mts +13 -0
- package/scripts/mock-failure-control.mjs +68 -0
- package/scripts/mock-multi-pr.mjs +7 -0
- package/scripts/mock-nudge.mjs +45 -0
- package/scripts/mock-omp-rpc.mjs +429 -255
- package/scripts/mock-opencode-serve.mjs +972 -557
- package/scripts/mock-pi-rpc.mjs +558 -331
- package/scripts/mock-runner-crash.mjs +18 -2
- package/scripts/mock-session-context.d.mts +5 -0
- package/scripts/mock-session-context.mjs +56 -0
- package/scripts/mock-silent-tail.mjs +10 -3
- package/scripts/pi-default-tools.mjs +22 -0
- package/scripts/pi-project-skills.mjs +59 -0
- package/scripts/probe-cursor-print.mjs +627 -0
- package/scripts/transcript-facts-fixture.mjs +53 -0
- package/scripts/voice-replay.ts +50 -0
- package/scripts/windows-workspace-identity.cs +208 -0
- package/scripts/windows-workspace-identity.ps1 +10 -0
- package/web/dist/assets/alert-dialog-DfctKUMw.js +1 -0
- package/web/dist/assets/button-CeupvoKG.js +41 -0
- package/web/dist/assets/centered-state-hDsyXrnH.js +1 -0
- package/web/dist/assets/cez-idle-D3aj_9lp.js +1 -0
- package/web/dist/assets/diff-BnIXZK3i2.js +3 -0
- package/web/dist/assets/diff-controls-GewpW9aF.js +1 -0
- package/web/dist/assets/diff-view-Byo7gpvW.js +11 -0
- package/web/dist/assets/dropdown-menu-COj_J5wd.js +6 -0
- package/web/dist/assets/eye-B8okNWXU.js +1 -0
- package/web/dist/assets/git-toolbar-DY0z0n4S.js +1 -0
- package/web/dist/assets/github-DwU6ALRK.js +1 -0
- package/web/dist/assets/{image-preview-FOEfqpZP.js → image-preview-C_t9q45f.js} +1 -1
- package/web/dist/assets/index-BOfE8pyD.js +34 -0
- package/web/dist/assets/index-D9HpsmdW.css +1 -0
- package/web/dist/assets/live-protocol-Uce2NwEX.js +64 -0
- package/web/dist/assets/live-worker-BizfZSoh.ts +33 -0
- package/web/dist/assets/markdown-BBDDg-4t.js +1 -0
- package/web/dist/assets/nav-row-styles-AoIhhIwf.js +1 -0
- package/web/dist/assets/popover-D56fhiXj.js +1 -0
- package/web/dist/assets/preview-pane-connected-BmVqfSU5.js +3 -0
- package/web/dist/assets/reference-chip-gQNk-4jc.js +1 -0
- package/web/dist/assets/repo-git-B5ECDUuv.js +1 -0
- package/web/dist/assets/{repo-git-CoKp-g9K.css → repo-git-DVXNOJDT.css} +1 -1
- package/web/dist/assets/run-header-C0Y1NvEM.js +2 -0
- package/web/dist/assets/run-header-CC7VUTg9.css +1 -0
- package/web/dist/assets/skills-DUeTkZ9z.js +1 -0
- package/web/dist/assets/status-dot-1PR0i69P.js +1 -0
- package/web/dist/assets/tab-link-DmWk4l5O.js +1 -0
- package/web/dist/assets/task-changes-DKZXuW89.js +1 -0
- package/web/dist/assets/task-commits-BZ6KxWdF.js +1 -0
- package/web/dist/assets/task-files-DlF7Apcn.js +2 -0
- package/web/dist/assets/task-github-item-CVPo3geZ.js +1 -0
- package/web/dist/assets/task-thread-DtQ6uGfQ.css +1 -0
- package/web/dist/assets/task-thread-mm4-ECyo.js +9 -0
- package/web/dist/assets/thread-state-CIw2BlhT.js +4 -0
- package/web/dist/assets/use-hand-to-agent-state-BCDjzHnG.js +1 -0
- package/web/dist/assets/use-hand-to-agent-state-C7esPJ-N.css +1 -0
- package/web/dist/assets/workflows-D8vYD-ql.js +7 -0
- package/web/dist/assets/zoomable-image-CxQSsfcn.js +1 -0
- package/web/dist/index.html +13 -17
- package/web/dist/live-worker.js +4 -0
- package/dist/core/tool-display.js +0 -179
- package/dist/core/tool-display.js.map +0 -1
- package/dist/runs/human-ask-summary.d.ts +0 -9
- package/dist/runs/human-ask-summary.js +0 -39
- package/dist/runs/human-ask-summary.js.map +0 -1
- package/dist/runs/run-search.d.ts +0 -29
- package/dist/runs/run-search.js +0 -63
- package/dist/runs/run-search.js.map +0 -1
- package/dist/skills-banner.d.ts +0 -22
- package/dist/skills-banner.js +0 -41
- package/dist/skills-banner.js.map +0 -1
- package/dist/skills-update.d.ts +0 -88
- package/dist/skills-update.js +0 -392
- package/dist/skills-update.js.map +0 -1
- package/dist/todos.d.ts +0 -48
- package/dist/todos.js +0 -201
- package/dist/todos.js.map +0 -1
- package/web/dist/assets/agent-accounts-CFOBMVHc.js +0 -1
- package/web/dist/assets/alert-dialog-BrpNUwMt.js +0 -1
- package/web/dist/assets/button-C_rd7CPp.js +0 -43
- package/web/dist/assets/compare-variants-D6WXhvXA.js +0 -1
- package/web/dist/assets/diff-DrEARXTV.js +0 -3
- package/web/dist/assets/diff-controls-B1-j7nFg.js +0 -1
- package/web/dist/assets/diff-view-DvGLjdTk.js +0 -6
- package/web/dist/assets/dropdown-menu-BegOZFrj.js +0 -1
- package/web/dist/assets/format-DpNe3S0A.js +0 -1
- package/web/dist/assets/git-toolbar-Cw4ljmhB.js +0 -1
- package/web/dist/assets/github-CfV5sqL0.js +0 -1
- package/web/dist/assets/index-DgWWlOLy.js +0 -13
- package/web/dist/assets/index-fBFnuvxu.css +0 -1
- package/web/dist/assets/nav-row-styles-vp2JbhuJ.js +0 -1
- package/web/dist/assets/popover-BohP6WTx.js +0 -1
- package/web/dist/assets/preview-pane-connected-qTA5KNoJ.js +0 -3
- package/web/dist/assets/preview-state-vuMviq6q.js +0 -1
- package/web/dist/assets/prompt-templates-Cubdut_C.js +0 -15
- package/web/dist/assets/repo-git-Cf4t5PD0.js +0 -1
- package/web/dist/assets/run-diff-BpkUW37Z.js +0 -3
- package/web/dist/assets/run-header-68WHf9wV.js +0 -1
- package/web/dist/assets/run-header-8GObNx6F.css +0 -1
- package/web/dist/assets/search-x-I9Q8pgUa.js +0 -1
- package/web/dist/assets/skills-DFBiAuJG.js +0 -1
- package/web/dist/assets/skills-DiVIgKeU.js +0 -1
- package/web/dist/assets/square-terminal-B6RYYieR.js +0 -1
- package/web/dist/assets/status-dot-CqTJHSP9.js +0 -1
- package/web/dist/assets/tab-link-B07Hu4QX.js +0 -1
- package/web/dist/assets/task-changes--lQF6EYf.js +0 -1
- package/web/dist/assets/task-commits-Cx0qy4DN.js +0 -1
- package/web/dist/assets/task-files-D50s-gKW.js +0 -2
- package/web/dist/assets/task-github-item-DaqmSwYT.js +0 -1
- package/web/dist/assets/task-thread-BPQ64lui.js +0 -7
- package/web/dist/assets/task-thread-zNE2Q9E-.css +0 -1
- package/web/dist/assets/textarea-D20O4Pw0.js +0 -1
- package/web/dist/assets/thread-state-DWcFMrvb.js +0 -4
- package/web/dist/assets/use-hand-to-agent-state-BLIGmwbd.css +0 -1
- package/web/dist/assets/use-hand-to-agent-state-Cy9eyyfL.js +0 -1
- package/web/dist/assets/utils-JsL3ZsJf.js +0 -64
- package/web/dist/assets/workflows-jwG7uxqi.js +0 -11
- package/web/dist/assets/zoomable-image-BJJ64KGc.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-filters.js","sourceRoot":"","sources":["../../../src/server/forge/github-filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAsB,MAAM,
|
|
1
|
+
{"version":3,"file":"github-filters.js","sourceRoot":"","sources":["../../../src/server/forge/github-filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Internal discovery result, shared by the panel and the fresh merge preflight. */
|
|
3
|
+
declare const requirementsSchema: z.ZodObject<{
|
|
4
|
+
readable: z.ZodBoolean;
|
|
5
|
+
requiredChecks: z.ZodArray<z.ZodString>;
|
|
6
|
+
requiredApprovingReviews: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
7
|
+
requiresThreadResolution: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
unresolvedThreads: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
9
|
+
allowedMergeMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
10
|
+
merge: "merge";
|
|
11
|
+
rebase: "rebase";
|
|
12
|
+
squash: "squash";
|
|
13
|
+
}>>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type GithubMergeRequirements = z.infer<typeof requirementsSchema>;
|
|
16
|
+
type GithubRunner = (args: string[]) => Promise<string>;
|
|
17
|
+
export declare function fetchGithubMergeRequirements(run: GithubRunner, owner: string, repo: string, branch: string, number: number): Promise<GithubMergeRequirements>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Internal discovery result, shared by the panel and the fresh merge preflight. */
|
|
3
|
+
const requirementsSchema = z.object({
|
|
4
|
+
readable: z.boolean(),
|
|
5
|
+
requiredChecks: z.array(z.string()),
|
|
6
|
+
requiredApprovingReviews: z.number().int().nonnegative().nullable().optional(),
|
|
7
|
+
requiresThreadResolution: z.boolean().optional(),
|
|
8
|
+
unresolvedThreads: z.number().int().nonnegative().nullable().optional(),
|
|
9
|
+
allowedMergeMethods: z.array(z.enum(['merge', 'squash', 'rebase'])).optional(),
|
|
10
|
+
});
|
|
11
|
+
const ruleSchema = z.object({ type: z.string(), parameters: z.unknown().optional() });
|
|
12
|
+
const reviewRuleSchema = z.object({
|
|
13
|
+
required_approving_review_count: z.number().int().nonnegative(),
|
|
14
|
+
require_code_owner_review: z.boolean(),
|
|
15
|
+
require_last_push_approval: z.boolean(),
|
|
16
|
+
required_review_thread_resolution: z.boolean(),
|
|
17
|
+
required_reviewers: z.array(z.object({ minimum_approvals: z.number().int().nonnegative() })).optional(),
|
|
18
|
+
allowed_merge_methods: z.array(z.enum(['merge', 'squash', 'rebase'])).optional(),
|
|
19
|
+
});
|
|
20
|
+
const checkRuleSchema = z.object({
|
|
21
|
+
required_status_checks: z.array(z.object({ context: z.string().min(1) })),
|
|
22
|
+
});
|
|
23
|
+
const branchSchema = z.object({
|
|
24
|
+
protected: z.boolean(),
|
|
25
|
+
protection: z.object({ enabled: z.boolean() }).optional(),
|
|
26
|
+
});
|
|
27
|
+
const protectionSchema = z.object({
|
|
28
|
+
required_status_checks: z.object({
|
|
29
|
+
contexts: z.array(z.string().min(1)).optional(),
|
|
30
|
+
checks: z.array(z.object({ context: z.string().min(1) })).optional(),
|
|
31
|
+
}).refine((value) => value.contexts !== undefined || value.checks !== undefined).nullish(),
|
|
32
|
+
required_pull_request_reviews: z.object({
|
|
33
|
+
required_approving_review_count: z.number().int().nonnegative(),
|
|
34
|
+
require_code_owner_reviews: z.boolean(),
|
|
35
|
+
require_last_push_approval: z.boolean(),
|
|
36
|
+
}).nullish(),
|
|
37
|
+
required_conversation_resolution: z.object({ enabled: z.boolean() }),
|
|
38
|
+
});
|
|
39
|
+
const threadsPageSchema = z.object({
|
|
40
|
+
data: z.object({ repository: z.object({ pullRequest: z.object({ reviewThreads: z.object({
|
|
41
|
+
nodes: z.array(z.object({ isResolved: z.boolean() })),
|
|
42
|
+
pageInfo: z.object({ hasNextPage: z.boolean(), endCursor: z.string().nullable() }),
|
|
43
|
+
}) }) }) }),
|
|
44
|
+
// GraphQL can return partial data together with errors; it is not confirmation.
|
|
45
|
+
errors: z.array(z.unknown()).max(0).optional(),
|
|
46
|
+
});
|
|
47
|
+
/** A capped/incomplete read stays unknown; outdated threads still require resolution. */
|
|
48
|
+
async function unresolvedThreads(run, owner, repo, number) {
|
|
49
|
+
const query = `query($owner:String!,$repo:String!,$number:Int!,$cursor:String) {
|
|
50
|
+
repository(owner:$owner,name:$repo) { pullRequest(number:$number) {
|
|
51
|
+
reviewThreads(first:100,after:$cursor) {
|
|
52
|
+
nodes { isResolved } pageInfo { hasNextPage endCursor }
|
|
53
|
+
}
|
|
54
|
+
} }
|
|
55
|
+
}`;
|
|
56
|
+
let cursor = null;
|
|
57
|
+
const seen = new Set();
|
|
58
|
+
try {
|
|
59
|
+
for (let page = 0; page < 10; page++) {
|
|
60
|
+
const args = ['api', 'graphql', '-f', `query=${query}`, '-f', `owner=${owner}`, '-f', `repo=${repo}`, '-F', `number=${number}`];
|
|
61
|
+
if (cursor !== null)
|
|
62
|
+
args.push('-f', `cursor=${cursor}`);
|
|
63
|
+
const { nodes, pageInfo } = threadsPageSchema.parse(JSON.parse(await run(args))).data.repository.pullRequest.reviewThreads;
|
|
64
|
+
const open = nodes.filter((thread) => !thread.isResolved).length;
|
|
65
|
+
if (open > 0)
|
|
66
|
+
return open;
|
|
67
|
+
if (!pageInfo.hasNextPage)
|
|
68
|
+
return 0;
|
|
69
|
+
if (!pageInfo.endCursor || seen.has(pageInfo.endCursor))
|
|
70
|
+
return null;
|
|
71
|
+
cursor = pageInfo.endCursor;
|
|
72
|
+
seen.add(cursor);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch { /* Read failures do not establish resolution. */ }
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
export async function fetchGithubMergeRequirements(run, owner, repo, branch, number) {
|
|
79
|
+
const unknown = { readable: false, requiredChecks: [] };
|
|
80
|
+
const base = `repos/${owner}/${repo}`;
|
|
81
|
+
const branchPath = `${base}/branches/${encodeURIComponent(branch)}`;
|
|
82
|
+
try {
|
|
83
|
+
const [rulesOut, branchOut] = await Promise.all([
|
|
84
|
+
run(['api', `${base}/rules/branches/${encodeURIComponent(branch)}?per_page=100`, '--paginate', '--slurp']),
|
|
85
|
+
run(['api', branchPath]).catch(() => null),
|
|
86
|
+
]);
|
|
87
|
+
// Keep all pages, including an explicitly empty rules list. A failed rules read
|
|
88
|
+
// never falls back to assuming legacy protection is the complete policy.
|
|
89
|
+
const rules = z.array(z.array(ruleSchema)).min(1).parse(JSON.parse(rulesOut)).flat();
|
|
90
|
+
const branchState = branchOut === null ? null : branchSchema.parse(JSON.parse(branchOut));
|
|
91
|
+
const legacyAbsent = branchState !== null && (branchState.protection?.enabled === false ||
|
|
92
|
+
(!branchState.protected && branchState.protection?.enabled !== true));
|
|
93
|
+
// A protection-endpoint 404 can hide permissions. Only the branch's readable
|
|
94
|
+
// legacy-disabled/unprotected metadata confirms absence, never that 404 alone.
|
|
95
|
+
const legacy = legacyAbsent ? null : protectionSchema.parse(JSON.parse(await run(['api', `${branchPath}/protection`])));
|
|
96
|
+
const checks = new Set();
|
|
97
|
+
let approvals = 0;
|
|
98
|
+
let resolveThreads = false;
|
|
99
|
+
let methods = ['merge', 'squash', 'rebase'];
|
|
100
|
+
for (const rule of rules) {
|
|
101
|
+
if (rule.type === 'required_status_checks') {
|
|
102
|
+
for (const check of checkRuleSchema.parse(rule.parameters).required_status_checks)
|
|
103
|
+
checks.add(check.context);
|
|
104
|
+
}
|
|
105
|
+
else if (rule.type === 'pull_request') {
|
|
106
|
+
const review = reviewRuleSchema.parse(rule.parameters);
|
|
107
|
+
approvals = Math.max(approvals, review.required_approving_review_count, review.require_code_owner_review || review.require_last_push_approval || review.required_reviewers?.some((group) => group.minimum_approvals > 0) ? 1 : 0);
|
|
108
|
+
resolveThreads ||= review.required_review_thread_resolution;
|
|
109
|
+
const allowed = review.allowed_merge_methods;
|
|
110
|
+
if (allowed)
|
|
111
|
+
methods = methods.filter((method) => allowed.includes(method));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (legacy) {
|
|
115
|
+
for (const context of legacy.required_status_checks?.contexts ?? [])
|
|
116
|
+
checks.add(context);
|
|
117
|
+
for (const check of legacy.required_status_checks?.checks ?? [])
|
|
118
|
+
checks.add(check.context);
|
|
119
|
+
const review = legacy.required_pull_request_reviews;
|
|
120
|
+
if (review)
|
|
121
|
+
approvals = Math.max(approvals, review.required_approving_review_count, review.require_code_owner_reviews || review.require_last_push_approval ? 1 : 0);
|
|
122
|
+
resolveThreads ||= legacy.required_conversation_resolution.enabled;
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
readable: true,
|
|
126
|
+
requiredChecks: [...checks],
|
|
127
|
+
requiredApprovingReviews: approvals,
|
|
128
|
+
requiresThreadResolution: resolveThreads,
|
|
129
|
+
unresolvedThreads: resolveThreads ? await unresolvedThreads(run, owner, repo, number) : 0,
|
|
130
|
+
allowedMergeMethods: methods,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return unknown;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=github-merge-requirements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-merge-requirements.js","sourceRoot":"","sources":["../../../src/server/forge/github-merge-requirements.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { ArchivePullRequestIdentity, MergedPullRequest } from '../../contract/index.js';
|
|
1
2
|
import { z } from 'zod';
|
|
2
|
-
import { type GithubItemResponse, type GithubProjectsData } from '../../contract/index.js';
|
|
3
|
-
import
|
|
3
|
+
import { type GithubCommentCountsData, type GithubItemResponse, type GithubProjectsData } from '../../contract/index.js';
|
|
4
|
+
import { type GithubMergeRequirements } from './github-merge-requirements.ts';
|
|
5
|
+
import type { DraftPrInput, DraftPrOutcome, ForgeAvailability, ForgeComment, ForgeCommentsData, ForgeDriver, ForgeItem, ForgeListOptions, ForgePrMergeState, ForgePrDiffResult, ForgeSearchData, ForgeTimelineEvent, ForgeTimelineEventKind } from './types.ts';
|
|
4
6
|
export declare const GH_PR_DIFF_FILE_CAP = 300;
|
|
5
7
|
export declare const GH_PR_PATCH_CAP: number;
|
|
6
8
|
export declare const GH_PR_DIFF_JSON_CAP: number;
|
|
@@ -26,33 +28,81 @@ declare const ghStatusCheckRollup: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodO
|
|
|
26
28
|
/** Exported for unit tests (#400) — collapses a zod-validated `statusCheckRollup` array down to
|
|
27
29
|
* the single enum the GitHub tab (list rows + detail badge) renders. */
|
|
28
30
|
export declare function rollupToChecks(rollup: z.infer<typeof ghStatusCheckRollup>): GithubItem['checks'];
|
|
29
|
-
/** Runs a GraphQL query
|
|
30
|
-
*
|
|
31
|
-
export type GraphqlRunner = (query: string, variables: Record<string, string>) => Promise<string>;
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export declare function parseCountsPage(out: string, root: 'issues' | 'pullRequests'): {
|
|
38
|
-
counts: Record<number, number>;
|
|
39
|
-
hasNextPage: boolean;
|
|
40
|
-
endCursor: string | null;
|
|
41
|
-
};
|
|
42
|
-
/** Comment counts for open issues and PRs as `number → count` maps. Two independent paginated
|
|
43
|
-
* queries (issues and PRs need separate cursors) run in parallel; any failure degrades the whole
|
|
44
|
-
* thing to empty maps so the tab is never held up by counts. Exported for unit tests. */
|
|
45
|
-
export declare function fetchCommentCounts(runGraphql: GraphqlRunner, owner: string, name: string, maxPages?: number): Promise<{
|
|
46
|
-
issues: Record<number, number>;
|
|
47
|
-
prs: Record<number, number>;
|
|
48
|
-
}>;
|
|
31
|
+
/** Runs a GraphQL query — injected so pagination is unit-testable without shelling to `gh`.
|
|
32
|
+
* Number variables reach GitHub typed (`-F`), strings raw (`-f`): see `ghGraphqlArgs`. */
|
|
33
|
+
export type GraphqlRunner = (query: string, variables: Record<string, string | number>) => Promise<string>;
|
|
34
|
+
/** `gh api graphql` argv. `-f` sends every value as a String, and GitHub rejects a String where
|
|
35
|
+
* the query declares `Int!` ("Could not coerce value to Int", open-mercato/cezar#1366), so a
|
|
36
|
+
* number goes through `-F`. A string never does: `-F` would read `@file` and coerce
|
|
37
|
+
* `true`/numerals, which is not what an opaque cursor or a login means. */
|
|
38
|
+
export declare function ghGraphqlArgs(query: string, variables?: Record<string, string | number>): string[];
|
|
49
39
|
/** `owner/name` → `{ owner, name }`, or null when the handle isn't a clean two-part slug. */
|
|
50
40
|
export declare function parseOwnerName(nameWithOwner: string): {
|
|
51
41
|
owner: string;
|
|
52
42
|
name: string;
|
|
53
43
|
} | null;
|
|
44
|
+
/** GitHub GraphQL rejects `first` above 100 (EXCESSIVE_PAGINATION); larger limits walk pages. */
|
|
45
|
+
export declare const GH_GRAPHQL_PAGE_MAX = 100;
|
|
46
|
+
export type ListSide = 'issues' | 'pullRequests';
|
|
47
|
+
declare const ghListNodeSchema: z.ZodObject<{
|
|
48
|
+
number: z.ZodNumber;
|
|
49
|
+
title: z.ZodString;
|
|
50
|
+
author: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
51
|
+
login: z.ZodString;
|
|
52
|
+
}, z.core.$strip>>>;
|
|
53
|
+
createdAt: z.ZodString;
|
|
54
|
+
url: z.ZodString;
|
|
55
|
+
body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
56
|
+
labels: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
57
|
+
nodes: z.ZodDefault<z.ZodArray<z.ZodNullable<z.ZodObject<{
|
|
58
|
+
name: z.ZodString;
|
|
59
|
+
color: z.ZodDefault<z.ZodString>;
|
|
60
|
+
}, z.core.$strip>>>>;
|
|
61
|
+
}, z.core.$strip>>>, z.ZodTransform<{
|
|
62
|
+
name: string;
|
|
63
|
+
color: string;
|
|
64
|
+
}[], {
|
|
65
|
+
nodes: ({
|
|
66
|
+
name: string;
|
|
67
|
+
color: string;
|
|
68
|
+
} | null)[];
|
|
69
|
+
} | null | undefined>>;
|
|
70
|
+
assignees: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
71
|
+
nodes: z.ZodDefault<z.ZodArray<z.ZodNullable<z.ZodObject<{
|
|
72
|
+
login: z.ZodString;
|
|
73
|
+
}, z.core.$strip>>>>;
|
|
74
|
+
}, z.core.$strip>>>, z.ZodTransform<{
|
|
75
|
+
login: string;
|
|
76
|
+
}[], {
|
|
77
|
+
nodes: ({
|
|
78
|
+
login: string;
|
|
79
|
+
} | null)[];
|
|
80
|
+
} | null | undefined>>;
|
|
81
|
+
isDraft: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
82
|
+
additions: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
83
|
+
deletions: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
84
|
+
}, z.core.$strip>;
|
|
85
|
+
export type ListNode = z.infer<typeof ghListNodeSchema>;
|
|
86
|
+
/**
|
|
87
|
+
* One side of the open list: up to `limit` rows from `cursor`, in requests of at most
|
|
88
|
+
* `GH_GRAPHQL_PAGE_MAX`. `nextCursor` is where the rows stop, or `null` once the side is
|
|
89
|
+
* exhausted. `done` asks for `first: 0`, which still answers `totalCount`, so an exhausted side
|
|
90
|
+
* keeps a fresh total without ever restarting from its first page (open-mercato/cezar#1366
|
|
91
|
+
* restarted it while the other side paged).
|
|
92
|
+
*/
|
|
93
|
+
export declare function fetchListConnection(run: GraphqlRunner, owner: string, name: string, side: ListSide, limit: number, cursor?: string, done?: boolean): Promise<{
|
|
94
|
+
totalCount: number;
|
|
95
|
+
nodes: ListNode[];
|
|
96
|
+
nextCursor: string | null;
|
|
97
|
+
}>;
|
|
54
98
|
export declare const GH_MAX_LIMIT = 1000;
|
|
55
|
-
|
|
99
|
+
/** Where one list page starts on each side. A done side answered `nextCursor: null` already. */
|
|
100
|
+
export type GithubPageRequest = Pick<ForgeListOptions, 'issuesCursor' | 'prsCursor' | 'issuesDone' | 'prsDone'>;
|
|
101
|
+
export declare function fetchGithub(repoRoot: string, refresh?: boolean, limit?: number, page?: GithubPageRequest): Promise<GithubData>;
|
|
102
|
+
/** A `gh` failure as one readable line. GitHub's own words come on stderr; the Node message
|
|
103
|
+
* starts with the whole argv, and a GraphQL argv is a multi-line query, so its first line is
|
|
104
|
+
* a fragment of that query rather than the reason (open-mercato/cezar#1366). */
|
|
105
|
+
export declare function ghFailureReason(err: unknown): string;
|
|
56
106
|
/** Bounded lookup already started by the list. Never launch work for an expired generation. */
|
|
57
107
|
export declare function fetchGithubProjects(repoRoot: string, generation: string): Promise<GithubProjectsData>;
|
|
58
108
|
/** Hits per search. `gh search`'s own default is 30; 50 matches the page size the incremental-
|
|
@@ -64,22 +114,8 @@ export declare const GH_SEARCH_MAX = 50;
|
|
|
64
114
|
*/
|
|
65
115
|
export declare function viewGithubItem(repoRoot: string, kind: 'issue' | 'pr', number: number, labelColors?: Record<string, string>): Promise<ForgeItem | null>;
|
|
66
116
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* Two query shapes, because they want different GitHub calls:
|
|
70
|
-
* - **A bare number** (`4507`, `#4507`) is a lookup, not a search: `gh {pr,issue} view <n>` is
|
|
71
|
-
* one cheap, state-agnostic call that finds a PR merged two years ago as readily as one opened
|
|
72
|
-
* today. GitHub's search index cannot be relied on to surface an exact number at all.
|
|
73
|
-
* - **Anything else** is a text search: `gh search {prs,issues} <query> --repo owner/name`, with
|
|
74
|
-
* `--state` deliberately OMITTED — the flag only accepts `open|closed`, and leaving it off is
|
|
75
|
-
* what searches every state.
|
|
76
|
-
*
|
|
77
|
-
* A numeric query that resolves to nothing (wrong repo, deleted, or simply a number the user meant
|
|
78
|
-
* as text) falls through to the text path rather than reporting "not found" — `4507` should still
|
|
79
|
-
* find a PR whose title contains it.
|
|
80
|
-
*
|
|
81
|
-
* Never throws: every failure lands on `{available: false, reason}`, the same quiet degrade the
|
|
82
|
-
* rest of the tab uses. Exported for unit tests.
|
|
117
|
+
* Search any state: exact numbers try a direct lookup, then text fallback; text search omits
|
|
118
|
+
* state restriction. Return availability and a reason on failure instead of throwing.
|
|
83
119
|
*/
|
|
84
120
|
export declare function searchGithubItems(repoRoot: string, kind: 'issue' | 'pr', query: string, limit?: number): Promise<ForgeSearchData>;
|
|
85
121
|
/** The event kinds rendered in v1 — an allowlist, so a new GitHub event type is dropped rather
|
|
@@ -279,6 +315,12 @@ export declare const GH_CHECKS_MAX = 100;
|
|
|
279
315
|
* without shelling out.
|
|
280
316
|
*/
|
|
281
317
|
export declare function fetchPrChecks(runGraphql: GraphqlRunner, owner: string, name: string, numbers: number[], chunkSize?: number): Promise<Record<number, ChecksGlyph>>;
|
|
318
|
+
/**
|
|
319
|
+
* Comment counts for the given issue or PR numbers, in one aliased GraphQL query. A number GitHub
|
|
320
|
+
* does not know is absent (unknown), never 0. Degrades to `{ available: false, reason }` — never a
|
|
321
|
+
* throw. Numbers are de-duplicated, validated and capped at `GITHUB_COMMENT_COUNTS_MAX`.
|
|
322
|
+
*/
|
|
323
|
+
export declare function fetchGithubCommentCounts(repoRoot: string, kind: 'issue' | 'pr', numbers: number[], refresh?: boolean): Promise<GithubCommentCountsData>;
|
|
282
324
|
/** Test hook — the per-PR checks cache would otherwise leak state across cases in one process. */
|
|
283
325
|
export declare function __clearChecksCacheForTests(): void;
|
|
284
326
|
/**
|
|
@@ -313,71 +355,27 @@ export type GithubRefStatusData = {
|
|
|
313
355
|
* client that guessed high would have every chip in a batch 400 instead of losing its tail. */
|
|
314
356
|
export declare const GH_REF_STATUS_MAX = 100;
|
|
315
357
|
/**
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
* freshness of the signal, not by how heavy a blocker it is:
|
|
320
|
-
*
|
|
321
|
-
* Read the ranking as **whose move is it**, which is the question a table is scanned for:
|
|
322
|
-
*
|
|
323
|
-
* 1. `merged` / `closed` — nobody's. Terminal, whatever checks or reviews say.
|
|
324
|
-
* 2. `draft` — the author's, and they have said so themselves.
|
|
325
|
-
* 3. `checks-pending` — the machine's. CI running means a commit was JUST pushed, the newest
|
|
326
|
-
* thing that has happened to this PR, so it outranks a requested change unconditionally.
|
|
327
|
-
* 4. `changes-requested` — the AUTHOR's, and only while that is still true: the review must be
|
|
328
|
-
* about the code that is there now, with no re-review already asked for.
|
|
329
|
-
* 5. `checks-failing` — the author's again. A reviewer cannot approve a red PR anyway.
|
|
330
|
-
* 6. `review-required` — the REVIEWER's: they have been asked, or the author has answered and
|
|
331
|
-
* the merge is now blocked on someone coming back to look.
|
|
332
|
-
* 7. `ready` — open, not a draft, nothing failing, nothing running, nobody waited on.
|
|
333
|
-
*
|
|
334
|
-
* The subtle one is (4) → (6), and it is not a preference but a data finding. `reviewDecision`
|
|
335
|
-
* stays `CHANGES_REQUESTED` after the author has responded — GitHub does not clear it until a
|
|
336
|
-
* reviewer submits again — so on its own it points at the author forever. Two signals say the ball
|
|
337
|
-
* has moved back:
|
|
338
|
-
*
|
|
339
|
-
* - **a review request made AFTER the review**, which is the author clicking re-request.
|
|
340
|
-
* Authoritative, and observed live alongside a stale `CHANGES_REQUESTED` and an EMPTY
|
|
341
|
-
* `latestReviews` — the case that has no other tell.
|
|
342
|
-
* - **a non-merge commit newer than the review**, the fallback for an author who pushed without
|
|
343
|
-
* clicking anything. Merges are excluded because GitHub's "Update branch" button writes one,
|
|
344
|
-
* dated now, that answers nothing — the reflexive click on a stale PR must not clear a
|
|
345
|
-
* rejection.
|
|
346
|
-
*
|
|
347
|
-
* The "after" in the first one is load-bearing, and its absence was a reported bug. A request that
|
|
348
|
-
* PREDATES the review is a reviewer who has not looked yet, and on a PR where several people were
|
|
349
|
-
* asked and one of them rejected it the others stay listed forever — so a bare
|
|
350
|
-
* `reviewRequests.totalCount > 0` reads a live "changes requested" as answered and hides it behind
|
|
351
|
-
* "waiting for review" (observed live: three reviewers asked at 10:28, changes requested
|
|
352
|
-
* the next day, one reviewer still pending).
|
|
353
|
-
*
|
|
354
|
-
* Either way the words change from "you owe edits" to "they owe a look", and so does the colour:
|
|
355
|
-
* danger is the author's move, info is the reviewer's.
|
|
356
|
-
*
|
|
357
|
-
* Both timestamps are optional and their ABSENCE is conservative: with no dates to compare and no
|
|
358
|
-
* re-request, a review counts as current, and the chip keeps pointing at the author.
|
|
359
|
-
*
|
|
360
|
-
* `reviewDecision` is null on a repo with no review policy, which is exactly why `ready` is not
|
|
361
|
-
* spelled "approved": on such a repo a green PR IS ready, and no approval will ever arrive — but a
|
|
362
|
-
* requested reviewer still moves it to `review-required`, because someone was explicitly asked.
|
|
358
|
+
* Derive whose action is pending: terminal, draft, pending checks, current requested changes,
|
|
359
|
+
* failing checks, review, then ready. Use dated review/work evidence; mergeability remains a
|
|
360
|
+
* separate axis.
|
|
363
361
|
*/
|
|
364
362
|
export declare function derivePrReferenceStatus(pr: {
|
|
365
363
|
state: string;
|
|
366
|
-
isDraft?: boolean | null;
|
|
367
|
-
reviewDecision?: string | null;
|
|
364
|
+
isDraft?: boolean | null | undefined;
|
|
365
|
+
reviewDecision?: string | null | undefined;
|
|
368
366
|
checks: ChecksGlyph;
|
|
369
367
|
/** ISO-8601 commit date of the head commit. `committedDate`, not a push time: GitHub's
|
|
370
368
|
* `pushedDate` is deprecated and comes back null on new PRs. */
|
|
371
|
-
headCommittedAt?: string | null;
|
|
369
|
+
headCommittedAt?: string | null | undefined;
|
|
372
370
|
/** How many parents the head commit has. 2+ means a MERGE — "Update branch" pulling the base in,
|
|
373
371
|
* not work on the review. See `answered` below. Absent reads as an ordinary commit: the push
|
|
374
372
|
* rule is the common path and must not switch off on a field GitHub declined to send. */
|
|
375
|
-
headParentCount?: number | null;
|
|
373
|
+
headParentCount?: number | null | undefined;
|
|
376
374
|
/** ISO-8601 `committedDate` of the head's FIRST parent, which on a merge is the branch's previous
|
|
377
375
|
* tip — the newest commit that is actual work. Only read when the head is a merge. */
|
|
378
|
-
headFirstParentCommittedAt?: string | null;
|
|
376
|
+
headFirstParentCommittedAt?: string | null | undefined;
|
|
379
377
|
/** ISO-8601 `submittedAt` of the most recent CHANGES_REQUESTED review, when there is one. */
|
|
380
|
-
changesRequestedAt?: string | null;
|
|
378
|
+
changesRequestedAt?: string | null | undefined;
|
|
381
379
|
/** Is a reviewer currently ON THE HOOK — `reviewRequests.totalCount > 0`? True after the author
|
|
382
380
|
* clicks re-request, which is the one thing that says so while `reviewDecision` still reads
|
|
383
381
|
* `CHANGES_REQUESTED` — but also true of a reviewer asked long ago who never looked, hence
|
|
@@ -412,7 +410,7 @@ export declare function mergeabilityOf(state: string, mergeable: string | null |
|
|
|
412
410
|
*/
|
|
413
411
|
export declare function deriveIssueReferenceStatus(issue: {
|
|
414
412
|
state: string;
|
|
415
|
-
stateReason?: string | null;
|
|
413
|
+
stateReason?: string | null | undefined;
|
|
416
414
|
}): ReferenceStatus;
|
|
417
415
|
/** What one number turned out to be, and where it stands. `kind` is the forge's answer, not the
|
|
418
416
|
* caller's guess — see `refStatusQuery`. */
|
|
@@ -456,19 +454,8 @@ export declare function __clearRefStatusCacheForTests(): void;
|
|
|
456
454
|
* without a forge behind it. */
|
|
457
455
|
export declare function __seedRefStatusCacheForTests(repoRoot: string, entries: Array<[number, ResolvedReference]>): void;
|
|
458
456
|
/**
|
|
459
|
-
*
|
|
460
|
-
*
|
|
461
|
-
* Called where cezar itself CHANGES a pull request — it merges one, it opens one — because those
|
|
462
|
-
* are the only forge changes this process can know about without asking. Everything else has to
|
|
463
|
-
* be polled (GitHub cannot push to a cockpit with no public endpoint), but waiting out a TTL to
|
|
464
|
-
* notice our own merge is a self-inflicted staleness: for up to a minute every chip would keep
|
|
465
|
-
* showing the pre-merge status of a pull request the user watched this server merge.
|
|
466
|
-
*
|
|
467
|
-
* Deleting rather than overwriting with a guessed `merged`: the forge is the authority on what a
|
|
468
|
-
* reference is, and a mutation that reports success is still not the same as having read the
|
|
469
|
-
* result. The next reader pays one query and gets the truth — after which the answer is `merged`,
|
|
470
|
-
* `recheckAfterMs` goes null, and the cockpit stops polling that batch entirely. Invalidating here
|
|
471
|
-
* therefore REDUCES long-run traffic rather than adding to it.
|
|
457
|
+
* Invalidate one reference after a known mutation. Let the next forge read establish status
|
|
458
|
+
* rather than caching a guessed result.
|
|
472
459
|
*/
|
|
473
460
|
export declare function forgetRefStatus(repoRoot: string, number: number): void;
|
|
474
461
|
/**
|
|
@@ -488,7 +475,7 @@ export declare function readCachedRefStatuses(repoRoot: string, numbers: Iterabl
|
|
|
488
475
|
prs: Record<number, ReferenceStatus>;
|
|
489
476
|
issues: Record<number, ReferenceStatus>;
|
|
490
477
|
};
|
|
491
|
-
export { refNumberFromUrl } from '../../
|
|
478
|
+
export { refNumberFromUrl } from '../../contract/index.js';
|
|
492
479
|
/**
|
|
493
480
|
* Route-facing reference status. Resolves the repo handle once, serves fresh cache entries,
|
|
494
481
|
* queries only the misses, and degrades to `{ available: false, reason }` when `gh` or the handle
|
|
@@ -534,10 +521,7 @@ export declare function buildPrBody(handoffText: string, task: string): string;
|
|
|
534
521
|
* dropping `forge.available` and blinking the sidebar item out until the background probe warmed.
|
|
535
522
|
*/
|
|
536
523
|
export declare function detectGithubCached(repoRoot: string): ForgeAvailability | null;
|
|
537
|
-
export declare function normalizeMergeState(raw: unknown, policyRaw: unknown, requirements?:
|
|
538
|
-
readable: boolean;
|
|
539
|
-
requiredChecks: string[];
|
|
540
|
-
}): ForgePrMergeState;
|
|
524
|
+
export declare function normalizeMergeState(raw: unknown, policyRaw: unknown, requirements?: GithubMergeRequirements): ForgePrMergeState;
|
|
541
525
|
export declare function evictGithubProjectCaches(repoRoot: string): void;
|
|
542
526
|
export declare function mergePreflightAllowed(current: ForgePrMergeState, overrideRules?: boolean): boolean;
|
|
543
527
|
/** owner/repo parsed out of the origin remote — feeds `viewUrl`. */
|
|
@@ -546,3 +530,6 @@ export interface GithubRepoRef {
|
|
|
546
530
|
repo: string;
|
|
547
531
|
}
|
|
548
532
|
export declare function createGithubDriver(repoRoot: string, repoRef: GithubRepoRef | null): ForgeDriver;
|
|
533
|
+
/** Strict archive authority: no partial GraphQL success, redirects, guessed identity or date. */
|
|
534
|
+
export declare function fetchMergedPullRequests(runGraphql: GraphqlRunner, identities: readonly ArchivePullRequestIdentity[]): Promise<MergedPullRequest[]>;
|
|
535
|
+
export declare function lookupMergedPullRequests(repoRoot: string, identities: ArchivePullRequestIdentity[], signal: AbortSignal): Promise<MergedPullRequest[]>;
|