@with-logic/elwood 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +396 -2
- package/CONTRIBUTING.md +29 -18
- package/README.md +50 -19
- package/dist/bridge/parse.d.ts.map +1 -1
- package/dist/bridge/parse.js +2 -1
- package/dist/bridge/parse.js.map +1 -1
- package/dist/bridge/server.d.ts.map +1 -1
- package/dist/bridge/server.js +6 -2
- package/dist/bridge/server.js.map +1 -1
- package/dist/claude/attach-images.d.ts +3 -1
- package/dist/claude/attach-images.d.ts.map +1 -1
- package/dist/claude/attach-images.js +11 -10
- package/dist/claude/attach-images.js.map +1 -1
- package/dist/claude/composer/empty-input.d.ts +4 -0
- package/dist/claude/composer/empty-input.d.ts.map +1 -0
- package/dist/claude/composer/empty-input.js +28 -0
- package/dist/claude/composer/empty-input.js.map +1 -0
- package/dist/claude/composer/footer.d.ts +3 -0
- package/dist/claude/composer/footer.d.ts.map +1 -0
- package/dist/claude/composer/footer.js +3 -0
- package/dist/claude/composer/footer.js.map +1 -0
- package/dist/claude/composer/staged-input.d.ts +7 -0
- package/dist/claude/composer/staged-input.d.ts.map +1 -0
- package/dist/claude/composer/staged-input.js +18 -0
- package/dist/claude/composer/staged-input.js.map +1 -0
- package/dist/claude/hooks/common-result.d.ts +5 -0
- package/dist/claude/hooks/common-result.d.ts.map +1 -0
- package/dist/claude/hooks/common-result.js +3 -0
- package/dist/claude/hooks/common-result.js.map +1 -0
- package/dist/claude/hooks/dispatch.d.ts +2 -1
- package/dist/claude/hooks/dispatch.d.ts.map +1 -1
- package/dist/claude/hooks/dispatch.js +3 -1
- package/dist/claude/hooks/dispatch.js.map +1 -1
- package/dist/claude/hooks/events-extra.d.ts +5 -4
- package/dist/claude/hooks/events-extra.d.ts.map +1 -1
- package/dist/claude/hooks/index.d.ts +10 -10
- package/dist/claude/hooks/index.d.ts.map +1 -1
- package/dist/claude/hooks/index.js +1 -4
- package/dist/claude/hooks/index.js.map +1 -1
- package/dist/claude/hooks/inputs/control.d.ts +25 -0
- package/dist/claude/hooks/inputs/control.d.ts.map +1 -0
- package/dist/claude/hooks/inputs/control.js +3 -0
- package/dist/claude/hooks/inputs/control.js.map +1 -0
- package/dist/claude/hooks/stop-failure.d.ts +10 -0
- package/dist/claude/hooks/stop-failure.d.ts.map +1 -0
- package/dist/claude/hooks/stop-failure.js +18 -0
- package/dist/claude/hooks/stop-failure.js.map +1 -0
- package/dist/claude/hooks/tool-types.d.ts +12 -10
- package/dist/claude/hooks/tool-types.d.ts.map +1 -1
- package/dist/claude/login/notice.d.ts +3 -0
- package/dist/claude/login/notice.d.ts.map +1 -0
- package/dist/claude/login/notice.js +3 -0
- package/dist/claude/login/notice.js.map +1 -0
- package/dist/claude/login/renewal.d.ts +13 -0
- package/dist/claude/login/renewal.d.ts.map +1 -0
- package/dist/claude/login/renewal.js +97 -0
- package/dist/claude/login/renewal.js.map +1 -0
- package/dist/claude/model-composer.d.ts +2 -0
- package/dist/claude/model-composer.d.ts.map +1 -0
- package/dist/claude/model-composer.js +12 -0
- package/dist/claude/model-composer.js.map +1 -0
- package/dist/claude/model-picker.d.ts.map +1 -1
- package/dist/claude/model-picker.js +42 -8
- package/dist/claude/model-picker.js.map +1 -1
- package/dist/claude/model-switch-confirmation.d.ts +6 -0
- package/dist/claude/model-switch-confirmation.d.ts.map +1 -1
- package/dist/claude/model-switch-confirmation.js +77 -4
- package/dist/claude/model-switch-confirmation.js.map +1 -1
- package/dist/claude/preflight.d.ts.map +1 -1
- package/dist/claude/preflight.js +2 -4
- package/dist/claude/preflight.js.map +1 -1
- package/dist/claude/questions/answer.d.ts +9 -0
- package/dist/claude/questions/answer.d.ts.map +1 -0
- package/dist/claude/questions/answer.js +84 -0
- package/dist/claude/questions/answer.js.map +1 -0
- package/dist/claude/questions/bind-answers.d.ts +14 -0
- package/dist/claude/questions/bind-answers.d.ts.map +1 -0
- package/dist/claude/questions/bind-answers.js +36 -0
- package/dist/claude/questions/bind-answers.js.map +1 -0
- package/dist/claude/questions/candidate.d.ts +23 -0
- package/dist/claude/questions/candidate.d.ts.map +1 -0
- package/dist/claude/questions/candidate.js +47 -0
- package/dist/claude/questions/candidate.js.map +1 -0
- package/dist/claude/questions/correlation.d.ts +15 -0
- package/dist/claude/questions/correlation.d.ts.map +1 -0
- package/dist/claude/questions/correlation.js +23 -0
- package/dist/claude/questions/correlation.js.map +1 -0
- package/dist/claude/questions/hook-decisions.d.ts +19 -0
- package/dist/claude/questions/hook-decisions.d.ts.map +1 -0
- package/dist/claude/questions/hook-decisions.js +52 -0
- package/dist/claude/questions/hook-decisions.js.map +1 -0
- package/dist/claude/questions/index.d.ts +27 -0
- package/dist/claude/questions/index.d.ts.map +1 -0
- package/dist/claude/questions/index.js +161 -0
- package/dist/claude/questions/index.js.map +1 -0
- package/dist/claude/questions/navigation.d.ts +24 -0
- package/dist/claude/questions/navigation.d.ts.map +1 -0
- package/dist/claude/questions/navigation.js +37 -0
- package/dist/claude/questions/navigation.js.map +1 -0
- package/dist/claude/questions/rows.d.ts +19 -0
- package/dist/claude/questions/rows.d.ts.map +1 -0
- package/dist/claude/questions/rows.js +64 -0
- package/dist/claude/questions/rows.js.map +1 -0
- package/dist/claude/questions/screen.d.ts +29 -0
- package/dist/claude/questions/screen.d.ts.map +1 -0
- package/dist/claude/questions/screen.js +103 -0
- package/dist/claude/questions/screen.js.map +1 -0
- package/dist/claude/screen-table.d.ts +19 -2
- package/dist/claude/screen-table.d.ts.map +1 -1
- package/dist/claude/screen-table.js +48 -4
- package/dist/claude/screen-table.js.map +1 -1
- package/dist/claude/serialize.d.ts.map +1 -1
- package/dist/claude/serialize.js +22 -6
- package/dist/claude/serialize.js.map +1 -1
- package/dist/claude/session/build.d.ts +1 -12
- package/dist/claude/session/build.d.ts.map +1 -1
- package/dist/claude/session/build.js +42 -55
- package/dist/claude/session/build.js.map +1 -1
- package/dist/claude/session/hook-handler.d.ts +3 -2
- package/dist/claude/session/hook-handler.d.ts.map +1 -1
- package/dist/claude/session/hook-handler.js +44 -18
- package/dist/claude/session/hook-handler.js.map +1 -1
- package/dist/claude/session/index.d.ts +2 -1
- package/dist/claude/session/index.d.ts.map +1 -1
- package/dist/claude/session/index.js +23 -8
- package/dist/claude/session/index.js.map +1 -1
- package/dist/claude/session/instance.d.ts +17 -5
- package/dist/claude/session/instance.d.ts.map +1 -1
- package/dist/claude/session/instance.js +25 -12
- package/dist/claude/session/instance.js.map +1 -1
- package/dist/claude/session/interface.d.ts +2 -1
- package/dist/claude/session/interface.d.ts.map +1 -1
- package/dist/claude/session/questions.d.ts +9 -0
- package/dist/claude/session/questions.d.ts.map +1 -0
- package/dist/claude/session/questions.js +19 -0
- package/dist/claude/session/questions.js.map +1 -0
- package/dist/claude/session/resume.d.ts.map +1 -1
- package/dist/claude/session/resume.js +35 -26
- package/dist/claude/session/resume.js.map +1 -1
- package/dist/claude/session/runtime.d.ts +10 -0
- package/dist/claude/session/runtime.d.ts.map +1 -1
- package/dist/claude/session/runtime.js +8 -5
- package/dist/claude/session/runtime.js.map +1 -1
- package/dist/claude/session/startup-warnings.d.ts +5 -0
- package/dist/claude/session/startup-warnings.d.ts.map +1 -0
- package/dist/claude/session/startup-warnings.js +7 -0
- package/dist/claude/session/startup-warnings.js.map +1 -0
- package/dist/claude/session/transcript.d.ts +2 -0
- package/dist/claude/session/transcript.d.ts.map +1 -1
- package/dist/claude/session/transcript.js +21 -3
- package/dist/claude/session/transcript.js.map +1 -1
- package/dist/claude/startup-prompts.d.ts +35 -3
- package/dist/claude/startup-prompts.d.ts.map +1 -1
- package/dist/claude/startup-prompts.js +81 -15
- package/dist/claude/startup-prompts.js.map +1 -1
- package/dist/claude/transcript/index.d.ts.map +1 -1
- package/dist/claude/transcript/index.js +3 -2
- package/dist/claude/transcript/index.js.map +1 -1
- package/dist/claude/validate/event-fields.d.ts +6 -0
- package/dist/claude/validate/event-fields.d.ts.map +1 -0
- package/dist/claude/validate/event-fields.js +103 -0
- package/dist/claude/validate/event-fields.js.map +1 -0
- package/dist/claude/validate/input.d.ts.map +1 -1
- package/dist/claude/validate/input.js +12 -41
- package/dist/claude/validate/input.js.map +1 -1
- package/dist/claude/validate/shapes.d.ts +1 -1
- package/dist/claude/validate/shapes.d.ts.map +1 -1
- package/dist/claude/validate/shapes.js +1 -1
- package/dist/claude/validate/shapes.js.map +1 -1
- package/dist/claude/validate/tool-shapes.d.ts +102 -0
- package/dist/claude/validate/tool-shapes.d.ts.map +1 -0
- package/dist/claude/validate/tool-shapes.js +83 -0
- package/dist/claude/validate/tool-shapes.js.map +1 -0
- package/dist/claude/validate/tool-update.d.ts +2 -11
- package/dist/claude/validate/tool-update.d.ts.map +1 -1
- package/dist/claude/validate/tool-update.js +11 -112
- package/dist/claude/validate/tool-update.js.map +1 -1
- package/dist/claude/validate/tool-values.d.ts +7 -0
- package/dist/claude/validate/tool-values.d.ts.map +1 -0
- package/dist/claude/validate/tool-values.js +30 -0
- package/dist/claude/validate/tool-values.js.map +1 -0
- package/dist/cli/args/options.d.ts.map +1 -1
- package/dist/cli/args/options.js +1 -0
- package/dist/cli/args/options.js.map +1 -1
- package/dist/cli/args-commands.d.ts.map +1 -1
- package/dist/cli/args-commands.js +3 -0
- package/dist/cli/args-commands.js.map +1 -1
- package/dist/cli/config/store.d.ts.map +1 -1
- package/dist/cli/config/store.js +2 -1
- package/dist/cli/config/store.js.map +1 -1
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +15 -11
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/interactive/effort.d.ts +5 -0
- package/dist/cli/interactive/effort.d.ts.map +1 -0
- package/dist/cli/interactive/effort.js +13 -0
- package/dist/cli/interactive/effort.js.map +1 -0
- package/dist/cli/interactive/launch.d.ts.map +1 -1
- package/dist/cli/interactive/launch.js +1 -1
- package/dist/cli/interactive/launch.js.map +1 -1
- package/dist/cli/lifecycle/index.d.ts +3 -6
- package/dist/cli/lifecycle/index.d.ts.map +1 -1
- package/dist/cli/lifecycle/index.js +6 -13
- package/dist/cli/lifecycle/index.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +9 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/models/combined.d.ts +6 -0
- package/dist/cli/models/combined.d.ts.map +1 -0
- package/dist/cli/models/combined.js +92 -0
- package/dist/cli/models/combined.js.map +1 -0
- package/dist/cli/models/index.d.ts +2 -0
- package/dist/cli/models/index.d.ts.map +1 -1
- package/dist/cli/models/index.js +15 -4
- package/dist/cli/models/index.js.map +1 -1
- package/dist/cli/models/render.d.ts +4 -0
- package/dist/cli/models/render.d.ts.map +1 -1
- package/dist/cli/models/render.js +28 -1
- package/dist/cli/models/render.js.map +1 -1
- package/dist/cli/models/result.d.ts +13 -0
- package/dist/cli/models/result.d.ts.map +1 -0
- package/dist/cli/models/result.js +2 -0
- package/dist/cli/models/result.js.map +1 -0
- package/dist/cli/models/settings.d.ts +63 -0
- package/dist/cli/models/settings.d.ts.map +1 -0
- package/dist/cli/models/settings.js +24 -0
- package/dist/cli/models/settings.js.map +1 -0
- package/dist/cli/models/signals.d.ts +11 -0
- package/dist/cli/models/signals.d.ts.map +1 -0
- package/dist/cli/models/signals.js +21 -0
- package/dist/cli/models/signals.js.map +1 -0
- package/dist/cli/request/index.d.ts.map +1 -1
- package/dist/cli/request/index.js +2 -1
- package/dist/cli/request/index.js.map +1 -1
- package/dist/cli/request/validation.d.ts.map +1 -1
- package/dist/cli/request/validation.js +0 -4
- package/dist/cli/request/validation.js.map +1 -1
- package/dist/cli/run/index.d.ts.map +1 -1
- package/dist/cli/run/index.js +3 -1
- package/dist/cli/run/index.js.map +1 -1
- package/dist/cli/run/output.d.ts.map +1 -1
- package/dist/cli/run/output.js +4 -6
- package/dist/cli/run/output.js.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 +2 -0
- package/dist/cli/session/index.d.ts.map +1 -1
- package/dist/cli/session/index.js +3 -0
- package/dist/cli/session/index.js.map +1 -1
- package/dist/cli/session/launch.d.ts +0 -3
- package/dist/cli/session/launch.d.ts.map +1 -1
- package/dist/cli/session/launch.js +0 -11
- package/dist/cli/session/launch.js.map +1 -1
- package/dist/cli/sessions/list.d.ts.map +1 -1
- package/dist/cli/sessions/list.js +5 -4
- package/dist/cli/sessions/list.js.map +1 -1
- package/dist/cli/types.d.ts +2 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/update-attention.d.ts +2 -1
- package/dist/cli/update-attention.d.ts.map +1 -1
- package/dist/cli/update-attention.js +11 -2
- package/dist/cli/update-attention.js.map +1 -1
- package/dist/codex/accepted-turn.d.ts +4 -0
- package/dist/codex/accepted-turn.d.ts.map +1 -0
- package/dist/codex/accepted-turn.js +17 -0
- package/dist/codex/accepted-turn.js.map +1 -0
- package/dist/codex/config/transaction.d.ts +22 -0
- package/dist/codex/config/transaction.d.ts.map +1 -1
- package/dist/codex/config/transaction.js +61 -31
- package/dist/codex/config/transaction.js.map +1 -1
- package/dist/codex/hooks/index.d.ts +6 -1
- package/dist/codex/hooks/index.d.ts.map +1 -1
- package/dist/codex/hooks/validate-result.d.ts.map +1 -1
- package/dist/codex/hooks/validate-result.js +2 -1
- package/dist/codex/hooks/validate-result.js.map +1 -1
- package/dist/codex/hooks/validate.d.ts.map +1 -1
- package/dist/codex/hooks/validate.js +1 -3
- package/dist/codex/hooks/validate.js.map +1 -1
- package/dist/codex/hooks/values.d.ts +3 -0
- package/dist/codex/hooks/values.d.ts.map +1 -0
- package/dist/codex/hooks/values.js +5 -0
- package/dist/codex/hooks/values.js.map +1 -0
- package/dist/codex/images/attach.d.ts +3 -1
- package/dist/codex/images/attach.d.ts.map +1 -1
- package/dist/codex/images/attach.js +10 -11
- package/dist/codex/images/attach.js.map +1 -1
- package/dist/codex/images/clipboard.d.ts.map +1 -1
- package/dist/codex/images/clipboard.js +11 -3
- package/dist/codex/images/clipboard.js.map +1 -1
- package/dist/codex/model-picker.d.ts.map +1 -1
- package/dist/codex/model-picker.js +23 -5
- package/dist/codex/model-picker.js.map +1 -1
- package/dist/codex/preflight.d.ts.map +1 -1
- package/dist/codex/preflight.js +2 -2
- package/dist/codex/preflight.js.map +1 -1
- package/dist/codex/questions/acceptance.d.ts +18 -0
- package/dist/codex/questions/acceptance.d.ts.map +1 -0
- package/dist/codex/questions/acceptance.js +70 -0
- package/dist/codex/questions/acceptance.js.map +1 -0
- package/dist/codex/questions/adapter.d.ts +26 -0
- package/dist/codex/questions/adapter.d.ts.map +1 -0
- package/dist/codex/questions/adapter.js +163 -0
- package/dist/codex/questions/adapter.js.map +1 -0
- package/dist/codex/questions/candidate-acceptance.d.ts +5 -0
- package/dist/codex/questions/candidate-acceptance.d.ts.map +1 -0
- package/dist/codex/questions/candidate-acceptance.js +8 -0
- package/dist/codex/questions/candidate-acceptance.js.map +1 -0
- package/dist/codex/questions/candidate-authority.d.ts +10 -0
- package/dist/codex/questions/candidate-authority.d.ts.map +1 -0
- package/dist/codex/questions/candidate-authority.js +25 -0
- package/dist/codex/questions/candidate-authority.js.map +1 -0
- package/dist/codex/questions/candidate-disable.d.ts +5 -0
- package/dist/codex/questions/candidate-disable.d.ts.map +1 -0
- package/dist/codex/questions/candidate-disable.js +14 -0
- package/dist/codex/questions/candidate-disable.js.map +1 -0
- package/dist/codex/questions/candidate-publication.d.ts +7 -0
- package/dist/codex/questions/candidate-publication.d.ts.map +1 -0
- package/dist/codex/questions/candidate-publication.js +8 -0
- package/dist/codex/questions/candidate-publication.js.map +1 -0
- package/dist/codex/questions/candidate-reservation.d.ts +6 -0
- package/dist/codex/questions/candidate-reservation.d.ts.map +1 -0
- package/dist/codex/questions/candidate-reservation.js +7 -0
- package/dist/codex/questions/candidate-reservation.js.map +1 -0
- package/dist/codex/questions/candidate-store.d.ts +53 -0
- package/dist/codex/questions/candidate-store.d.ts.map +1 -0
- package/dist/codex/questions/candidate-store.js +188 -0
- package/dist/codex/questions/candidate-store.js.map +1 -0
- package/dist/codex/questions/candidate.d.ts +40 -0
- package/dist/codex/questions/candidate.d.ts.map +1 -0
- package/dist/codex/questions/candidate.js +39 -0
- package/dist/codex/questions/candidate.js.map +1 -0
- package/dist/codex/questions/candidates.d.ts +16 -0
- package/dist/codex/questions/candidates.d.ts.map +1 -0
- package/dist/codex/questions/candidates.js +113 -0
- package/dist/codex/questions/candidates.js.map +1 -0
- package/dist/codex/questions/chrome.d.ts +10 -0
- package/dist/codex/questions/chrome.d.ts.map +1 -0
- package/dist/codex/questions/chrome.js +21 -0
- package/dist/codex/questions/chrome.js.map +1 -0
- package/dist/codex/questions/definitions.d.ts +19 -0
- package/dist/codex/questions/definitions.d.ts.map +1 -0
- package/dist/codex/questions/definitions.js +86 -0
- package/dist/codex/questions/definitions.js.map +1 -0
- package/dist/codex/questions/draft.d.ts +25 -0
- package/dist/codex/questions/draft.d.ts.map +1 -0
- package/dist/codex/questions/draft.js +76 -0
- package/dist/codex/questions/draft.js.map +1 -0
- package/dist/codex/questions/driver-support.d.ts +6 -0
- package/dist/codex/questions/driver-support.d.ts.map +1 -0
- package/dist/codex/questions/driver-support.js +7 -0
- package/dist/codex/questions/driver-support.js.map +1 -0
- package/dist/codex/questions/driver.d.ts +10 -0
- package/dist/codex/questions/driver.d.ts.map +1 -0
- package/dist/codex/questions/driver.js +139 -0
- package/dist/codex/questions/driver.js.map +1 -0
- package/dist/codex/questions/frame.d.ts +36 -0
- package/dist/codex/questions/frame.d.ts.map +1 -0
- package/dist/codex/questions/frame.js +138 -0
- package/dist/codex/questions/frame.js.map +1 -0
- package/dist/codex/questions/labels.d.ts +6 -0
- package/dist/codex/questions/labels.d.ts.map +1 -0
- package/dist/codex/questions/labels.js +6 -0
- package/dist/codex/questions/labels.js.map +1 -0
- package/dist/codex/questions/limits.d.ts +18 -0
- package/dist/codex/questions/limits.d.ts.map +1 -0
- package/dist/codex/questions/limits.js +61 -0
- package/dist/codex/questions/limits.js.map +1 -0
- package/dist/codex/questions/native-pending.d.ts +7 -0
- package/dist/codex/questions/native-pending.d.ts.map +1 -0
- package/dist/codex/questions/native-pending.js +37 -0
- package/dist/codex/questions/native-pending.js.map +1 -0
- package/dist/codex/questions/owned-editor.d.ts +12 -0
- package/dist/codex/questions/owned-editor.d.ts.map +1 -0
- package/dist/codex/questions/owned-editor.js +37 -0
- package/dist/codex/questions/owned-editor.js.map +1 -0
- package/dist/codex/questions/pending-submissions.d.ts +12 -0
- package/dist/codex/questions/pending-submissions.d.ts.map +1 -0
- package/dist/codex/questions/pending-submissions.js +42 -0
- package/dist/codex/questions/pending-submissions.js.map +1 -0
- package/dist/codex/questions/records.d.ts +29 -0
- package/dist/codex/questions/records.d.ts.map +1 -0
- package/dist/codex/questions/records.js +113 -0
- package/dist/codex/questions/records.js.map +1 -0
- package/dist/codex/questions/selection.d.ts +3 -0
- package/dist/codex/questions/selection.d.ts.map +1 -0
- package/dist/codex/questions/selection.js +18 -0
- package/dist/codex/questions/selection.js.map +1 -0
- package/dist/codex/questions/session.d.ts +6 -0
- package/dist/codex/questions/session.d.ts.map +1 -0
- package/dist/codex/questions/session.js +21 -0
- package/dist/codex/questions/session.js.map +1 -0
- package/dist/codex/screen/clearance.d.ts +17 -0
- package/dist/codex/screen/clearance.d.ts.map +1 -0
- package/dist/codex/screen/clearance.js +170 -0
- package/dist/codex/screen/clearance.js.map +1 -0
- package/dist/codex/screen/empty-input.d.ts +4 -0
- package/dist/codex/screen/empty-input.d.ts.map +1 -0
- package/dist/codex/screen/empty-input.js +10 -0
- package/dist/codex/screen/empty-input.js.map +1 -0
- package/dist/codex/screen/live-clearance.d.ts +6 -0
- package/dist/codex/screen/live-clearance.d.ts.map +1 -0
- package/dist/codex/screen/live-clearance.js +34 -0
- package/dist/codex/screen/live-clearance.js.map +1 -0
- package/dist/codex/screen/retained-clearance.d.ts +19 -0
- package/dist/codex/screen/retained-clearance.d.ts.map +1 -0
- package/dist/codex/screen/retained-clearance.js +67 -0
- package/dist/codex/screen/retained-clearance.js.map +1 -0
- package/dist/codex/screen/staged-input.d.ts +7 -0
- package/dist/codex/screen/staged-input.d.ts.map +1 -0
- package/dist/codex/screen/staged-input.js +40 -0
- package/dist/codex/screen/staged-input.js.map +1 -0
- package/dist/codex/screen/working.d.ts +4 -0
- package/dist/codex/screen/working.d.ts.map +1 -0
- package/dist/codex/screen/working.js +5 -0
- package/dist/codex/screen/working.js.map +1 -0
- package/dist/codex/screen-table.d.ts +4 -1
- package/dist/codex/screen-table.d.ts.map +1 -1
- package/dist/codex/screen-table.js +44 -11
- package/dist/codex/screen-table.js.map +1 -1
- package/dist/codex/session/build.d.ts +1 -0
- package/dist/codex/session/build.d.ts.map +1 -1
- package/dist/codex/session/build.js +62 -68
- package/dist/codex/session/build.js.map +1 -1
- package/dist/codex/session/caller-input.d.ts +18 -0
- package/dist/codex/session/caller-input.d.ts.map +1 -0
- package/dist/codex/session/caller-input.js +50 -0
- package/dist/codex/session/caller-input.js.map +1 -0
- package/dist/codex/session/cleanup.d.ts +2 -1
- package/dist/codex/session/cleanup.d.ts.map +1 -1
- package/dist/codex/session/cleanup.js +3 -2
- package/dist/codex/session/cleanup.js.map +1 -1
- package/dist/codex/session/cli-exit.d.ts +24 -0
- package/dist/codex/session/cli-exit.d.ts.map +1 -0
- package/dist/codex/session/cli-exit.js +43 -0
- package/dist/codex/session/cli-exit.js.map +1 -0
- package/dist/codex/session/hooks.d.ts +3 -0
- package/dist/codex/session/hooks.d.ts.map +1 -1
- package/dist/codex/session/hooks.js +66 -13
- package/dist/codex/session/hooks.js.map +1 -1
- package/dist/codex/session/index.d.ts +2 -1
- package/dist/codex/session/index.d.ts.map +1 -1
- package/dist/codex/session/index.js +23 -8
- package/dist/codex/session/index.js.map +1 -1
- package/dist/codex/session/initial-ready.d.ts +6 -0
- package/dist/codex/session/initial-ready.d.ts.map +1 -0
- package/dist/codex/session/initial-ready.js +9 -0
- package/dist/codex/session/initial-ready.js.map +1 -0
- package/dist/codex/session/instance.d.ts +19 -4
- package/dist/codex/session/instance.d.ts.map +1 -1
- package/dist/codex/session/instance.js +60 -30
- package/dist/codex/session/instance.js.map +1 -1
- package/dist/codex/session/resume.d.ts.map +1 -1
- package/dist/codex/session/resume.js +35 -26
- package/dist/codex/session/resume.js.map +1 -1
- package/dist/codex/session/runtime.d.ts.map +1 -1
- package/dist/codex/session/runtime.js +1 -2
- package/dist/codex/session/runtime.js.map +1 -1
- package/dist/codex/session/startup-warnings.d.ts +11 -0
- package/dist/codex/session/startup-warnings.d.ts.map +1 -0
- package/dist/codex/session/startup-warnings.js +9 -0
- package/dist/codex/session/startup-warnings.js.map +1 -0
- package/dist/codex/session/transcript.d.ts +3 -1
- package/dist/codex/session/transcript.d.ts.map +1 -1
- package/dist/codex/session/transcript.js +51 -8
- package/dist/codex/session/transcript.js.map +1 -1
- package/dist/codex/session/types.d.ts +4 -3
- package/dist/codex/session/types.d.ts.map +1 -1
- package/dist/codex/session/update-attention.d.ts +4 -0
- package/dist/codex/session/update-attention.d.ts.map +1 -0
- package/dist/codex/session/update-attention.js +18 -0
- package/dist/codex/session/update-attention.js.map +1 -0
- package/dist/codex/session/warnings.d.ts +2 -1
- package/dist/codex/session/warnings.d.ts.map +1 -1
- package/dist/codex/session/warnings.js +2 -1
- package/dist/codex/session/warnings.js.map +1 -1
- package/dist/codex/simple.d.ts +1 -0
- package/dist/codex/simple.d.ts.map +1 -1
- package/dist/codex/simple.js +2 -0
- package/dist/codex/simple.js.map +1 -1
- package/dist/codex/startup-prompts.d.ts +29 -14
- package/dist/codex/startup-prompts.d.ts.map +1 -1
- package/dist/codex/startup-prompts.js +113 -93
- package/dist/codex/startup-prompts.js.map +1 -1
- package/dist/codex/startup-warnings.d.ts +10 -0
- package/dist/codex/startup-warnings.d.ts.map +1 -0
- package/dist/codex/startup-warnings.js +65 -0
- package/dist/codex/startup-warnings.js.map +1 -0
- package/dist/codex/transcript/summary.d.ts +1 -1
- package/dist/codex/transcript/summary.d.ts.map +1 -1
- package/dist/codex/transcript/summary.js +18 -7
- package/dist/codex/transcript/summary.js.map +1 -1
- package/dist/codex/transcript/types.d.ts +23 -12
- package/dist/codex/transcript/types.d.ts.map +1 -1
- package/dist/codex/transcript/watcher.d.ts.map +1 -1
- package/dist/codex/transcript/watcher.js +2 -1
- package/dist/codex/transcript/watcher.js.map +1 -1
- package/dist/codex/update/classification.d.ts +27 -0
- package/dist/codex/update/classification.d.ts.map +1 -0
- package/dist/codex/update/classification.js +28 -0
- package/dist/codex/update/classification.js.map +1 -0
- package/dist/codex/update/evidence.d.ts +22 -0
- package/dist/codex/update/evidence.d.ts.map +1 -0
- package/dist/codex/update/evidence.js +69 -0
- package/dist/codex/update/evidence.js.map +1 -0
- package/dist/codex/update/layout.d.ts +7 -0
- package/dist/codex/update/layout.d.ts.map +1 -0
- package/dist/codex/update/layout.js +65 -0
- package/dist/codex/update/layout.js.map +1 -0
- package/dist/codex/update/recognition.d.ts +3 -0
- package/dist/codex/update/recognition.d.ts.map +1 -0
- package/dist/codex/update/recognition.js +7 -0
- package/dist/codex/update/recognition.js.map +1 -0
- package/dist/codex/update/selection.d.ts +7 -0
- package/dist/codex/update/selection.d.ts.map +1 -0
- package/dist/codex/update/selection.js +10 -0
- package/dist/codex/update/selection.js.map +1 -0
- package/dist/codex/update/skip-attempt.d.ts +25 -0
- package/dist/codex/update/skip-attempt.d.ts.map +1 -0
- package/dist/codex/update/skip-attempt.js +64 -0
- package/dist/codex/update/skip-attempt.js.map +1 -0
- package/dist/codex/update/tracker.d.ts +37 -0
- package/dist/codex/update/tracker.d.ts.map +1 -0
- package/dist/codex/update/tracker.js +156 -0
- package/dist/codex/update/tracker.js.map +1 -0
- package/dist/codex/update-identity.d.ts +23 -0
- package/dist/codex/update-identity.d.ts.map +1 -0
- package/dist/codex/update-identity.js +46 -0
- package/dist/codex/update-identity.js.map +1 -0
- package/dist/codex/update-prompt.d.ts +26 -17
- package/dist/codex/update-prompt.d.ts.map +1 -1
- package/dist/codex/update-prompt.js +65 -62
- package/dist/codex/update-prompt.js.map +1 -1
- package/dist/core/activity/index.d.ts +24 -3
- package/dist/core/activity/index.d.ts.map +1 -1
- package/dist/core/activity/index.js.map +1 -1
- package/dist/core/activity/meta.d.ts +6 -1
- package/dist/core/activity/meta.d.ts.map +1 -1
- package/dist/core/activity/meta.js.map +1 -1
- package/dist/core/activity/transcript.d.ts +4 -1
- package/dist/core/activity/transcript.d.ts.map +1 -1
- package/dist/core/activity/transcript.js +28 -18
- package/dist/core/activity/transcript.js.map +1 -1
- package/dist/core/agent-session.d.ts +2 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/async-mutex.d.ts +14 -8
- package/dist/core/async-mutex.d.ts.map +1 -1
- package/dist/core/async-mutex.js +48 -12
- package/dist/core/async-mutex.js.map +1 -1
- package/dist/core/attention.d.ts +6 -2
- package/dist/core/attention.d.ts.map +1 -1
- package/dist/core/attention.js +23 -9
- package/dist/core/attention.js.map +1 -1
- package/dist/core/control-queue/admission-scan.d.ts +10 -0
- package/dist/core/control-queue/admission-scan.d.ts.map +1 -0
- package/dist/core/control-queue/admission-scan.js +28 -0
- package/dist/core/control-queue/admission-scan.js.map +1 -0
- package/dist/core/control-queue/admission.d.ts +15 -0
- package/dist/core/control-queue/admission.d.ts.map +1 -0
- package/dist/core/control-queue/admission.js +70 -0
- package/dist/core/control-queue/admission.js.map +1 -0
- package/dist/core/control-queue/budget.d.ts +15 -0
- package/dist/core/control-queue/budget.d.ts.map +1 -0
- package/dist/core/control-queue/budget.js +33 -0
- package/dist/core/control-queue/budget.js.map +1 -0
- package/dist/core/control-queue/index.d.ts +6 -3
- package/dist/core/control-queue/index.d.ts.map +1 -1
- package/dist/core/control-queue/index.js +52 -28
- package/dist/core/control-queue/index.js.map +1 -1
- package/dist/core/control-queue/scan.d.ts +10 -0
- package/dist/core/control-queue/scan.d.ts.map +1 -0
- package/dist/core/control-queue/scan.js +24 -0
- package/dist/core/control-queue/scan.js.map +1 -0
- package/dist/core/control-queue/state.d.ts +19 -3
- package/dist/core/control-queue/state.d.ts.map +1 -1
- package/dist/core/control-queue/state.js +87 -15
- package/dist/core/control-queue/state.js.map +1 -1
- package/dist/core/control-queue/submission.d.ts +8 -0
- package/dist/core/control-queue/submission.d.ts.map +1 -0
- package/dist/core/control-queue/submission.js +41 -0
- package/dist/core/control-queue/submission.js.map +1 -0
- package/dist/core/control-queue/traits.d.ts +6 -9
- package/dist/core/control-queue/traits.d.ts.map +1 -1
- package/dist/core/control-queue/traits.js +2 -15
- package/dist/core/control-queue/traits.js.map +1 -1
- package/dist/core/control-queue/types.d.ts +28 -2
- package/dist/core/control-queue/types.d.ts.map +1 -1
- package/dist/core/errors.d.ts +7 -2
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +7 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/freeze-hook-event.d.ts +6 -0
- package/dist/core/freeze-hook-event.d.ts.map +1 -0
- package/dist/core/freeze-hook-event.js +16 -0
- package/dist/core/freeze-hook-event.js.map +1 -0
- package/dist/core/hook-dispatch.d.ts +3 -2
- package/dist/core/hook-dispatch.d.ts.map +1 -1
- package/dist/core/hook-dispatch.js +14 -6
- package/dist/core/hook-dispatch.js.map +1 -1
- package/dist/core/hook-observation.d.ts +24 -0
- package/dist/core/hook-observation.d.ts.map +1 -0
- package/dist/core/hook-observation.js +68 -0
- package/dist/core/hook-observation.js.map +1 -0
- package/dist/core/hook-result.d.ts +12 -2
- package/dist/core/hook-result.d.ts.map +1 -1
- package/dist/core/hook-result.js +10 -9
- package/dist/core/hook-result.js.map +1 -1
- package/dist/core/hook-timeout.d.ts.map +1 -1
- package/dist/core/hook-timeout.js +3 -2
- package/dist/core/hook-timeout.js.map +1 -1
- package/dist/core/images/capture.d.ts +14 -0
- package/dist/core/images/capture.d.ts.map +1 -0
- package/dist/core/images/capture.js +35 -0
- package/dist/core/images/capture.js.map +1 -0
- package/dist/core/images/chip-wait.d.ts +14 -16
- package/dist/core/images/chip-wait.d.ts.map +1 -1
- package/dist/core/images/chip-wait.js +31 -34
- package/dist/core/images/chip-wait.js.map +1 -1
- package/dist/core/images/queued-budget.d.ts +18 -0
- package/dist/core/images/queued-budget.d.ts.map +1 -0
- package/dist/core/images/queued-budget.js +41 -0
- package/dist/core/images/queued-budget.js.map +1 -0
- package/dist/core/inert-record.d.ts +3 -0
- package/dist/core/inert-record.d.ts.map +1 -0
- package/dist/core/inert-record.js +6 -0
- package/dist/core/inert-record.js.map +1 -0
- package/dist/core/input/abort.d.ts +33 -2
- package/dist/core/input/abort.d.ts.map +1 -1
- package/dist/core/input/abort.js +42 -2
- package/dist/core/input/abort.js.map +1 -1
- package/dist/core/input/clear-ack.d.ts +10 -0
- package/dist/core/input/clear-ack.d.ts.map +1 -0
- package/dist/core/input/clear-ack.js +26 -0
- package/dist/core/input/clear-ack.js.map +1 -0
- package/dist/core/input/composer-cleanup.d.ts +33 -0
- package/dist/core/input/composer-cleanup.d.ts.map +1 -0
- package/dist/core/input/composer-cleanup.js +127 -0
- package/dist/core/input/composer-cleanup.js.map +1 -0
- package/dist/core/input/constants.d.ts +12 -0
- package/dist/core/input/constants.d.ts.map +1 -0
- package/dist/core/input/constants.js +12 -0
- package/dist/core/input/constants.js.map +1 -0
- package/dist/core/input/empty-frame.d.ts +4 -0
- package/dist/core/input/empty-frame.d.ts.map +1 -0
- package/dist/core/input/empty-frame.js +15 -0
- package/dist/core/input/empty-frame.js.map +1 -0
- package/dist/core/input/index.d.ts +8 -25
- package/dist/core/input/index.d.ts.map +1 -1
- package/dist/core/input/index.js +67 -102
- package/dist/core/input/index.js.map +1 -1
- package/dist/core/input/paste-guard.d.ts +34 -0
- package/dist/core/input/paste-guard.d.ts.map +1 -0
- package/dist/core/input/paste-guard.js +2 -0
- package/dist/core/input/paste-guard.js.map +1 -0
- package/dist/core/input/paste-nudge.d.ts +10 -0
- package/dist/core/input/paste-nudge.d.ts.map +1 -0
- package/dist/core/input/paste-nudge.js +91 -0
- package/dist/core/input/paste-nudge.js.map +1 -0
- package/dist/core/input/render-observation.d.ts +3 -0
- package/dist/core/input/render-observation.d.ts.map +1 -0
- package/dist/core/input/render-observation.js +38 -0
- package/dist/core/input/render-observation.js.map +1 -0
- package/dist/core/input/render-wakeup.d.ts +10 -0
- package/dist/core/input/render-wakeup.d.ts.map +1 -0
- package/dist/core/input/render-wakeup.js +45 -0
- package/dist/core/input/render-wakeup.js.map +1 -0
- package/dist/core/input/sanitize.d.ts +11 -0
- package/dist/core/input/sanitize.d.ts.map +1 -0
- package/dist/core/input/sanitize.js +19 -0
- package/dist/core/input/sanitize.js.map +1 -0
- package/dist/core/input/staged-composer.d.ts +12 -0
- package/dist/core/input/staged-composer.d.ts.map +1 -0
- package/dist/core/input/staged-composer.js +56 -0
- package/dist/core/input/staged-composer.js.map +1 -0
- package/dist/core/input/submission-cancel.d.ts +6 -0
- package/dist/core/input/submission-cancel.d.ts.map +1 -0
- package/dist/core/input/submission-cancel.js +18 -0
- package/dist/core/input/submission-cancel.js.map +1 -0
- package/dist/core/json-shape.d.ts +2 -0
- package/dist/core/json-shape.d.ts.map +1 -0
- package/dist/core/json-shape.js +6 -0
- package/dist/core/json-shape.js.map +1 -0
- package/dist/core/json-snapshot.d.ts +10 -0
- package/dist/core/json-snapshot.d.ts.map +1 -0
- package/dist/core/json-snapshot.js +84 -0
- package/dist/core/json-snapshot.js.map +1 -0
- package/dist/core/loops/scheduler.d.ts +1 -1
- package/dist/core/loops/scheduler.d.ts.map +1 -1
- package/dist/core/loops/scheduler.js +1 -2
- package/dist/core/loops/scheduler.js.map +1 -1
- package/dist/core/models/dialog-region.d.ts +16 -0
- package/dist/core/models/dialog-region.d.ts.map +1 -0
- package/dist/core/models/dialog-region.js +133 -0
- package/dist/core/models/dialog-region.js.map +1 -0
- package/dist/core/models/input.d.ts +1 -1
- package/dist/core/models/input.d.ts.map +1 -1
- package/dist/core/models/input.js.map +1 -1
- package/dist/core/models/intervention.d.ts +3 -0
- package/dist/core/models/intervention.d.ts.map +1 -0
- package/dist/core/models/intervention.js +12 -0
- package/dist/core/models/intervention.js.map +1 -0
- package/dist/core/models/picker.d.ts +14 -1
- package/dist/core/models/picker.d.ts.map +1 -1
- package/dist/core/models/picker.js +27 -6
- package/dist/core/models/picker.js.map +1 -1
- package/dist/core/models/rows.d.ts +42 -2
- package/dist/core/models/rows.d.ts.map +1 -1
- package/dist/core/models/rows.js +30 -3
- package/dist/core/models/rows.js.map +1 -1
- package/dist/core/models/tui-screen.d.ts +11 -1
- package/dist/core/models/tui-screen.d.ts.map +1 -1
- package/dist/core/models/tui-screen.js +22 -4
- package/dist/core/models/tui-screen.js.map +1 -1
- package/dist/core/module-require.d.ts +1 -1
- package/dist/core/module-require.js +1 -1
- package/dist/core/persona.d.ts +5 -4
- package/dist/core/persona.d.ts.map +1 -1
- package/dist/core/persona.js +18 -3
- package/dist/core/persona.js.map +1 -1
- package/dist/core/predicates.d.ts +9 -1
- package/dist/core/predicates.d.ts.map +1 -1
- package/dist/core/predicates.js +12 -2
- package/dist/core/predicates.js.map +1 -1
- package/dist/core/questions/abort.d.ts +2 -0
- package/dist/core/questions/abort.d.ts.map +1 -0
- package/dist/core/questions/abort.js +21 -0
- package/dist/core/questions/abort.js.map +1 -0
- package/dist/core/questions/activity-fields.d.ts +5 -0
- package/dist/core/questions/activity-fields.d.ts.map +1 -0
- package/dist/core/questions/activity-fields.js +15 -0
- package/dist/core/questions/activity-fields.js.map +1 -0
- package/dist/core/questions/activity.d.ts +6 -0
- package/dist/core/questions/activity.d.ts.map +1 -0
- package/dist/core/questions/activity.js +2 -0
- package/dist/core/questions/activity.js.map +1 -0
- package/dist/core/questions/adapter.d.ts +15 -0
- package/dist/core/questions/adapter.d.ts.map +1 -0
- package/dist/core/questions/adapter.js +2 -0
- package/dist/core/questions/adapter.js.map +1 -0
- package/dist/core/questions/attempt.d.ts +26 -0
- package/dist/core/questions/attempt.d.ts.map +1 -0
- package/dist/core/questions/attempt.js +85 -0
- package/dist/core/questions/attempt.js.map +1 -0
- package/dist/core/questions/controller.d.ts +24 -0
- package/dist/core/questions/controller.d.ts.map +1 -0
- package/dist/core/questions/controller.js +83 -0
- package/dist/core/questions/controller.js.map +1 -0
- package/dist/core/questions/correlation.d.ts +8 -0
- package/dist/core/questions/correlation.d.ts.map +1 -0
- package/dist/core/questions/correlation.js +11 -0
- package/dist/core/questions/correlation.js.map +1 -0
- package/dist/core/questions/cursor-provenance.d.ts +12 -0
- package/dist/core/questions/cursor-provenance.d.ts.map +1 -0
- package/dist/core/questions/cursor-provenance.js +19 -0
- package/dist/core/questions/cursor-provenance.js.map +1 -0
- package/dist/core/questions/deadline.d.ts +2 -0
- package/dist/core/questions/deadline.d.ts.map +1 -0
- package/dist/core/questions/deadline.js +11 -0
- package/dist/core/questions/deadline.js.map +1 -0
- package/dist/core/questions/dispatch.d.ts +17 -0
- package/dist/core/questions/dispatch.d.ts.map +1 -0
- package/dist/core/questions/dispatch.js +46 -0
- package/dist/core/questions/dispatch.js.map +1 -0
- package/dist/core/questions/errors.d.ts +8 -0
- package/dist/core/questions/errors.d.ts.map +1 -0
- package/dist/core/questions/errors.js +10 -0
- package/dist/core/questions/errors.js.map +1 -0
- package/dist/core/questions/input.d.ts +13 -0
- package/dist/core/questions/input.d.ts.map +1 -0
- package/dist/core/questions/input.js +93 -0
- package/dist/core/questions/input.js.map +1 -0
- package/dist/core/questions/io.d.ts +23 -0
- package/dist/core/questions/io.d.ts.map +1 -0
- package/dist/core/questions/io.js +2 -0
- package/dist/core/questions/io.js.map +1 -0
- package/dist/core/questions/notification-errors.d.ts +14 -0
- package/dist/core/questions/notification-errors.d.ts.map +1 -0
- package/dist/core/questions/notification-errors.js +45 -0
- package/dist/core/questions/notification-errors.js.map +1 -0
- package/dist/core/questions/observers.d.ts +17 -0
- package/dist/core/questions/observers.d.ts.map +1 -0
- package/dist/core/questions/observers.js +57 -0
- package/dist/core/questions/observers.js.map +1 -0
- package/dist/core/questions/registry.d.ts +35 -0
- package/dist/core/questions/registry.d.ts.map +1 -0
- package/dist/core/questions/registry.js +158 -0
- package/dist/core/questions/registry.js.map +1 -0
- package/dist/core/questions/transaction.d.ts +23 -0
- package/dist/core/questions/transaction.d.ts.map +1 -0
- package/dist/core/questions/transaction.js +97 -0
- package/dist/core/questions/transaction.js.map +1 -0
- package/dist/core/questions/types.d.ts +62 -0
- package/dist/core/questions/types.d.ts.map +1 -0
- package/dist/core/questions/types.js +2 -0
- package/dist/core/questions/types.js.map +1 -0
- package/dist/core/questions/validate.d.ts +16 -0
- package/dist/core/questions/validate.d.ts.map +1 -0
- package/dist/core/questions/validate.js +95 -0
- package/dist/core/questions/validate.js.map +1 -0
- package/dist/core/rendered-observers.d.ts +7 -2
- package/dist/core/rendered-observers.d.ts.map +1 -1
- package/dist/core/rendered-observers.js +44 -10
- package/dist/core/rendered-observers.js.map +1 -1
- package/dist/core/screen-facts.d.ts +8 -3
- package/dist/core/screen-facts.d.ts.map +1 -1
- package/dist/core/screen-facts.js +6 -3
- package/dist/core/screen-facts.js.map +1 -1
- package/dist/core/simple/boundary-observer.d.ts +30 -0
- package/dist/core/simple/boundary-observer.d.ts.map +1 -0
- package/dist/core/simple/boundary-observer.js +111 -0
- package/dist/core/simple/boundary-observer.js.map +1 -0
- package/dist/core/simple/boundary-signal.d.ts +31 -0
- package/dist/core/simple/boundary-signal.d.ts.map +1 -0
- package/dist/core/simple/boundary-signal.js +19 -0
- package/dist/core/simple/boundary-signal.js.map +1 -0
- package/dist/core/simple/captured-input.d.ts +19 -0
- package/dist/core/simple/captured-input.d.ts.map +1 -0
- package/dist/core/simple/captured-input.js +78 -0
- package/dist/core/simple/captured-input.js.map +1 -0
- package/dist/core/simple/close.d.ts +6 -0
- package/dist/core/simple/close.d.ts.map +1 -0
- package/dist/core/simple/close.js +20 -0
- package/dist/core/simple/close.js.map +1 -0
- package/dist/core/simple/events.d.ts +2 -2
- package/dist/core/simple/events.js +2 -2
- package/dist/core/simple/loop-boundary.d.ts +12 -0
- package/dist/core/simple/loop-boundary.d.ts.map +1 -0
- package/dist/core/simple/loop-boundary.js +68 -0
- package/dist/core/simple/loop-boundary.js.map +1 -0
- package/dist/core/simple/loop-hold.d.ts +7 -0
- package/dist/core/simple/loop-hold.d.ts.map +1 -0
- package/dist/core/simple/loop-hold.js +9 -0
- package/dist/core/simple/loop-hold.js.map +1 -0
- package/dist/core/simple/native-boundary.d.ts +15 -0
- package/dist/core/simple/native-boundary.d.ts.map +1 -0
- package/dist/core/simple/native-boundary.js +18 -0
- package/dist/core/simple/native-boundary.js.map +1 -0
- package/dist/core/simple/native-idle.d.ts +17 -0
- package/dist/core/simple/native-idle.d.ts.map +1 -0
- package/dist/core/simple/native-idle.js +25 -0
- package/dist/core/simple/native-idle.js.map +1 -0
- package/dist/core/simple/observe-boundary.d.ts +28 -0
- package/dist/core/simple/observe-boundary.d.ts.map +1 -0
- package/dist/core/simple/observe-boundary.js +13 -0
- package/dist/core/simple/observe-boundary.js.map +1 -0
- package/dist/core/simple/owned-loop.d.ts +8 -0
- package/dist/core/simple/owned-loop.d.ts.map +1 -0
- package/dist/core/simple/owned-loop.js +42 -0
- package/dist/core/simple/owned-loop.js.map +1 -0
- package/dist/core/simple/session.d.ts +7 -7
- package/dist/core/simple/session.d.ts.map +1 -1
- package/dist/core/simple/session.js +20 -33
- package/dist/core/simple/session.js.map +1 -1
- package/dist/core/simple/submission-context.d.ts +13 -0
- package/dist/core/simple/submission-context.d.ts.map +1 -0
- package/dist/core/simple/submission-context.js +35 -0
- package/dist/core/simple/submission-context.js.map +1 -0
- package/dist/core/simple/turn/bounds.d.ts +22 -0
- package/dist/core/simple/turn/bounds.d.ts.map +1 -0
- package/dist/core/simple/turn/bounds.js +22 -0
- package/dist/core/simple/turn/bounds.js.map +1 -0
- package/dist/core/simple/turn/defaults.d.ts +24 -0
- package/dist/core/simple/turn/defaults.d.ts.map +1 -0
- package/dist/core/simple/turn/defaults.js +34 -0
- package/dist/core/simple/turn/defaults.js.map +1 -0
- package/dist/core/simple/turn-acceptance.d.ts +20 -3
- package/dist/core/simple/turn-acceptance.d.ts.map +1 -1
- package/dist/core/simple/turn-acceptance.js +55 -5
- package/dist/core/simple/turn-acceptance.js.map +1 -1
- package/dist/core/simple/turn-boundary.d.ts +7 -2
- package/dist/core/simple/turn-boundary.d.ts.map +1 -1
- package/dist/core/simple/turn-boundary.js +17 -5
- package/dist/core/simple/turn-boundary.js.map +1 -1
- package/dist/core/simple/turn-gate.d.ts.map +1 -1
- package/dist/core/simple/turn-gate.js +1 -11
- package/dist/core/simple/turn-gate.js.map +1 -1
- package/dist/core/simple/turn-identity.d.ts +28 -0
- package/dist/core/simple/turn-identity.d.ts.map +1 -0
- package/dist/core/simple/turn-identity.js +74 -0
- package/dist/core/simple/turn-identity.js.map +1 -0
- package/dist/core/simple/turn-types.d.ts +11 -4
- package/dist/core/simple/turn-types.d.ts.map +1 -1
- package/dist/core/simple/turn-types.js +1 -6
- package/dist/core/simple/turn-types.js.map +1 -1
- package/dist/core/simple/turn.d.ts +7 -30
- package/dist/core/simple/turn.d.ts.map +1 -1
- package/dist/core/simple/turn.js +75 -75
- package/dist/core/simple/turn.js.map +1 -1
- package/dist/core/startup/barrier.d.ts +37 -0
- package/dist/core/startup/barrier.d.ts.map +1 -0
- package/dist/core/startup/barrier.js +59 -0
- package/dist/core/startup/barrier.js.map +1 -0
- package/dist/core/startup/frame.d.ts +2 -0
- package/dist/core/startup/frame.d.ts.map +1 -1
- package/dist/core/startup/frame.js +12 -0
- package/dist/core/startup/frame.js.map +1 -1
- package/dist/core/startup/warnings.d.ts +5 -0
- package/dist/core/startup/warnings.d.ts.map +1 -0
- package/dist/core/startup/warnings.js +14 -0
- package/dist/core/startup/warnings.js.map +1 -0
- package/dist/core/startup/write.d.ts +13 -11
- package/dist/core/startup/write.d.ts.map +1 -1
- package/dist/core/startup/write.js +12 -5
- package/dist/core/startup/write.js.map +1 -1
- package/dist/core/stop-input.d.ts +19 -0
- package/dist/core/stop-input.d.ts.map +1 -0
- package/dist/core/stop-input.js +47 -0
- package/dist/core/stop-input.js.map +1 -0
- package/dist/core/terminal-options.d.ts +13 -3
- package/dist/core/terminal-options.d.ts.map +1 -1
- package/dist/core/terminal-options.js +17 -7
- package/dist/core/terminal-options.js.map +1 -1
- package/dist/core/terminal-replay.d.ts +1 -0
- package/dist/core/terminal-replay.d.ts.map +1 -1
- package/dist/core/terminal-replay.js +6 -0
- package/dist/core/terminal-replay.js.map +1 -1
- package/dist/core/timers.d.ts +15 -0
- package/dist/core/timers.d.ts.map +1 -0
- package/dist/core/timers.js +17 -0
- package/dist/core/timers.js.map +1 -0
- package/dist/core/trust/allowlist.d.ts +24 -1
- package/dist/core/trust/allowlist.d.ts.map +1 -1
- package/dist/core/trust/allowlist.js +39 -12
- package/dist/core/trust/allowlist.js.map +1 -1
- package/dist/core/trust/blocking.d.ts +21 -10
- package/dist/core/trust/blocking.d.ts.map +1 -1
- package/dist/core/trust/blocking.js +64 -18
- package/dist/core/trust/blocking.js.map +1 -1
- package/dist/core/trust/clearance.d.ts +20 -0
- package/dist/core/trust/clearance.d.ts.map +1 -0
- package/dist/core/trust/clearance.js +25 -0
- package/dist/core/trust/clearance.js.map +1 -0
- package/dist/core/trust/copy.d.ts +19 -0
- package/dist/core/trust/copy.d.ts.map +1 -0
- package/dist/core/trust/copy.js +23 -0
- package/dist/core/trust/copy.js.map +1 -0
- package/dist/core/trust/dialog.d.ts +28 -0
- package/dist/core/trust/dialog.d.ts.map +1 -0
- package/dist/core/trust/dialog.js +96 -0
- package/dist/core/trust/dialog.js.map +1 -0
- package/dist/core/trust/options.d.ts +9 -0
- package/dist/core/trust/options.d.ts.map +1 -0
- package/dist/core/trust/options.js +9 -0
- package/dist/core/trust/options.js.map +1 -0
- package/dist/core/trust/prompts.d.ts +16 -37
- package/dist/core/trust/prompts.d.ts.map +1 -1
- package/dist/core/trust/prompts.js +10 -18
- package/dist/core/trust/prompts.js.map +1 -1
- package/dist/core/trust/responder.d.ts +27 -45
- package/dist/core/trust/responder.d.ts.map +1 -1
- package/dist/core/trust/responder.js +178 -108
- package/dist/core/trust/responder.js.map +1 -1
- package/dist/core/trust/types.d.ts +36 -0
- package/dist/core/trust/types.d.ts.map +1 -0
- package/dist/core/trust/types.js +17 -0
- package/dist/core/trust/types.js.map +1 -0
- package/dist/core/trust/view.d.ts +31 -0
- package/dist/core/trust/view.d.ts.map +1 -0
- package/dist/core/trust/view.js +52 -0
- package/dist/core/trust/view.js.map +1 -0
- package/dist/core/trust/write.d.ts +31 -0
- package/dist/core/trust/write.d.ts.map +1 -0
- package/dist/core/trust/write.js +148 -0
- package/dist/core/trust/write.js.map +1 -0
- package/dist/core/turn-state.d.ts +6 -0
- package/dist/core/turn-state.d.ts.map +1 -1
- package/dist/core/turn-state.js +31 -1
- package/dist/core/turn-state.js.map +1 -1
- package/dist/core/types.d.ts +4 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/warnings/auth.d.ts +25 -0
- package/dist/core/warnings/auth.d.ts.map +1 -0
- package/dist/core/warnings/auth.js +2 -0
- package/dist/core/warnings/auth.js.map +1 -0
- package/dist/core/warnings/index.d.ts +9 -16
- package/dist/core/warnings/index.d.ts.map +1 -1
- package/dist/core/warnings/index.js +2 -3
- package/dist/core/warnings/index.js.map +1 -1
- package/dist/core/warnings/lifecycle.d.ts +25 -1
- package/dist/core/warnings/lifecycle.d.ts.map +1 -1
- package/dist/core/warnings/lifecycle.js +1 -1
- package/dist/core/warnings/questions.d.ts +23 -0
- package/dist/core/warnings/questions.d.ts.map +1 -0
- package/dist/core/warnings/questions.js +2 -0
- package/dist/core/warnings/questions.js.map +1 -0
- package/dist/core/warnings/session.d.ts +3 -2
- package/dist/core/warnings/session.d.ts.map +1 -1
- package/dist/core/warnings/session.js +3 -2
- package/dist/core/warnings/session.js.map +1 -1
- package/dist/core/warnings/transcript.d.ts +12 -0
- package/dist/core/warnings/transcript.d.ts.map +1 -0
- package/dist/core/warnings/transcript.js +2 -0
- package/dist/core/warnings/transcript.js.map +1 -0
- package/dist/core/warnings/update.d.ts +11 -2
- package/dist/core/warnings/update.d.ts.map +1 -1
- package/dist/core/warnings/update.js +27 -4
- package/dist/core/warnings/update.js.map +1 -1
- package/dist/events/emitter.d.ts +18 -2
- package/dist/events/emitter.d.ts.map +1 -1
- package/dist/events/emitter.js +61 -14
- package/dist/events/emitter.js.map +1 -1
- package/dist/events/observer-errors.d.ts +9 -0
- package/dist/events/observer-errors.d.ts.map +1 -0
- package/dist/events/observer-errors.js +68 -0
- package/dist/events/observer-errors.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/pty/node.d.ts.map +1 -1
- package/dist/pty/node.js +4 -0
- package/dist/pty/node.js.map +1 -1
- package/dist/pty/types.d.ts +5 -0
- package/dist/pty/types.d.ts.map +1 -1
- package/dist/runtime/probe-cleanup.d.ts +34 -0
- package/dist/runtime/probe-cleanup.d.ts.map +1 -0
- package/dist/runtime/probe-cleanup.js +139 -0
- package/dist/runtime/probe-cleanup.js.map +1 -0
- package/dist/runtime/probe.d.ts.map +1 -1
- package/dist/runtime/probe.js +18 -25
- package/dist/runtime/probe.js.map +1 -1
- package/dist/runtime/readiness/initial-ready.d.ts +13 -11
- package/dist/runtime/readiness/initial-ready.d.ts.map +1 -1
- package/dist/runtime/readiness/initial-ready.js +23 -18
- package/dist/runtime/readiness/initial-ready.js.map +1 -1
- package/dist/runtime/seams.d.ts +2 -1
- package/dist/runtime/seams.d.ts.map +1 -1
- package/dist/runtime/seams.js.map +1 -1
- package/dist/runtime/session/attention-clearance.d.ts +5 -0
- package/dist/runtime/session/attention-clearance.d.ts.map +1 -0
- package/dist/runtime/session/attention-clearance.js +20 -0
- package/dist/runtime/session/attention-clearance.js.map +1 -0
- package/dist/runtime/session/base.d.ts +17 -4
- package/dist/runtime/session/base.d.ts.map +1 -1
- package/dist/runtime/session/base.js +68 -14
- package/dist/runtime/session/base.js.map +1 -1
- package/dist/runtime/session/commands.d.ts +17 -3
- package/dist/runtime/session/commands.d.ts.map +1 -1
- package/dist/runtime/session/commands.js +60 -13
- package/dist/runtime/session/commands.js.map +1 -1
- package/dist/runtime/session/foreign-picker.d.ts +8 -0
- package/dist/runtime/session/foreign-picker.d.ts.map +1 -0
- package/dist/runtime/session/foreign-picker.js +18 -0
- package/dist/runtime/session/foreign-picker.js.map +1 -0
- package/dist/runtime/session/frames.d.ts +27 -0
- package/dist/runtime/session/frames.d.ts.map +1 -0
- package/dist/runtime/session/frames.js +80 -0
- package/dist/runtime/session/frames.js.map +1 -0
- package/dist/runtime/session/image-attach.d.ts +3 -15
- package/dist/runtime/session/image-attach.d.ts.map +1 -1
- package/dist/runtime/session/image-attach.js +9 -27
- package/dist/runtime/session/image-attach.js.map +1 -1
- package/dist/runtime/session/lifecycle.d.ts +20 -14
- package/dist/runtime/session/lifecycle.d.ts.map +1 -1
- package/dist/runtime/session/lifecycle.js +49 -47
- package/dist/runtime/session/lifecycle.js.map +1 -1
- package/dist/runtime/session/loops.d.ts +10 -1
- package/dist/runtime/session/loops.d.ts.map +1 -1
- package/dist/runtime/session/loops.js +61 -19
- package/dist/runtime/session/loops.js.map +1 -1
- package/dist/runtime/session/native-submission.d.ts +10 -0
- package/dist/runtime/session/native-submission.d.ts.map +1 -0
- package/dist/runtime/session/native-submission.js +62 -0
- package/dist/runtime/session/native-submission.js.map +1 -0
- package/dist/runtime/session/not-running.d.ts +13 -0
- package/dist/runtime/session/not-running.d.ts.map +1 -0
- package/dist/runtime/session/not-running.js +28 -0
- package/dist/runtime/session/not-running.js.map +1 -0
- package/dist/runtime/session/paste-recovery.d.ts +15 -0
- package/dist/runtime/session/paste-recovery.d.ts.map +1 -0
- package/dist/runtime/session/paste-recovery.js +30 -0
- package/dist/runtime/session/paste-recovery.js.map +1 -0
- package/dist/runtime/session/picker-cleanup.d.ts +56 -0
- package/dist/runtime/session/picker-cleanup.d.ts.map +1 -0
- package/dist/runtime/session/picker-cleanup.js +126 -0
- package/dist/runtime/session/picker-cleanup.js.map +1 -0
- package/dist/runtime/session/picker-input.d.ts +17 -0
- package/dist/runtime/session/picker-input.d.ts.map +1 -0
- package/dist/runtime/session/picker-input.js +74 -0
- package/dist/runtime/session/picker-input.js.map +1 -0
- package/dist/runtime/session/picker.d.ts +56 -0
- package/dist/runtime/session/picker.d.ts.map +1 -0
- package/dist/runtime/session/picker.js +143 -0
- package/dist/runtime/session/picker.js.map +1 -0
- package/dist/runtime/session/questions.d.ts +23 -0
- package/dist/runtime/session/questions.d.ts.map +1 -0
- package/dist/runtime/session/questions.js +25 -0
- package/dist/runtime/session/questions.js.map +1 -0
- package/dist/runtime/session/readiness.d.ts +6 -3
- package/dist/runtime/session/readiness.d.ts.map +1 -1
- package/dist/runtime/session/readiness.js +19 -8
- package/dist/runtime/session/readiness.js.map +1 -1
- package/dist/runtime/session/shutdown-binding.d.ts +9 -0
- package/dist/runtime/session/shutdown-binding.d.ts.map +1 -1
- package/dist/runtime/session/shutdown-binding.js +57 -8
- package/dist/runtime/session/shutdown-binding.js.map +1 -1
- package/dist/runtime/session/shutdown.d.ts +2 -5
- package/dist/runtime/session/shutdown.d.ts.map +1 -1
- package/dist/runtime/session/shutdown.js +12 -13
- package/dist/runtime/session/shutdown.js.map +1 -1
- package/dist/runtime/session/status-wiring.d.ts +9 -4
- package/dist/runtime/session/status-wiring.d.ts.map +1 -1
- package/dist/runtime/session/status-wiring.js +8 -5
- package/dist/runtime/session/status-wiring.js.map +1 -1
- package/dist/runtime/session/stop-completion.d.ts +23 -0
- package/dist/runtime/session/stop-completion.d.ts.map +1 -0
- package/dist/runtime/session/stop-completion.js +32 -0
- package/dist/runtime/session/stop-completion.js.map +1 -0
- package/dist/runtime/session/turn-submission.d.ts +9 -0
- package/dist/runtime/session/turn-submission.d.ts.map +1 -0
- package/dist/runtime/session/turn-submission.js +19 -0
- package/dist/runtime/session/turn-submission.js.map +1 -0
- package/dist/runtime/shutdown/terminal.d.ts +10 -0
- package/dist/runtime/shutdown/terminal.d.ts.map +1 -0
- package/dist/runtime/shutdown/terminal.js +38 -0
- package/dist/runtime/shutdown/terminal.js.map +1 -0
- package/dist/runtime/startup/buffer.d.ts +1 -1
- package/dist/runtime/startup/buffer.d.ts.map +1 -1
- package/dist/runtime/startup/buffer.js +14 -8
- package/dist/runtime/startup/buffer.js.map +1 -1
- package/dist/runtime/status-evidence.d.ts +7 -3
- package/dist/runtime/status-evidence.d.ts.map +1 -1
- package/dist/runtime/status-evidence.js +12 -10
- package/dist/runtime/status-evidence.js.map +1 -1
- package/dist/runtime/update/lock.d.ts +7 -0
- package/dist/runtime/update/lock.d.ts.map +1 -1
- package/dist/runtime/update/lock.js +102 -121
- package/dist/runtime/update/lock.js.map +1 -1
- package/dist/runtime/update/owner.d.ts +54 -0
- package/dist/runtime/update/owner.d.ts.map +1 -0
- package/dist/runtime/update/owner.js +131 -0
- package/dist/runtime/update/owner.js.map +1 -0
- package/dist/runtime/update/retained-lease.d.ts +13 -0
- package/dist/runtime/update/retained-lease.d.ts.map +1 -0
- package/dist/runtime/update/retained-lease.js +40 -0
- package/dist/runtime/update/retained-lease.js.map +1 -0
- package/dist/runtime/update/waiting.d.ts +4 -0
- package/dist/runtime/update/waiting.d.ts.map +1 -0
- package/dist/runtime/update/waiting.js +95 -0
- package/dist/runtime/update/waiting.js.map +1 -0
- package/dist/state/canonical-path.d.ts +2 -0
- package/dist/state/canonical-path.d.ts.map +1 -0
- package/dist/state/canonical-path.js +22 -0
- package/dist/state/canonical-path.js.map +1 -0
- package/dist/state/launch-ownership.d.ts +21 -0
- package/dist/state/launch-ownership.d.ts.map +1 -0
- package/dist/state/launch-ownership.js +154 -0
- package/dist/state/launch-ownership.js.map +1 -0
- package/dist/state/launch-publication.d.ts +7 -0
- package/dist/state/launch-publication.d.ts.map +1 -0
- package/dist/state/launch-publication.js +53 -0
- package/dist/state/launch-publication.js.map +1 -0
- package/dist/state/private-read.js +2 -1
- package/dist/state/private-read.js.map +1 -1
- package/dist/state/private-session.d.ts +1 -1
- package/dist/state/private-session.d.ts.map +1 -1
- package/dist/state/private-session.js +4 -1
- package/dist/state/private-session.js.map +1 -1
- package/dist/state/runtime-paths.d.ts +10 -9
- package/dist/state/runtime-paths.d.ts.map +1 -1
- package/dist/state/runtime-paths.js +14 -12
- package/dist/state/runtime-paths.js.map +1 -1
- package/dist/state/socket-home.d.ts +8 -4
- package/dist/state/socket-home.d.ts.map +1 -1
- package/dist/state/socket-home.js +31 -7
- package/dist/state/socket-home.js.map +1 -1
- package/dist/state/startup-ownership.d.ts +4 -0
- package/dist/state/startup-ownership.d.ts.map +1 -0
- package/dist/state/startup-ownership.js +14 -0
- package/dist/state/startup-ownership.js.map +1 -0
- package/dist/state/store.d.ts +1 -1
- package/dist/state/store.d.ts.map +1 -1
- package/dist/state/store.js +2 -2
- package/dist/state/store.js.map +1 -1
- package/dist/terminal/coordinates.d.ts +7 -0
- package/dist/terminal/coordinates.d.ts.map +1 -0
- package/dist/terminal/coordinates.js +6 -0
- package/dist/terminal/coordinates.js.map +1 -0
- package/dist/terminal/cursor.d.ts +40 -0
- package/dist/terminal/cursor.d.ts.map +1 -0
- package/dist/terminal/cursor.js +116 -0
- package/dist/terminal/cursor.js.map +1 -0
- package/dist/terminal/headless.d.ts +7 -5
- package/dist/terminal/headless.d.ts.map +1 -1
- package/dist/terminal/headless.js +47 -35
- package/dist/terminal/headless.js.map +1 -1
- package/dist/terminal/pty-output.d.ts +37 -0
- package/dist/terminal/pty-output.d.ts.map +1 -0
- package/dist/terminal/pty-output.js +109 -0
- package/dist/terminal/pty-output.js.map +1 -0
- package/dist/terminal/render-queue.d.ts +30 -0
- package/dist/terminal/render-queue.d.ts.map +1 -0
- package/dist/terminal/render-queue.js +105 -0
- package/dist/terminal/render-queue.js.map +1 -0
- package/dist/terminal/snapshot.d.ts +5 -0
- package/dist/terminal/snapshot.d.ts.map +1 -0
- package/dist/terminal/snapshot.js +13 -0
- package/dist/terminal/snapshot.js.map +1 -0
- package/docs/api.md +8 -1
- package/docs/cli-behavior.md +930 -43
- package/docs/cli-output.md +44 -10
- package/docs/cli.md +18 -11
- package/docs/codex/cli.md +44 -0
- package/docs/login-recovery.md +24 -0
- package/docs/native-question-proofs.md +57 -0
- package/docs/performance.md +73 -0
- package/docs/questions.md +181 -0
- package/package.json +1 -1
- package/prd/04-architecture.md +15 -0
- package/prd/05-api/5.1-starting-claude.md +11 -1
- package/prd/05-api/5.10-questions.md +117 -0
- package/prd/05-api/5.3-claude-session-api.md +293 -24
- package/prd/05-api/5.4-events.md +159 -32
- package/prd/05-api/5.5-starting-codex.md +85 -18
- package/prd/05-api/5.7-codex-session-api.md +143 -5
- package/prd/05-api/5.8-session-api.md +58 -6
- package/prd/05-api/5.9-loops.md +11 -1
- package/prd/05-api/README.md +2 -0
- package/prd/06-claude-hook-bridge.md +115 -0
- package/prd/07-claude-policy.md +2 -0
- package/prd/07a-codex-hook-bridge.md +90 -0
- package/prd/08-state.md +51 -10
- package/prd/09-lifecycle.md +79 -3
- package/prd/10-errors.md +9 -2
- package/prd/12a-cli.md +50 -17
- package/prd/13-latitude.md +89 -0
- package/prd/14-conformance.md +86 -32
- package/prd/16-maintainer-review.md +75 -0
- package/prd/README.md +1 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Shared composer keys and bounded input-recovery cadence (PRD §5.3, C-API-56). */
|
|
2
|
+
export declare const bracketedPasteStart = "\u001B[200~";
|
|
3
|
+
export declare const bracketedPasteEnd = "\u001B[201~";
|
|
4
|
+
/** Ctrl+U kills to line start; Ctrl+K kills to line end, discarding staged composer content. */
|
|
5
|
+
export declare const composerClearKeys = "\u0015\v";
|
|
6
|
+
/** Recheck dialog, unobserved-output, and failed-render holds at the same cadence. */
|
|
7
|
+
export declare const unsafeWriteRetryMs = 50;
|
|
8
|
+
/** Maximum physical recovery Enters after the initial submitting Enter. */
|
|
9
|
+
export declare const pasteNudgeAttempts = 2;
|
|
10
|
+
/** Unknown/unsafe observations share one bounded recovery budget. */
|
|
11
|
+
export declare const pasteObservationLimit = 4;
|
|
12
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/input/constants.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,gGAAgG;AAChG,eAAO,MAAM,iBAAiB,aAAiB,CAAC;AAChD,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,IAAI,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Shared composer keys and bounded input-recovery cadence (PRD §5.3, C-API-56). */
|
|
2
|
+
export const bracketedPasteStart = "\u001b[200~";
|
|
3
|
+
export const bracketedPasteEnd = "\u001b[201~";
|
|
4
|
+
/** Ctrl+U kills to line start; Ctrl+K kills to line end, discarding staged composer content. */
|
|
5
|
+
export const composerClearKeys = "\u0015\u000b";
|
|
6
|
+
/** Recheck dialog, unobserved-output, and failed-render holds at the same cadence. */
|
|
7
|
+
export const unsafeWriteRetryMs = 50;
|
|
8
|
+
/** Maximum physical recovery Enters after the initial submitting Enter. */
|
|
9
|
+
export const pasteNudgeAttempts = 2;
|
|
10
|
+
/** Unknown/unsafe observations share one bounded recovery budget. */
|
|
11
|
+
export const pasteObservationLimit = 4;
|
|
12
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/input/constants.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAE/C,gGAAgG;AAChG,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAChD,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,qEAAqE;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ElwoodTerminal, TerminalSnapshot } from "../../terminal/headless.ts";
|
|
2
|
+
/** The caller separately owns dialog blocking; this only observes the current input surface. */
|
|
3
|
+
export declare function emptyInputFrame(terminal: ElwoodTerminal, matches: (rows: readonly string[], cursorRow: number) => boolean): TerminalSnapshot | undefined;
|
|
4
|
+
//# sourceMappingURL=empty-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-frame.d.ts","sourceRoot":"","sources":["../../../src/core/input/empty-frame.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnF,gGAAgG;AAChG,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,GAC/D,gBAAgB,GAAG,SAAS,CAQ9B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Positive native input geometry, independent of turn activity (PRD §5.3, C-API-56). */
|
|
2
|
+
import { cursorViewportRow } from "../../terminal/coordinates.js";
|
|
3
|
+
import { currentRenderedFrame, settledCursorVisible } from "../../terminal/cursor.js";
|
|
4
|
+
/** The caller separately owns dialog blocking; this only observes the current input surface. */
|
|
5
|
+
export function emptyInputFrame(terminal, matches) {
|
|
6
|
+
const frame = currentRenderedFrame(terminal);
|
|
7
|
+
// Both native inputs place the caret after the two-cell "❯ " / "› " prefix.
|
|
8
|
+
if (!(frame && settledCursorVisible(terminal.xterm)) || frame.cursorX !== 2)
|
|
9
|
+
return undefined;
|
|
10
|
+
const buffer = terminal.xterm.buffer.active;
|
|
11
|
+
// cursorY is relative to the live buffer base; snapshot lines start at viewportY.
|
|
12
|
+
const viewportCursorRow = cursorViewportRow(frame.cursorY, buffer);
|
|
13
|
+
return matches(frame.lines, viewportCursorRow) ? frame : undefined;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=empty-frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-frame.js","sourceRoot":"","sources":["../../../src/core/input/empty-frame.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,gGAAgG;AAChG,MAAM,UAAU,eAAe,CAC7B,QAAwB,EACxB,OAAgE;IAEhE,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC7C,4EAA4E;IAC5E,IAAI,CAAC,CAAC,KAAK,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9F,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5C,kFAAkF;IAClF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC"}
|
|
@@ -3,35 +3,18 @@
|
|
|
3
3
|
* Implements PRD §5.3 prompt and command submission semantics (C-API-31).
|
|
4
4
|
*/
|
|
5
5
|
import type { ControlSubmitMode } from "../control-queue/index.ts";
|
|
6
|
+
import type { ControlSubmitter } from "../control-queue/types.ts";
|
|
6
7
|
import { type InputTerminal } from "./abort.ts";
|
|
7
|
-
|
|
8
|
-
export type PasteGuard
|
|
9
|
-
|
|
10
|
-
readonly staged: (screen: string, prompt: string) => boolean;
|
|
11
|
-
/**
|
|
12
|
-
* True when a blocking human-decision dialog is on screen. A dialog can
|
|
13
|
-
* appear during the paste-settle window; sending the submitting Enter then
|
|
14
|
-
* would confirm the dialog's highlighted option (e.g. approve a tool). The
|
|
15
|
-
* Enter is therefore held while this is true and retried once it clears.
|
|
16
|
-
*/
|
|
17
|
-
readonly blocked?: () => boolean;
|
|
18
|
-
};
|
|
8
|
+
import type { PasteGuard } from "./paste-guard.ts";
|
|
9
|
+
export type { PasteGuard, RecoveryComposer } from "./paste-guard.ts";
|
|
10
|
+
export { sanitizePasteText } from "./sanitize.ts";
|
|
19
11
|
export declare const commandEnterDelayMs = 150;
|
|
20
12
|
export declare const pasteSettleDelayMs = 150;
|
|
21
13
|
export declare const pasteNudgeDelayMs = 1000;
|
|
22
|
-
export
|
|
23
|
-
/** How often the submitting Enter re-checks a blocking dialog before firing. */
|
|
24
|
-
export declare const blockedPollMs = 50;
|
|
14
|
+
export { pasteNudgeAttempts } from "./constants.ts";
|
|
25
15
|
/** Explicitly best-effort input for startup/recovery automation. */
|
|
26
16
|
export declare function ignoreInputFailure(input: void | Promise<void>): void;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* byte) MUST NOT terminate paste mode early and turn following bytes into live
|
|
31
|
-
* keystrokes — e.g. an Enter that confirms a permission dialog. Tab, newline, and
|
|
32
|
-
* carriage return survive as legitimate multi-line text; everything else is
|
|
33
|
-
* stripped. `sendKeys` is the raw escape hatch and never goes through here.
|
|
34
|
-
*/
|
|
35
|
-
export declare function sanitizePasteText(text: string): string;
|
|
36
|
-
export declare function writeQueuedInput(terminal: InputTerminal, input: string, mode: ControlSubmitMode, guard?: PasteGuard, signal?: AbortSignal, enterDelayMs?: number): Promise<void>;
|
|
17
|
+
export declare function writeQueuedInput(terminal: InputTerminal, input: string, mode: ControlSubmitMode, guard?: PasteGuard, signal?: AbortSignal, enterDelayMs?: number, onSubmitted?: () => void, beforeEnter?: (payload: string) => void): Promise<void>;
|
|
18
|
+
/** Bind the session terminal while preserving physical-submission evidence (C-ATTN-02). */
|
|
19
|
+
export declare function queuedInputSubmitter(terminal: InputTerminal, guard: PasteGuard): ControlSubmitter;
|
|
37
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/input/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/input/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAEL,KAAK,aAAa,EAInB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAEpE;AAwFD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,EACvB,KAAK,CAAC,EAAE,UAAU,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,YAAY,SAAsB,EAClC,WAAW,CAAC,EAAE,MAAM,IAAI,EACxB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC,CAsDf;AAED,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAYjG"}
|
package/dist/core/input/index.js
CHANGED
|
@@ -2,165 +2,130 @@
|
|
|
2
2
|
* Shared PTY input submission helpers for adapter sessions.
|
|
3
3
|
* Implements PRD §5.3 prompt and command submission semantics (C-API-31).
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { elwoodError } from "../errors.js";
|
|
6
|
+
import { holdWhileUnsafe, submissionError, throwIfInputAborted, waitForInput, } from "./abort.js";
|
|
7
|
+
import { requestComposerCleanup, stageComposer, submittedComposer } from "./composer-cleanup.js";
|
|
8
|
+
import { bracketedPasteEnd, bracketedPasteStart } from "./constants.js";
|
|
9
|
+
import { preparePasteNudges } from "./paste-nudge.js";
|
|
10
|
+
import { sanitizePasteText } from "./sanitize.js";
|
|
11
|
+
export { sanitizePasteText } from "./sanitize.js";
|
|
6
12
|
export const commandEnterDelayMs = 150;
|
|
7
13
|
export const pasteSettleDelayMs = 150;
|
|
8
14
|
export const pasteNudgeDelayMs = 1_000;
|
|
9
|
-
export
|
|
10
|
-
/** How often the submitting Enter re-checks a blocking dialog before firing. */
|
|
11
|
-
export const blockedPollMs = 50;
|
|
15
|
+
export { pasteNudgeAttempts } from "./constants.js";
|
|
12
16
|
/** Explicitly best-effort input for startup/recovery automation. */
|
|
13
17
|
export function ignoreInputFailure(input) {
|
|
14
18
|
void Promise.resolve(input).catch(() => undefined);
|
|
15
19
|
}
|
|
16
|
-
// C0 (\u0000-\u001f) and C1 (\u007f-\u009f) control chars EXCEPT tab,
|
|
17
|
-
// newline, and carriage return, which are legitimate multi-line whitespace.
|
|
18
|
-
// Stripping ESC (\u001b) alone already defuses the ESC[200~ / ESC[201~
|
|
19
|
-
// bracketed-paste sentinels, leaving only inert `[20x~` text.
|
|
20
|
-
// biome-ignore lint/suspicious/noControlCharactersInRegex: neutralizing control input is the point.
|
|
21
|
-
const pasteUnsafe = /[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f-\u009f]/g;
|
|
22
|
-
/**
|
|
23
|
-
* Neutralizes caller/model text before it is framed as a bracketed paste (§5.3).
|
|
24
|
-
* Message text is data, so an embedded `ESC[201~` end sentinel (or a bare control
|
|
25
|
-
* byte) MUST NOT terminate paste mode early and turn following bytes into live
|
|
26
|
-
* keystrokes — e.g. an Enter that confirms a permission dialog. Tab, newline, and
|
|
27
|
-
* carriage return survive as legitimate multi-line text; everything else is
|
|
28
|
-
* stripped. `sendKeys` is the raw escape hatch and never goes through here.
|
|
29
|
-
*/
|
|
30
|
-
export function sanitizePasteText(text) {
|
|
31
|
-
return text.replace(pasteUnsafe, "");
|
|
32
|
-
}
|
|
33
20
|
/**
|
|
34
21
|
* Writes a bracketed paste and submits it.
|
|
35
22
|
*
|
|
36
23
|
* The TUIs ingest bracketed pastes asynchronously; an Enter concatenated into
|
|
37
24
|
* the same PTY write races that ingestion and can be dropped, leaving the prompt
|
|
38
25
|
* staged but never submitted (long personas hit this reliably). The Enter
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* the staged state submits, and a surplus Enter on an empty composer is a no-op,
|
|
42
|
-
* so the recovery is safe on both adapters.
|
|
26
|
+
* follows after a settle delay; bounded re-Enters require staged content.
|
|
27
|
+
* Native submission activity permanently revokes recovery.
|
|
43
28
|
*
|
|
44
|
-
* While a
|
|
29
|
+
* While a human or automation-owned dialog is on screen, the WHOLE submission is
|
|
45
30
|
* held: neither the paste nor any Enter reaches the terminal until the dialog
|
|
46
31
|
* clears, so caller/model text can never be interpreted as the dialog's
|
|
47
32
|
* shortcuts or confirm its highlighted option (C-API-37 dialog safety). Paste
|
|
48
33
|
* text is sanitized first so an embedded end sentinel or control byte cannot
|
|
49
34
|
* escape paste mode into live keystrokes (§5.3).
|
|
50
35
|
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
36
|
+
* Ordinary sends resolve and release composer ownership after the first physical
|
|
37
|
+
* Enter; recovery continues in the background. Awaited ergonomic input keeps the queue and
|
|
38
|
+
* composer owned until fresh rendered input is positively empty. Its physical
|
|
39
|
+
* submission callback still runs after the first Enter, before native acceptance.
|
|
40
|
+
* Native activity stops retry Enters without accepting an awaited draft; raw input
|
|
41
|
+
* revokes recovery and cleanup authority over the caller's replacement draft.
|
|
56
42
|
*/
|
|
57
|
-
async function writePastedPrompt(terminal, prompt, guard, signal, settleDelayMs = pasteSettleDelayMs, nudgeDelayMs = pasteNudgeDelayMs) {
|
|
58
|
-
// Hold
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// bytes may reach a dialog until it clears (C-API-37 dialog safety). Only await
|
|
62
|
-
// when actually blocked, so the common path still writes the paste synchronously.
|
|
63
|
-
if (guard?.blocked?.())
|
|
64
|
-
await waitWhileBlocked(guard, signal);
|
|
43
|
+
async function writePastedPrompt(terminal, prompt, awaitInputConsumption, guard, signal, settleDelayMs = pasteSettleDelayMs, nudgeDelayMs = pasteNudgeDelayMs, onSubmitted, beforeEnter) {
|
|
44
|
+
// Hold paste and Enter until observed dialog clearance (C-API-37).
|
|
45
|
+
if (terminal.settled || guard?.blocked?.())
|
|
46
|
+
await holdWhileUnsafe(terminal, guard, signal);
|
|
65
47
|
throwIfInputAborted(signal);
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
// Enter into a newer prompt's paste (the staged chip is not prompt-specific).
|
|
77
|
-
if (signal?.aborted || !guard || nudges >= pasteNudgeAttempts)
|
|
78
|
-
return;
|
|
79
|
-
// A dialog that appears after the first Enter must not be confirmed by a
|
|
80
|
-
// recovery Enter either; skip this attempt and re-check on the next tick.
|
|
81
|
-
if (guard.blocked?.()) {
|
|
82
|
-
schedule(nudge, nudgeDelayMs);
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
nudges += 1;
|
|
86
|
-
if (!guard.staged(guard.snapshot(), prompt))
|
|
87
|
-
return;
|
|
88
|
-
try {
|
|
89
|
-
await terminal.sendInput("\r");
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
// Recovery nudges are best-effort after the first Enter already landed.
|
|
93
|
-
}
|
|
94
|
-
schedule(nudge, nudgeDelayMs);
|
|
95
|
-
};
|
|
48
|
+
// Keep caller text inside bracketed paste, including embedded end sentinels (§5.3).
|
|
49
|
+
const payload = sanitizePasteText(prompt);
|
|
50
|
+
const recovery = guard?.captureRecovery?.();
|
|
51
|
+
const priorEmptyFrame = guard?.emptyFrame?.();
|
|
52
|
+
const rawInputSignal = stageComposer(terminal);
|
|
53
|
+
const nudgeSignal = rawInputSignal && signal
|
|
54
|
+
? AbortSignal.any([rawInputSignal, signal])
|
|
55
|
+
: (rawInputSignal ?? signal);
|
|
56
|
+
const nudges = preparePasteNudges(terminal, guard, payload, nudgeSignal, nudgeDelayMs, priorEmptyFrame, recovery?.revoked);
|
|
57
|
+
await terminal.sendInput(`${bracketedPasteStart}${payload}${bracketedPasteEnd}`);
|
|
96
58
|
try {
|
|
97
59
|
await waitForInput(settleDelayMs, signal);
|
|
98
60
|
// Hold the submitting Enter while a blocking dialog is on screen: firing it
|
|
99
61
|
// would confirm the dialog's highlighted option instead of submitting the
|
|
100
62
|
// staged paste (C-API-37 dialog safety). The paste stays staged behind the
|
|
101
63
|
// dialog and submits once it clears.
|
|
102
|
-
await
|
|
64
|
+
await holdWhileUnsafe(terminal, guard, signal);
|
|
103
65
|
throwIfInputAborted(signal);
|
|
66
|
+
nudges?.beforeEnter();
|
|
67
|
+
guard?.beforeEnter?.();
|
|
68
|
+
beforeEnter?.(payload);
|
|
104
69
|
await terminal.sendInput("\r");
|
|
70
|
+
// Physical submission is observable in both modes; only ordinary sends release here.
|
|
71
|
+
if (!awaitInputConsumption)
|
|
72
|
+
submittedComposer(terminal);
|
|
73
|
+
onSubmitted?.();
|
|
74
|
+
if (awaitInputConsumption) {
|
|
75
|
+
if (!(await nudges?.awaitEmptyInput()))
|
|
76
|
+
throw elwoodError("wait_timeout", "Turn input remained staged after submission attempts.");
|
|
77
|
+
throwIfInputAborted(nudgeSignal);
|
|
78
|
+
}
|
|
79
|
+
// The awaited queue operation and composer share the verified input-consumption boundary.
|
|
80
|
+
if (awaitInputConsumption)
|
|
81
|
+
submittedComposer(terminal);
|
|
82
|
+
else
|
|
83
|
+
nudges?.start();
|
|
105
84
|
}
|
|
106
85
|
catch (error) {
|
|
107
|
-
if (signal?.aborted
|
|
108
|
-
await
|
|
109
|
-
throw error;
|
|
86
|
+
if (awaitInputConsumption || signal?.aborted)
|
|
87
|
+
await requestComposerCleanup(terminal, guard?.blocked);
|
|
88
|
+
throw awaitInputConsumption ? submissionError(error) : error;
|
|
110
89
|
}
|
|
111
|
-
schedule(nudge, nudgeDelayMs);
|
|
112
|
-
}
|
|
113
|
-
function waitWhileBlocked(guard, signal) {
|
|
114
|
-
if (!guard?.blocked?.())
|
|
115
|
-
return Promise.resolve();
|
|
116
|
-
return new Promise((resolve) => {
|
|
117
|
-
const poll = () => {
|
|
118
|
-
if (signal?.aborted) {
|
|
119
|
-
resolve();
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
if (!guard.blocked?.()) {
|
|
123
|
-
resolve();
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
const timer = setTimeout(poll, blockedPollMs);
|
|
127
|
-
timer.unref?.();
|
|
128
|
-
};
|
|
129
|
-
const timer = setTimeout(poll, blockedPollMs);
|
|
130
|
-
timer.unref?.();
|
|
131
|
-
});
|
|
132
90
|
}
|
|
133
|
-
export async function writeQueuedInput(terminal, input, mode, guard, signal, enterDelayMs = commandEnterDelayMs) {
|
|
91
|
+
export async function writeQueuedInput(terminal, input, mode, guard, signal, enterDelayMs = commandEnterDelayMs, onSubmitted, beforeEnter) {
|
|
134
92
|
// Dispatch through a Record keyed by ControlSubmitMode: a new mode must add an
|
|
135
93
|
// entry here or the object fails to type-check, so it can never silently reuse
|
|
136
94
|
// pasted-input behavior. The map has no unreachable default arm, so 100%
|
|
137
|
-
// coverage holds (
|
|
95
|
+
// coverage holds (all entries are exercised).
|
|
138
96
|
const submitters = {
|
|
139
97
|
// Resolve only after the input's submitting Enter has dispatched, so the next
|
|
140
98
|
// queued operation cannot write into the composer first (FIFO).
|
|
141
|
-
pasted_input: () => writePastedPrompt(terminal, input, guard, signal),
|
|
99
|
+
pasted_input: () => writePastedPrompt(terminal, input, false, guard, signal, undefined, undefined, onSubmitted, beforeEnter),
|
|
100
|
+
awaited_input: () => writePastedPrompt(terminal, input, true, guard, signal, undefined, undefined, onSubmitted, beforeEnter),
|
|
142
101
|
// Slash-command popups (Codex) swallow an Enter that arrives in the same PTY
|
|
143
102
|
// chunk as the command text, so Enter follows as a separate keystroke. The
|
|
144
103
|
// returned promise resolves only after that Enter is dispatched, so a queued
|
|
145
104
|
// command's Enter always lands before the next operation writes.
|
|
146
105
|
command: async () => {
|
|
147
|
-
if (guard?.blocked?.())
|
|
148
|
-
await
|
|
106
|
+
if (terminal.settled || guard?.blocked?.())
|
|
107
|
+
await holdWhileUnsafe(terminal, guard, signal);
|
|
149
108
|
throwIfInputAborted(signal);
|
|
109
|
+
stageComposer(terminal);
|
|
150
110
|
await terminal.sendInput(input);
|
|
151
111
|
try {
|
|
152
112
|
await waitForInput(enterDelayMs, signal);
|
|
153
|
-
await
|
|
113
|
+
await holdWhileUnsafe(terminal, guard, signal);
|
|
154
114
|
throwIfInputAborted(signal);
|
|
155
115
|
await terminal.sendInput("\r");
|
|
116
|
+
submittedComposer(terminal);
|
|
156
117
|
}
|
|
157
118
|
catch (error) {
|
|
158
|
-
if (signal?.aborted
|
|
159
|
-
await
|
|
119
|
+
if (signal?.aborted)
|
|
120
|
+
await requestComposerCleanup(terminal, guard?.blocked);
|
|
160
121
|
throw error;
|
|
161
122
|
}
|
|
162
123
|
},
|
|
163
124
|
};
|
|
164
125
|
await submitters[mode]();
|
|
165
126
|
}
|
|
127
|
+
/** Bind the session terminal while preserving physical-submission evidence (C-ATTN-02). */
|
|
128
|
+
export function queuedInputSubmitter(terminal, guard) {
|
|
129
|
+
return (input, mode, signal, onSubmitted, beforeEnter) => writeQueuedInput(terminal, input, mode, guard, signal, commandEnterDelayMs, onSubmitted, beforeEnter);
|
|
130
|
+
}
|
|
166
131
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/input/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/input/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** Native staged-input, empty-frame and retry-authority contracts (PRD §5.3, C-API-56). */
|
|
2
|
+
import type { EmptyComposerObserver } from "./clear-ack.ts";
|
|
3
|
+
/** Native adapters prepare one staged-input predicate for each recovery sequence. */
|
|
4
|
+
export type RecoveryComposer = {
|
|
5
|
+
readonly prepareStaged: (payload: string) => () => boolean;
|
|
6
|
+
readonly emptyFrame: EmptyComposerObserver;
|
|
7
|
+
};
|
|
8
|
+
/** Adapter view of "the paste is still staged in the composer". */
|
|
9
|
+
export type PasteGuard = {
|
|
10
|
+
/** Private completed-render notification; listeners are removed when awaited input settles. */
|
|
11
|
+
readonly subscribeRender?: (listener: () => void) => () => void;
|
|
12
|
+
/** Capture caller ownership before the initial Enter, never recovery retries. */
|
|
13
|
+
readonly beforeEnter?: () => void;
|
|
14
|
+
/** Captured immediately before Enter; true only after later received output is rendered. */
|
|
15
|
+
readonly captureRenderProgress?: () => () => boolean;
|
|
16
|
+
/** Capture before paste/Enter: watches later native submission activity. */
|
|
17
|
+
readonly captureRecovery?: () => {
|
|
18
|
+
readonly revoked: () => boolean;
|
|
19
|
+
};
|
|
20
|
+
/** Reuse a token per completed empty frame; only a later frame gets a new identity. */
|
|
21
|
+
readonly emptyFrame?: EmptyComposerObserver;
|
|
22
|
+
/**
|
|
23
|
+
* True when a human or automation-owned dialog is on screen. A dialog can
|
|
24
|
+
* appear during the paste-settle window; sending the submitting Enter then
|
|
25
|
+
* would confirm the dialog's highlighted option (e.g. approve a tool). The
|
|
26
|
+
* Enter is therefore held while this is true and retried once it clears.
|
|
27
|
+
*/
|
|
28
|
+
readonly blocked?: () => boolean;
|
|
29
|
+
} & (Pick<RecoveryComposer, "prepareStaged"> | {
|
|
30
|
+
readonly snapshot: () => string;
|
|
31
|
+
/** Legacy write-only guards receive the sanitized payload on each observation. */
|
|
32
|
+
readonly staged: (screen: string, payload: string) => boolean;
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=paste-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paste-guard.d.ts","sourceRoot":"","sources":["../../../src/core/input/paste-guard.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,qFAAqF;AACrF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,OAAO,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;CAC5C,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG;IACvB,+FAA+F;IAC/F,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChE,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,4FAA4F;IAC5F,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,MAAM,OAAO,CAAC;IACrD,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC;IACrE,uFAAuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CAClC,GAAG,CACA,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GACvC;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/D,CACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paste-guard.js","sourceRoot":"","sources":["../../../src/core/input/paste-guard.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Shared native observation/retry engine with background or awaited ownership (PRD §5.3). */
|
|
2
|
+
import { type InputTerminal } from "./abort.ts";
|
|
3
|
+
import type { EmptyComposerObserver } from "./clear-ack.ts";
|
|
4
|
+
import type { PasteGuard } from "./index.ts";
|
|
5
|
+
export declare function preparePasteNudges(terminal: InputTerminal, guard: PasteGuard | undefined, payload: string, signal: AbortSignal | undefined, delayMs: number, priorEmptyFrame: ReturnType<EmptyComposerObserver>, revoked?: () => boolean): {
|
|
6
|
+
beforeEnter: () => void;
|
|
7
|
+
start: () => void;
|
|
8
|
+
awaitEmptyInput: () => Promise<boolean>;
|
|
9
|
+
} | undefined;
|
|
10
|
+
//# sourceMappingURL=paste-nudge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paste-nudge.d.ts","sourceRoot":"","sources":["../../../src/core/input/paste-nudge.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,KAAK,aAAa,EAAoC,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAY7C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAClD,OAAO,CAAC,EAAE,MAAM,OAAO;;;2BAqDW,OAAO,CAAC,OAAO,CAAC;cAgBnD"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/** Shared native observation/retry engine with background or awaited ownership (PRD §5.3). */
|
|
2
|
+
import { throwIfInputAborted, writeUnsafe } from "./abort.js";
|
|
3
|
+
import { pasteNudgeAttempts, pasteObservationLimit } from "./constants.js";
|
|
4
|
+
import { RenderWakeup } from "./render-wakeup.js";
|
|
5
|
+
export function preparePasteNudges(terminal, guard, payload, signal, delayMs, priorEmptyFrame, revoked) {
|
|
6
|
+
if (!guard)
|
|
7
|
+
return undefined;
|
|
8
|
+
const staged = "prepareStaged" in guard
|
|
9
|
+
? guard.prepareStaged(payload)
|
|
10
|
+
: () => guard.staged(guard.snapshot(), payload);
|
|
11
|
+
let retryAt = 0;
|
|
12
|
+
let hasFreshFrame;
|
|
13
|
+
const beforeEnter = () => {
|
|
14
|
+
hasFreshFrame = guard.captureRenderProgress?.();
|
|
15
|
+
retryAt = Date.now() + delayMs;
|
|
16
|
+
};
|
|
17
|
+
const hasRenderedAfterEnter = (requireProof) => hasFreshFrame?.() ?? !requireProof;
|
|
18
|
+
let attempts = 0;
|
|
19
|
+
let observations = 0;
|
|
20
|
+
const retry = async (awaitInputConsumption) => {
|
|
21
|
+
if (awaitInputConsumption && Date.now() < retryAt)
|
|
22
|
+
return "paced";
|
|
23
|
+
if (attempts === pasteNudgeAttempts)
|
|
24
|
+
return "exhausted";
|
|
25
|
+
attempts += 1;
|
|
26
|
+
beforeEnter();
|
|
27
|
+
await tryRecoveryEnter(terminal);
|
|
28
|
+
return "pending";
|
|
29
|
+
};
|
|
30
|
+
const observe = async (awaitInputConsumption) => {
|
|
31
|
+
const unsafe = await writeUnsafe(terminal, guard, signal, awaitInputConsumption);
|
|
32
|
+
if (signal?.aborted)
|
|
33
|
+
return "cancelled";
|
|
34
|
+
// Hook evidence stops retries, but cannot itself release an awaited image draft.
|
|
35
|
+
const recoveryRevoked = revoked?.();
|
|
36
|
+
if (!awaitInputConsumption && recoveryRevoked)
|
|
37
|
+
return "revoked";
|
|
38
|
+
if (unsafe)
|
|
39
|
+
return "pending";
|
|
40
|
+
const fresh = hasRenderedAfterEnter(awaitInputConsumption);
|
|
41
|
+
const empty = guard.emptyFrame?.();
|
|
42
|
+
// A geometry-only token change cannot replace post-Enter rendered output.
|
|
43
|
+
if (fresh && empty && empty !== priorEmptyFrame)
|
|
44
|
+
return "accepted";
|
|
45
|
+
if (recoveryRevoked)
|
|
46
|
+
return "revoked";
|
|
47
|
+
if (!(fresh && staged()))
|
|
48
|
+
return guard.emptyFrame ? "pending" : "legacy_done";
|
|
49
|
+
return retry(awaitInputConsumption);
|
|
50
|
+
};
|
|
51
|
+
const schedule = () => {
|
|
52
|
+
const timer = setTimeout(nudge, delayMs);
|
|
53
|
+
timer.unref?.();
|
|
54
|
+
};
|
|
55
|
+
const nudge = async () => {
|
|
56
|
+
const result = await observe(false);
|
|
57
|
+
observations += 1;
|
|
58
|
+
if (result === "pending" &&
|
|
59
|
+
attempts < pasteNudgeAttempts &&
|
|
60
|
+
observations < pasteObservationLimit)
|
|
61
|
+
schedule();
|
|
62
|
+
};
|
|
63
|
+
const awaitEmptyInput = async () => {
|
|
64
|
+
const wakeup = new RenderWakeup(guard.subscribeRender);
|
|
65
|
+
try {
|
|
66
|
+
for (;;) {
|
|
67
|
+
wakeup.consume();
|
|
68
|
+
const result = await observe(true);
|
|
69
|
+
throwIfInputAborted(signal);
|
|
70
|
+
if (result === "accepted")
|
|
71
|
+
return true;
|
|
72
|
+
if (result === "exhausted")
|
|
73
|
+
return false;
|
|
74
|
+
await wakeup.wait(signal, result === "paced" ? retryAt - Date.now() : undefined);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
wakeup.dispose();
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
return { beforeEnter, start: schedule, awaitEmptyInput };
|
|
82
|
+
}
|
|
83
|
+
async function tryRecoveryEnter(terminal) {
|
|
84
|
+
try {
|
|
85
|
+
await terminal.sendInput("\r");
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Recovery is best-effort after the initial Enter has dispatched.
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=paste-nudge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paste-nudge.js","sourceRoot":"","sources":["../../../src/core/input/paste-nudge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Terminal settlement never rejects; render failure is reported separately by the terminal. */
|
|
2
|
+
export declare function observeRender(settled: Promise<void>, signal: AbortSignal | undefined, budgetMs?: number): Promise<boolean>;
|
|
3
|
+
//# sourceMappingURL=render-observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-observation.d.ts","sourceRoot":"","sources":["../../../src/core/input/render-observation.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EACtB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CA+BlB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const observations = new WeakMap();
|
|
2
|
+
/** Terminal settlement never rejects; render failure is reported separately by the terminal. */
|
|
3
|
+
export function observeRender(settled, signal, budgetMs) {
|
|
4
|
+
if (signal?.aborted)
|
|
5
|
+
return Promise.resolve(false);
|
|
6
|
+
let observation = observations.get(settled);
|
|
7
|
+
if (!observation) {
|
|
8
|
+
observation = { done: false, listeners: new Set() };
|
|
9
|
+
observations.set(settled, observation);
|
|
10
|
+
const shared = observation;
|
|
11
|
+
void settled.then(() => {
|
|
12
|
+
shared.done = true;
|
|
13
|
+
for (const listener of shared.listeners)
|
|
14
|
+
listener();
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
if (observation.done)
|
|
18
|
+
return Promise.resolve(true);
|
|
19
|
+
const listeners = observation.listeners;
|
|
20
|
+
return new Promise((resolve) => {
|
|
21
|
+
let budget;
|
|
22
|
+
const finish = (observed) => {
|
|
23
|
+
clearTimeout(budget);
|
|
24
|
+
listeners.delete(ready);
|
|
25
|
+
signal?.removeEventListener("abort", giveUp);
|
|
26
|
+
resolve(observed);
|
|
27
|
+
};
|
|
28
|
+
const ready = () => finish(true);
|
|
29
|
+
const giveUp = () => finish(false);
|
|
30
|
+
if (budgetMs !== undefined) {
|
|
31
|
+
budget = setTimeout(giveUp, budgetMs);
|
|
32
|
+
budget.unref?.();
|
|
33
|
+
}
|
|
34
|
+
listeners.add(ready);
|
|
35
|
+
signal?.addEventListener("abort", giveUp, { once: true });
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=render-observation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-observation.js","sourceRoot":"","sources":["../../../src/core/input/render-observation.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,IAAI,OAAO,EAA8B,CAAC;AAE/D,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAC3B,OAAsB,EACtB,MAA+B,EAC/B,QAAiB;IAEjB,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QACpD,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,WAAW,CAAC;QAC3B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS;gBAAE,QAAQ,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,WAAW,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,MAAiD,CAAC;QACtD,MAAM,MAAM,GAAG,CAAC,QAAiB,EAAE,EAAE;YACnC,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7C,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class RenderWakeup {
|
|
2
|
+
private dirty;
|
|
3
|
+
private wake;
|
|
4
|
+
private readonly unsubscribe;
|
|
5
|
+
constructor(subscribe: ((listener: () => void) => () => void) | undefined);
|
|
6
|
+
consume(): void;
|
|
7
|
+
wait(signal: AbortSignal | undefined, retryInMs?: number): Promise<void>;
|
|
8
|
+
dispose(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=render-wakeup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-wakeup.d.ts","sourceRoot":"","sources":["../../../src/core/input/render-wakeup.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAE3C,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,SAAS;IAOzE,OAAO,IAAI,IAAI;IAIf,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxE,OAAO,IAAI,IAAI;CAGhB"}
|