@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rows.js","sourceRoot":"","sources":["../../../src/core/models/rows.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"rows.js","sourceRoot":"","sources":["../../../src/core/models/rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,15 @@ export type ScreenTerminal = {
|
|
|
7
7
|
snapshot(): {
|
|
8
8
|
readonly text: string;
|
|
9
9
|
};
|
|
10
|
+
/** Subscribes to completed renders, when the terminal can report them (`waitForScreen`). */
|
|
11
|
+
readonly subscribeRender?: ((listener: () => void) => () => void) | undefined;
|
|
10
12
|
};
|
|
11
13
|
export declare const defaultModelTimeoutMs = 20000;
|
|
12
14
|
/**
|
|
13
|
-
* Polls until `test` passes, the deadline elapses, or `signal` aborts.
|
|
15
|
+
* Polls until `test` passes, the deadline elapses, or `signal` aborts. A terminal that
|
|
16
|
+
* reports completed renders (`subscribeRender`) is also read on each one, so a frame is
|
|
17
|
+
* seen as soon as it lands rather than up to one poll interval later; the poll still
|
|
18
|
+
* runs in case no render follows. The subscription lasts only as long as the wait.
|
|
14
19
|
*
|
|
15
20
|
* `signal` is the OPERATION's budget, shared by every phase; `timeoutMs` bounds this phase.
|
|
16
21
|
* Without the signal a timed-out operation kept polling through each remaining phase's own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-screen.d.ts","sourceRoot":"","sources":["../../../src/core/models/tui-screen.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"tui-screen.d.ts","sourceRoot":"","sources":["../../../src/core/models/tui-screen.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,QAAQ,IAAI;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,4FAA4F;IAC5F,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/E,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAI5C;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBlB"}
|
|
@@ -4,11 +4,15 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { delay } from "../delay.js";
|
|
6
6
|
import { elwoodError } from "../errors.js";
|
|
7
|
+
import { RenderWakeup } from "../input/render-wakeup.js";
|
|
7
8
|
export const defaultModelTimeoutMs = 20_000;
|
|
8
9
|
const pollMs = 100;
|
|
9
10
|
const openNudgeDelayMs = 2_000;
|
|
10
11
|
/**
|
|
11
|
-
* Polls until `test` passes, the deadline elapses, or `signal` aborts.
|
|
12
|
+
* Polls until `test` passes, the deadline elapses, or `signal` aborts. A terminal that
|
|
13
|
+
* reports completed renders (`subscribeRender`) is also read on each one, so a frame is
|
|
14
|
+
* seen as soon as it lands rather than up to one poll interval later; the poll still
|
|
15
|
+
* runs in case no render follows. The subscription lasts only as long as the wait.
|
|
12
16
|
*
|
|
13
17
|
* `signal` is the OPERATION's budget, shared by every phase; `timeoutMs` bounds this phase.
|
|
14
18
|
* Without the signal a timed-out operation kept polling through each remaining phase's own
|
|
@@ -17,18 +21,29 @@ const openNudgeDelayMs = 2_000;
|
|
|
17
21
|
* frame that satisfies a phase whose operation has already expired is not a result.
|
|
18
22
|
*/
|
|
19
23
|
export async function waitForScreen(terminal, test, timeoutMs, label, signal) {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (test(text)) {
|
|
24
|
+
const wakeup = new RenderWakeup(terminal.subscribeRender);
|
|
25
|
+
try {
|
|
26
|
+
const started = Date.now();
|
|
27
|
+
while (Date.now() - started < timeoutMs) {
|
|
25
28
|
signal?.throwIfAborted();
|
|
26
|
-
|
|
29
|
+
// Consumed BEFORE the read: a render that lands after it, even while `test` runs,
|
|
30
|
+
// leaves the wakeup set, so the wait below returns at once instead of missing it.
|
|
31
|
+
wakeup.consume();
|
|
32
|
+
const text = terminal.snapshot().text;
|
|
33
|
+
if (test(text)) {
|
|
34
|
+
signal?.throwIfAborted();
|
|
35
|
+
return text;
|
|
36
|
+
}
|
|
37
|
+
await (terminal.subscribeRender === undefined
|
|
38
|
+
? delay(pollMs)
|
|
39
|
+
: wakeup.wait(undefined, pollMs));
|
|
27
40
|
}
|
|
28
|
-
|
|
41
|
+
signal?.throwIfAborted();
|
|
42
|
+
throw elwoodError("model_automation_failed", `Timed out waiting for ${label}.`);
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
wakeup.dispose();
|
|
29
46
|
}
|
|
30
|
-
signal?.throwIfAborted();
|
|
31
|
-
throw elwoodError("model_automation_failed", `Timed out waiting for ${label}.`);
|
|
32
47
|
}
|
|
33
48
|
export async function openCommandScreen(input) {
|
|
34
49
|
const pending = new AbortController();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-screen.js","sourceRoot":"","sources":["../../../src/core/models/tui-screen.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tui-screen.js","sourceRoot":"","sources":["../../../src/core/models/tui-screen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads the rows a model picker hides outside its scrolling window.
|
|
3
|
+
* Implements PRD §5.3 (`listModels` returns every listed row; `setModel` selects any),
|
|
4
|
+
* C-API-23, and C-API-24.
|
|
5
|
+
*/
|
|
6
|
+
import type { ModelPickerIo, ModelPickerSpec } from "./picker.ts";
|
|
7
|
+
import type { AgentModelOption, ParsedModelPicker } from "./rows.ts";
|
|
8
|
+
export type PickerWalk = {
|
|
9
|
+
/** One deadline for the whole walk, however many rows the picker claims. */
|
|
10
|
+
readonly timeoutMs: number;
|
|
11
|
+
/** Stop once a rendered option matches: `setModel` needs its target on screen, no more. */
|
|
12
|
+
readonly found?: (option: AgentModelOption) => boolean;
|
|
13
|
+
};
|
|
14
|
+
export type RevealedPicker = {
|
|
15
|
+
/** The frame the walk ended on: the cursor and the window it is rendering now. */
|
|
16
|
+
readonly frame: ParsedModelPicker;
|
|
17
|
+
/** Every row seen on the way, in picker order. */
|
|
18
|
+
readonly options: readonly AgentModelOption[];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Walks the cursor until every row the list holds has been rendered, or `found` matches one.
|
|
22
|
+
* Claude 2.1.310 renders at most ten rows of a longer list. Rows keep their absolute numbers,
|
|
23
|
+
* so a window starting past row 1 hides the rows above it, and the overflow line under its
|
|
24
|
+
* last row counts those below. The window follows the cursor, so the walk moves it one row
|
|
25
|
+
* at a time toward rows not yet seen, below first and then above, and waits for each move
|
|
26
|
+
* to land before the next key, reading it on the render that paints it. It never sends a
|
|
27
|
+
* key past either end of the list, where the CLI wraps: it moves down only while the list's
|
|
28
|
+
* last row is unseen, so the cursor is above it, and up only while the first is. The
|
|
29
|
+
* windows seen are contiguous (each contains the row next to the previous cursor), so the
|
|
30
|
+
* list is complete once it holds as many rows as the list's length. Arrow keys only move
|
|
31
|
+
* the highlight; what follows the walk is the caller's: a listing cancels with Escape,
|
|
32
|
+
* which keeps model and effort, and a selection moves to its target and applies it. A list
|
|
33
|
+
* that fits its window costs no key, which is every Codex list, since Codex's grammar
|
|
34
|
+
* rejects a scrolled one.
|
|
35
|
+
*
|
|
36
|
+
* The rendered count and row numbers are validated, not trusted, whenever the walk still
|
|
37
|
+
* needs rows (a listing, or `setModel` before its target is rendered). The list's length is
|
|
38
|
+
* read from the first frame that states one; a frame that marks rows hidden below without
|
|
39
|
+
* a positive count, has a row number or length that is not an exact integer, or states a
|
|
40
|
+
* different length is never acted on, so the walk times out if no other frame renders.
|
|
41
|
+
* A frame that marks nothing hidden is a list ending at its highest row. With the cursor on
|
|
42
|
+
* row 10, `❯` replaces the `↓` marker, so only the count line says more rows follow; that
|
|
43
|
+
* relies on Claude painting the count before the footer the complete picker needs
|
|
44
|
+
* (`docs/cli-behavior.md`). Only rows actually rendered are stored.
|
|
45
|
+
*/
|
|
46
|
+
export declare function revealPickerRows(io: ModelPickerIo, spec: Pick<ModelPickerSpec, "agent" | "parse" | "activeDialog">, opening: ParsedModelPicker, walk: PickerWalk): Promise<RevealedPicker>;
|
|
47
|
+
/** The highlighted option, or undefined while no cursor is painted. */
|
|
48
|
+
export declare function cursorOption(parsed: ParsedModelPicker): AgentModelOption | undefined;
|
|
49
|
+
//# sourceMappingURL=window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/core/models/window.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAa,MAAM,WAAW,CAAC;AAGhF,MAAM,MAAM,UAAU,GAAG;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,GAAG,cAAc,CAAC,EAC/D,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,cAAc,CAAC,CA4CzB;AAeD,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,SAAS,CAEpF"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads the rows a model picker hides outside its scrolling window.
|
|
3
|
+
* Implements PRD §5.3 (`listModels` returns every listed row; `setModel` selects any),
|
|
4
|
+
* C-API-23, and C-API-24.
|
|
5
|
+
*/
|
|
6
|
+
import { elwoodError } from "../errors.js";
|
|
7
|
+
import { arrowDown, arrowUp } from "../input/constants.js";
|
|
8
|
+
import { sendPickerInput } from "./input.js";
|
|
9
|
+
import { isOwnCompletePicker } from "./own-picker.js";
|
|
10
|
+
import { waitForScreen } from "./tui-screen.js";
|
|
11
|
+
/**
|
|
12
|
+
* Walks the cursor until every row the list holds has been rendered, or `found` matches one.
|
|
13
|
+
* Claude 2.1.310 renders at most ten rows of a longer list. Rows keep their absolute numbers,
|
|
14
|
+
* so a window starting past row 1 hides the rows above it, and the overflow line under its
|
|
15
|
+
* last row counts those below. The window follows the cursor, so the walk moves it one row
|
|
16
|
+
* at a time toward rows not yet seen, below first and then above, and waits for each move
|
|
17
|
+
* to land before the next key, reading it on the render that paints it. It never sends a
|
|
18
|
+
* key past either end of the list, where the CLI wraps: it moves down only while the list's
|
|
19
|
+
* last row is unseen, so the cursor is above it, and up only while the first is. The
|
|
20
|
+
* windows seen are contiguous (each contains the row next to the previous cursor), so the
|
|
21
|
+
* list is complete once it holds as many rows as the list's length. Arrow keys only move
|
|
22
|
+
* the highlight; what follows the walk is the caller's: a listing cancels with Escape,
|
|
23
|
+
* which keeps model and effort, and a selection moves to its target and applies it. A list
|
|
24
|
+
* that fits its window costs no key, which is every Codex list, since Codex's grammar
|
|
25
|
+
* rejects a scrolled one.
|
|
26
|
+
*
|
|
27
|
+
* The rendered count and row numbers are validated, not trusted, whenever the walk still
|
|
28
|
+
* needs rows (a listing, or `setModel` before its target is rendered). The list's length is
|
|
29
|
+
* read from the first frame that states one; a frame that marks rows hidden below without
|
|
30
|
+
* a positive count, has a row number or length that is not an exact integer, or states a
|
|
31
|
+
* different length is never acted on, so the walk times out if no other frame renders.
|
|
32
|
+
* A frame that marks nothing hidden is a list ending at its highest row. With the cursor on
|
|
33
|
+
* row 10, `❯` replaces the `↓` marker, so only the count line says more rows follow; that
|
|
34
|
+
* relies on Claude painting the count before the footer the complete picker needs
|
|
35
|
+
* (`docs/cli-behavior.md`). Only rows actually rendered are stored.
|
|
36
|
+
*/
|
|
37
|
+
export async function revealPickerRows(io, spec, opening, walk) {
|
|
38
|
+
const deadline = performance.now() + walk.timeoutMs;
|
|
39
|
+
const ownCompletePicker = isOwnCompletePicker(spec);
|
|
40
|
+
const seen = new Map();
|
|
41
|
+
/**
|
|
42
|
+
* The first frame of the own complete picker that `usable` accepts. Claude repaints a
|
|
43
|
+
* scrolled window across more than one render, so a frame read on one of them can show
|
|
44
|
+
* the new rows above a stale count, or before the count is painted: such a frame is
|
|
45
|
+
* waited out, and fails the walk only if no usable one renders by its deadline.
|
|
46
|
+
*/
|
|
47
|
+
const next = async (usable, label) => spec.parse(await waitForScreen(io.terminal, (screen) => ownCompletePicker(screen) && usable(spec.parse(screen)), deadline - performance.now(), `${spec.agent} picker ${label}`, io.signal));
|
|
48
|
+
let frame = opening;
|
|
49
|
+
let length = listLength(opening);
|
|
50
|
+
for (;;) {
|
|
51
|
+
for (const row of frame.rows)
|
|
52
|
+
if (!seen.has(row.absoluteRowNumber))
|
|
53
|
+
seen.set(row.absoluteRowNumber, row);
|
|
54
|
+
if (walk.found !== undefined && frame.options.some(walk.found))
|
|
55
|
+
return revealed(frame, seen);
|
|
56
|
+
if (length === undefined) {
|
|
57
|
+
frame = await next((counted) => listLength(counted) !== undefined, "row count");
|
|
58
|
+
length = listLength(frame);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (seen.size === length)
|
|
62
|
+
return revealed(frame, seen);
|
|
63
|
+
const cursor = frame.rows[frame.cursorOptionIndex];
|
|
64
|
+
if (cursor === undefined)
|
|
65
|
+
throw walkFailed("Could not locate the picker cursor.", seen);
|
|
66
|
+
const down = !seen.has(length);
|
|
67
|
+
const nextAbsoluteRowNumber = cursor.absoluteRowNumber + (down ? 1 : -1);
|
|
68
|
+
await sendPickerInput(io, down ? arrowDown : arrowUp, ownCompletePicker);
|
|
69
|
+
const listed = length;
|
|
70
|
+
frame = await next((moved) => cursorAbsoluteRowNumber(moved) === nextAbsoluteRowNumber && listLength(moved) === listed, `cursor on row ${nextAbsoluteRowNumber} of ${listed}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The list's length by `frame`'s own account, its highest rendered row plus those hidden, or
|
|
75
|
+
* undefined when the parser marks the count unknown (rows hidden below without a positive
|
|
76
|
+
* count) or the sum is not an exactly representable integer. The grammar already refuses
|
|
77
|
+
* row numbers that round. A frame that marks nothing hidden ends at its highest row.
|
|
78
|
+
*/
|
|
79
|
+
function listLength(frame) {
|
|
80
|
+
if (frame.hiddenRowCountBelow === undefined)
|
|
81
|
+
return undefined;
|
|
82
|
+
const length = Math.max(0, ...frame.rows.map((row) => row.absoluteRowNumber)) + frame.hiddenRowCountBelow;
|
|
83
|
+
return Number.isSafeInteger(length) ? length : undefined;
|
|
84
|
+
}
|
|
85
|
+
/** The highlighted option, or undefined while no cursor is painted. */
|
|
86
|
+
export function cursorOption(parsed) {
|
|
87
|
+
return parsed.options[parsed.cursorOptionIndex];
|
|
88
|
+
}
|
|
89
|
+
function cursorAbsoluteRowNumber(parsed) {
|
|
90
|
+
return parsed.rows[parsed.cursorOptionIndex]?.absoluteRowNumber;
|
|
91
|
+
}
|
|
92
|
+
function inPickerOrder(seen) {
|
|
93
|
+
return [...seen.values()]
|
|
94
|
+
.sort((left, right) => left.absoluteRowNumber - right.absoluteRowNumber)
|
|
95
|
+
.map((row) => row.option);
|
|
96
|
+
}
|
|
97
|
+
function revealed(frame, seen) {
|
|
98
|
+
return { frame, options: inPickerOrder(seen) };
|
|
99
|
+
}
|
|
100
|
+
function walkFailed(reason, seen) {
|
|
101
|
+
return elwoodError("model_automation_failed", reason, {
|
|
102
|
+
available: inPickerOrder(seen).map((option) => option.id),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.js","sourceRoot":"","sources":["../../../src/core/models/window.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Shared owner/mode rules for replaceable path namespaces (PRD §8.1/§12A.5, C-STATE-11/C-CLI-15). */
|
|
2
|
+
import type { Stats } from "node:fs";
|
|
3
|
+
export type PathUser = {
|
|
4
|
+
readonly uid: number;
|
|
5
|
+
readonly gid: number;
|
|
6
|
+
};
|
|
7
|
+
/** CLI-compatible mode-bit policy; ACLs and extra members of a private group are not inspected. */
|
|
8
|
+
export declare function lookupFault(info: Pick<Stats, "uid" | "gid" | "mode">, user: PathUser, directory: string): string | undefined;
|
|
9
|
+
/** Sticky directories protect only entries belonging to the user or root. */
|
|
10
|
+
export declare function ownerFault(info: Pick<Stats, "uid">, user: PathUser, path: string, kind: "directory" | "link"): string | undefined;
|
|
11
|
+
//# sourceMappingURL=path-trust.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-trust.d.ts","sourceRoot":"","sources":["../../src/core/path-trust.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAKtE,mGAAmG;AACnG,wBAAgB,WAAW,CACzB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,EACzC,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAQpB;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EACxB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAAG,MAAM,GACzB,MAAM,GAAG,SAAS,CAGpB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const STICKY = 0o1000;
|
|
2
|
+
const GROUP_WRITE = 0o020;
|
|
3
|
+
const OTHER_WRITE = 0o002;
|
|
4
|
+
/** CLI-compatible mode-bit policy; ACLs and extra members of a private group are not inspected. */
|
|
5
|
+
export function lookupFault(info, user, directory) {
|
|
6
|
+
const owner = ownerFault(info, user, directory, "directory");
|
|
7
|
+
if (owner !== undefined)
|
|
8
|
+
return owner;
|
|
9
|
+
const privateGroup = user.uid !== 0 && info.gid === user.gid && user.gid === user.uid;
|
|
10
|
+
const writable = (info.mode & OTHER_WRITE) !== 0 || ((info.mode & GROUP_WRITE) !== 0 && !privateGroup);
|
|
11
|
+
if (!writable || (info.mode & STICKY) !== 0)
|
|
12
|
+
return undefined;
|
|
13
|
+
return `directory '${directory}' is writable by other users; remove that with 'chmod go-w', or choose a workspace elsewhere`;
|
|
14
|
+
}
|
|
15
|
+
/** Sticky directories protect only entries belonging to the user or root. */
|
|
16
|
+
export function ownerFault(info, user, path, kind) {
|
|
17
|
+
if (info.uid === 0 || info.uid === user.uid)
|
|
18
|
+
return undefined;
|
|
19
|
+
return `${kind} '${path}' is owned by another user; choose a workspace reached only through your own or root's directories`;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=path-trust.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-trust.js","sourceRoot":"","sources":["../../src/core/path-trust.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,MAAM,CAAC;AACtB,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,WAAW,GAAG,KAAK,CAAC;AAE1B,mGAAmG;AACnG,MAAM,UAAU,WAAW,CACzB,IAAyC,EACzC,IAAc,EACd,SAAiB;IAEjB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC7D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;IACtF,MAAM,QAAQ,GACZ,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxF,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9D,OAAO,cAAc,SAAS,8FAA8F,CAAC;AAC/H,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,UAAU,CACxB,IAAwB,EACxB,IAAc,EACd,IAAY,EACZ,IAA0B;IAE1B,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC9D,OAAO,GAAG,IAAI,KAAK,IAAI,oGAAoG,CAAC;AAC9H,CAAC"}
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* Implements PRD §5.3 rendered-state detection (C-TURN-01 through C-TURN-05).
|
|
6
6
|
*/
|
|
7
7
|
import type { ElwoodAgentKind } from "./activity/index.ts";
|
|
8
|
-
export type ScreenFactKind = "composer_visible" | "working_visible" | "interrupt_complete_visible" | "blocking_prompt_visible"
|
|
8
|
+
export type ScreenFactKind = "composer_visible" | "working_visible" | "interrupt_complete_visible" | "blocking_prompt_visible"
|
|
9
|
+
/** The CLI's own resume-loading placeholder: the resumed conversation is not loaded yet. */
|
|
10
|
+
| "resume_loading_visible";
|
|
9
11
|
/** Which rendered source a rule's patterns match against. */
|
|
10
12
|
export type ScreenFactRegion = "screen" | "title";
|
|
11
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-facts.d.ts","sourceRoot":"","sources":["../../src/core/screen-facts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,iBAAiB,GACjB,4BAA4B,GAC5B,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"screen-facts.d.ts","sourceRoot":"","sources":["../../src/core/screen-facts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,iBAAiB,GACjB,4BAA4B,GAC5B,yBAAyB;AAC3B,4FAA4F;GAC1F,wBAAwB,CAAC;AAE7B,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,kGAAkG;IAClG,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;CAC1B,GAAG,uBAAuB,CAAC;AAE5B,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,kEAAkE;IAClE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AASF;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,aAAa,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,iBAAiB,CAkBnB"}
|
|
@@ -22,6 +22,7 @@ export function readScreenFacts(table, frame, suppressedRule) {
|
|
|
22
22
|
working_visible: false,
|
|
23
23
|
interrupt_complete_visible: false,
|
|
24
24
|
blocking_prompt_visible: false,
|
|
25
|
+
resume_loading_visible: false,
|
|
25
26
|
};
|
|
26
27
|
const matched = [];
|
|
27
28
|
for (const rule of table.rules) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-facts.js","sourceRoot":"","sources":["../../src/core/screen-facts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"screen-facts.js","sourceRoot":"","sources":["../../src/core/screen-facts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkEH,qFAAqF;AACrF,SAAS,WAAW,CAAC,IAAoB,EAAE,MAAc;IACvD,OAAO,IAAI,CAAC,GAAG,KAAK,SAAS;QAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAsB,EACtB,KAAoB,EACpB,cAAuB;IAEvB,MAAM,KAAK,GAAoC;QAC7C,gBAAgB,EAAE,KAAK;QACvB,eAAe,EAAE,KAAK;QACtB,0BAA0B,EAAE,KAAK;QACjC,uBAAuB,EAAE,KAAK;QAC9B,sBAAsB,EAAE,KAAK;KAC9B,CAAC;IACF,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,EAAE,KAAK,cAAc;YAAE,SAAS;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;YAAE,SAAS;QAChF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* What an adapter's turn boundary carries, and the accessors the runner reads it with.
|
|
3
|
-
* Implements PRD §5.8 / §12A: the completeness signal, plus
|
|
4
|
-
*
|
|
5
|
-
* has one home
|
|
3
|
+
* Implements PRD §5.8 / §10 / §12A and C-API-59 / C-API-60: the completeness signal, plus
|
|
4
|
+
* OPTIONAL evidence that the agent itself rejected the turn, surfaced as `turn_failed`.
|
|
5
|
+
* Separate from the reader contract so the failure shape has one home.
|
|
6
6
|
*/
|
|
7
|
+
import { type ElwoodError } from "../errors.ts";
|
|
8
|
+
import type { TurnGate } from "./turn-gate.ts";
|
|
9
|
+
import type { TurnBoundaryHook } from "./turn-types.ts";
|
|
7
10
|
/**
|
|
8
11
|
* What a boundary carries. A bare string is the completeness signal on its own — the shorthand
|
|
9
12
|
* every adapter uses today — while the object form additionally reports that the agent FAILED
|
|
@@ -17,10 +20,23 @@ export type BoundarySignal = string | {
|
|
|
17
20
|
};
|
|
18
21
|
/** An adapter's evidence that the agent itself rejected the turn (PRD §12A.5). */
|
|
19
22
|
export type TurnFailure = {
|
|
20
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* The agent's own diagnostic, bounded by the adapter: Claude's `error_details`, or Codex's
|
|
25
|
+
* `error.message` (often the service's raw JSON error body). Diagnostic, not display prose.
|
|
26
|
+
*/
|
|
21
27
|
readonly message: string;
|
|
22
|
-
/**
|
|
23
|
-
|
|
28
|
+
/**
|
|
29
|
+
* The agent's own error kind, DIAGNOSTIC ONLY — never decides failure: Claude's `error` name
|
|
30
|
+
* (`model_not_found`) or Codex's `codex_error_info` kind (`other`, `http_connection_failed`).
|
|
31
|
+
*/
|
|
32
|
+
readonly agentError?: string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Whether the rejection names the submission the turn accepted (the hook that accepted it).
|
|
35
|
+
* A late rejection of an earlier turn can arrive during a later one, so the adapter, which
|
|
36
|
+
* alone knows its submission identity, says whether it is this turn's. Absent: the adapter
|
|
37
|
+
* cannot tell, and the rejection is taken as the turn's own once the turn has accepted.
|
|
38
|
+
*/
|
|
39
|
+
readonly belongsTo?: (acceptedBy: TurnBoundaryHook) => boolean;
|
|
24
40
|
};
|
|
25
41
|
/** The expected-text half of a boundary signal, whichever form the adapter returned. */
|
|
26
42
|
export declare function boundaryText(signal: BoundarySignal): string;
|
|
@@ -28,4 +44,23 @@ export declare function boundaryText(signal: BoundarySignal): string;
|
|
|
28
44
|
export declare function boundaryFailure(signal: BoundarySignal): TurnFailure | undefined;
|
|
29
45
|
/** The gate's expected text for a signal that may be absent: `undefined` stays `undefined`. */
|
|
30
46
|
export declare function boundaryExpectation(signal: BoundarySignal | undefined): string | undefined;
|
|
47
|
+
/** The failure a signal reports, if any; `undefined` for an absent or string-form signal. */
|
|
48
|
+
export declare function signalFailure(signal: BoundarySignal | undefined): TurnFailure | undefined;
|
|
49
|
+
/** The consumer-facing `turn_failed` error for an adapter's rejection evidence (C-API-59/60). */
|
|
50
|
+
export declare function turnRejection(failure: TurnFailure): ElwoodError;
|
|
51
|
+
type BoundaryGate = Pick<TurnGate, "fail" | "expectText">;
|
|
52
|
+
/**
|
|
53
|
+
* An untagged hook's boundary: its text is the completeness oracle, or its rejection fails the
|
|
54
|
+
* turn. An earlier turn's late rejection is not this turn's: only a rejection after this turn's
|
|
55
|
+
* own submission, which the adapter matches to it, fails the turn (C-API-59).
|
|
56
|
+
*/
|
|
57
|
+
export declare function settleHookBoundary(gate: BoundaryGate, signal: BoundarySignal | undefined, acceptedBy: TurnBoundaryHook | undefined): void;
|
|
58
|
+
/**
|
|
59
|
+
* A native boundary already names this turn (its identity matched the turn id), so its
|
|
60
|
+
* rejection fails the turn outright; otherwise its text is the completeness oracle (C-API-60).
|
|
61
|
+
*/
|
|
62
|
+
export declare function settleNativeBoundary(gate: BoundaryGate, signal: BoundarySignal): void;
|
|
63
|
+
/** A nonblank agent diagnostic, bounded so a rejection message stays small (§6.1). */
|
|
64
|
+
export declare function boundedDiagnostic(value: unknown): string | undefined;
|
|
65
|
+
export {};
|
|
31
66
|
//# sourceMappingURL=boundary-signal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundary-signal.d.ts","sourceRoot":"","sources":["../../../src/core/simple/boundary-signal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAE/F,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG;IACxB
|
|
1
|
+
{"version":3,"file":"boundary-signal.d.ts","sourceRoot":"","sources":["../../../src/core/simple/boundary-signal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAE/F,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG;IACxB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,OAAO,CAAC;CAChE,CAAC;AACF,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAE3D;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,GAAG,SAAS,CAE/E;AAED,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE1F;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAEzF;AAED,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAG/D;AAED,KAAK,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,UAAU,EAAE,gBAAgB,GAAG,SAAS,GACvC,IAAI,CAKN;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAIrF;AAID,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGpE"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* What an adapter's turn boundary carries, and the accessors the runner reads it with.
|
|
3
|
-
* Implements PRD §5.8 / §12A: the completeness signal, plus
|
|
4
|
-
*
|
|
5
|
-
* has one home
|
|
3
|
+
* Implements PRD §5.8 / §10 / §12A and C-API-59 / C-API-60: the completeness signal, plus
|
|
4
|
+
* OPTIONAL evidence that the agent itself rejected the turn, surfaced as `turn_failed`.
|
|
5
|
+
* Separate from the reader contract so the failure shape has one home.
|
|
6
6
|
*/
|
|
7
|
+
import { elwoodError } from "../errors.js";
|
|
7
8
|
/** The expected-text half of a boundary signal, whichever form the adapter returned. */
|
|
8
9
|
export function boundaryText(signal) {
|
|
9
10
|
return typeof signal === "string" ? signal : signal.text;
|
|
@@ -16,4 +17,43 @@ export function boundaryFailure(signal) {
|
|
|
16
17
|
export function boundaryExpectation(signal) {
|
|
17
18
|
return signal === undefined ? undefined : boundaryText(signal);
|
|
18
19
|
}
|
|
20
|
+
/** The failure a signal reports, if any; `undefined` for an absent or string-form signal. */
|
|
21
|
+
export function signalFailure(signal) {
|
|
22
|
+
return signal === undefined ? undefined : boundaryFailure(signal);
|
|
23
|
+
}
|
|
24
|
+
/** The consumer-facing `turn_failed` error for an adapter's rejection evidence (C-API-59/60). */
|
|
25
|
+
export function turnRejection(failure) {
|
|
26
|
+
const details = failure.agentError === undefined ? {} : { agentError: failure.agentError };
|
|
27
|
+
return elwoodError("turn_failed", failure.message, details);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* An untagged hook's boundary: its text is the completeness oracle, or its rejection fails the
|
|
31
|
+
* turn. An earlier turn's late rejection is not this turn's: only a rejection after this turn's
|
|
32
|
+
* own submission, which the adapter matches to it, fails the turn (C-API-59).
|
|
33
|
+
*/
|
|
34
|
+
export function settleHookBoundary(gate, signal, acceptedBy) {
|
|
35
|
+
const failure = signalFailure(signal);
|
|
36
|
+
if (!failure)
|
|
37
|
+
gate.expectText(boundaryExpectation(signal));
|
|
38
|
+
else if (acceptedBy && (failure.belongsTo?.(acceptedBy) ?? true))
|
|
39
|
+
gate.fail(turnRejection(failure));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A native boundary already names this turn (its identity matched the turn id), so its
|
|
43
|
+
* rejection fails the turn outright; otherwise its text is the completeness oracle (C-API-60).
|
|
44
|
+
*/
|
|
45
|
+
export function settleNativeBoundary(gate, signal) {
|
|
46
|
+
const failure = boundaryFailure(signal);
|
|
47
|
+
if (failure)
|
|
48
|
+
gate.fail(turnRejection(failure));
|
|
49
|
+
else
|
|
50
|
+
gate.expectText(boundaryText(signal));
|
|
51
|
+
}
|
|
52
|
+
const maxDiagnosticLength = 2_000;
|
|
53
|
+
/** A nonblank agent diagnostic, bounded so a rejection message stays small (§6.1). */
|
|
54
|
+
export function boundedDiagnostic(value) {
|
|
55
|
+
if (typeof value !== "string" || value.trim().length === 0)
|
|
56
|
+
return undefined;
|
|
57
|
+
return value.length <= maxDiagnosticLength ? value : `${value.slice(0, maxDiagnosticLength)}…`;
|
|
58
|
+
}
|
|
19
59
|
//# sourceMappingURL=boundary-signal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundary-signal.js","sourceRoot":"","sources":["../../../src/core/simple/boundary-signal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"boundary-signal.js","sourceRoot":"","sources":["../../../src/core/simple/boundary-signal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAoB,WAAW,EAAE,MAAM,cAAc,CAAC;AAiC7D,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAAC,MAAsB;IACjD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACjE,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,mBAAmB,CAAC,MAAkC;IACpE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,MAAkC;IAC9D,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3F,OAAO,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAkB,EAClB,MAAkC,EAClC,UAAwC;IAExC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO;QAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;SACtD,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAkB,EAAE,MAAsB;IAC7E,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;;QAC1C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,sFAAsF;AACtF,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,OAAO,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC;AACjG,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** Stop/kill fallback for ergonomic close (PRD §5.8, C-API-51). */
|
|
2
2
|
import type { ElwoodAgentSession } from "../agent-session.ts";
|
|
3
3
|
/** Stop first, then kill if needed (C-API-51). If both fail, termination_failed
|
|
4
|
-
* preserves the stop diagnostic as cause and the kill diagnostic as killCause
|
|
4
|
+
* preserves the stop diagnostic as cause and the kill diagnostic as killCause, and each
|
|
5
|
+
* one's runtime-cleanup failure (§9.4) as cleanupError and killCleanupError. */
|
|
5
6
|
export declare function closeSession(live: ElwoodAgentSession): Promise<void>;
|
|
6
7
|
//# sourceMappingURL=close.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/core/simple/close.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;
|
|
1
|
+
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/core/simple/close.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;gFAEgF;AAChF,wBAAsB,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAe1E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { elwoodError, toError } from "../errors.js";
|
|
1
|
+
import { ElwoodError, elwoodError, toError } from "../errors.js";
|
|
2
2
|
/** Stop first, then kill if needed (C-API-51). If both fail, termination_failed
|
|
3
|
-
* preserves the stop diagnostic as cause and the kill diagnostic as killCause
|
|
3
|
+
* preserves the stop diagnostic as cause and the kill diagnostic as killCause, and each
|
|
4
|
+
* one's runtime-cleanup failure (§9.4) as cleanupError and killCleanupError. */
|
|
4
5
|
export async function closeSession(live) {
|
|
5
6
|
try {
|
|
6
7
|
await live.stop();
|
|
@@ -13,8 +14,15 @@ export async function closeSession(live) {
|
|
|
13
14
|
throw elwoodError("termination_failed", "close() failed to stop or kill the session", {
|
|
14
15
|
cause: toError(stopError).message,
|
|
15
16
|
killCause: toError(killError).message,
|
|
17
|
+
...cleanupDetail("cleanupError", stopError),
|
|
18
|
+
...cleanupDetail("killCleanupError", killError),
|
|
16
19
|
});
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
}
|
|
23
|
+
/** `{ [key]: message }` when `error` carries a runtime-cleanup failure message. */
|
|
24
|
+
function cleanupDetail(key, error) {
|
|
25
|
+
const message = error instanceof ElwoodError ? error.details["cleanupError"] : undefined;
|
|
26
|
+
return typeof message === "string" ? { [key]: message } : {};
|
|
27
|
+
}
|
|
20
28
|
//# sourceMappingURL=close.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/core/simple/close.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/core/simple/close.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACjE;;gFAEgF;AAChF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAwB;IACzD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,MAAM,WAAW,CAAC,oBAAoB,EAAE,4CAA4C,EAAE;gBACpF,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO;gBACjC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO;gBACrC,GAAG,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC;gBAC3C,GAAG,aAAa,CAAC,kBAAkB,EAAE,SAAS,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,aAAa,CAAC,GAAW,EAAE,KAAc;IAChD,MAAM,OAAO,GAAG,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC"}
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* a short transcript-drain settle. A hung agent holds the slot until `close()`/`kill()` forces a
|
|
12
12
|
* terminal status — honest backpressure, never a silent early release.
|
|
13
13
|
*/
|
|
14
|
+
/** Short transcript-drain settle (ms) after a post-failure `ready` — trailing events flush. */
|
|
15
|
+
export declare const DRAIN_MS = 750;
|
|
14
16
|
export declare class TurnBoundary {
|
|
15
17
|
/** Resolves when the next turn may safely start. The serializer holds its slot on this. */
|
|
16
18
|
readonly promise: Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-boundary.d.ts","sourceRoot":"","sources":["../../../src/core/simple/turn-boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"turn-boundary.d.ts","sourceRoot":"","sources":["../../../src/core/simple/turn-boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,+FAA+F;AAC/F,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B,qBAAa,YAAY;IACvB,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAE9E;;;iGAG6F;gBAE3F,OAAO,EAAE,MAAM,IAAI,EACnB,OAAO,SAAW,EAClB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAUjD,gGAAgG;IAChG,KAAK,IAAI,IAAI;IAUb,uEAAuE;IACvE,WAAW,IAAI,IAAI;IAKnB,yGAAyG;IACzG,kBAAkB,IAAI,IAAI;IAI1B;;;;;OAKG;IACH,QAAQ,IAAI,IAAI;IAOhB,8FAA8F;IAC9F,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,kFAAkF;IAClF,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* terminal status — honest backpressure, never a silent early release.
|
|
13
13
|
*/
|
|
14
14
|
/** Short transcript-drain settle (ms) after a post-failure `ready` — trailing events flush. */
|
|
15
|
-
const DRAIN_MS = 750;
|
|
15
|
+
export const DRAIN_MS = 750;
|
|
16
16
|
export class TurnBoundary {
|
|
17
17
|
/** Resolves when the next turn may safely start. The serializer holds its slot on this. */
|
|
18
18
|
promise;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-boundary.js","sourceRoot":"","sources":["../../../src/core/simple/turn-boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,+FAA+F;AAC/F,MAAM,QAAQ,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"turn-boundary.js","sourceRoot":"","sources":["../../../src/core/simple/turn-boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE5B,MAAM,OAAO,YAAY;IACvB,2FAA2F;IAClF,OAAO,CAAgB;IACxB,OAAO,CAAc;IACrB,OAAO,GAAG,KAAK,CAAC;IAChB,cAAc,GAAG,KAAK,CAAC;IACvB,UAAU,CAA4C;IAC7C,OAAO,CAAa;IACpB,OAAO,CAAS;IAChB,aAAa,CAAgD;IAE9E;;;iGAG6F;IAC7F,YACE,OAAmB,EACnB,OAAO,GAAG,QAAQ,EAClB,aAA+C;QAE/C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gGAAgG;IAChG,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QACvC,IAAI,OAAO;YAAE,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,uEAAuE;IACvE,WAAW;QACT,IAAI,IAAI,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,yGAAyG;IACzG,kBAAkB;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjD,IAAI,IAAI,CAAC,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5B,CAAC;IAED,8FAA8F;IAC9F,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;IACvC,CAAC;IAED,kFAAkF;IAClF,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|