@with-logic/elwood 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +571 -1
- package/CONTRIBUTING.md +3 -0
- package/README.md +6 -2
- package/dist/bridge/socket-release.d.ts +15 -0
- package/dist/bridge/socket-release.d.ts.map +1 -0
- package/dist/bridge/socket-release.js +22 -0
- package/dist/bridge/socket-release.js.map +1 -0
- package/dist/claude/composer/border.d.ts +12 -0
- package/dist/claude/composer/border.d.ts.map +1 -0
- package/dist/claude/composer/border.js +12 -0
- package/dist/claude/composer/border.js.map +1 -0
- package/dist/claude/composer/empty-input.d.ts +15 -0
- package/dist/claude/composer/empty-input.d.ts.map +1 -1
- package/dist/claude/composer/empty-input.js +30 -11
- package/dist/claude/composer/empty-input.js.map +1 -1
- package/dist/claude/composer/footer.d.ts +26 -2
- package/dist/claude/composer/footer.d.ts.map +1 -1
- package/dist/claude/composer/footer.js +29 -2
- package/dist/claude/composer/footer.js.map +1 -1
- package/dist/claude/composer/idle.d.ts +14 -0
- package/dist/claude/composer/idle.d.ts.map +1 -0
- package/dist/claude/composer/idle.js +17 -0
- package/dist/claude/composer/idle.js.map +1 -0
- package/dist/claude/composer/last.d.ts +2 -0
- package/dist/claude/composer/last.d.ts.map +1 -0
- package/dist/claude/composer/last.js +15 -0
- package/dist/claude/composer/last.js.map +1 -0
- package/dist/claude/composer/staged-input.d.ts.map +1 -1
- package/dist/claude/composer/staged-input.js +2 -1
- package/dist/claude/composer/staged-input.js.map +1 -1
- package/dist/claude/hooks/stop-failure.d.ts +15 -2
- package/dist/claude/hooks/stop-failure.d.ts.map +1 -1
- package/dist/claude/hooks/stop-failure.js +32 -9
- package/dist/claude/hooks/stop-failure.js.map +1 -1
- package/dist/claude/login/stages.d.ts.map +1 -1
- package/dist/claude/login/stages.js +2 -2
- package/dist/claude/login/stages.js.map +1 -1
- package/dist/claude/model-picker.d.ts +1 -1
- package/dist/claude/model-picker.d.ts.map +1 -1
- package/dist/claude/model-picker.js +27 -10
- package/dist/claude/model-picker.js.map +1 -1
- package/dist/claude/preflight.d.ts +1 -1
- package/dist/claude/preflight.d.ts.map +1 -1
- package/dist/claude/preflight.js +18 -12
- package/dist/claude/preflight.js.map +1 -1
- package/dist/claude/questions/navigation.d.ts.map +1 -1
- package/dist/claude/questions/navigation.js +1 -2
- package/dist/claude/questions/navigation.js.map +1 -1
- package/dist/claude/questions/screen.d.ts.map +1 -1
- package/dist/claude/questions/screen.js +10 -2
- package/dist/claude/questions/screen.js.map +1 -1
- package/dist/claude/screen-table.d.ts +8 -5
- package/dist/claude/screen-table.d.ts.map +1 -1
- package/dist/claude/screen-table.js +20 -12
- package/dist/claude/screen-table.js.map +1 -1
- package/dist/claude/session/bridge.d.ts +2 -1
- package/dist/claude/session/bridge.d.ts.map +1 -1
- package/dist/claude/session/bridge.js +3 -1
- package/dist/claude/session/bridge.js.map +1 -1
- package/dist/claude/session/build.d.ts.map +1 -1
- package/dist/claude/session/build.js +13 -11
- package/dist/claude/session/build.js.map +1 -1
- package/dist/claude/session/cleanup.d.ts +18 -0
- package/dist/claude/session/cleanup.d.ts.map +1 -0
- package/dist/claude/session/cleanup.js +10 -0
- package/dist/claude/session/cleanup.js.map +1 -0
- package/dist/claude/session/index.d.ts.map +1 -1
- package/dist/claude/session/index.js +27 -13
- package/dist/claude/session/index.js.map +1 -1
- package/dist/claude/session/instance.d.ts +7 -8
- package/dist/claude/session/instance.d.ts.map +1 -1
- package/dist/claude/session/instance.js +9 -13
- package/dist/claude/session/instance.js.map +1 -1
- package/dist/claude/session/resume.d.ts.map +1 -1
- package/dist/claude/session/resume.js +14 -5
- package/dist/claude/session/resume.js.map +1 -1
- package/dist/claude/session/transcript.js +2 -2
- package/dist/claude/session/transcript.js.map +1 -1
- package/dist/claude/simple.d.ts +1 -1
- package/dist/claude/simple.d.ts.map +1 -1
- package/dist/claude/simple.js +3 -3
- package/dist/claude/simple.js.map +1 -1
- package/dist/claude/startup-prompts.d.ts +2 -0
- package/dist/claude/startup-prompts.d.ts.map +1 -1
- package/dist/claude/startup-prompts.js +5 -1
- package/dist/claude/startup-prompts.js.map +1 -1
- package/dist/claude/transcript/cursor-io.d.ts +1 -1
- package/dist/claude/transcript/cursor-io.d.ts.map +1 -1
- package/dist/claude/transcript/cursor-io.js +1 -1
- package/dist/claude/transcript/cursor-io.js.map +1 -1
- package/dist/claude/transcript/cursor.d.ts +5 -3
- package/dist/claude/transcript/cursor.d.ts.map +1 -1
- package/dist/claude/transcript/cursor.js +18 -8
- package/dist/claude/transcript/cursor.js.map +1 -1
- package/dist/claude/transcript/drain-context.d.ts +4 -3
- package/dist/claude/transcript/drain-context.d.ts.map +1 -1
- package/dist/claude/transcript/drain-context.js.map +1 -1
- package/dist/claude/transcript/emit.d.ts +2 -1
- package/dist/claude/transcript/emit.d.ts.map +1 -1
- package/dist/claude/transcript/emit.js +1 -0
- package/dist/claude/transcript/emit.js.map +1 -1
- package/dist/claude/transcript/index.d.ts.map +1 -1
- package/dist/claude/transcript/index.js +2 -2
- package/dist/claude/transcript/index.js.map +1 -1
- package/dist/claude/transcript/warnings.d.ts +2 -1
- package/dist/claude/transcript/warnings.d.ts.map +1 -1
- package/dist/claude/transcript/warnings.js +3 -2
- package/dist/claude/transcript/warnings.js.map +1 -1
- package/dist/cli/config/effective.d.ts +2 -2
- package/dist/cli/config/effective.d.ts.map +1 -1
- package/dist/cli/config/effective.js +0 -2
- package/dist/cli/config/effective.js.map +1 -1
- package/dist/cli/interactive/spawn.d.ts +0 -2
- package/dist/cli/interactive/spawn.d.ts.map +1 -1
- package/dist/cli/interactive/spawn.js +27 -24
- package/dist/cli/interactive/spawn.js.map +1 -1
- package/dist/cli/lifecycle/index.d.ts.map +1 -1
- package/dist/cli/lifecycle/index.js +5 -3
- package/dist/cli/lifecycle/index.js.map +1 -1
- package/dist/cli/main-failure.d.ts.map +1 -1
- package/dist/cli/main-failure.js +5 -2
- package/dist/cli/main-failure.js.map +1 -1
- package/dist/cli/models/combined.d.ts.map +1 -1
- package/dist/cli/models/combined.js +3 -2
- package/dist/cli/models/combined.js.map +1 -1
- package/dist/cli/models/render.d.ts.map +1 -1
- package/dist/cli/models/render.js +2 -1
- package/dist/cli/models/render.js.map +1 -1
- package/dist/cli/output/cleanup-error.d.ts +22 -0
- package/dist/cli/output/cleanup-error.d.ts.map +1 -0
- package/dist/cli/output/cleanup-error.js +67 -0
- package/dist/cli/output/cleanup-error.js.map +1 -0
- package/dist/cli/output/types.d.ts +6 -2
- package/dist/cli/output/types.d.ts.map +1 -1
- package/dist/cli/request/agent-detect.d.ts +6 -2
- package/dist/cli/request/agent-detect.d.ts.map +1 -1
- package/dist/cli/request/agent-detect.js +14 -6
- package/dist/cli/request/agent-detect.js.map +1 -1
- package/dist/cli/request/finalize.d.ts +1 -1
- package/dist/cli/request/finalize.d.ts.map +1 -1
- package/dist/cli/request/finalize.js +4 -25
- package/dist/cli/request/finalize.js.map +1 -1
- package/dist/cli/request/index.d.ts.map +1 -1
- package/dist/cli/request/index.js +11 -5
- package/dist/cli/request/index.js.map +1 -1
- package/dist/cli/request/path-replacement.d.ts +27 -0
- package/dist/cli/request/path-replacement.d.ts.map +1 -0
- package/dist/cli/request/path-replacement.js +79 -0
- package/dist/cli/request/path-replacement.js.map +1 -0
- package/dist/cli/request/workspace.d.ts +8 -0
- package/dist/cli/request/workspace.d.ts.map +1 -0
- package/dist/cli/request/workspace.js +50 -0
- package/dist/cli/request/workspace.js.map +1 -0
- package/dist/cli/run/output.d.ts.map +1 -1
- package/dist/cli/run/output.js +2 -1
- package/dist/cli/run/output.js.map +1 -1
- package/dist/cli/run/subscribe.d.ts.map +1 -1
- package/dist/cli/run/subscribe.js +1 -1
- package/dist/cli/run/subscribe.js.map +1 -1
- package/dist/cli/session/index.d.ts +4 -4
- package/dist/cli/session/index.d.ts.map +1 -1
- package/dist/cli/session/index.js +5 -5
- package/dist/cli/session/index.js.map +1 -1
- package/dist/cli/session/launch.d.ts +2 -2
- package/dist/cli/session/launch.d.ts.map +1 -1
- package/dist/cli/session/launch.js +12 -3
- package/dist/cli/session/launch.js.map +1 -1
- package/dist/cli/session/turn-readers.d.ts +14 -0
- package/dist/cli/session/turn-readers.d.ts.map +1 -0
- package/dist/cli/session/turn-readers.js +13 -0
- package/dist/cli/session/turn-readers.js.map +1 -0
- package/dist/codex/config/default-model.d.ts +24 -0
- package/dist/codex/config/default-model.d.ts.map +1 -0
- package/dist/codex/config/default-model.js +133 -0
- package/dist/codex/config/default-model.js.map +1 -0
- package/dist/codex/config/home.d.ts +35 -0
- package/dist/codex/config/home.d.ts.map +1 -0
- package/dist/codex/config/home.js +122 -0
- package/dist/codex/config/home.js.map +1 -0
- package/dist/codex/config/lock.d.ts +17 -11
- package/dist/codex/config/lock.d.ts.map +1 -1
- package/dist/codex/config/lock.js +102 -11
- package/dist/codex/config/lock.js.map +1 -1
- package/dist/codex/config/read.d.ts +16 -0
- package/dist/codex/config/read.d.ts.map +1 -0
- package/dist/codex/config/read.js +75 -0
- package/dist/codex/config/read.js.map +1 -0
- package/dist/codex/config/restore.d.ts +17 -7
- package/dist/codex/config/restore.d.ts.map +1 -1
- package/dist/codex/config/restore.js +33 -20
- package/dist/codex/config/restore.js.map +1 -1
- package/dist/codex/config/transaction.d.ts +6 -4
- package/dist/codex/config/transaction.d.ts.map +1 -1
- package/dist/codex/config/transaction.js +4 -3
- package/dist/codex/config/transaction.js.map +1 -1
- package/dist/codex/images/clipboard-copies.d.ts +39 -0
- package/dist/codex/images/clipboard-copies.d.ts.map +1 -0
- package/dist/codex/images/clipboard-copies.js +91 -0
- package/dist/codex/images/clipboard-copies.js.map +1 -0
- package/dist/codex/model-picker.d.ts +1 -1
- package/dist/codex/model-picker.d.ts.map +1 -1
- package/dist/codex/model-picker.js +16 -6
- package/dist/codex/model-picker.js.map +1 -1
- package/dist/codex/preflight.d.ts +2 -2
- package/dist/codex/preflight.d.ts.map +1 -1
- package/dist/codex/preflight.js +28 -21
- package/dist/codex/preflight.js.map +1 -1
- package/dist/codex/pty.d.ts +25 -3
- package/dist/codex/pty.d.ts.map +1 -1
- package/dist/codex/pty.js +53 -7
- package/dist/codex/pty.js.map +1 -1
- package/dist/codex/questions/candidates.d.ts.map +1 -1
- package/dist/codex/questions/candidates.js +4 -5
- package/dist/codex/questions/candidates.js.map +1 -1
- package/dist/codex/questions/driver.js +2 -2
- package/dist/codex/questions/driver.js.map +1 -1
- package/dist/codex/questions/records.d.ts +1 -1
- package/dist/codex/questions/records.d.ts.map +1 -1
- package/dist/codex/questions/records.js +1 -3
- package/dist/codex/questions/records.js.map +1 -1
- package/dist/codex/screen/clearance.d.ts +6 -0
- package/dist/codex/screen/clearance.d.ts.map +1 -1
- package/dist/codex/screen/clearance.js +10 -0
- package/dist/codex/screen/clearance.js.map +1 -1
- package/dist/codex/screen-table.d.ts.map +1 -1
- package/dist/codex/screen-table.js +6 -2
- package/dist/codex/screen-table.js.map +1 -1
- package/dist/codex/session/bridge.d.ts +1 -0
- package/dist/codex/session/bridge.d.ts.map +1 -1
- package/dist/codex/session/bridge.js +3 -1
- package/dist/codex/session/bridge.js.map +1 -1
- package/dist/codex/session/build.d.ts.map +1 -1
- package/dist/codex/session/build.js +14 -12
- package/dist/codex/session/build.js.map +1 -1
- package/dist/codex/session/cleanup.d.ts +2 -2
- package/dist/codex/session/cleanup.d.ts.map +1 -1
- package/dist/codex/session/cleanup.js +8 -11
- package/dist/codex/session/cleanup.js.map +1 -1
- package/dist/codex/session/config-switch.d.ts +20 -0
- package/dist/codex/session/config-switch.d.ts.map +1 -0
- package/dist/codex/session/config-switch.js +42 -0
- package/dist/codex/session/config-switch.js.map +1 -0
- package/dist/codex/session/hooks.d.ts.map +1 -1
- package/dist/codex/session/hooks.js +7 -0
- package/dist/codex/session/hooks.js.map +1 -1
- package/dist/codex/session/index.d.ts.map +1 -1
- package/dist/codex/session/index.js +34 -16
- package/dist/codex/session/index.js.map +1 -1
- package/dist/codex/session/instance.d.ts +10 -12
- package/dist/codex/session/instance.d.ts.map +1 -1
- package/dist/codex/session/instance.js +42 -37
- package/dist/codex/session/instance.js.map +1 -1
- package/dist/codex/session/readiness.d.ts +11 -0
- package/dist/codex/session/readiness.d.ts.map +1 -0
- package/dist/codex/session/readiness.js +22 -0
- package/dist/codex/session/readiness.js.map +1 -0
- package/dist/codex/session/resume.d.ts.map +1 -1
- package/dist/codex/session/resume.js +9 -4
- package/dist/codex/session/resume.js.map +1 -1
- package/dist/codex/session/transcript.d.ts.map +1 -1
- package/dist/codex/session/transcript.js +12 -1
- package/dist/codex/session/transcript.js.map +1 -1
- package/dist/codex/session/turn-commit.d.ts +58 -0
- package/dist/codex/session/turn-commit.d.ts.map +1 -0
- package/dist/codex/session/turn-commit.js +97 -0
- package/dist/codex/session/turn-commit.js.map +1 -0
- package/dist/codex/session/warnings.d.ts +13 -6
- package/dist/codex/session/warnings.d.ts.map +1 -1
- package/dist/codex/session/warnings.js +36 -9
- package/dist/codex/session/warnings.js.map +1 -1
- package/dist/codex/startup-prompts.d.ts +3 -0
- package/dist/codex/startup-prompts.d.ts.map +1 -1
- package/dist/codex/startup-prompts.js +20 -13
- package/dist/codex/startup-prompts.js.map +1 -1
- package/dist/codex/startup-warnings.d.ts +2 -0
- package/dist/codex/startup-warnings.d.ts.map +1 -1
- package/dist/codex/startup-warnings.js +6 -0
- package/dist/codex/startup-warnings.js.map +1 -1
- package/dist/codex/transcript/payload.d.ts +8 -0
- package/dist/codex/transcript/payload.d.ts.map +1 -0
- package/dist/codex/transcript/payload.js +11 -0
- package/dist/codex/transcript/payload.js.map +1 -0
- package/dist/codex/transcript/rejection.d.ts +15 -0
- package/dist/codex/transcript/rejection.d.ts.map +1 -0
- package/dist/codex/transcript/rejection.js +44 -0
- package/dist/codex/transcript/rejection.js.map +1 -0
- package/dist/codex/transcript/turn-end.d.ts +8 -0
- package/dist/codex/transcript/turn-end.d.ts.map +1 -0
- package/dist/codex/transcript/turn-end.js +17 -0
- package/dist/codex/transcript/turn-end.js.map +1 -0
- package/dist/codex/transcript/watcher.d.ts +5 -2
- package/dist/codex/transcript/watcher.d.ts.map +1 -1
- package/dist/codex/transcript/watcher.js +11 -6
- package/dist/codex/transcript/watcher.js.map +1 -1
- package/dist/codex/trust-retry.d.ts +12 -0
- package/dist/codex/trust-retry.d.ts.map +1 -0
- package/dist/codex/trust-retry.js +12 -0
- package/dist/codex/trust-retry.js.map +1 -0
- package/dist/codex/update/skip-attempt.d.ts +2 -0
- package/dist/codex/update/skip-attempt.d.ts.map +1 -1
- package/dist/codex/update/skip-attempt.js +4 -0
- package/dist/codex/update/skip-attempt.js.map +1 -1
- package/dist/codex/update/tracker.d.ts +2 -0
- package/dist/codex/update/tracker.d.ts.map +1 -1
- package/dist/codex/update/tracker.js +4 -0
- package/dist/codex/update/tracker.js.map +1 -1
- package/dist/core/delay.d.ts +3 -2
- package/dist/core/delay.d.ts.map +1 -1
- package/dist/core/delay.js +3 -2
- package/dist/core/delay.js.map +1 -1
- package/dist/core/errors.d.ts +33 -4
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +51 -7
- package/dist/core/errors.js.map +1 -1
- package/dist/core/images/materialize.d.ts +13 -4
- package/dist/core/images/materialize.d.ts.map +1 -1
- package/dist/core/images/materialize.js +48 -11
- package/dist/core/images/materialize.js.map +1 -1
- package/dist/core/input/abort.d.ts +15 -0
- package/dist/core/input/abort.d.ts.map +1 -1
- package/dist/core/input/abort.js +18 -2
- package/dist/core/input/abort.js.map +1 -1
- package/dist/core/input/constants.d.ts +4 -1
- package/dist/core/input/constants.d.ts.map +1 -1
- package/dist/core/input/constants.js +4 -1
- package/dist/core/input/constants.js.map +1 -1
- package/dist/core/input/index.d.ts +1 -1
- package/dist/core/input/index.d.ts.map +1 -1
- package/dist/core/input/index.js +1 -1
- package/dist/core/input/index.js.map +1 -1
- package/dist/core/models/clearance.d.ts +38 -0
- package/dist/core/models/clearance.d.ts.map +1 -0
- package/dist/core/models/clearance.js +38 -0
- package/dist/core/models/clearance.js.map +1 -0
- package/dist/core/models/close-wait.d.ts +17 -0
- package/dist/core/models/close-wait.d.ts.map +1 -0
- package/dist/core/models/close-wait.js +44 -0
- package/dist/core/models/close-wait.js.map +1 -0
- package/dist/core/models/dialog-region.d.ts +18 -3
- package/dist/core/models/dialog-region.d.ts.map +1 -1
- package/dist/core/models/dialog-region.js +29 -40
- package/dist/core/models/dialog-region.js.map +1 -1
- package/dist/core/models/input.d.ts +10 -1
- package/dist/core/models/input.d.ts.map +1 -1
- package/dist/core/models/input.js +15 -2
- package/dist/core/models/input.js.map +1 -1
- package/dist/core/models/intervention.d.ts +2 -2
- package/dist/core/models/intervention.d.ts.map +1 -1
- package/dist/core/models/intervention.js +6 -3
- package/dist/core/models/intervention.js.map +1 -1
- package/dist/core/models/own-picker.d.ts +21 -0
- package/dist/core/models/own-picker.d.ts.map +1 -0
- package/dist/core/models/own-picker.js +21 -0
- package/dist/core/models/own-picker.js.map +1 -0
- package/dist/core/models/picker.d.ts +34 -4
- package/dist/core/models/picker.d.ts.map +1 -1
- package/dist/core/models/picker.js +50 -44
- package/dist/core/models/picker.js.map +1 -1
- package/dist/core/models/row-block.d.ts +66 -0
- package/dist/core/models/row-block.d.ts.map +1 -0
- package/dist/core/models/row-block.js +87 -0
- package/dist/core/models/row-block.js.map +1 -0
- package/dist/core/models/rows.d.ts +32 -3
- package/dist/core/models/rows.d.ts.map +1 -1
- package/dist/core/models/rows.js +48 -20
- package/dist/core/models/rows.js.map +1 -1
- package/dist/core/models/tui-screen.d.ts +6 -1
- package/dist/core/models/tui-screen.d.ts.map +1 -1
- package/dist/core/models/tui-screen.js +25 -10
- package/dist/core/models/tui-screen.js.map +1 -1
- package/dist/core/models/window.d.ts +49 -0
- package/dist/core/models/window.d.ts.map +1 -0
- package/dist/core/models/window.js +105 -0
- package/dist/core/models/window.js.map +1 -0
- package/dist/core/path-trust.d.ts +11 -0
- package/dist/core/path-trust.d.ts.map +1 -0
- package/dist/core/path-trust.js +21 -0
- package/dist/core/path-trust.js.map +1 -0
- package/dist/core/screen-facts.d.ts +3 -1
- package/dist/core/screen-facts.d.ts.map +1 -1
- package/dist/core/screen-facts.js +1 -0
- package/dist/core/screen-facts.js.map +1 -1
- package/dist/core/simple/boundary-signal.d.ts +41 -6
- package/dist/core/simple/boundary-signal.d.ts.map +1 -1
- package/dist/core/simple/boundary-signal.js +43 -3
- package/dist/core/simple/boundary-signal.js.map +1 -1
- package/dist/core/simple/close.d.ts +2 -1
- package/dist/core/simple/close.d.ts.map +1 -1
- package/dist/core/simple/close.js +10 -2
- package/dist/core/simple/close.js.map +1 -1
- package/dist/core/simple/turn-boundary.d.ts +2 -0
- package/dist/core/simple/turn-boundary.d.ts.map +1 -1
- package/dist/core/simple/turn-boundary.js +1 -1
- package/dist/core/simple/turn-boundary.js.map +1 -1
- package/dist/core/simple/turn-types.d.ts +9 -3
- package/dist/core/simple/turn-types.d.ts.map +1 -1
- package/dist/core/simple/turn-types.js +10 -2
- package/dist/core/simple/turn-types.js.map +1 -1
- package/dist/core/simple/turn.d.ts +2 -0
- package/dist/core/simple/turn.d.ts.map +1 -1
- package/dist/core/simple/turn.js +11 -5
- package/dist/core/simple/turn.js.map +1 -1
- package/dist/core/terminal-options.d.ts +17 -1
- package/dist/core/terminal-options.d.ts.map +1 -1
- package/dist/core/terminal-options.js +20 -8
- package/dist/core/terminal-options.js.map +1 -1
- package/dist/core/transcript/cursor-io.d.ts +8 -0
- package/dist/core/transcript/cursor-io.d.ts.map +1 -1
- package/dist/core/transcript/cursor-io.js +11 -5
- package/dist/core/transcript/cursor-io.js.map +1 -1
- package/dist/core/transcript/cursor.d.ts +28 -4
- package/dist/core/transcript/cursor.d.ts.map +1 -1
- package/dist/core/transcript/cursor.js +53 -7
- package/dist/core/transcript/cursor.js.map +1 -1
- package/dist/core/transcript/drain.d.ts +43 -0
- package/dist/core/transcript/drain.d.ts.map +1 -0
- package/dist/core/transcript/drain.js +67 -0
- package/dist/core/transcript/drain.js.map +1 -0
- package/dist/core/trust/abortable.d.ts +12 -0
- package/dist/core/trust/abortable.d.ts.map +1 -0
- package/dist/core/trust/abortable.js +48 -0
- package/dist/core/trust/abortable.js.map +1 -0
- package/dist/core/trust/allowlist.d.ts +2 -0
- package/dist/core/trust/allowlist.d.ts.map +1 -1
- package/dist/core/trust/allowlist.js +4 -1
- package/dist/core/trust/allowlist.js.map +1 -1
- package/dist/core/trust/blocking.d.ts +11 -0
- package/dist/core/trust/blocking.d.ts.map +1 -1
- package/dist/core/trust/blocking.js +5 -4
- package/dist/core/trust/blocking.js.map +1 -1
- package/dist/core/trust/copy.d.ts.map +1 -1
- package/dist/core/trust/copy.js +7 -1
- package/dist/core/trust/copy.js.map +1 -1
- package/dist/core/trust/deadline.d.ts +24 -0
- package/dist/core/trust/deadline.d.ts.map +1 -0
- package/dist/core/trust/deadline.js +56 -0
- package/dist/core/trust/deadline.js.map +1 -0
- package/dist/core/trust/dialog.d.ts +11 -2
- package/dist/core/trust/dialog.d.ts.map +1 -1
- package/dist/core/trust/dialog.js +12 -3
- package/dist/core/trust/dialog.js.map +1 -1
- package/dist/core/trust/options.d.ts +5 -1
- package/dist/core/trust/options.d.ts.map +1 -1
- package/dist/core/trust/options.js +8 -2
- package/dist/core/trust/options.js.map +1 -1
- package/dist/core/trust/prompts.d.ts +3 -0
- package/dist/core/trust/prompts.d.ts.map +1 -1
- package/dist/core/trust/prompts.js +2 -1
- package/dist/core/trust/prompts.js.map +1 -1
- package/dist/core/trust/responder.d.ts +10 -5
- package/dist/core/trust/responder.d.ts.map +1 -1
- package/dist/core/trust/responder.js +37 -33
- package/dist/core/trust/responder.js.map +1 -1
- package/dist/core/trust/step.d.ts +67 -0
- package/dist/core/trust/step.d.ts.map +1 -0
- package/dist/core/trust/step.js +45 -0
- package/dist/core/trust/step.js.map +1 -0
- package/dist/core/trust/types.d.ts +21 -1
- package/dist/core/trust/types.d.ts.map +1 -1
- package/dist/core/trust/types.js +25 -1
- package/dist/core/trust/types.js.map +1 -1
- package/dist/core/trust/view.d.ts +2 -0
- package/dist/core/trust/view.d.ts.map +1 -1
- package/dist/core/trust/view.js +3 -0
- package/dist/core/trust/view.js.map +1 -1
- package/dist/core/trust/write.d.ts +31 -6
- package/dist/core/trust/write.d.ts.map +1 -1
- package/dist/core/trust/write.js +95 -80
- package/dist/core/trust/write.js.map +1 -1
- package/dist/core/turn-state.d.ts +18 -4
- package/dist/core/turn-state.d.ts.map +1 -1
- package/dist/core/turn-state.js +47 -25
- package/dist/core/turn-state.js.map +1 -1
- package/dist/core/warnings/images.d.ts +22 -0
- package/dist/core/warnings/images.d.ts.map +1 -0
- package/dist/core/warnings/images.js +3 -0
- package/dist/core/warnings/images.js.map +1 -0
- package/dist/core/warnings/index.d.ts +3 -2
- package/dist/core/warnings/index.d.ts.map +1 -1
- package/dist/core/warnings/lifecycle.d.ts +35 -4
- package/dist/core/warnings/lifecycle.d.ts.map +1 -1
- package/dist/core/warnings/lifecycle.js +1 -1
- package/dist/core/warnings/update.d.ts +8 -4
- package/dist/core/warnings/update.d.ts.map +1 -1
- package/dist/core/warnings/update.js +21 -6
- package/dist/core/warnings/update.js.map +1 -1
- package/dist/pty/exit-latch.d.ts +28 -0
- package/dist/pty/exit-latch.d.ts.map +1 -0
- package/dist/pty/exit-latch.js +50 -0
- package/dist/pty/exit-latch.js.map +1 -0
- package/dist/runtime/exit-status.d.ts +7 -0
- package/dist/runtime/exit-status.d.ts.map +1 -0
- package/dist/runtime/exit-status.js +13 -0
- package/dist/runtime/exit-status.js.map +1 -0
- package/dist/runtime/home-guard/index.d.ts +45 -0
- package/dist/runtime/home-guard/index.d.ts.map +1 -0
- package/dist/runtime/home-guard/index.js +69 -0
- package/dist/runtime/home-guard/index.js.map +1 -0
- package/dist/runtime/loop-restore.d.ts +9 -9
- package/dist/runtime/loop-restore.d.ts.map +1 -1
- package/dist/runtime/loop-restore.js +10 -10
- package/dist/runtime/loop-restore.js.map +1 -1
- package/dist/runtime/probe/capped-buffer.d.ts +16 -0
- package/dist/runtime/probe/capped-buffer.d.ts.map +1 -0
- package/dist/runtime/probe/capped-buffer.js +38 -0
- package/dist/runtime/probe/capped-buffer.js.map +1 -0
- package/dist/runtime/probe/capture.d.ts +55 -0
- package/dist/runtime/probe/capture.d.ts.map +1 -0
- package/dist/runtime/probe/capture.js +71 -0
- package/dist/runtime/probe/capture.js.map +1 -0
- package/dist/runtime/{probe-cleanup.d.ts → probe/cleanup.d.ts} +2 -2
- package/dist/runtime/probe/cleanup.d.ts.map +1 -0
- package/dist/runtime/{probe-cleanup.js → probe/cleanup.js} +3 -3
- package/dist/runtime/probe/cleanup.js.map +1 -0
- package/dist/runtime/probe/directory-key.d.ts +26 -0
- package/dist/runtime/probe/directory-key.d.ts.map +1 -0
- package/dist/runtime/probe/directory-key.js +46 -0
- package/dist/runtime/probe/directory-key.js.map +1 -0
- package/dist/runtime/probe/index.d.ts +25 -0
- package/dist/runtime/probe/index.d.ts.map +1 -0
- package/dist/runtime/probe/index.js +153 -0
- package/dist/runtime/probe/index.js.map +1 -0
- package/dist/runtime/probe/lookup.d.ts +12 -0
- package/dist/runtime/probe/lookup.d.ts.map +1 -0
- package/dist/runtime/probe/lookup.js +29 -0
- package/dist/runtime/probe/lookup.js.map +1 -0
- package/dist/runtime/probe/named-pipes.d.ts +35 -0
- package/dist/runtime/probe/named-pipes.d.ts.map +1 -0
- package/dist/runtime/probe/named-pipes.js +167 -0
- package/dist/runtime/probe/named-pipes.js.map +1 -0
- package/dist/runtime/probe/private-directory.d.ts +14 -0
- package/dist/runtime/probe/private-directory.d.ts.map +1 -0
- package/dist/runtime/probe/private-directory.js +50 -0
- package/dist/runtime/probe/private-directory.js.map +1 -0
- package/dist/runtime/probe/results.d.ts +14 -0
- package/dist/runtime/probe/results.d.ts.map +1 -0
- package/dist/runtime/probe/results.js +38 -0
- package/dist/runtime/probe/results.js.map +1 -0
- package/dist/runtime/probe/slots.d.ts +17 -0
- package/dist/runtime/probe/slots.d.ts.map +1 -0
- package/dist/runtime/probe/slots.js +35 -0
- package/dist/runtime/probe/slots.js.map +1 -0
- package/dist/runtime/probe/start.d.ts +64 -0
- package/dist/runtime/probe/start.d.ts.map +1 -0
- package/dist/runtime/probe/start.js +80 -0
- package/dist/runtime/probe/start.js.map +1 -0
- package/dist/runtime/probe-cache.d.ts +19 -0
- package/dist/runtime/probe-cache.d.ts.map +1 -0
- package/dist/runtime/probe-cache.js +56 -0
- package/dist/runtime/probe-cache.js.map +1 -0
- package/dist/runtime/readiness/initial-ready.d.ts +31 -5
- package/dist/runtime/readiness/initial-ready.d.ts.map +1 -1
- package/dist/runtime/readiness/initial-ready.js +64 -18
- package/dist/runtime/readiness/initial-ready.js.map +1 -1
- package/dist/runtime/seams.d.ts +14 -2
- package/dist/runtime/seams.d.ts.map +1 -1
- package/dist/runtime/seams.js +2 -2
- package/dist/runtime/seams.js.map +1 -1
- package/dist/runtime/session/base.d.ts.map +1 -1
- package/dist/runtime/session/base.js +9 -6
- package/dist/runtime/session/base.js.map +1 -1
- package/dist/runtime/session/commands.d.ts +6 -4
- package/dist/runtime/session/commands.d.ts.map +1 -1
- package/dist/runtime/session/commands.js +5 -2
- package/dist/runtime/session/commands.js.map +1 -1
- package/dist/runtime/session/frames.d.ts +12 -2
- package/dist/runtime/session/frames.d.ts.map +1 -1
- package/dist/runtime/session/frames.js +10 -3
- package/dist/runtime/session/frames.js.map +1 -1
- package/dist/runtime/session/image-attach.js +7 -2
- package/dist/runtime/session/image-attach.js.map +1 -1
- package/dist/runtime/session/launch-directory.d.ts +33 -0
- package/dist/runtime/session/launch-directory.d.ts.map +1 -0
- package/dist/runtime/session/launch-directory.js +84 -0
- package/dist/runtime/session/launch-directory.js.map +1 -0
- package/dist/runtime/session/lifecycle.d.ts +3 -3
- package/dist/runtime/session/lifecycle.d.ts.map +1 -1
- package/dist/runtime/session/lifecycle.js +1 -5
- package/dist/runtime/session/lifecycle.js.map +1 -1
- package/dist/runtime/session/loops.d.ts +1 -1
- package/dist/runtime/session/loops.d.ts.map +1 -1
- package/dist/runtime/session/loops.js +6 -3
- package/dist/runtime/session/loops.js.map +1 -1
- package/dist/runtime/session/picker-cleanup.d.ts +6 -21
- package/dist/runtime/session/picker-cleanup.d.ts.map +1 -1
- package/dist/runtime/session/picker-cleanup.js +19 -31
- package/dist/runtime/session/picker-cleanup.js.map +1 -1
- package/dist/runtime/session/picker-hold.d.ts +24 -0
- package/dist/runtime/session/picker-hold.d.ts.map +1 -0
- package/dist/runtime/session/picker-hold.js +42 -0
- package/dist/runtime/session/picker-hold.js.map +1 -0
- package/dist/runtime/session/picker.d.ts +15 -13
- package/dist/runtime/session/picker.d.ts.map +1 -1
- package/dist/runtime/session/picker.js +49 -27
- package/dist/runtime/session/picker.js.map +1 -1
- package/dist/runtime/session/prepare-state.d.ts +6 -0
- package/dist/runtime/session/prepare-state.d.ts.map +1 -0
- package/dist/runtime/session/prepare-state.js +14 -0
- package/dist/runtime/session/prepare-state.js.map +1 -0
- package/dist/runtime/session/questions.d.ts +2 -2
- package/dist/runtime/session/questions.d.ts.map +1 -1
- package/dist/runtime/session/questions.js.map +1 -1
- package/dist/runtime/session/readiness.d.ts +14 -5
- package/dist/runtime/session/readiness.d.ts.map +1 -1
- package/dist/runtime/session/readiness.js +22 -6
- package/dist/runtime/session/readiness.js.map +1 -1
- package/dist/runtime/session/reap.d.ts +11 -7
- package/dist/runtime/session/reap.d.ts.map +1 -1
- package/dist/runtime/session/reap.js +16 -10
- package/dist/runtime/session/reap.js.map +1 -1
- package/dist/runtime/session/runtime-cleanup.d.ts +18 -0
- package/dist/runtime/session/runtime-cleanup.d.ts.map +1 -0
- package/dist/runtime/session/runtime-cleanup.js +18 -0
- package/dist/runtime/session/runtime-cleanup.js.map +1 -0
- package/dist/runtime/session/session-input.d.ts +32 -0
- package/dist/runtime/session/session-input.d.ts.map +1 -0
- package/dist/runtime/session/{picker-input.js → session-input.js} +35 -7
- package/dist/runtime/session/session-input.js.map +1 -0
- package/dist/runtime/session/shutdown-binding.d.ts +12 -1
- package/dist/runtime/session/shutdown-binding.d.ts.map +1 -1
- package/dist/runtime/session/shutdown-binding.js +33 -1
- package/dist/runtime/session/shutdown-binding.js.map +1 -1
- package/dist/runtime/session/shutdown-cleanup.d.ts +17 -0
- package/dist/runtime/session/shutdown-cleanup.d.ts.map +1 -0
- package/dist/runtime/session/shutdown-cleanup.js +49 -0
- package/dist/runtime/session/shutdown-cleanup.js.map +1 -0
- package/dist/runtime/session/shutdown.d.ts +3 -2
- package/dist/runtime/session/shutdown.d.ts.map +1 -1
- package/dist/runtime/session/shutdown.js +13 -24
- package/dist/runtime/session/shutdown.js.map +1 -1
- package/dist/runtime/shell-quote.d.ts +8 -0
- package/dist/runtime/shell-quote.d.ts.map +1 -0
- package/dist/runtime/shell-quote.js +10 -0
- package/dist/runtime/shell-quote.js.map +1 -0
- package/dist/runtime/shell.d.ts +36 -12
- package/dist/runtime/shell.d.ts.map +1 -1
- package/dist/runtime/shell.js +90 -14
- package/dist/runtime/shell.js.map +1 -1
- package/dist/runtime/shutdown/coalesce.d.ts +15 -0
- package/dist/runtime/shutdown/coalesce.d.ts.map +1 -0
- package/dist/runtime/shutdown/coalesce.js +42 -0
- package/dist/runtime/shutdown/coalesce.js.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/failures.d.ts +24 -0
- package/dist/runtime/shutdown/detached-sweep/failures.d.ts.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/failures.js +32 -0
- package/dist/runtime/shutdown/detached-sweep/failures.js.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/index.d.ts +55 -0
- package/dist/runtime/shutdown/detached-sweep/index.d.ts.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/index.js +129 -0
- package/dist/runtime/shutdown/detached-sweep/index.js.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/kill.d.ts +37 -0
- package/dist/runtime/shutdown/detached-sweep/kill.d.ts.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/kill.js +87 -0
- package/dist/runtime/shutdown/detached-sweep/kill.js.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/record.d.ts +67 -0
- package/dist/runtime/shutdown/detached-sweep/record.d.ts.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/record.js +111 -0
- package/dist/runtime/shutdown/detached-sweep/record.js.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/rounds.d.ts +78 -0
- package/dist/runtime/shutdown/detached-sweep/rounds.d.ts.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/rounds.js +116 -0
- package/dist/runtime/shutdown/detached-sweep/rounds.js.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/survivors.d.ts +40 -0
- package/dist/runtime/shutdown/detached-sweep/survivors.d.ts.map +1 -0
- package/dist/runtime/shutdown/detached-sweep/survivors.js +112 -0
- package/dist/runtime/shutdown/detached-sweep/survivors.js.map +1 -0
- package/dist/runtime/shutdown/leader-group.d.ts +29 -0
- package/dist/runtime/shutdown/leader-group.d.ts.map +1 -0
- package/dist/runtime/shutdown/leader-group.js +35 -0
- package/dist/runtime/shutdown/leader-group.js.map +1 -0
- package/dist/runtime/shutdown/native-read-admission.d.ts +13 -0
- package/dist/runtime/shutdown/native-read-admission.d.ts.map +1 -0
- package/dist/runtime/shutdown/native-read-admission.js +64 -0
- package/dist/runtime/shutdown/native-read-admission.js.map +1 -0
- package/dist/runtime/shutdown/process-table.d.ts +80 -0
- package/dist/runtime/shutdown/process-table.d.ts.map +1 -0
- package/dist/runtime/shutdown/process-table.js +147 -0
- package/dist/runtime/shutdown/process-table.js.map +1 -0
- package/dist/runtime/shutdown/process-tree-ops.d.ts +39 -0
- package/dist/runtime/shutdown/process-tree-ops.d.ts.map +1 -0
- package/dist/runtime/shutdown/process-tree-ops.js +73 -0
- package/dist/runtime/shutdown/process-tree-ops.js.map +1 -0
- package/dist/runtime/shutdown/read-timeout.d.ts +4 -0
- package/dist/runtime/shutdown/read-timeout.d.ts.map +1 -0
- package/dist/runtime/shutdown/read-timeout.js +6 -0
- package/dist/runtime/shutdown/read-timeout.js.map +1 -0
- package/dist/runtime/shutdown/reap-queue.d.ts +10 -0
- package/dist/runtime/shutdown/reap-queue.d.ts.map +1 -0
- package/dist/runtime/shutdown/reap-queue.js +29 -0
- package/dist/runtime/shutdown/reap-queue.js.map +1 -0
- package/dist/runtime/shutdown/reap-tree.d.ts +42 -32
- package/dist/runtime/shutdown/reap-tree.d.ts.map +1 -1
- package/dist/runtime/shutdown/reap-tree.js +78 -71
- package/dist/runtime/shutdown/reap-tree.js.map +1 -1
- package/dist/runtime/shutdown/shared-daemon.d.ts +59 -0
- package/dist/runtime/shutdown/shared-daemon.d.ts.map +1 -0
- package/dist/runtime/shutdown/shared-daemon.js +139 -0
- package/dist/runtime/shutdown/shared-daemon.js.map +1 -0
- package/dist/runtime/shutdown/teardown.d.ts +15 -0
- package/dist/runtime/shutdown/teardown.d.ts.map +1 -1
- package/dist/runtime/shutdown/teardown.js +19 -6
- package/dist/runtime/shutdown/teardown.js.map +1 -1
- package/dist/runtime/shutdown/terminate.d.ts +21 -1
- package/dist/runtime/shutdown/terminate.d.ts.map +1 -1
- package/dist/runtime/shutdown/terminate.js +83 -56
- package/dist/runtime/shutdown/terminate.js.map +1 -1
- package/dist/runtime/startup/buffer.d.ts +26 -7
- package/dist/runtime/startup/buffer.d.ts.map +1 -1
- package/dist/runtime/startup/buffer.js +42 -19
- package/dist/runtime/startup/buffer.js.map +1 -1
- package/dist/runtime/startup/cleanup.d.ts +37 -11
- package/dist/runtime/startup/cleanup.d.ts.map +1 -1
- package/dist/runtime/startup/cleanup.js +55 -25
- package/dist/runtime/startup/cleanup.js.map +1 -1
- package/dist/runtime/startup/index.d.ts +13 -1
- package/dist/runtime/startup/index.d.ts.map +1 -1
- package/dist/runtime/startup/index.js +38 -6
- package/dist/runtime/startup/index.js.map +1 -1
- package/dist/runtime/stream-marker.d.ts +17 -0
- package/dist/runtime/stream-marker.d.ts.map +1 -0
- package/dist/runtime/stream-marker.js +35 -0
- package/dist/runtime/stream-marker.js.map +1 -0
- package/dist/runtime/update/acquire.d.ts +16 -0
- package/dist/runtime/update/acquire.d.ts.map +1 -0
- package/dist/runtime/update/acquire.js +62 -0
- package/dist/runtime/update/acquire.js.map +1 -0
- package/dist/runtime/update/completion.d.ts +12 -0
- package/dist/runtime/update/completion.d.ts.map +1 -0
- package/dist/runtime/update/completion.js +50 -0
- package/dist/runtime/update/completion.js.map +1 -0
- package/dist/runtime/update/lock.d.ts +1 -1
- package/dist/runtime/update/lock.d.ts.map +1 -1
- package/dist/runtime/update/lock.js +21 -38
- package/dist/runtime/update/lock.js.map +1 -1
- package/dist/runtime/update/once.d.ts +16 -13
- package/dist/runtime/update/once.d.ts.map +1 -1
- package/dist/runtime/update/once.js +41 -31
- package/dist/runtime/update/once.js.map +1 -1
- package/dist/runtime/update/owner.js +1 -1
- package/dist/runtime/update/retained-lease.js +1 -1
- package/dist/runtime/update/waiting.d.ts +14 -1
- package/dist/runtime/update/waiting.d.ts.map +1 -1
- package/dist/runtime/update/waiting.js +20 -12
- package/dist/runtime/update/waiting.js.map +1 -1
- package/dist/state/canonical-path.d.ts +5 -0
- package/dist/state/canonical-path.d.ts.map +1 -1
- package/dist/state/canonical-path.js +11 -5
- package/dist/state/canonical-path.js.map +1 -1
- package/dist/state/directories.d.ts +31 -1
- package/dist/state/directories.d.ts.map +1 -1
- package/dist/state/directories.js +75 -13
- package/dist/state/directories.js.map +1 -1
- package/dist/state/files.d.ts +3 -3
- package/dist/state/files.d.ts.map +1 -1
- package/dist/state/files.js +4 -10
- package/dist/state/files.js.map +1 -1
- package/dist/state/launch-ownership.d.ts +4 -2
- package/dist/state/launch-ownership.d.ts.map +1 -1
- package/dist/state/launch-ownership.js +18 -10
- package/dist/state/launch-ownership.js.map +1 -1
- package/dist/state/launch-publication.d.ts +7 -1
- package/dist/state/launch-publication.d.ts.map +1 -1
- package/dist/state/launch-publication.js +14 -2
- package/dist/state/launch-publication.js.map +1 -1
- package/dist/state/loop-store.d.ts +15 -4
- package/dist/state/loop-store.d.ts.map +1 -1
- package/dist/state/loop-store.js +13 -7
- package/dist/state/loop-store.js.map +1 -1
- package/dist/state/preparation/created-directories.d.ts +13 -0
- package/dist/state/preparation/created-directories.d.ts.map +1 -0
- package/dist/state/preparation/created-directories.js +45 -0
- package/dist/state/preparation/created-directories.js.map +1 -0
- package/dist/state/preparation/ignore-sync.d.ts +9 -0
- package/dist/state/preparation/ignore-sync.d.ts.map +1 -0
- package/dist/state/preparation/ignore-sync.js +47 -0
- package/dist/state/preparation/ignore-sync.js.map +1 -0
- package/dist/state/preparation/index.d.ts +25 -0
- package/dist/state/preparation/index.d.ts.map +1 -0
- package/dist/state/preparation/index.js +31 -0
- package/dist/state/preparation/index.js.map +1 -0
- package/dist/state/preparation/install-ignore.d.ts +6 -0
- package/dist/state/preparation/install-ignore.d.ts.map +1 -0
- package/dist/state/preparation/install-ignore.js +87 -0
- package/dist/state/preparation/install-ignore.js.map +1 -0
- package/dist/state/preparation/rollback-parent.d.ts +3 -0
- package/dist/state/preparation/rollback-parent.d.ts.map +1 -0
- package/dist/state/preparation/rollback-parent.js +18 -0
- package/dist/state/preparation/rollback-parent.js.map +1 -0
- package/dist/state/preparation/root-trust.d.ts +3 -0
- package/dist/state/preparation/root-trust.d.ts.map +1 -0
- package/dist/state/preparation/root-trust.js +70 -0
- package/dist/state/preparation/root-trust.js.map +1 -0
- package/dist/state/private-session.d.ts +5 -2
- package/dist/state/private-session.d.ts.map +1 -1
- package/dist/state/private-session.js +21 -9
- package/dist/state/private-session.js.map +1 -1
- package/dist/state/root.d.ts +25 -0
- package/dist/state/root.d.ts.map +1 -0
- package/dist/state/root.js +84 -0
- package/dist/state/root.js.map +1 -0
- package/dist/state/runtime-paths.d.ts +5 -4
- package/dist/state/runtime-paths.d.ts.map +1 -1
- package/dist/state/runtime-paths.js +5 -4
- package/dist/state/runtime-paths.js.map +1 -1
- package/dist/state/setup-failure.d.ts +3 -0
- package/dist/state/setup-failure.d.ts.map +1 -0
- package/dist/state/setup-failure.js +13 -0
- package/dist/state/setup-failure.js.map +1 -0
- package/dist/state/socket-home.d.ts +17 -12
- package/dist/state/socket-home.d.ts.map +1 -1
- package/dist/state/socket-home.js +31 -14
- package/dist/state/socket-home.js.map +1 -1
- package/dist/state/store.d.ts +1 -3
- package/dist/state/store.d.ts.map +1 -1
- package/dist/state/store.js +3 -18
- package/dist/state/store.js.map +1 -1
- package/dist/terminal/cursor.d.ts +1 -1
- package/dist/terminal/cursor.d.ts.map +1 -1
- package/dist/terminal/cursor.js +36 -1
- package/dist/terminal/cursor.js.map +1 -1
- package/dist/terminal/headless.d.ts +1 -1
- package/dist/terminal/headless.d.ts.map +1 -1
- package/dist/terminal/headless.js +1 -3
- package/dist/terminal/headless.js.map +1 -1
- package/docs/cli-behavior.md +1218 -28
- package/docs/cli.md +2 -0
- package/docs/codex/cli.md +4 -2
- package/docs/embedding.md +7 -0
- package/docs/performance/terminal-engines.md +88 -0
- package/docs/performance.md +120 -0
- package/package.json +4 -4
- package/prd/04-architecture.md +32 -0
- package/prd/05-api/5.1-starting-claude.md +17 -1
- package/prd/05-api/5.2-resuming-claude.md +5 -0
- package/prd/05-api/5.3-claude-session-api.md +267 -40
- package/prd/05-api/5.4-events.md +77 -10
- package/prd/05-api/5.5-starting-codex.md +3 -1
- package/prd/05-api/5.6-resuming-codex.md +4 -1
- package/prd/05-api/5.7-codex-session-api.md +87 -5
- package/prd/05-api/5.8-session-api.md +32 -1
- package/prd/06-claude-hook-bridge.md +2 -0
- package/prd/07a-codex-hook-bridge.md +5 -0
- package/prd/08-state.md +63 -7
- package/prd/09-lifecycle.md +126 -35
- package/prd/10-errors.md +11 -4
- package/prd/12-e2e.md +81 -0
- package/prd/12a-cli.md +63 -9
- package/prd/14-conformance.md +52 -35
- package/prd/16-maintainer-review.md +11 -0
- package/dist/claude/model-composer.d.ts +0 -2
- package/dist/claude/model-composer.d.ts.map +0 -1
- package/dist/claude/model-composer.js +0 -12
- package/dist/claude/model-composer.js.map +0 -1
- package/dist/claude/transcript/drain.d.ts +0 -33
- package/dist/claude/transcript/drain.d.ts.map +0 -1
- package/dist/claude/transcript/drain.js +0 -56
- package/dist/claude/transcript/drain.js.map +0 -1
- package/dist/codex/session/cli-exit.d.ts +0 -24
- package/dist/codex/session/cli-exit.d.ts.map +0 -1
- package/dist/codex/session/cli-exit.js +0 -43
- package/dist/codex/session/cli-exit.js.map +0 -1
- package/dist/codex/transcript/drain.d.ts +0 -30
- package/dist/codex/transcript/drain.d.ts.map +0 -1
- package/dist/codex/transcript/drain.js +0 -48
- package/dist/codex/transcript/drain.js.map +0 -1
- package/dist/runtime/probe-cleanup.d.ts.map +0 -1
- package/dist/runtime/probe-cleanup.js.map +0 -1
- package/dist/runtime/probe.d.ts +0 -11
- package/dist/runtime/probe.d.ts.map +0 -1
- package/dist/runtime/probe.js +0 -113
- package/dist/runtime/probe.js.map +0 -1
- package/dist/runtime/session/foreign-picker.d.ts +0 -8
- package/dist/runtime/session/foreign-picker.d.ts.map +0 -1
- package/dist/runtime/session/foreign-picker.js +0 -18
- package/dist/runtime/session/foreign-picker.js.map +0 -1
- package/dist/runtime/session/picker-input.d.ts +0 -17
- package/dist/runtime/session/picker-input.d.ts.map +0 -1
- package/dist/runtime/session/picker-input.js.map +0 -1
|
@@ -5,15 +5,18 @@ import { checkedInputBytes } from "../../core/control-queue/budget.js";
|
|
|
5
5
|
import { applyCodexHighTrust } from "../../core/high-trust.js";
|
|
6
6
|
import { queuePersonaMessage } from "../../core/persona.js";
|
|
7
7
|
import { codexReasoningEfforts, validateReasoningEffort } from "../../core/reasoning-effort.js";
|
|
8
|
+
import { assertLaunchDirectory, recheckLaunchDirectoryOnFailure, resolveLaunchDirectory, } from "../../runtime/session/launch-directory.js";
|
|
9
|
+
import { prepareLaunchState } from "../../runtime/session/prepare-state.js";
|
|
8
10
|
import { withSocketHomeCleanup } from "../../runtime/startup/cleanup.js";
|
|
9
11
|
import { canonicalStatePath } from "../../state/canonical-path.js";
|
|
10
12
|
import { safeSessionDir } from "../../state/files.js";
|
|
11
13
|
import { codexLaunchPosture, withCodexLaunch } from "../../state/launch-posture.js";
|
|
12
14
|
import { sessionRuntime } from "../../state/runtime-paths.js";
|
|
13
|
-
import {
|
|
15
|
+
import { releaseLaunchSocket } from "../../state/socket-home.js";
|
|
14
16
|
import { withLaunchOwnership } from "../../state/startup-ownership.js";
|
|
15
|
-
import { createSessionRecord, defaultStateDir
|
|
17
|
+
import { createSessionRecord, defaultStateDir } from "../../state/store.js";
|
|
16
18
|
import * as preflight from "../preflight.js";
|
|
19
|
+
import { codexHomeReportPath, explainCodexStartFailure } from "../pty.js";
|
|
17
20
|
import { buildCodexSession } from "./build.js";
|
|
18
21
|
export { resetCodexSessionSeamsForTests, setCodexHookBridgeFactoryForTests, } from "./bridge.js";
|
|
19
22
|
/**
|
|
@@ -34,18 +37,30 @@ export async function startCodexWithId(rawOptions, elwoodSessionId) {
|
|
|
34
37
|
// PTY spawn all agree. `highTrust` expands to its concrete posture (or rejects a
|
|
35
38
|
// conflicting explicit one) HERE, before preflight, so the persisted record and the
|
|
36
39
|
// launch command both carry the expanded posture (C-API-54).
|
|
37
|
-
const options = applyCodexHighTrust({
|
|
40
|
+
const options = applyCodexHighTrust({
|
|
41
|
+
...rawOptions,
|
|
42
|
+
cwd: resolveLaunchDirectory("codex", rawOptions.cwd),
|
|
43
|
+
});
|
|
38
44
|
checkedInputBytes(options.persona ?? "");
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
const stateDirPath = resolve(options.stateDir ?? defaultStateDir(options.cwd));
|
|
46
|
+
// Before the default state path, which is under `cwd`, is inspected: a bad `cwd` is the error.
|
|
47
|
+
await assertLaunchDirectory("codex", options.cwd);
|
|
48
|
+
const stateDir = canonicalStatePath(stateDirPath);
|
|
49
|
+
const warning = await recheckLaunchDirectoryOnFailure("codex", options.cwd, () => preflight.preflightCodex(options.strictVersionCheck ?? false, options.autoupdate ?? false, options.cwd));
|
|
50
|
+
const session = await recheckLaunchDirectoryOnFailure("codex", options.cwd, () => {
|
|
51
|
+
prepareLaunchState("codex", stateDir, {
|
|
52
|
+
cwd: options.cwd,
|
|
53
|
+
isImplicitDefaultStateDir: options.stateDir === undefined,
|
|
54
|
+
elwoodSessionId,
|
|
55
|
+
});
|
|
56
|
+
const createdRecord = createSessionRecord({
|
|
57
|
+
cwd: options.cwd,
|
|
58
|
+
id: elwoodSessionId,
|
|
59
|
+
adapter: "codex",
|
|
60
|
+
});
|
|
61
|
+
const record = withCodexLaunch(createdRecord, codexLaunchPosture(options));
|
|
62
|
+
return startCodexFromRecord(record, stateDir, options, false, warning);
|
|
46
63
|
});
|
|
47
|
-
const record = withCodexLaunch(createdRecord, codexLaunchPosture(options));
|
|
48
|
-
const session = await startCodexFromRecord(record, stateDir, options, false, warning);
|
|
49
64
|
return queuePersonaMessage(session, options.persona, session.closing.signal);
|
|
50
65
|
}
|
|
51
66
|
export function startCodexFromRecord(record, stateDir, options, resumed, preflightWarning, ownership) {
|
|
@@ -56,16 +71,17 @@ export function startCodexFromRecord(record, stateDir, options, resumed, preflig
|
|
|
56
71
|
// `sessionRuntime` ensures the session's STABLE out-of-tree home and reserves a FRESH
|
|
57
72
|
// per-launch socket PATH inside it; the socket is bound later, by `bridge.start()`
|
|
58
73
|
// (after the state/runtime files are written). Wrap the WHOLE build so ANY failure
|
|
59
|
-
// before the session takes ownership
|
|
60
|
-
// shared home
|
|
61
|
-
// to the returned session
|
|
74
|
+
// before the session takes ownership releases THIS launch's own socket file, and the
|
|
75
|
+
// shared home only if no concurrent launch's socket is in it (§8.1, §9.1). On success
|
|
76
|
+
// ownership transfers to the returned session; teardown removes the whole home.
|
|
62
77
|
return withLaunchOwnership(safeSessionDir(stateDir, record.elwoodSessionId), ownership, (owner, activate) => {
|
|
63
78
|
const runtime = sessionRuntime({
|
|
64
79
|
stateDir,
|
|
65
80
|
elwoodSessionId: record.elwoodSessionId,
|
|
66
81
|
adapter: "codex",
|
|
67
82
|
}, owner);
|
|
68
|
-
|
|
83
|
+
const report = codexHomeReportPath(runtime);
|
|
84
|
+
return withSocketHomeCleanup(() => releaseLaunchSocket(runtime.socketPath), () => buildCodexSession({
|
|
69
85
|
record,
|
|
70
86
|
stateDir,
|
|
71
87
|
runtime,
|
|
@@ -73,6 +89,8 @@ export function startCodexFromRecord(record, stateDir, options, resumed, preflig
|
|
|
73
89
|
resumed,
|
|
74
90
|
preflightWarning,
|
|
75
91
|
activate,
|
|
92
|
+
}).catch((error) => {
|
|
93
|
+
throw explainCodexStartFailure(error, report);
|
|
76
94
|
}));
|
|
77
95
|
});
|
|
78
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codex/session/index.ts"],"names":[],"mappings":"AAAA,6IAA6I;AAE7I,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codex/session/index.ts"],"names":[],"mappings":"AAAA,6IAA6I;AAE7I,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAsB,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EACL,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,UAA6B;IACtD,OAAO,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAA6B,EAC7B,eAAuB;IAEvB,qFAAqF;IACrF,uFAAuF;IACvF,uFAAuF;IACvF,uFAAuF;IACvF,iFAAiF;IACjF,oFAAoF;IACpF,6DAA6D;IAC7D,MAAM,OAAO,GAAG,mBAAmB,CAAC;QAClC,GAAG,UAAU;QACb,GAAG,EAAE,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC;KACrD,CAAC,CAAC;IACH,iBAAiB,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/E,+FAA+F;IAC/F,MAAM,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAC/E,SAAS,CAAC,cAAc,CACtB,OAAO,CAAC,kBAAkB,IAAI,KAAK,EACnC,OAAO,CAAC,UAAU,IAAI,KAAK,EAC3B,OAAO,CAAC,GAAG,CACZ,CACF,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE;QAC/E,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE;YACpC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,yBAAyB,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS;YACzD,eAAe;SAChB,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,mBAAmB,CAAC;YACxC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,EAAE,EAAE,eAAe;YACnB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,CAAC,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3E,OAAO,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,OAAO,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,QAAgB,EAChB,OAA0B,EAC1B,OAAgB,EAChB,gBAA6D,EAC7D,SAA6B;IAE7B,uFAAuF;IACvF,sFAAsF;IACtF,gFAAgF;IAChF,uBAAuB,CACrB,OAAO,CAAC,eAAe,EACvB,qBAAqB,EACrB,gCAAgC,CACjC,CAAC;IACF,sFAAsF;IACtF,mFAAmF;IACnF,mFAAmF;IACnF,qFAAqF;IACrF,sFAAsF;IACtF,gFAAgF;IAChF,OAAO,mBAAmB,CACxB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,EAChD,SAAS,EACT,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAClB,MAAM,OAAO,GAAG,cAAc,CAC5B;YACE,QAAQ;YACR,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,OAAO,EAAE,OAAO;SACjB,EACD,KAAK,CACN,CAAC;QACF,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,qBAAqB,CAC1B,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,EAC7C,GAAG,EAAE,CACH,iBAAiB,CAAC;YAChB,MAAM;YACN,QAAQ;YACR,OAAO;YACP,OAAO;YACP,OAAO;YACP,gBAAgB;YAChB,QAAQ;SACT,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC1B,MAAM,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC,CAAC,CACL,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { ElwoodActivityEvent } from "../../core/activity/index.ts";
|
|
6
6
|
import type { HookObservation } from "../../core/hook-observation.ts";
|
|
7
|
+
import type { ModelPickerSpec } from "../../core/models/picker.ts";
|
|
7
8
|
import type { TerminalReplayBuffer } from "../../core/terminal-replay.ts";
|
|
8
9
|
import type { ElwoodSessionStatus, ElwoodWarningEvent } from "../../core/types.ts";
|
|
9
10
|
import type { TypedEmitter } from "../../events/emitter.ts";
|
|
@@ -15,30 +16,25 @@ import { type SessionRecord } from "../../state/store.ts";
|
|
|
15
16
|
import type { ElwoodTerminal } from "../../terminal/headless.ts";
|
|
16
17
|
import type { CodexTranscriptWatcher } from "../transcript/index.ts";
|
|
17
18
|
import type { CodexHookBridge } from "./bridge.ts";
|
|
19
|
+
import { CodexTurnCommit } from "./turn-commit.ts";
|
|
18
20
|
import type { CodexEventHandler, CodexEventMap, CodexEventName, CodexSessionApi } from "./types.ts";
|
|
19
21
|
export declare class CodexSessionImpl extends AgentSessionBase implements CodexSessionApi {
|
|
20
|
-
protected readonly picker:
|
|
21
|
-
isClear: import("../../core/trust/clearance.ts").TrustClearance;
|
|
22
|
-
agent: string;
|
|
23
|
-
isCandidate: (text: string) => boolean;
|
|
24
|
-
isOpen: (text: string) => boolean;
|
|
25
|
-
activeDialog: (text: string, authority: import("../../core/models/rows.ts").ModelDialogAuthority) => import("../../core/models/rows.ts").ModelDialogStage | undefined;
|
|
26
|
-
parse: (text: string) => import("../../core/models/rows.ts").ParsedModelPicker;
|
|
27
|
-
apply: (io: import("../../core/models/picker.ts").ModelPickerIo, timeoutMs: number) => Promise<void>;
|
|
28
|
-
};
|
|
22
|
+
protected readonly picker: ModelPickerSpec;
|
|
29
23
|
private readonly bridge;
|
|
30
24
|
private readonly emitter;
|
|
31
25
|
private readonly transcriptWatcher;
|
|
32
26
|
private onInitialReady;
|
|
33
27
|
private hookReadyObservation;
|
|
34
28
|
private readonly cliExit;
|
|
35
|
-
|
|
29
|
+
private readonly resolveConfigPath;
|
|
30
|
+
/** Holds `stop`/`teardown` for the turn a `Stop` hook ends to be recorded (C-LIFE-13). */
|
|
31
|
+
readonly turnCommit: CodexTurnCommit;
|
|
32
|
+
constructor(record: SessionRecord, stateDir: string, runtime: SessionRuntime, pty: PtyProcess, terminal: ElwoodTerminal, bridge: CodexHookBridge, emitter: TypedEmitter<CodexEventMap>, terminalReplay: TerminalReplayBuffer, transcriptWatcher: CodexTranscriptWatcher | undefined, loopDefinitions: readonly PersistedLoopDefinition[], resolveConfigPath: (signal: AbortSignal) => Promise<string>);
|
|
36
33
|
on<E extends CodexEventName>(event: E, handler: CodexEventHandler<E>): import("../../index.ts").Unsubscribe;
|
|
37
34
|
setModel(id: string, options?: {
|
|
38
35
|
readonly timeoutMs?: number;
|
|
39
36
|
}): Promise<void>;
|
|
40
37
|
private waitForCliExit;
|
|
41
|
-
private restoreCodexDefault;
|
|
42
38
|
off<E extends CodexEventName>(event: E, handler: CodexEventHandler<E>): void;
|
|
43
39
|
completeInitialReady(): void;
|
|
44
40
|
waitForStatus(match: (status: ElwoodSessionStatus) => boolean, timeoutMs?: number): Promise<"running" | "ready" | "blocked" | "exited" | "stopped" | "killed" | "torn_down" | "starting">;
|
|
@@ -57,8 +53,10 @@ export declare class CodexSessionImpl extends AgentSessionBase implements CodexS
|
|
|
57
53
|
* boot-time composer placeholder that would swallow it (C-API-28). */
|
|
58
54
|
markInitialReadyFromHook(observation: HookObservation): void;
|
|
59
55
|
observeTranscript(path?: string | null): void;
|
|
56
|
+
stop(): Promise<void>;
|
|
57
|
+
teardown(): Promise<void>;
|
|
60
58
|
/** One bounded per-pass scan of the committed transcript (an unblocked `Stop`, §7A.3). */
|
|
61
|
-
scanTranscript()
|
|
59
|
+
readonly scanTranscript: () => void;
|
|
62
60
|
emitWarnings(warnings: readonly ElwoodWarningEvent[]): void;
|
|
63
61
|
protected stopRuntime(): Promise<void>;
|
|
64
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../../src/codex/session/instance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../../src/codex/session/instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,43 +2,57 @@
|
|
|
2
2
|
* In-memory Codex session object exposed to callers.
|
|
3
3
|
* Implements PRD §5.7, §7A, §8, and §9.
|
|
4
4
|
*/
|
|
5
|
-
import { isPickerIntervention } from "../../core/models/intervention.js";
|
|
6
5
|
import { sessionWaitForActivity, sessionWaitForStatus } from "../../core/session-wait.js";
|
|
7
6
|
import { registerNativeTurnReader } from "../../core/simple/submission-context.js";
|
|
8
7
|
import { emitSessionWarnings } from "../../core/warnings/session.js";
|
|
8
|
+
import { PtyExitLatch } from "../../pty/exit-latch.js";
|
|
9
9
|
import { AgentSessionBase } from "../../runtime/session/base.js";
|
|
10
10
|
import { updateSessionResumeId } from "../../state/store.js";
|
|
11
11
|
import { codexTurnIdentity } from "../accepted-turn.js";
|
|
12
|
-
import {
|
|
13
|
-
import { runCodexModelSwitch } from "../config/transaction.js";
|
|
12
|
+
import { withCodexDefault } from "../config/default-model.js";
|
|
14
13
|
import { attachCodexImages } from "../images/attach.js";
|
|
15
14
|
import { codexModelPicker } from "../model-picker.js";
|
|
16
15
|
import { codexSessionQuestions } from "../questions/session.js";
|
|
17
16
|
import { liveCodexClearance } from "../screen/live-clearance.js";
|
|
18
17
|
import { createCodexRecoveryComposer } from "../screen/staged-input.js";
|
|
18
|
+
import { confirmCodexRejection } from "../transcript/rejection.js";
|
|
19
19
|
import { stopCodexRuntime } from "./cleanup.js";
|
|
20
|
-
import {
|
|
20
|
+
import { switchCodexModel } from "./config-switch.js";
|
|
21
21
|
import { observeCodexInitialReady } from "./initial-ready.js";
|
|
22
|
-
import {
|
|
22
|
+
import { CodexTurnCommit } from "./turn-commit.js";
|
|
23
|
+
import { clipboardRestoreFailedWarning } from "./warnings.js";
|
|
24
|
+
/** How long a setModel interrupted by close waits for the CLI to exit before restoring. */
|
|
25
|
+
const cliExitWaitMs = 5_000;
|
|
23
26
|
export class CodexSessionImpl extends AgentSessionBase {
|
|
27
|
+
// The default and the setModel restore use the config of THIS session's Codex (C-CODEX-24).
|
|
24
28
|
picker = {
|
|
25
29
|
...codexModelPicker,
|
|
26
30
|
isClear: liveCodexClearance(() => this.terminal),
|
|
31
|
+
withDefaults: (options, signal) => withCodexDefault(options, signal, this.resolveConfigPath),
|
|
27
32
|
};
|
|
28
33
|
bridge;
|
|
29
34
|
emitter;
|
|
30
35
|
transcriptWatcher;
|
|
31
36
|
onInitialReady;
|
|
32
37
|
hookReadyObservation;
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
// The PTY's own exit. Session status cannot stand in for it: shutdown records stopped,
|
|
39
|
+
// killed, and torn_down even when its signal did not take.
|
|
40
|
+
cliExit = new PtyExitLatch(this.pty);
|
|
41
|
+
resolveConfigPath;
|
|
42
|
+
/** Holds `stop`/`teardown` for the turn a `Stop` hook ends to be recorded (C-LIFE-13). */
|
|
43
|
+
turnCommit;
|
|
44
|
+
constructor(record, stateDir, runtime, pty, terminal, bridge, emitter, terminalReplay, transcriptWatcher, loopDefinitions, resolveConfigPath) {
|
|
35
45
|
super("codex", record, stateDir, runtime, pty, terminal, emitter, terminalReplay, loopDefinitions);
|
|
36
46
|
registerNativeTurnReader(this, codexTurnIdentity);
|
|
37
47
|
this.configureQuestions((registry) => codexSessionQuestions(registry, this.elwoodSessionId, emitter));
|
|
38
48
|
this.bridge = bridge;
|
|
39
49
|
this.emitter = emitter;
|
|
40
50
|
this.transcriptWatcher = transcriptWatcher;
|
|
41
|
-
this.
|
|
51
|
+
this.turnCommit = new CodexTurnCommit(() => transcriptWatcher?.poll(), this.cliExit, this);
|
|
52
|
+
this.resolveConfigPath = resolveConfigPath;
|
|
53
|
+
// Codex fires no `Stop` for a turn it rejects; its failed `task_complete` ends it (C-API-60).
|
|
54
|
+
emitter.on("codex:transcript", ({ item }) => confirmCodexRejection(this, item));
|
|
55
|
+
emitter.on("codex:transcript", (event) => this.turnCommit.observe(event.item));
|
|
42
56
|
}
|
|
43
57
|
on(event, handler) {
|
|
44
58
|
// REGISTER before replaying buffered `terminal:data` (mirrors Claude): a throwing replay
|
|
@@ -47,41 +61,24 @@ export class CodexSessionImpl extends AgentSessionBase {
|
|
|
47
61
|
this.replayFor(event, handler);
|
|
48
62
|
return unsubscribe;
|
|
49
63
|
}
|
|
50
|
-
// Restore the user's config default after picker changes; the live CLI retains
|
|
51
|
-
// its selection. The process-wide transaction lock prevents interleaved snapshots
|
|
52
|
-
// and restores even when automation rejects after Codex writes (C-CODEX-14).
|
|
53
64
|
setModel(id, options) {
|
|
54
65
|
// The queue slot is claimed FIRST (by `super.setModel`), and the config transaction
|
|
55
66
|
// runs inside it via `around`. Reversing that let a following `sendMessage` dispatch
|
|
56
67
|
// while this call was still waiting for another session's lock, sending under the old
|
|
57
68
|
// model — a FIFO violation the slot exists to prevent.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
69
|
+
const session = {
|
|
70
|
+
elwoodSessionId: this.elwoodSessionId,
|
|
71
|
+
resolveConfigPath: this.resolveConfigPath,
|
|
61
72
|
waitForCliExit: () => this.waitForCliExit(),
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}));
|
|
68
|
-
}
|
|
69
|
-
// A closing session rejects the picker at once, while the dying CLI can still persist
|
|
70
|
-
// the selection it had confirmed, so the restore waits on the PTY's own exit.
|
|
73
|
+
emitWarnings: (warnings) => this.emitWarnings(warnings),
|
|
74
|
+
};
|
|
75
|
+
return super.setModel(id, options, (flow, signal) => switchCodexModel(session, flow, signal));
|
|
76
|
+
}
|
|
77
|
+
// A closing session's dying CLI can still persist a confirmed selection: await its exit.
|
|
71
78
|
waitForCliExit() {
|
|
72
79
|
if (!this.closing.signal.aborted)
|
|
73
80
|
return undefined;
|
|
74
|
-
return this.cliExit.
|
|
75
|
-
}
|
|
76
|
-
restoreCodexDefault(snapshot, reason) {
|
|
77
|
-
const outcome = isPickerIntervention(reason)
|
|
78
|
-
? snapshotCodexConfig() === snapshot
|
|
79
|
-
? "unchanged"
|
|
80
|
-
: "interrupted"
|
|
81
|
-
: restoreCodexConfig(snapshot);
|
|
82
|
-
if (outcome === "restored" || outcome === "unchanged")
|
|
83
|
-
return;
|
|
84
|
-
this.emitWarnings([codexRestoreSkippedWarning(this.elwoodSessionId, outcome)]);
|
|
81
|
+
return this.cliExit.within(cliExitWaitMs, { unref: true }); // never holds the host open
|
|
85
82
|
}
|
|
86
83
|
off(event, handler) {
|
|
87
84
|
this.emitter.off(event, handler);
|
|
@@ -128,10 +125,18 @@ export class CodexSessionImpl extends AgentSessionBase {
|
|
|
128
125
|
if (path)
|
|
129
126
|
this.transcriptWatcher?.observe(path);
|
|
130
127
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
this.
|
|
128
|
+
stop() {
|
|
129
|
+
this.closing.abort();
|
|
130
|
+
this.loops.pause();
|
|
131
|
+
return this.turnCommit.beforeShutdown(() => super.stop());
|
|
134
132
|
}
|
|
133
|
+
teardown() {
|
|
134
|
+
this.closing.abort();
|
|
135
|
+
this.loops.prepareClear();
|
|
136
|
+
return this.turnCommit.beforeShutdown(() => super.teardown());
|
|
137
|
+
}
|
|
138
|
+
/** One bounded per-pass scan of the committed transcript (an unblocked `Stop`, §7A.3). */
|
|
139
|
+
scanTranscript = () => this.transcriptWatcher?.scan();
|
|
135
140
|
emitWarnings(warnings) {
|
|
136
141
|
// No cast: each callback is the emitter's own `emit` bound to a correlated
|
|
137
142
|
// event name, so a map/payload drift is a compile error here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.js","sourceRoot":"","sources":["../../../src/codex/session/instance.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"instance.js","sourceRoot":"","sources":["../../../src/codex/session/instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex's initial-readiness gate: its deadline needs the configured composer (the model
|
|
3
|
+
* footer), and a release by the backstop without one is reported as a content-free
|
|
4
|
+
* `initial_ready_backstop` warning (PRD §5.3, §5.7, C-API-28).
|
|
5
|
+
*/
|
|
6
|
+
import type { InitialReadyBackstopWarning } from "../../core/warnings/lifecycle.ts";
|
|
7
|
+
import { type ReadinessGate } from "../../runtime/session/readiness.ts";
|
|
8
|
+
export declare function createCodexReadinessGate(onReady: () => void, resumed: boolean, elwoodSessionId: string, warnings: {
|
|
9
|
+
emitWarnings(warnings: readonly InitialReadyBackstopWarning[]): void;
|
|
10
|
+
}): ReadinessGate;
|
|
11
|
+
//# sourceMappingURL=readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../../src/codex/session/readiness.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAEpF,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAG7F,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,IAAI,EACnB,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE;IAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,2BAA2B,EAAE,GAAG,IAAI,CAAA;CAAE,GACjF,aAAa,CAKf"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { initialBackstopMs } from "../../runtime/readiness/initial-ready.js";
|
|
2
|
+
import { createReadinessGate } from "../../runtime/session/readiness.js";
|
|
3
|
+
import { codexComposerConfigured } from "../screen/clearance.js";
|
|
4
|
+
export function createCodexReadinessGate(onReady, resumed, elwoodSessionId, warnings) {
|
|
5
|
+
return createReadinessGate(onReady, resumed, {
|
|
6
|
+
configured: codexComposerConfigured,
|
|
7
|
+
onBackstopRelease: () => warnings.emitWarnings([backstopWarning(elwoodSessionId)]),
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
/** Live-only and content-free: it names the missing evidence, never the screen. */
|
|
11
|
+
function backstopWarning(elwoodSessionId) {
|
|
12
|
+
return {
|
|
13
|
+
elwoodSessionId,
|
|
14
|
+
agent: "codex",
|
|
15
|
+
source: "lifecycle",
|
|
16
|
+
code: "initial_ready_backstop",
|
|
17
|
+
severity: "warning",
|
|
18
|
+
message: `No configured Codex composer was recognized within ${initialBackstopMs / 1_000} seconds of the first frame; readiness was released without it.`,
|
|
19
|
+
raw: "initial_ready_backstop",
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../../src/codex/session/readiness.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAsB,MAAM,oCAAoC,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,UAAU,wBAAwB,CACtC,OAAmB,EACnB,OAAgB,EAChB,eAAuB,EACvB,QAAkF;IAElF,OAAO,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE;QAC3C,UAAU,EAAE,uBAAuB;QACnC,iBAAiB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;KACnF,CAAC,CAAC;AACL,CAAC;AAED,mFAAmF;AACnF,SAAS,eAAe,CAAC,eAAuB;IAC9C,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,sDAAsD,iBAAiB,GAAG,KAAK,iEAAiE;QACzJ,GAAG,EAAE,wBAAwB;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/codex/session/resume.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/codex/session/resume.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE,wBAAsB,WAAW,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CA8D1F"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { elwoodError } from "../../core/errors.js";
|
|
6
6
|
import { applyCodexHighTrust } from "../../core/high-trust.js";
|
|
7
|
+
import { assertLaunchDirectory, recheckLaunchDirectoryOnFailure, } from "../../runtime/session/launch-directory.js";
|
|
7
8
|
import { canonicalStatePath } from "../../state/canonical-path.js";
|
|
8
9
|
import { reserveLaunchOwnership } from "../../state/launch-ownership.js";
|
|
9
10
|
import { codexLaunchPosture, effectivePosture, withCodexLaunch, } from "../../state/launch-posture.js";
|
|
@@ -22,16 +23,20 @@ export async function resumeCodex(rawOptions) {
|
|
|
22
23
|
throw elwoodError("adapter_mismatch", "Cannot resume a non-Codex session as Codex.");
|
|
23
24
|
if (!record.codex.resumeId)
|
|
24
25
|
throw elwoodError("resume_unavailable", "Cannot resume Codex without a Codex session id.");
|
|
26
|
+
// Reserved before the first `await`: a teardown already running must see this successor
|
|
27
|
+
// before it decides which shared state to remove (C-API-20).
|
|
25
28
|
const ownership = reserveLaunchOwnership(sessionDir(stateDir, record.elwoodSessionId));
|
|
26
29
|
try {
|
|
27
|
-
|
|
30
|
+
// Codex relaunches where the session started (`--cd`); `cwd` only locates the state.
|
|
31
|
+
await assertLaunchDirectory("codex", record.cwd);
|
|
32
|
+
const warning = await recheckLaunchDirectoryOnFailure("codex", record.cwd, () => preflight.preflightCodex(options.strictVersionCheck ?? false, options.autoupdate ?? false, record.cwd));
|
|
28
33
|
// Resume defaults to the posture this session launched with; explicit options
|
|
29
34
|
// override field by field, and the effective posture is re-persisted (C-API-32,
|
|
30
35
|
// C-STATE-13). Terminal size is not persisted: it falls back to options.initialSize.
|
|
31
36
|
const launch = effectivePosture(record.codex.launch, codexLaunchPosture(options));
|
|
32
37
|
const resumedRecord = withCodexLaunch(record, launch);
|
|
33
|
-
const session = await startCodexFromRecord(resumedRecord, stateDir, {
|
|
34
|
-
cwd:
|
|
38
|
+
const session = await recheckLaunchDirectoryOnFailure("codex", record.cwd, () => startCodexFromRecord(resumedRecord, stateDir, {
|
|
39
|
+
cwd: record.cwd, // where Codex relaunches; `options.cwd` only located the state
|
|
35
40
|
stateDir,
|
|
36
41
|
...(options.hooks === undefined ? {} : { hooks: options.hooks }),
|
|
37
42
|
...(options.initialSize === undefined ? {} : { initialSize: options.initialSize }),
|
|
@@ -46,7 +51,7 @@ export async function resumeCodex(rawOptions) {
|
|
|
46
51
|
? {}
|
|
47
52
|
: { strictVersionCheck: options.strictVersionCheck }),
|
|
48
53
|
}, true, // resumed: mark ready on the first composer marker, not the 10s deadline
|
|
49
|
-
warning, ownership);
|
|
54
|
+
warning, ownership));
|
|
50
55
|
return session;
|
|
51
56
|
}
|
|
52
57
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/codex/session/resume.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAA8B;IAC9D,iFAAiF;IACjF,sEAAsE;IACtE,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAChD,mFAAmF;IACnF,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,kBAAkB,CACjC,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAClE,CAAC;IACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;QAC5B,MAAM,WAAW,CAAC,kBAAkB,EAAE,6CAA6C,CAAC,CAAC;IACvF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ;QACxB,MAAM,WAAW,CAAC,oBAAoB,EAAE,iDAAiD,CAAC,CAAC;IAC7F,MAAM,SAAS,GAAG,sBAAsB,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/codex/session/resume.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../../src/codex/session/transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../../src/codex/session/transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EACL,sBAAsB,EAIvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,yFAAyF;AACzF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC;IAC1C;2FACuF;IACvF,QAAQ,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,EACpC,OAAO,EAAE,MAAM,qBAAqB,GAAG,SAAS,GAC/C,2BAA2B,CAsF7B"}
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import * as activity from "../../core/activity/index.js";
|
|
11
11
|
import { createTranscriptWarningRouter, } from "../../core/transcript/warning-router.js";
|
|
12
|
+
import { CodexClipboardCopies } from "../images/clipboard-copies.js";
|
|
12
13
|
import { CodexTranscriptWatcher, codexDropWarning, codexPollStoppedWarning, codexReadErrorWarning, } from "../transcript/index.js";
|
|
14
|
+
import { imageCopyRemovalFailedWarning } from "./warnings.js";
|
|
13
15
|
/**
|
|
14
16
|
* Builds the transcript watcher, routing content-free drop/read-error notices to
|
|
15
17
|
* the session's warning sink. Notices seen before `getSink()` resolves are held in
|
|
@@ -58,7 +60,9 @@ export function createCodexTranscriptWatcher(elwoodSessionId, emitter, getSink)
|
|
|
58
60
|
}));
|
|
59
61
|
}
|
|
60
62
|
}
|
|
63
|
+
const clipboardCopies = new CodexClipboardCopies();
|
|
61
64
|
const watcher = new CodexTranscriptWatcher(elwoodSessionId, (event) => duringDelivery(() => {
|
|
65
|
+
clipboardCopies.observe(event.item);
|
|
62
66
|
deliver("codex:transcript", event);
|
|
63
67
|
deliver("activity", activity.activityFromCodexTranscript(event));
|
|
64
68
|
}), {
|
|
@@ -88,7 +92,14 @@ export function createCodexTranscriptWatcher(elwoodSessionId, emitter, getSink)
|
|
|
88
92
|
catch { } // a diagnostic-listener bug must not block lifecycle completion
|
|
89
93
|
}
|
|
90
94
|
finally {
|
|
91
|
-
|
|
95
|
+
// The CLI has exited and the flush has read its last records: remove the image
|
|
96
|
+
// copies they named, and report one that stays, before finishing the exit (C-API-46).
|
|
97
|
+
clipboardCopies.removeAll((failure) => {
|
|
98
|
+
// `route` contains a throwing listener, so the exit always finishes.
|
|
99
|
+
if (failure !== undefined)
|
|
100
|
+
route(imageCopyRemovalFailedWarning(elwoodSessionId, failure));
|
|
101
|
+
afterFlush();
|
|
102
|
+
});
|
|
92
103
|
}
|
|
93
104
|
};
|
|
94
105
|
return { watcher, duringDelivery, flushPendingWarnings, finishSafely };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../../src/codex/session/transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,EACL,6BAA6B,GAE9B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../../src/codex/session/transcript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gives Codex a bounded time to record the turn its `Stop` hook ended before a graceful
|
|
3
|
+
* shutdown signals it. Implements PRD §5.7 (shutting down after a Codex turn) and C-LIFE-13.
|
|
4
|
+
*
|
|
5
|
+
* Codex runs the `Stop` hook before it records the turn's completion in its transcript,
|
|
6
|
+
* and Elwood reports `ready` from that hook. Codex 0.164.0 signaled after the hook returns
|
|
7
|
+
* but before that record is written exits without it, and the resumed conversation then
|
|
8
|
+
* ends in "Conversation interrupted" (docs/cli-behavior.md, "Resume lifecycle"). The wait
|
|
9
|
+
* also ends when the CLI exits or after `turnCommitWaitMs`; shutdown then proceeds, and a
|
|
10
|
+
* turn Codex has still not recorded can be lost, which the session is warned of.
|
|
11
|
+
*/
|
|
12
|
+
import type { ElwoodWarningEvent } from "../../core/types.ts";
|
|
13
|
+
import type { PtyExitLatch } from "../../pty/exit-latch.ts";
|
|
14
|
+
/** The longest `stop`/`teardown` wait for the record before signaling anyway. */
|
|
15
|
+
export declare const turnCommitWaitMs = 2000;
|
|
16
|
+
/** The session a wait the bound ended is reported to, as `turn_commit_wait_expired`. */
|
|
17
|
+
type ExpiryReport = {
|
|
18
|
+
readonly elwoodSessionId: string;
|
|
19
|
+
emitWarnings(warnings: readonly ElwoodWarningEvent[]): void;
|
|
20
|
+
};
|
|
21
|
+
export declare class CodexTurnCommit {
|
|
22
|
+
private pending;
|
|
23
|
+
private readonly poll;
|
|
24
|
+
private readonly cliExit;
|
|
25
|
+
private readonly session;
|
|
26
|
+
/**
|
|
27
|
+
* `poll` reads newly committed transcript items into `observe` and contains its own
|
|
28
|
+
* failures. `cliExit` is the session's shared latch on the CLI's exit; `session` is
|
|
29
|
+
* warned when the bound ends the wait.
|
|
30
|
+
*/
|
|
31
|
+
constructor(poll: () => void, cliExit: Pick<PtyExitLatch, "within">, session: ExpiryReport);
|
|
32
|
+
/**
|
|
33
|
+
* A `Stop` hook for `turnId` arrived. Registered before any observer of that hook runs,
|
|
34
|
+
* since an observer may shut the session down at once.
|
|
35
|
+
*/
|
|
36
|
+
expect(turnId: string): void;
|
|
37
|
+
/** Ends the wait for `turnId`: its end was recorded, or its `Stop` was blocked. */
|
|
38
|
+
release(turnId: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Reads one committed transcript item. Only a turn-end record carrying the pending
|
|
41
|
+
* turn's id releases the wait: every captured end record carries one, and a record
|
|
42
|
+
* without it could be an older turn's backlog.
|
|
43
|
+
*/
|
|
44
|
+
observe(item: unknown): void;
|
|
45
|
+
/**
|
|
46
|
+
* Runs `shutdown` once the pending turn is recorded, its `Stop` is blocked, the CLI
|
|
47
|
+
* exits, or `turnCommitWaitMs` passes, re-reading the transcript meanwhile. With no
|
|
48
|
+
* turn pending, `shutdown` starts in the same tick. A turn not recorded within the
|
|
49
|
+
* bound is reported to the session once and not waited for again. Callers close
|
|
50
|
+
* queued input and loops first: only the signal waits for the record.
|
|
51
|
+
*/
|
|
52
|
+
beforeShutdown(shutdown: () => Promise<void>): Promise<void>;
|
|
53
|
+
private waitFor;
|
|
54
|
+
/** A throwing listener of the warning must not keep Codex running. */
|
|
55
|
+
private reportExpired;
|
|
56
|
+
}
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=turn-commit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-commit.d.ts","sourceRoot":"","sources":["../../../src/codex/session/turn-commit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAK5D,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AAatC,wFAAwF;AACxF,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;;OAIG;gBACS,IAAI,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,YAAY;IAM1F;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,mFAAmF;IACnF,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO7B;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAM5B;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5D,OAAO,CAAC,OAAO;IAWf,sEAAsE;IACtE,OAAO,CAAC,aAAa;CAMtB"}
|