@with-logic/elwood 0.2.1 → 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 +565 -1
- package/CONTRIBUTING.md +3 -0
- package/README.md +4 -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 +6 -5
- package/dist/runtime/session/base.js.map +1 -1
- package/dist/runtime/session/commands.d.ts +5 -3
- 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 +13 -11
- package/dist/runtime/session/picker.d.ts.map +1 -1
- package/dist/runtime/session/picker.js +46 -24
- 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/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/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
|
@@ -9,7 +9,7 @@ export type LoopEventEmitter = {
|
|
|
9
9
|
type SessionLoopsInput = {
|
|
10
10
|
readonly stateDir: string;
|
|
11
11
|
readonly elwoodSessionId: string;
|
|
12
|
-
readonly ownership: Pick<LaunchOwnership, "canPersist" | "onCommit" | "onRevoked">;
|
|
12
|
+
readonly ownership: Pick<LaunchOwnership, "canPersist" | "persistFile" | "onCommit" | "onRevoked">;
|
|
13
13
|
readonly definitions: readonly PersistedLoopDefinition[];
|
|
14
14
|
readonly queue: ControlQueue;
|
|
15
15
|
readonly emitter: LoopEventEmitter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loops.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/loops.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAG7E,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAI/F,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACrD,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"loops.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/loops.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAG7E,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAI/F,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACrD,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,IAAI,CACtB,eAAe,EACf,YAAY,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,CACxD,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,oFAAoF;AACpF,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;IAChD,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;gBAEjB,KAAK,EAAE,iBAAiB;IAmBpC,yFAAyF;IACzF,KAAK,IAAI,IAAI;IAMb,WAAW,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAIlD,KAAK,IAAI,IAAI;IAKb,OAAO,IAAI,IAAI;IAKf,KAAK,IAAI,IAAI;IAKb,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB;IAKtD,IAAI,IAAI,SAAS,kBAAkB,EAAE;IAIrC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,OAAO,CAAC,aAAa;IAKrB,6FAA6F;IAC7F,YAAY,IAAI,IAAI;IAKpB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAKxC,cAAc,IAAI,IAAI;CAGvB"}
|
|
@@ -17,7 +17,9 @@ export class SessionLoops {
|
|
|
17
17
|
this.mayPersistLoops = input.ownership.canPersist;
|
|
18
18
|
this.scheduler = createScheduler(input);
|
|
19
19
|
input.ownership.onCommit(() => {
|
|
20
|
-
|
|
20
|
+
// Commit runs before the launch's publication clears, so a failed one restores this prune.
|
|
21
|
+
const { stateDir, elwoodSessionId, ownership } = input;
|
|
22
|
+
const definitions = loadRuntimeLoopDefinitions(stateDir, elwoodSessionId, ownership.persistFile);
|
|
21
23
|
this.scheduler.pause();
|
|
22
24
|
this.scheduler = createScheduler({ ...input, definitions });
|
|
23
25
|
this.active = true;
|
|
@@ -85,8 +87,9 @@ function createScheduler(input) {
|
|
|
85
87
|
schedule: (run, delayMs) => outsideStopInput(() => scheduleLoopTimer(run, delayMs)),
|
|
86
88
|
createId: randomUUID,
|
|
87
89
|
persist: (definitions) => {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
const { stateDir, elwoodSessionId, ownership } = input;
|
|
91
|
+
if (ownership.canPersist())
|
|
92
|
+
writeLoopDefinitions(stateDir, elwoodSessionId, definitions, ownership.persistFile);
|
|
90
93
|
},
|
|
91
94
|
submit: (message, loopId, signal) => outsideStopInput(() => input.queue.send(message, "message", undefined, {
|
|
92
95
|
origin: { kind: "loop", loopId },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loops.js","sourceRoot":"","sources":["../../../src/runtime/session/loops.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAM/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"loops.js","sourceRoot":"","sources":["../../../src/runtime/session/loops.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ObservedTerminal } from "../../core/input/abort.ts";
|
|
2
2
|
import type { ModelPickerSpec } from "../../core/models/picker.ts";
|
|
3
3
|
import type { ModelDialogAuthority, ModelDialogStage } from "../../core/models/rows.ts";
|
|
4
4
|
import type { ScreenTerminal } from "../../core/models/tui-screen.ts";
|
|
@@ -11,25 +11,6 @@ export type Progress = {
|
|
|
11
11
|
/** A non-Escape key can accept a stage whose follow-up dialog paints late. */
|
|
12
12
|
keyWritten: boolean;
|
|
13
13
|
};
|
|
14
|
-
/**
|
|
15
|
-
* Consecutive clear frames that prove a dialog is gone rather than mid-repaint.
|
|
16
|
-
*
|
|
17
|
-
* Matches `quietFramesToSettle` in `core/turn-state.ts`, deliberately. That value IS
|
|
18
|
-
* measured: Codex's resume replay repaints in bursts with brief 1-frame quiet gaps, and 5
|
|
19
|
-
* clears them with margin (docs/cli-behavior.md, C-TURN-03). Picker repaints are the same
|
|
20
|
-
* class of problem — a dialog redrawing between stages is briefly unrecognizable — and we
|
|
21
|
-
* have NOT measured their gap length, so there is no evidence for a smaller number.
|
|
22
|
-
*
|
|
23
|
-
* The failure directions are not symmetric, which settles it. Too high only delays
|
|
24
|
-
* releasing the input hold. Too low releases queued input into a repainting picker, where
|
|
25
|
-
* Enter applies the highlighted model — the exact bug class this file exists to prevent.
|
|
26
|
-
* Absent a measurement, take the conservative measured precedent.
|
|
27
|
-
*
|
|
28
|
-
* This governs the SURVIVOR hold in `picker.ts`, which is unbounded and only observes, so
|
|
29
|
-
* a longer streak costs nothing but a little latency. The cleanup loop below uses a
|
|
30
|
-
* shorter one on purpose: see `cleanupClearFrames`.
|
|
31
|
-
*/
|
|
32
|
-
export declare const clearFrames = 5;
|
|
33
14
|
export declare const escapeKey = "\u001B";
|
|
34
15
|
/**
|
|
35
16
|
* Cleanup only ever runs for a dialog the transaction itself opened, so every recognition
|
|
@@ -49,8 +30,12 @@ export declare const ours: ModelDialogAuthority;
|
|
|
49
30
|
* stays up: a second Escape on a slow repaint would land on the composer. A `painting`
|
|
50
31
|
* shell is never written to. Termination aborts every read and write. A dialog still
|
|
51
32
|
* visible at the bound keeps queued input held.
|
|
33
|
+
*
|
|
34
|
+
* Resolves `true` once no dialog of ours is recognizable (or the session terminated). That
|
|
35
|
+
* is NOT positive composer clearance: a blank or half-painted repaint is unrecognizable
|
|
36
|
+
* too, so the caller decides whether what is left on screen is kept as a survivor.
|
|
52
37
|
*/
|
|
53
|
-
export declare function cleanUpDialog(source:
|
|
38
|
+
export declare function cleanUpDialog(source: ObservedTerminal, spec: ModelPickerSpec, progress: Progress, closed: AbortSignal): Promise<boolean>;
|
|
54
39
|
/** Reads and writes throw once `signal` aborts, so nothing reaches a terminated PTY. */
|
|
55
40
|
export declare function abortable(terminal: ScreenTerminal, signal: AbortSignal): ScreenTerminal;
|
|
56
41
|
//# sourceMappingURL=picker-cleanup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker-cleanup.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/picker-cleanup.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"picker-cleanup.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/picker-cleanup.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,sGAAsG;AACtG,MAAM,MAAM,QAAQ,GAAG;IACrB,yFAAyF;IACzF,YAAY,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC3C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAcF,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,oBAAuC,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAoDlB;AACD,wFAAwF;AACxF,wBAAgB,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,cAAc,CAWvF"}
|
|
@@ -3,38 +3,19 @@
|
|
|
3
3
|
* open, or report that one survived so queued input stays held (PRD §5.3, C-API-55).
|
|
4
4
|
*/
|
|
5
5
|
import { delay } from "../../core/delay.js";
|
|
6
|
-
import { writeUnsafe } from "../../core/input/abort.js";
|
|
6
|
+
import { behindReceivedOutputBarrier, writeUnsafe, } from "../../core/input/abort.js";
|
|
7
7
|
import { sendPickerInput } from "../../core/models/input.js";
|
|
8
8
|
const cleanupMs = 1_000;
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* Matches `quietFramesToSettle` in `core/turn-state.ts`, deliberately. That value IS
|
|
13
|
-
* measured: Codex's resume replay repaints in bursts with brief 1-frame quiet gaps, and 5
|
|
14
|
-
* clears them with margin (docs/cli-behavior.md, C-TURN-03). Picker repaints are the same
|
|
15
|
-
* class of problem — a dialog redrawing between stages is briefly unrecognizable — and we
|
|
16
|
-
* have NOT measured their gap length, so there is no evidence for a smaller number.
|
|
17
|
-
*
|
|
18
|
-
* The failure directions are not symmetric, which settles it. Too high only delays
|
|
19
|
-
* releasing the input hold. Too low releases queued input into a repainting picker, where
|
|
20
|
-
* Enter applies the highlighted model — the exact bug class this file exists to prevent.
|
|
21
|
-
* Absent a measurement, take the conservative measured precedent.
|
|
22
|
-
*
|
|
23
|
-
* This governs the SURVIVOR hold in `picker.ts`, which is unbounded and only observes, so
|
|
24
|
-
* a longer streak costs nothing but a little latency. The cleanup loop below uses a
|
|
25
|
-
* shorter one on purpose: see `cleanupClearFrames`.
|
|
26
|
-
*/
|
|
27
|
-
export const clearFrames = 5;
|
|
28
|
-
/**
|
|
29
|
-
* Cleanup's own streak, deliberately shorter than `clearFrames`.
|
|
10
|
+
* Cleanup's own streak of polled readings, deliberately shorter than `clearReadings`.
|
|
30
11
|
*
|
|
31
12
|
* Cleanup is BOUNDED at one second and must also send its Escapes inside that budget, so
|
|
32
|
-
* demanding five clear
|
|
13
|
+
* demanding five clear readings (500 ms at a 100 ms poll) would spend half the budget
|
|
33
14
|
* proving a clearance it has already driven. It is also the safer of the two positions:
|
|
34
15
|
* a cleanup that returns early only hands off to the survivor hold, which then applies
|
|
35
|
-
* the full `
|
|
16
|
+
* the full `clearReadings` streak before releasing any input. Nothing is released early.
|
|
36
17
|
*/
|
|
37
|
-
const
|
|
18
|
+
const cleanupClearReadings = 2;
|
|
38
19
|
const pollMs = 100;
|
|
39
20
|
export const escapeKey = "\u001b";
|
|
40
21
|
/**
|
|
@@ -55,36 +36,42 @@ export const ours = { opened: true };
|
|
|
55
36
|
* stays up: a second Escape on a slow repaint would land on the composer. A `painting`
|
|
56
37
|
* shell is never written to. Termination aborts every read and write. A dialog still
|
|
57
38
|
* visible at the bound keeps queued input held.
|
|
39
|
+
*
|
|
40
|
+
* Resolves `true` once no dialog of ours is recognizable (or the session terminated). That
|
|
41
|
+
* is NOT positive composer clearance: a blank or half-painted repaint is unrecognizable
|
|
42
|
+
* too, so the caller decides whether what is left on screen is kept as a survivor.
|
|
58
43
|
*/
|
|
59
44
|
export async function cleanUpDialog(source, spec, progress, closed) {
|
|
60
|
-
const terminal = abortable(source, closed);
|
|
45
|
+
const terminal = behindReceivedOutputBarrier(source, abortable(source, closed));
|
|
61
46
|
const isActive = (text) => spec.activeDialog(text, ours) !== undefined;
|
|
62
47
|
let escaped = progress.escapeSentTo;
|
|
63
48
|
let clearStreak = 0;
|
|
64
|
-
/** Whether a dialog of ours was ever on screen here; only then can a clear
|
|
49
|
+
/** Whether a dialog of ours was ever on screen here; only then can a clear reading lie. */
|
|
65
50
|
let sawDialog = progress.escapeSentTo !== undefined;
|
|
66
51
|
let lateDialogPossible = progress.keyWritten || (progress.commandSubmitted && !progress.dialogSeen);
|
|
67
52
|
try {
|
|
68
53
|
for (const bound = Date.now() + cleanupMs; Date.now() < bound; await delay(pollMs)) {
|
|
69
54
|
const stage = spec.activeDialog(terminal.snapshot().text, ours);
|
|
70
55
|
if (stage === undefined) {
|
|
71
|
-
// ONE clear
|
|
56
|
+
// ONE clear reading is not proof a dialog we were CANCELLING is gone: a picker
|
|
72
57
|
// repainting between stages is momentarily unrecognizable, and releasing the queue
|
|
73
58
|
// there would let queued input land in the frame that follows. So a streak is
|
|
74
59
|
// required only once we have actually seen a dialog here; a cleanup that never
|
|
75
60
|
// found one has nothing to repaint and returns at once. (Same lesson as resume
|
|
76
61
|
// settling in docs/cli-behavior.md.)
|
|
77
62
|
clearStreak += 1;
|
|
78
|
-
const settled = !sawDialog || clearStreak >=
|
|
63
|
+
const settled = !sawDialog || clearStreak >= cleanupClearReadings;
|
|
79
64
|
// The dialog is gone and nothing can still paint: the queue is released.
|
|
80
65
|
if (!lateDialogPossible && settled)
|
|
81
66
|
return true;
|
|
82
|
-
// Whatever paints after a clear
|
|
67
|
+
// Whatever paints after a clear reading is a new dialog, owed its own Escape.
|
|
83
68
|
escaped = undefined;
|
|
84
69
|
continue;
|
|
85
70
|
}
|
|
86
71
|
clearStreak = 0;
|
|
87
72
|
sawDialog = true;
|
|
73
|
+
// Recorded for the transaction too: a dialog seen here may still repaint after release.
|
|
74
|
+
progress.dialogSeen = true;
|
|
88
75
|
lateDialogPossible = false;
|
|
89
76
|
// A `painting` shell may turn out to be a hook confirmation: wait, never write.
|
|
90
77
|
if (stage === "painting" || stage === escaped)
|
|
@@ -93,8 +80,9 @@ export async function cleanUpDialog(source, spec, progress, closed) {
|
|
|
93
80
|
// Decide the WRITE on everything received, not the last rendered frame: a permission
|
|
94
81
|
// or hook dialog can already be in the PTY buffer while the observed screen still
|
|
95
82
|
// shows the picker, and an Escape chosen from that stale frame would dismiss it.
|
|
96
|
-
// `writeUnsafe` fails closed, so an unvouchable screen
|
|
97
|
-
//
|
|
83
|
+
// `writeUnsafe` fails closed, so an unvouchable screen gets no Escape at all: a failed
|
|
84
|
+
// render never recovers, and an observation that timed out has outlived this
|
|
85
|
+
// one-second bound. The dialog is then left to the survivor hold (C-API-56).
|
|
98
86
|
if (await writeUnsafe(source, undefined, closed))
|
|
99
87
|
continue;
|
|
100
88
|
await sendPickerInput({ terminal }, escapeKey, isActive, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker-cleanup.js","sourceRoot":"","sources":["../../../src/runtime/session/picker-cleanup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"picker-cleanup.js","sourceRoot":"","sources":["../../../src/runtime/session/picker-cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Holds input on a model dialog, whoever opened it, until positive composer clearance is
|
|
3
|
+
* sustained across time-spaced readings (C-API-55).
|
|
4
|
+
*/
|
|
5
|
+
import type { ModelPickerSpec } from "../../core/models/picker.ts";
|
|
6
|
+
export declare class PickerHold {
|
|
7
|
+
private held;
|
|
8
|
+
private clearStreak;
|
|
9
|
+
/** `performance.now()` of the last clear reading counted toward the streak. */
|
|
10
|
+
private lastClearReadingAtMs;
|
|
11
|
+
/** Holds as if a dialog were seen, until the same sustained clearance releases it. */
|
|
12
|
+
hold(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Takes one reading of the latest completed frame. A dialog candidate holds. While held,
|
|
15
|
+
* any reading that is not positively clear restarts the streak, and a clear one counts
|
|
16
|
+
* only `clearReadingGapMs` after the last counted one: readings bunched into one instant,
|
|
17
|
+
* or a burst of repaints, count once. Idle CLIs do not repaint, so the evidence is the
|
|
18
|
+
* same completed frame read over time. The clock is monotonic, so a wall-clock
|
|
19
|
+
* correction cannot stall a hold.
|
|
20
|
+
*/
|
|
21
|
+
observe(text: string, spec: ModelPickerSpec): boolean;
|
|
22
|
+
private restart;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=picker-hold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-hold.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/picker-hold.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAAK;IACxB,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB,CAA4B;IAExD,sFAAsF;IACtF,IAAI,IAAI,IAAI;IAKZ;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO;IAWrD,OAAO,CAAC,OAAO;CAIhB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Holds input on a model dialog, whoever opened it, until positive composer clearance is
|
|
3
|
+
* sustained across time-spaced readings (C-API-55).
|
|
4
|
+
*/
|
|
5
|
+
import { clearReadingGapMs, clearReadings } from "../../core/models/clearance.js";
|
|
6
|
+
export class PickerHold {
|
|
7
|
+
held = false;
|
|
8
|
+
clearStreak = 0;
|
|
9
|
+
/** `performance.now()` of the last clear reading counted toward the streak. */
|
|
10
|
+
lastClearReadingAtMs = Number.NEGATIVE_INFINITY;
|
|
11
|
+
/** Holds as if a dialog were seen, until the same sustained clearance releases it. */
|
|
12
|
+
hold() {
|
|
13
|
+
this.held = true;
|
|
14
|
+
this.restart();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Takes one reading of the latest completed frame. A dialog candidate holds. While held,
|
|
18
|
+
* any reading that is not positively clear restarts the streak, and a clear one counts
|
|
19
|
+
* only `clearReadingGapMs` after the last counted one: readings bunched into one instant,
|
|
20
|
+
* or a burst of repaints, count once. Idle CLIs do not repaint, so the evidence is the
|
|
21
|
+
* same completed frame read over time. The clock is monotonic, so a wall-clock
|
|
22
|
+
* correction cannot stall a hold.
|
|
23
|
+
*/
|
|
24
|
+
observe(text, spec) {
|
|
25
|
+
if (spec.isCandidate(text))
|
|
26
|
+
this.hold();
|
|
27
|
+
else if (this.held && !spec.isClear(text))
|
|
28
|
+
this.restart();
|
|
29
|
+
else if (this.held && performance.now() - this.lastClearReadingAtMs >= clearReadingGapMs) {
|
|
30
|
+
this.clearStreak += 1;
|
|
31
|
+
this.lastClearReadingAtMs = performance.now();
|
|
32
|
+
if (this.clearStreak >= clearReadings)
|
|
33
|
+
this.held = false;
|
|
34
|
+
}
|
|
35
|
+
return this.held;
|
|
36
|
+
}
|
|
37
|
+
restart() {
|
|
38
|
+
this.clearStreak = 0;
|
|
39
|
+
this.lastClearReadingAtMs = Number.NEGATIVE_INFINITY;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=picker-hold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-hold.js","sourceRoot":"","sources":["../../../src/runtime/session/picker-hold.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGlF,MAAM,OAAO,UAAU;IACb,IAAI,GAAG,KAAK,CAAC;IACb,WAAW,GAAG,CAAC,CAAC;IACxB,+EAA+E;IACvE,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAExD,sFAAsF;IACtF,IAAI;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,IAAY,EAAE,IAAqB;QACzC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;aACnC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;aACrD,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,IAAI,iBAAiB,EAAE,CAAC;YACzF,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,WAAW,IAAI,aAAa;gBAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/** Exclusive model-picker queue ownership and failure cleanup (PRD §5.3, C-API-55). */
|
|
2
2
|
import type { ControlQueue } from "../../core/control-queue/index.ts";
|
|
3
|
-
import type
|
|
3
|
+
import { type ObservedTerminal } from "../../core/input/abort.ts";
|
|
4
4
|
import type { ModelPickerIo, ModelPickerSpec } from "../../core/models/picker.ts";
|
|
5
|
-
import type { ScreenTerminal } from "../../core/models/tui-screen.ts";
|
|
6
5
|
type PickerDeps = {
|
|
7
6
|
readonly controlQueue: ControlQueue;
|
|
8
7
|
readonly observeRendered?: (listener: (read?: () => string) => void) => void;
|
|
8
|
+
readonly subscribeRender?: (listener: () => void) => () => void;
|
|
9
9
|
readonly inputSignal?: () => AbortSignal;
|
|
10
10
|
readonly submitDirect: (command: string, signal: AbortSignal) => Promise<void>;
|
|
11
|
-
/**
|
|
12
|
-
readonly terminal:
|
|
11
|
+
/** Carries the received-output barrier every picker key is written behind (C-API-56). */
|
|
12
|
+
readonly terminal: ObservedTerminal;
|
|
13
13
|
readonly blocked: () => boolean;
|
|
14
14
|
/** The adapter's picker spec, for recognizing a dialog nobody here opened. */
|
|
15
15
|
readonly picker: () => ModelPickerSpec;
|
|
@@ -19,18 +19,20 @@ export declare class PickerTransactions {
|
|
|
19
19
|
private readonly foreign;
|
|
20
20
|
private active;
|
|
21
21
|
private survivor;
|
|
22
|
-
/**
|
|
23
|
-
private
|
|
22
|
+
/** Forgets the survivor only after the composer is positively, sustainedly clear. */
|
|
23
|
+
private readonly survivorHold;
|
|
24
24
|
constructor(deps: PickerDeps);
|
|
25
25
|
/**
|
|
26
26
|
* Whether a model dialog is on screen that queued input must not be written into.
|
|
27
27
|
*
|
|
28
28
|
* TWO cases, and the difference matters. A SURVIVOR is a dialog our own cleanup could not
|
|
29
|
-
* cancel
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
29
|
+
* cancel, or what its cleanup left on a frame that is not positively clear (a blank or
|
|
30
|
+
* half-painted repaint): it is ours, and it is remembered until the composer is clear. A
|
|
31
|
+
* dialog nobody here opened — a human who typed `/model` themselves — is NOT ours and
|
|
32
|
+
* never becomes a survivor, but Enter on it still applies its highlighted row, and Escape
|
|
33
|
+
* still discards the human's state. So writes are held on any visible model dialog,
|
|
34
|
+
* whoever opened it; ownership decides what Elwood may DRIVE, not what it may safely type
|
|
35
|
+
* over (C-API-55).
|
|
34
36
|
*/
|
|
35
37
|
blocksInput(): boolean;
|
|
36
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/picker.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"picker.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/picker.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAA+B,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAIlF,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,WAAW,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,yFAAyF;IACzF,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,MAAM,eAAe,CAAC;CACxC,CAAC;AAEF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,MAAM,CAA0D;IACxE,OAAO,CAAC,QAAQ,CAA8B;IAC9C,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;gBACrC,IAAI,EAAE,UAAU;IAK5B;;;;;;;;;;;OAWG;IACH,WAAW,IAAI,OAAO;IAqBtB;;;;;;;OAOG;IACH,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO;IAMlD;;;;;OAKG;IACG,GAAG,CAAC,CAAC,EACT,IAAI,EAAE,aAAa,GAAG,WAAW,EACjC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAC3D,OAAO,CAAC,CAAC,CAAC;IAwDb,OAAO,CAAC,EAAE;YA+BI,OAAO;CAmBtB"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { elwoodError } from "../../core/errors.js";
|
|
2
|
-
import {
|
|
3
|
-
import { abortable, cleanUpDialog,
|
|
2
|
+
import { behindReceivedOutputBarrier } from "../../core/input/abort.js";
|
|
3
|
+
import { abortable, cleanUpDialog, escapeKey, ours } from "./picker-cleanup.js";
|
|
4
|
+
import { PickerHold } from "./picker-hold.js";
|
|
4
5
|
export class PickerTransactions {
|
|
5
6
|
deps;
|
|
6
|
-
foreign = new
|
|
7
|
+
foreign = new PickerHold();
|
|
7
8
|
active;
|
|
8
9
|
survivor;
|
|
9
|
-
/**
|
|
10
|
-
|
|
10
|
+
/** Forgets the survivor only after the composer is positively, sustainedly clear. */
|
|
11
|
+
survivorHold = new PickerHold();
|
|
11
12
|
constructor(deps) {
|
|
12
13
|
this.deps = deps;
|
|
13
14
|
deps.observeRendered?.((read) => this.foreignDialogVisible(read));
|
|
@@ -16,24 +17,32 @@ export class PickerTransactions {
|
|
|
16
17
|
* Whether a model dialog is on screen that queued input must not be written into.
|
|
17
18
|
*
|
|
18
19
|
* TWO cases, and the difference matters. A SURVIVOR is a dialog our own cleanup could not
|
|
19
|
-
* cancel
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
20
|
+
* cancel, or what its cleanup left on a frame that is not positively clear (a blank or
|
|
21
|
+
* half-painted repaint): it is ours, and it is remembered until the composer is clear. A
|
|
22
|
+
* dialog nobody here opened — a human who typed `/model` themselves — is NOT ours and
|
|
23
|
+
* never becomes a survivor, but Enter on it still applies its highlighted row, and Escape
|
|
24
|
+
* still discards the human's state. So writes are held on any visible model dialog,
|
|
25
|
+
* whoever opened it; ownership decides what Elwood may DRIVE, not what it may safely type
|
|
26
|
+
* over (C-API-55).
|
|
24
27
|
*/
|
|
25
28
|
blocksInput() {
|
|
26
29
|
if (this.survivor === undefined)
|
|
27
30
|
return false;
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
const text = this.deps.terminal.snapshot().text;
|
|
32
|
+
if (this.survivor.activeDialog(text, ours) !== undefined) {
|
|
33
|
+
this.survivorHold.hold();
|
|
30
34
|
return true;
|
|
31
35
|
}
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
// The caller's own dialog replaced ours, so nothing of ours is left to hold on: a
|
|
37
|
+
// `PreModelSwitch` hook confirmation, whether cleanup ended on it or on its painting shell.
|
|
38
|
+
if (this.survivor.isCallerDialog(text)) {
|
|
39
|
+
this.survivor = undefined;
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
// An UNRECOGNIZED frame is not proof the survivor is gone: a picker repainting between
|
|
43
|
+
// stages, or half-painted, matches neither grammar, and forgetting it there would release
|
|
44
|
+
// queued input into the frame that follows. Only sustained positive clearance does.
|
|
45
|
+
if (this.survivorHold.observe(text, this.survivor))
|
|
37
46
|
return true;
|
|
38
47
|
this.survivor = undefined;
|
|
39
48
|
return false;
|
|
@@ -66,13 +75,13 @@ export class PickerTransactions {
|
|
|
66
75
|
try {
|
|
67
76
|
await this.deps.controlQueue.runExclusive(kind, async (closed) => {
|
|
68
77
|
// Elwood cannot tell its own dialog from picker text that precedes its command: a
|
|
69
|
-
// human's dialog, or a transcript quote the unanchored `
|
|
78
|
+
// human's dialog, or a transcript quote the unanchored `hasPickerHeader` would drive.
|
|
70
79
|
const human = this.deps.inputSignal?.();
|
|
71
80
|
const before = this.deps.terminal.snapshot().text;
|
|
72
81
|
// We have NOT written `/model` yet, so nothing here is ours. We still ask the
|
|
73
82
|
// grammar under a hypothetical authority: anything it would call a dialog is
|
|
74
83
|
// someone else's, which is precisely why the operation must refuse to start.
|
|
75
|
-
if (spec.
|
|
84
|
+
if (spec.hasPickerHeader(before) || spec.activeDialog(before, ours) !== undefined)
|
|
76
85
|
throw elwoodError("model_automation_failed", "Model picker text was already visible before the operation began.");
|
|
77
86
|
const progress = {
|
|
78
87
|
escapeSentTo: undefined,
|
|
@@ -106,7 +115,9 @@ export class PickerTransactions {
|
|
|
106
115
|
}
|
|
107
116
|
io(signal, spec, progress) {
|
|
108
117
|
const live = abortable(this.deps.terminal, signal);
|
|
109
|
-
|
|
118
|
+
// Every key is decided on everything received, like cleanup's Escape (C-API-56).
|
|
119
|
+
const terminal = behindReceivedOutputBarrier(this.deps.terminal, {
|
|
120
|
+
subscribeRender: this.deps.subscribeRender,
|
|
110
121
|
snapshot: () => {
|
|
111
122
|
const snapshot = live.snapshot();
|
|
112
123
|
progress.dialogSeen ||= spec.activeDialog(snapshot.text, ours) !== undefined;
|
|
@@ -121,7 +132,7 @@ export class PickerTransactions {
|
|
|
121
132
|
progress.keyWritten = true;
|
|
122
133
|
return sent;
|
|
123
134
|
},
|
|
124
|
-
};
|
|
135
|
+
});
|
|
125
136
|
return {
|
|
126
137
|
terminal,
|
|
127
138
|
signal,
|
|
@@ -135,9 +146,20 @@ export class PickerTransactions {
|
|
|
135
146
|
};
|
|
136
147
|
}
|
|
137
148
|
async cleanUp(spec, progress, closed) {
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
149
|
+
const noneRecognized = await cleanUpDialog(this.deps.terminal, spec, progress, closed);
|
|
150
|
+
// Nothing of OURS being recognizable is not proof our dialog is gone: a blank or
|
|
151
|
+
// half-painted repaint matches neither grammar, and the picker can paint again after it.
|
|
152
|
+
// So once our dialog was seen, or while a picker header is up, anything short of a
|
|
153
|
+
// positively clear composer is kept as a survivor, held and never written to. A frame
|
|
154
|
+
// that shows neither is not ours, and a terminated session holds nothing. A dialog the
|
|
155
|
+
// caller owns that replaced ours is left for the caller: `blocksInput` forgets the
|
|
156
|
+
// survivor on it.
|
|
157
|
+
const text = this.deps.terminal.snapshot().text;
|
|
158
|
+
const mayBeOurs = progress.dialogSeen || spec.hasPickerHeader(text);
|
|
159
|
+
if (noneRecognized && (closed.aborted || spec.isClear(text) || !mayBeOurs))
|
|
160
|
+
return;
|
|
161
|
+
this.survivor = spec;
|
|
162
|
+
this.survivorHold.hold();
|
|
141
163
|
}
|
|
142
164
|
}
|
|
143
165
|
//# sourceMappingURL=picker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker.js","sourceRoot":"","sources":["../../../src/runtime/session/picker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"picker.js","sourceRoot":"","sources":["../../../src/runtime/session/picker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Preserve typed adapter startup failures for state preparation (PRD §9.1/§10, C-ERR-08). */
|
|
2
|
+
import type { ElwoodAgentKind } from "../../core/activity/index.ts";
|
|
3
|
+
import { type StateDirSetup } from "../../state/store.ts";
|
|
4
|
+
/** State errors retain their identity; native I/O errors gain the adapter startup contract. */
|
|
5
|
+
export declare function prepareLaunchState(agent: ElwoodAgentKind, stateDir: string, setup: StateDirSetup): void;
|
|
6
|
+
//# sourceMappingURL=prepare-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-state.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/prepare-state.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,aAAa,GACnB,IAAI,CAWN"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { causeDetails, ElwoodError, elwoodError } from "../../core/errors.js";
|
|
2
|
+
import { prepareStateDir } from "../../state/store.js";
|
|
3
|
+
/** State errors retain their identity; native I/O errors gain the adapter startup contract. */
|
|
4
|
+
export function prepareLaunchState(agent, stateDir, setup) {
|
|
5
|
+
try {
|
|
6
|
+
prepareStateDir(stateDir, setup);
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
if (error instanceof ElwoodError)
|
|
10
|
+
throw error;
|
|
11
|
+
throw elwoodError(`${agent}_start_failed`, `Could not prepare ${agent} session state.`, causeDetails(error));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=prepare-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-state.js","sourceRoot":"","sources":["../../../src/runtime/session/prepare-state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAsB,MAAM,sBAAsB,CAAC;AAE3E,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAChC,KAAsB,EACtB,QAAgB,EAChB,KAAoB;IAEpB,IAAI,CAAC;QACH,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW;YAAE,MAAM,KAAK,CAAC;QAC9C,MAAM,WAAW,CACf,GAAG,KAAK,eAAe,EACvB,qBAAqB,KAAK,iBAAiB,EAC3C,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -9,11 +9,11 @@ import type { PersistedLoopDefinition } from "../../state/loop-store.ts";
|
|
|
9
9
|
import type { SessionRuntime } from "../../state/runtime-paths.ts";
|
|
10
10
|
import type { SessionRecord } from "../../state/store.ts";
|
|
11
11
|
import { SessionLifecycle } from "./lifecycle.ts";
|
|
12
|
-
import type {
|
|
12
|
+
import type { SessionInputOwnership } from "./session-input.ts";
|
|
13
13
|
import type { SessionStatusEmitter } from "./status-wiring.ts";
|
|
14
14
|
export declare abstract class QuestionSessionBase extends SessionLifecycle {
|
|
15
15
|
private readonly questions;
|
|
16
|
-
protected constructor(agent: ElwoodAgentKind, record: SessionRecord, stateDir: string, runtime: SessionRuntime, pty: PtyProcess, input:
|
|
16
|
+
protected constructor(agent: ElwoodAgentKind, record: SessionRecord, stateDir: string, runtime: SessionRuntime, pty: PtyProcess, input: SessionInputOwnership, events: SessionStatusEmitter, replay: TerminalReplayBuffer, loops: readonly PersistedLoopDefinition[]);
|
|
17
17
|
protected configureQuestions(factory: (registry: QuestionRegistry) => QuestionAdapter): void;
|
|
18
18
|
protected revokeQuestionAnswer(): void;
|
|
19
19
|
protected isInputBlocked(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/questions.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EACV,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../../src/runtime/session/questions.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EACV,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,8BAAsB,mBAAoB,SAAQ,gBAAgB;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,SAAS,aACP,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,SAAS,uBAAuB,EAAE;IAY3C,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,eAAe,GAAG,IAAI;IAG5F,SAAS,CAAC,oBAAoB,IAAI,IAAI;cAGnB,cAAc,IAAI,OAAO;IAG5C,aAAa;IAGb,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,oBAAoB,EAAE,EACxC,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,IAAI,CAAC;CAGjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questions.js","sourceRoot":"","sources":["../../../src/runtime/session/questions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAWtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,MAAM,OAAgB,mBAAoB,SAAQ,gBAAgB;IAC/C,SAAS,CAAmB;IAC7C,YACE,KAAsB,EACtB,MAAqB,EACrB,QAAgB,EAChB,OAAuB,EACvB,GAAe,EACf,
|
|
1
|
+
{"version":3,"file":"questions.js","sourceRoot":"","sources":["../../../src/runtime/session/questions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAWtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,MAAM,OAAgB,mBAAoB,SAAQ,gBAAgB;IAC/C,SAAS,CAAmB;IAC7C,YACE,KAAsB,EACtB,MAAqB,EACrB,QAAgB,EAChB,OAAuB,EACvB,GAAe,EACf,KAA4B,EAC5B,MAA4B,EAC5B,MAA4B,EAC5B,KAAyC;QAEzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CACnC,KAAK,EACL,MAAM,CAAC,eAAe,EACtB,MAAM,EACN,KAAK,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CACpB,CAAC;IACJ,CAAC;IACS,kBAAkB,CAAC,OAAwD;QACnF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACS,oBAAoB;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IACkB,cAAc;QAC/B,OAAO,KAAK,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IACD,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,eAAe,CACb,SAAiB,EACjB,OAAwC,EACxC,OAAqC;QAErC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC;CACF"}
|