@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
package/docs/cli.md
CHANGED
|
@@ -33,6 +33,8 @@ Pick an agent with `--agent`, `ELWOOD_AGENT`, or the config `agent` key. When
|
|
|
33
33
|
nothing selects one, a new run auto-detects: Elwood tries `claude` first, then
|
|
34
34
|
`codex`, and uses the first whose command resolves in your login shell. It only
|
|
35
35
|
asks the shell `command -v`, so neither agent starts during detection.
|
|
36
|
+
Detection runs from the effective workspace, so `-C`/`--cwd` changes the command
|
|
37
|
+
lookup directory, including for `config effective`.
|
|
36
38
|
`config effective` reports that choice with source `auto-detected`. If neither
|
|
37
39
|
resolves, the run fails before launch with `no_agent_found` (status 2) and a
|
|
38
40
|
message naming both agents and how to install or select one. Once an agent is
|
package/docs/codex/cli.md
CHANGED
|
@@ -28,8 +28,10 @@ Useful CLI capabilities for Elwood:
|
|
|
28
28
|
- Some Codex versions expose `--dangerously-bypass-hook-trust`, which lets
|
|
29
29
|
generated Elwood hooks run for one invocation without requiring a persisted
|
|
30
30
|
trust prompt. Elwood must detect support before passing it because other Codex
|
|
31
|
-
versions reject unknown flags. Detection
|
|
32
|
-
|
|
31
|
+
versions reject unknown flags. Detection retains the derived boolean for up to
|
|
32
|
+
32 successful directory identities per process and is invalidated after an
|
|
33
|
+
update attempt. Version results use the same directory bound, and are retained
|
|
34
|
+
only when stdout and stderr each contain at most 65,536 UTF-16 units.
|
|
33
35
|
- Codex can also render interactive trust and update prompts before the session
|
|
34
36
|
is usable. Elwood should select `Trust all and continue` for hook prompts, and
|
|
35
37
|
skip TUI update prompts because API-level `autoupdate` runs `codex update`
|
package/docs/embedding.md
CHANGED
|
@@ -80,3 +80,10 @@ cap does not constrain your state layout.
|
|
|
80
80
|
before the user starts a session — use `listClaudeModels`/`listCodexModels`.
|
|
81
81
|
They spin up a throwaway session, list, and always tear it down, so they cost
|
|
82
82
|
a few seconds each; cache the result in the parent app if you call them often.
|
|
83
|
+
|
|
84
|
+
## Scaling concurrent sessions
|
|
85
|
+
|
|
86
|
+
See [performance.md](performance.md) for the fifty-session workload, measured
|
|
87
|
+
CPU improvement, and the existing `terminal.xterm.options.scrollback` history
|
|
88
|
+
budget. Headless history and the browser terminal's history are separate;
|
|
89
|
+
choose both budgets and avoid polling fresh snapshots for hidden sessions.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Terminal engine assessment — October 24, 2026
|
|
2
|
+
|
|
3
|
+
Keep xterm for the current optimization. A private Ghostty WASM probe showed
|
|
4
|
+
a useful parser/formatter CPU reduction, but does not yet implement Elwood's
|
|
5
|
+
terminal contract. Replacing the engine requires an explicit API migration: the
|
|
6
|
+
public `terminal.xterm` exposes the complete headless xterm Terminal, including proposed
|
|
7
|
+
APIs. Running both engines would retain both parsing and buffer costs.
|
|
8
|
+
|
|
9
|
+
## Probe scope and provenance
|
|
10
|
+
|
|
11
|
+
The experiment instantiated the official full `ghostty-vt.wasm` in Node 26.3.1
|
|
12
|
+
with one WASM instance containing 50 terminals. Both engines parsed the same
|
|
13
|
+
80 full-screen redraws at 120 columns by 40 rows. The snapshot variant decoded
|
|
14
|
+
Ghostty's plain formatter output and checked final round markers. UTF-8 copy
|
|
15
|
+
and decoding were included. This was a standalone diagnostic, not the full
|
|
16
|
+
Elwood runtime workload; no hook/watch/classification or browser costs were
|
|
17
|
+
included. The trace did not fill scrollback.
|
|
18
|
+
|
|
19
|
+
The official nightly release was associated with source revision
|
|
20
|
+
`22f100c6367045bb5fc86172f837047dee2f7670`, library `0.1.0-dev`.
|
|
21
|
+
The 1,189,559-byte WASM SHA-256 was
|
|
22
|
+
`e23598cefe95b42d441221a45d22d435c9c1915bca7475fe735e7617eac1a0d1`.
|
|
23
|
+
Its embedded type metadata had a null commit field: the binary hash pins the
|
|
24
|
+
measured bytes; the source association comes from release metadata. The `tip`
|
|
25
|
+
URL moves and must not be treated as an immutable version. No dependency or
|
|
26
|
+
WASM binary was added to Elwood.
|
|
27
|
+
|
|
28
|
+
Sources: [official release](https://github.com/ghostty-org/ghostty/releases/tag/tip),
|
|
29
|
+
[WASM API](https://github.com/ghostty-org/ghostty/blob/22f100c6367045bb5fc86172f837047dee2f7670/include/ghostty/vt/wasm.h),
|
|
30
|
+
[official example](https://github.com/ghostty-org/ghostty/blob/22f100c6367045bb5fc86172f837047dee2f7670/example/wasm-vt/index.html).
|
|
31
|
+
|
|
32
|
+
## Standalone measurements
|
|
33
|
+
|
|
34
|
+
Three alternating fresh processes per engine used shared input/output scratch
|
|
35
|
+
for all Ghostty terminals. The xterm side included Elwood's headless write queue
|
|
36
|
+
and cursor tracking from commit `34ab7dd5`. The snapshot paths differ: xterm extracts the full physical
|
|
37
|
+
viewport; Ghostty formats plain text. These numbers compare the prototypes,
|
|
38
|
+
not equivalent complete engines.
|
|
39
|
+
|
|
40
|
+
| Diagnostic median | xterm path | Ghostty WASM path |
|
|
41
|
+
|---|---:|---:|
|
|
42
|
+
| Parsing path CPU | 326.275 ms | 176.598 ms |
|
|
43
|
+
| Parsing plus snapshot/formatter CPU | 559.623 ms | 343.816 ms |
|
|
44
|
+
| Parsing plus snapshot/formatter RSS | 131.6 MiB | 139.5 MiB |
|
|
45
|
+
|
|
46
|
+
Parsing CPU samples were 345.918 / 326.275 / 229.376 ms for xterm and
|
|
47
|
+
225.668 / 147.451 / 176.598 ms for Ghostty. Snapshot/formatter samples were
|
|
48
|
+
575.996 / 559.623 / 429.162 ms and 356.796 / 343.816 / 322.240 ms.
|
|
49
|
+
The host was busy; all paired CPU comparisons favored the prototype, but the
|
|
50
|
+
variation is substantial. The approximately 39% lower median CPU in the
|
|
51
|
+
formatter comparison is not a whole-Elwood speedup.
|
|
52
|
+
|
|
53
|
+
Ghostty's shared linear memory reached 23.625 MiB; WASM allocations must not
|
|
54
|
+
be inferred from JS heap alone. Process RSS was not lower in the formatter
|
|
55
|
+
comparison. No lower-memory replacement conclusion follows from this trace.
|
|
56
|
+
An earlier per-terminal scratch variant allocated about 16 MiB unnecessarily;
|
|
57
|
+
only the shared-scratch measurements above are used for this comparison.
|
|
58
|
+
|
|
59
|
+
## Compatibility work required before replacement
|
|
60
|
+
|
|
61
|
+
Elwood needs exactly one line per physical viewport row, cursor coordinates
|
|
62
|
+
through scrollback and reflow, and cell-column prefix extraction for wide and
|
|
63
|
+
combining characters. Question editors require cursor-cell dimming to distinguish
|
|
64
|
+
placeholder text from real answers. Plain formatter output does not prove those
|
|
65
|
+
properties.
|
|
66
|
+
|
|
67
|
+
A replacement must also preserve parser-completion ordering, input ownership,
|
|
68
|
+
protocol replies, title updates, synchronized-output holds, resize events,
|
|
69
|
+
wrap-pending cursor positions and failure/disposal behavior. The WASM prototype
|
|
70
|
+
did not install the write-to-PTY callback; query responses were therefore absent.
|
|
71
|
+
Its marker checks establish only the diagnostic trace, not native CLI safety.
|
|
72
|
+
|
|
73
|
+
The next useful engine experiment would compare full viewport/cursor/style and
|
|
74
|
+
protocol-event fixtures through a compatibility adapter. A native addon should
|
|
75
|
+
follow only if measured WASM boundary costs justify its build/distribution cost.
|
|
76
|
+
Sources: [render state](https://github.com/ghostty-org/ghostty/blob/22f100c6367045bb5fc86172f837047dee2f7670/include/ghostty/vt/render.h),
|
|
77
|
+
[grid references](https://github.com/ghostty-org/ghostty/blob/22f100c6367045bb5fc86172f837047dee2f7670/include/ghostty/vt/grid_ref.h),
|
|
78
|
+
[terminal effects](https://github.com/ghostty-org/ghostty/blob/22f100c6367045bb5fc86172f837047dee2f7670/include/ghostty/vt/terminal.h).
|
|
79
|
+
|
|
80
|
+
## Other candidates
|
|
81
|
+
|
|
82
|
+
[libvterm 0.3.3](https://www.leonerd.org.uk/code/libvterm/) provides a screen and
|
|
83
|
+
output callbacks, but its released screen-cell attributes lack the dim/faint
|
|
84
|
+
flag used by question provenance. [vte](https://github.com/alacritty/vte) is a
|
|
85
|
+
parser rather than a complete terminal emulator.
|
|
86
|
+
[libtsm](https://github.com/Aetf/libtsm) still needs protocol, Unicode, dimming,
|
|
87
|
+
resize and packaging verification. None offered a measured compatible replacement
|
|
88
|
+
within this investigation.
|
package/docs/performance.md
CHANGED
|
@@ -71,3 +71,123 @@ under active output.
|
|
|
71
71
|
Re-run the probe after changes to rendering, frame classification, replay,
|
|
72
72
|
transcript polling, or cleanup. Compare output correctness and cleanup as well
|
|
73
73
|
as throughput, memory, and event-loop delay.
|
|
74
|
+
|
|
75
|
+
## Fifty-session runtime workload
|
|
76
|
+
|
|
77
|
+
```sh
|
|
78
|
+
node --expose-gc --no-warnings scripts/performance/fleet/index.ts
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
This probe starts 50 production runtimes, alternating Claude and Codex, with
|
|
82
|
+
synthetic PTY producers. Dependency seams model macOS even on other hosts; this
|
|
83
|
+
does not test native-agent support on those hosts. It exercises real local hook
|
|
84
|
+
sockets, transcript watchers, frame observers, public snapshots and cleanup without
|
|
85
|
+
launching agent CLIs or making model calls. Each session receives 80 full-screen redraws at
|
|
86
|
+
120 columns by 40 rows, then 1,200 scrolling lines. Assertions check all
|
|
87
|
+
15,155,250 output bytes, 500 transcript activities and final viewport markers.
|
|
88
|
+
The process reports setup separately, a two-second idle CPU sample, active CPU,
|
|
89
|
+
wall time, event-loop delay, live memory after GC and resource cleanup.
|
|
90
|
+
For a quick smoke run, set `ELWOOD_BENCH_SESSIONS=2 ELWOOD_BENCH_ROUNDS=2`.
|
|
91
|
+
|
|
92
|
+
### October 24, 2026: shared completed-frame text
|
|
93
|
+
|
|
94
|
+
Three alternating reference/candidate pairs used the same worktree, v2 probe
|
|
95
|
+
and Node 26.3.1 on the development Mac. Both sides used the benchmark from
|
|
96
|
+
`f6e4406c`; the reference restored runtime files from release `ba8b634e`
|
|
97
|
+
(0.2.0), while the candidate used the runtime at `f6e4406c`.
|
|
98
|
+
Values below are medians, not guarantees. Host activity changed absolute
|
|
99
|
+
timings substantially between measurement windows; compare matched pairs.
|
|
100
|
+
|
|
101
|
+
| Parent-process metric | Reference | Shared frame | Change |
|
|
102
|
+
|---|---:|---:|---:|
|
|
103
|
+
| Active CPU | 1,177.071 ms | 1,043.927 ms | −11.3% |
|
|
104
|
+
| Idle CPU over two seconds | 20.955 ms | 22.113 ms | +1.158 ms; variable |
|
|
105
|
+
| Live JS heap | 52.828 MiB | 53.084 MiB | +0.5% |
|
|
106
|
+
|
|
107
|
+
Active CPU samples were 1,176.453 / 1,177.071 / 1,195.298 ms before and
|
|
108
|
+
1,043.927 / 1,045.998 / 1,031.162 ms after. Every v2 run passed per-session
|
|
109
|
+
byte/activity attribution, final viewport markers and resource-count checks.
|
|
110
|
+
The probe awaits teardown of every session, removing private socket homes before
|
|
111
|
+
its shared root. Regression tests verify filesystem cleanup, rejection ordering,
|
|
112
|
+
extra handles of an existing type and offsetting per-session accounting gaps.
|
|
113
|
+
Idle samples ranged from 20.275–25.492 ms before and 16.285–23.858 ms after;
|
|
114
|
+
no idle optimization is claimed. The CPU reduction is below the initial 15%
|
|
115
|
+
estimate, with effectively unchanged live heap.
|
|
116
|
+
|
|
117
|
+
The change removes a second viewport conversion in foreign-picker observation
|
|
118
|
+
while preserving fresh public snapshots and input-boundary reads. Raw xterm
|
|
119
|
+
writes, writeln and reset invalidate private cached text; disposal restores the
|
|
120
|
+
original methods. Regression tests fail with the change removed, including a
|
|
121
|
+
raw write in an owned parser drain, writeln's synchronous parse after user input
|
|
122
|
+
and method restoration on disposal.
|
|
123
|
+
|
|
124
|
+
An earlier v1 comparison measured 10.3% lower CPU. Its aggregate assertions
|
|
125
|
+
did not establish per-session completeness, same-type handle counts or socket-home
|
|
126
|
+
removal; the v2 comparison above supersedes that result.
|
|
127
|
+
|
|
128
|
+
These measurements exclude browser rendering and agent-process memory/CPU.
|
|
129
|
+
The probe's final screen assertions and 500 activity count protect this workload;
|
|
130
|
+
they do not establish correctness for every native dialog. The repository's
|
|
131
|
+
conformance suite remains the merge gate.
|
|
132
|
+
|
|
133
|
+
## Consumer memory and rendering budgets
|
|
134
|
+
|
|
135
|
+
Elwood's headless xterm retains 1,000 history lines by default. Consumers that
|
|
136
|
+
retain their own raw terminal history can opt out of headless scrollback through
|
|
137
|
+
the existing advanced xterm handle:
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
import { CodexSession } from "@with-logic/elwood";
|
|
141
|
+
|
|
142
|
+
const session = await new CodexSession({ cwd }).start();
|
|
143
|
+
session.terminal.xterm.options.scrollback = 0;
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
The same setting applies to Claude sessions. Apply it at session creation,
|
|
147
|
+
before sustained output. This discards headless scrollback and changes what
|
|
148
|
+
xterm can recover/reflow on scrolling and resizing; choose a small nonzero
|
|
149
|
+
budget if that history is needed. It does not change the consumer's own replay
|
|
150
|
+
store or browser terminal's independent scrollback setting.
|
|
151
|
+
|
|
152
|
+
Three alternating default/zero-history runs of the fixed 50-session workload
|
|
153
|
+
on Node 26.3.1, commit `f6e4406c`, measured the following medians after
|
|
154
|
+
1,200 scrolling lines per session. The experimental preload changed only xterm
|
|
155
|
+
constructor scrollback; all byte, transcript, viewport and cleanup assertions
|
|
156
|
+
passed. A separate two-adapter smoke used the public setter above and verified
|
|
157
|
+
zero history rows after scrolling. This is a configuration comparison, not a
|
|
158
|
+
runtime default change.
|
|
159
|
+
|
|
160
|
+
| Parent-process memory | Default 1,000 lines | Zero history |
|
|
161
|
+
|---|---:|---:|
|
|
162
|
+
| Live JS heap | 53.080 MiB | 38.977 MiB |
|
|
163
|
+
| External memory | 81.017 MiB | 13.065 MiB |
|
|
164
|
+
| Process RSS | 318.766 MiB | 231.484 MiB |
|
|
165
|
+
|
|
166
|
+
JS heap samples ranged from 53.078–53.080 MiB at the default budget and
|
|
167
|
+
34.650–38.987 MiB at zero history. History, dimensions, GC and host activity
|
|
168
|
+
affect these values. CPU and
|
|
169
|
+
idle timing varied enough that no CPU benefit is claimed for this setting.
|
|
170
|
+
|
|
171
|
+
For many-session consumers:
|
|
172
|
+
|
|
173
|
+
- Feed all ordered `terminal:data` bytes to the consumer's terminal/history
|
|
174
|
+
pipeline; batch browser writes without dropping bytes or ANSI boundaries.
|
|
175
|
+
- Keep only visible terminals rendering. Bound browser scrollback independently
|
|
176
|
+
and avoid polling public snapshots for every hidden session. Public snapshots
|
|
177
|
+
deliberately perform a fresh viewport read.
|
|
178
|
+
- Use normalized activity for chat/progress updates. Append to a bounded store
|
|
179
|
+
and batch UI updates instead of rerendering all terminal history per event.
|
|
180
|
+
- Measure Elwood parent CPU separately from agent child processes and the UI
|
|
181
|
+
renderer. Browser refresh/history costs do not appear in the headless probe.
|
|
182
|
+
|
|
183
|
+
The update-dialog prefilter prototype reduced active CPU by 3.8% in its matched
|
|
184
|
+
window, below this investigation's 5% decision threshold, and was not retained.
|
|
185
|
+
Fifty idle sessions used roughly 20 ms of parent CPU per two seconds; the
|
|
186
|
+
measurements did not justify a polling rewrite. The
|
|
187
|
+
[terminal engine assessment](performance/terminal-engines.md) records the
|
|
188
|
+
Ghostty prototype and the compatibility requirements for a replacement.
|
|
189
|
+
|
|
190
|
+
The fleet probe dispatches authenticated local hook requests directly; it does
|
|
191
|
+
not launch the generated hook-bridge subprocess for each request. Bridge-process
|
|
192
|
+
startup/CPU, agent processes and the browser need separate measurements. The
|
|
193
|
+
parent-process results do not establish a whole-system scaling guarantee.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@with-logic/elwood",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Control interactive agentic coding CLIs (Claude Code, Codex) through real terminal sessions: typed hooks, a unified activity stream, resumable sessions, and a headless CLI.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Logic App, Inc.",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"check:lines": "node --no-warnings scripts/check-lines.ts",
|
|
66
66
|
"check": "npm run build && npm run typecheck && npm run lint && npm run check:lines && npm test",
|
|
67
67
|
"check:all": "npm run check && npm run test:e2e",
|
|
68
|
-
"test:e2e": "exec node --no-warnings --experimental-test-coverage --test-coverage-include='src/**/*.ts' --test-coverage-exclude='tests/**' --test-timeout=240000 --test-concurrency=1 --test tests/e2e/*.e2e.ts",
|
|
68
|
+
"test:e2e": "exec node --no-warnings --experimental-test-coverage --test-coverage-include='src/**/*.ts' --test-coverage-exclude='tests/**' --test-timeout=240000 --test-concurrency=1 --import ./tests/e2e/codex-home.ts --import ./tests/e2e/claude-home.ts --import ./tests/e2e/run-dir.ts --test tests/e2e/*.e2e.ts",
|
|
69
69
|
"dev:app": "exec node --no-warnings dev/dev.ts",
|
|
70
70
|
"dev:web": "exec node --no-warnings scripts/supervise.ts dev/web/dev.ts",
|
|
71
71
|
"example:minimal": "exec node --no-warnings scripts/supervise.ts examples/minimal.ts",
|
|
@@ -76,11 +76,11 @@
|
|
|
76
76
|
"@biomejs/biome": "2.4.15",
|
|
77
77
|
"@types/node": "^25.9.1",
|
|
78
78
|
"@types/ws": "^8.18.1",
|
|
79
|
-
"@vitest/coverage-istanbul": "^4.1.
|
|
79
|
+
"@vitest/coverage-istanbul": "^4.1.12",
|
|
80
80
|
"@xterm/addon-fit": "^0.11.0",
|
|
81
81
|
"@xterm/xterm": "^6.0.0",
|
|
82
82
|
"typescript": "^6.0.3",
|
|
83
|
-
"vitest": "^4.1.
|
|
83
|
+
"vitest": "^4.1.12",
|
|
84
84
|
"ws": "^8.21.0"
|
|
85
85
|
},
|
|
86
86
|
"dependencies": {
|
package/prd/04-architecture.md
CHANGED
|
@@ -45,10 +45,42 @@ This interactive login form (`-l -i` for zsh) applies to both the **agent PTY**
|
|
|
45
45
|
and one-shot, non-PTY preflight probes (`--version`, `update`, `--help`). The
|
|
46
46
|
same shell startup files MUST resolve the CLI for every lifecycle operation so
|
|
47
47
|
preflight, update, launch, and resume cannot operate on different installations.
|
|
48
|
+
A probe's shell startup and its command are bounded separately (§9.2), so a slow
|
|
49
|
+
profile is not reported as a failing CLI.
|
|
48
50
|
|
|
49
51
|
Elwood MUST provide diagnostics or tests proving that environment variables from
|
|
50
52
|
the user's shell startup are visible to the launched agent process.
|
|
51
53
|
|
|
54
|
+
Shell startup files can also export `CODEX_HOME`, which moves Codex's
|
|
55
|
+
`config.toml`, and can derive it from anything the launch has: the directory the
|
|
56
|
+
shell starts in (`$PWD`), whether it has a terminal, or the session's environment
|
|
57
|
+
(`ELWOOD_SESSION_ID`). Elwood therefore never reads Codex's home from its own
|
|
58
|
+
process environment, and does not ask a second shell, which would have neither
|
|
59
|
+
the terminal nor the session's environment. The Codex launch script itself, after
|
|
60
|
+
the startup files load and immediately before `exec codex`, writes the
|
|
61
|
+
`CODEX_HOME` and `HOME` that a child process receives (only exported values,
|
|
62
|
+
exactly what Codex inherits), and the directory it starts Codex in (`$PWD`), to a
|
|
63
|
+
per-launch report in the session's private socket home (§8.1). If that write
|
|
64
|
+
fails, the script exits with status 73 and never starts Codex, and a start that
|
|
65
|
+
fails this way rejects with `codex_start_failed` whose `details.phase` is
|
|
66
|
+
`"codex_home_report"` and whose `details.path` names the report. The session reads
|
|
67
|
+
the report when a model operation first needs it. An operation can start before
|
|
68
|
+
Codex does, so a report the launch shell has not finished is waited for within
|
|
69
|
+
that operation's deadline, and a deadline that ends the wait rejects with
|
|
70
|
+
`details.path` naming the report. The session applies Codex's own rule: a non-empty
|
|
71
|
+
`CODEX_HOME`, canonicalized as Codex canonicalizes it (a relative value from the
|
|
72
|
+
reported directory, following each symlink before a later `..`, as the kernel
|
|
73
|
+
does), else `$HOME/.codex` (an empty `HOME` falls back to the account's home
|
|
74
|
+
directory, and a relative one names a path from the reported directory, as Codex
|
|
75
|
+
uses `HOME` as given). The session keeps the resulting `config.toml` path, and its configured
|
|
76
|
+
default (§5.3 `isDefault`) and `setModel` snapshot and restore (C-CODEX-14) use
|
|
77
|
+
only that file. A report that cannot be read, or a `CODEX_HOME` that does not
|
|
78
|
+
exist, fails `listModels` and `setModel` with `model_automation_failed`, whose
|
|
79
|
+
`details.path` names the report; `setModel` fails before it opens the picker, so
|
|
80
|
+
Codex never persists a selection that Elwood could not restore. Elwood does not
|
|
81
|
+
fall back to its own environment: guessing would read and restore a file that
|
|
82
|
+
Codex might not use. C-CODEX-24.
|
|
83
|
+
|
|
52
84
|
### 4.3 Claude settings behavior
|
|
53
85
|
|
|
54
86
|
Elwood MUST NOT mutate `.claude/settings.local.json` by default.
|
|
@@ -27,7 +27,23 @@ type ClaudeReasoningEffort = "low" | "medium" | "high" | "xhigh" | "max";
|
|
|
27
27
|
declare function startClaude(options: StartClaudeOptions): Promise<ClaudeSessionApi>;
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
`cwd` is the working directory where Claude should start.
|
|
30
|
+
`cwd` is the working directory where Claude should start. It MUST already be a
|
|
31
|
+
directory: otherwise `startClaude` rejects with `claude_start_failed`, whose
|
|
32
|
+
`details` carry `cwd` and the failed check's `errno` (`ENOENT`, `ENOTDIR`, or,
|
|
33
|
+
when the check itself fails, its own code such as `EACCES`), before it runs any
|
|
34
|
+
probe, writes any state, or spawns Claude. A relative `cwd` is resolved against
|
|
35
|
+
the process working directory when `startClaude` is called; one that can't be,
|
|
36
|
+
because that directory was deleted, rejects the same way, with `cwd` as given.
|
|
37
|
+
Because `cwd` can be removed while the probes run, it is checked again after
|
|
38
|
+
preflight, before any state is written, and a launch that fails while `cwd` is
|
|
39
|
+
gone, no longer a directory, can't be checked, or is no longer the directory
|
|
40
|
+
that check found (it was deleted and made again) rejects the same way, keeping
|
|
41
|
+
the failed launch's `cause` and any cleanup details (§9.1, §10). Elwood never
|
|
42
|
+
creates it: a state directory is made only while `cwd` exists, one at or under
|
|
43
|
+
`cwd`, the default `<cwd>/.elwood` or a caller's own, only below it, and no
|
|
44
|
+
state write makes a missing parent (§8.1, C-STATE-14), so a deleted worktree is
|
|
45
|
+
not silently recreated empty (C-API-61).
|
|
46
|
+
`stateDir` overrides
|
|
31
47
|
the default Elwood state directory. `name` is a launch-time convenience forwarded
|
|
32
48
|
to Claude's documented `--name` flag; it is not persisted in Elwood state (§8.2).
|
|
33
49
|
`hooks` registers
|
|
@@ -29,6 +29,11 @@ callers that resume from a different process working directory must pass the
|
|
|
29
29
|
original `cwd` or the explicit `stateDir` used at start time. Calling
|
|
30
30
|
`resumeClaude({ elwoodSessionId })` without `cwd` or `stateDir` uses the current
|
|
31
31
|
process working directory to discover the project-local state store.
|
|
32
|
+
Claude relaunches in the given `cwd`, resolved against the process working
|
|
33
|
+
directory when `resumeClaude` is called (one that can't be resolved rejects as on
|
|
34
|
+
start), else in the record's `cwd`. That
|
|
35
|
+
directory must still be a directory, checked before and after preflight as on
|
|
36
|
+
start, and `details.cwd` names it (§5.1, C-API-61).
|
|
32
37
|
|
|
33
38
|
`resumeClaude` must verify that the persisted Elwood session record belongs to
|
|
34
39
|
the Claude adapter before launching. Passing a Codex session ID to `resumeClaude`
|