@with-logic/elwood 0.1.3 → 0.2.1
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 +389 -2
- package/CONTRIBUTING.md +29 -18
- package/README.md +34 -7
- 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 +2 -1
- 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/models/settings.d.ts +2 -0
- package/dist/cli/models/settings.d.ts.map +1 -1
- package/dist/cli/request/index.d.ts.map +1 -1
- package/dist/cli/request/index.js +1 -0
- package/dist/cli/request/index.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 +1 -0
- 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 +70 -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 +151 -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 +4 -0
- package/docs/cli.md +15 -9
- package/docs/codex/cli.md +44 -0
- package/docs/embedding.md +7 -0
- package/docs/login-recovery.md +24 -0
- package/docs/native-question-proofs.md +57 -0
- package/docs/performance/terminal-engines.md +88 -0
- package/docs/performance.md +193 -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 +13 -7
- package/prd/13-latitude.md +89 -0
- package/prd/14-conformance.md +84 -30
- package/prd/16-maintainer-review.md +75 -0
- package/prd/README.md +1 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Private native Claude questionnaire grammar (PRD §4). */
|
|
2
|
+
import type { QuestionFrame } from "../../core/questions/adapter.ts";
|
|
3
|
+
import type { QuestionDefinition } from "../../core/questions/types.ts";
|
|
4
|
+
export type ClaudeQuestionScreen = {
|
|
5
|
+
readonly kind: "question";
|
|
6
|
+
readonly questionIndex: number;
|
|
7
|
+
/** Zero-based selection-list index: options, Other, then optional Submit. */
|
|
8
|
+
readonly cursor: number;
|
|
9
|
+
readonly checked: readonly boolean[];
|
|
10
|
+
readonly other: string;
|
|
11
|
+
} | {
|
|
12
|
+
readonly kind: "review";
|
|
13
|
+
/** Zero-based review selection: Submit answers (0) or Cancel (1). */
|
|
14
|
+
readonly cursor: number;
|
|
15
|
+
readonly summary: string;
|
|
16
|
+
};
|
|
17
|
+
/** Native chrome may be partial; a candidate alone grants no complete parse or answer authority. */
|
|
18
|
+
export declare function claudeQuestionCandidate(text: string): boolean;
|
|
19
|
+
/** Return a matching question/review; partial, foreign, or mismatched frames return undefined. */
|
|
20
|
+
export declare function parseClaudeQuestionScreen(frame: QuestionFrame, questions: readonly QuestionDefinition[]): ClaudeQuestionScreen | undefined;
|
|
21
|
+
/** Match live tabs and extract the prompt; callers validate the prompt and complete choice rows. */
|
|
22
|
+
export declare function readClaudeQuestionPanel(frame: QuestionFrame, questions: readonly QuestionDefinition[]): {
|
|
23
|
+
start: number;
|
|
24
|
+
body: string[];
|
|
25
|
+
first: number;
|
|
26
|
+
prompt: string;
|
|
27
|
+
} | undefined;
|
|
28
|
+
export declare function matchesClaudeQuestionTabs(frame: QuestionFrame, questions: readonly QuestionDefinition[]): boolean;
|
|
29
|
+
//# sourceMappingURL=screen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../../src/claude/questions/screen.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAQxE,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAQN,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgB7D;AACD,kGAAkG;AAClG,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,SAAS,kBAAkB,EAAE,GACvC,oBAAoB,GAAG,SAAS,CAyClC;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,SAAS,kBAAkB,EAAE;;;;;cAczC;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,SAAS,kBAAkB,EAAE,GACvC,OAAO,CAMT"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { normalizeClaudeQuestionText, OTHER_CONTINUATION_INDENT_COLUMNS, parseClaudeQuestionRows, claudeQuestionRow as row, } from "./rows.js";
|
|
2
|
+
const CLAUDE_REVIEW_TITLE = "Review your answers";
|
|
3
|
+
const CLAUDE_REVIEW_READY_LABEL = "Ready to submit your answers?";
|
|
4
|
+
const fence = /^[─━]{3,}$/;
|
|
5
|
+
const header = /^(?:←\s+)?\s*[☐☒] /;
|
|
6
|
+
const questionFooter = /^Enter to select · .+ · Esc to cancel$/;
|
|
7
|
+
const reviewCancelRow = /^(?:❯| )\s+2\. Cancel$/;
|
|
8
|
+
/** Native chrome may be partial; a candidate alone grants no complete parse or answer authority. */
|
|
9
|
+
export function claudeQuestionCandidate(text) {
|
|
10
|
+
if (!(text.includes("☐") || text.includes("☒")))
|
|
11
|
+
return false;
|
|
12
|
+
const lines = text.split("\n");
|
|
13
|
+
const start = questionPanelStart(lines);
|
|
14
|
+
if (start < 0)
|
|
15
|
+
return false;
|
|
16
|
+
// Only a composer after completed native actions can retire this panel. Question
|
|
17
|
+
// copy may itself contain carets, fences, and footer text; partial panels stay held.
|
|
18
|
+
const footer = lines.findLastIndex((line) => questionFooter.test(line));
|
|
19
|
+
const closingFence = lines.findLastIndex((line, index) => index < footer && fence.test(line));
|
|
20
|
+
const lastOption = lines.findLastIndex((line, index) => index < closingFence && row.test(line));
|
|
21
|
+
const questionEnd = lastOption > start ? footer : -1;
|
|
22
|
+
const reviewEnd = lines.findLastIndex((line) => reviewCancelRow.test(line));
|
|
23
|
+
const end = Math.max(questionEnd, reviewEnd);
|
|
24
|
+
return (end <= start || !lines.slice(end + 1).some((line) => /^❯(?!\s+\d+\.|\s+Submit\s*$)/.test(line)));
|
|
25
|
+
}
|
|
26
|
+
/** Return a matching question/review; partial, foreign, or mismatched frames return undefined. */
|
|
27
|
+
export function parseClaudeQuestionScreen(frame, questions) {
|
|
28
|
+
const panel = readClaudeQuestionPanel(frame, questions);
|
|
29
|
+
if (!panel)
|
|
30
|
+
return undefined;
|
|
31
|
+
const { start, body, first, prompt } = panel;
|
|
32
|
+
const reviewReadyIndex = body.lastIndexOf(CLAUDE_REVIEW_READY_LABEL);
|
|
33
|
+
if (prompt.startsWith(`${CLAUDE_REVIEW_TITLE} `) && reviewReadyIndex >= 0) {
|
|
34
|
+
if (!questionCursor(frame))
|
|
35
|
+
return undefined;
|
|
36
|
+
const questionRows = body.slice(first).filter((line) => line.trim());
|
|
37
|
+
if (questionRows.length !== 2 ||
|
|
38
|
+
!/^(?:❯| )\s+1\. Submit answers$/.test(questionRows[0]) ||
|
|
39
|
+
!reviewCancelRow.test(questionRows[1]))
|
|
40
|
+
return undefined;
|
|
41
|
+
const summary = normalizeClaudeQuestionText(body.slice(0, reviewReadyIndex).join(" "))
|
|
42
|
+
.slice(CLAUDE_REVIEW_TITLE.length)
|
|
43
|
+
.trim();
|
|
44
|
+
return { kind: "review", cursor: questionRows[0].startsWith("❯") ? 0 : 1, summary };
|
|
45
|
+
}
|
|
46
|
+
const questionIndex = questions.findIndex((question) => normalizeClaudeQuestionText(question.prompt) === prompt);
|
|
47
|
+
const question = questions[questionIndex];
|
|
48
|
+
if (!question)
|
|
49
|
+
return undefined;
|
|
50
|
+
const footer = body.findLastIndex((line) => questionFooter.test(line));
|
|
51
|
+
if (footer < 0 || body.slice(footer + 1).some((line) => line.trim()))
|
|
52
|
+
return undefined;
|
|
53
|
+
const end = body.findIndex((line, index) => index > first && fence.test(line));
|
|
54
|
+
if (end < 0)
|
|
55
|
+
return undefined;
|
|
56
|
+
const questionRows = body.slice(first, end);
|
|
57
|
+
const parsed = parseClaudeQuestionRows(question, questionRows);
|
|
58
|
+
if (!parsed)
|
|
59
|
+
return undefined;
|
|
60
|
+
const otherTop = start + 1 + first + parsed.otherStart;
|
|
61
|
+
const otherBottom = start + 1 + first + parsed.otherEnd;
|
|
62
|
+
const otherCursor = parsed.cursor === question.options.length &&
|
|
63
|
+
frame.cursorX >= OTHER_CONTINUATION_INDENT_COLUMNS &&
|
|
64
|
+
frame.cursorRow >= otherTop &&
|
|
65
|
+
frame.cursorRow <= otherBottom;
|
|
66
|
+
return questionCursor(frame) || otherCursor
|
|
67
|
+
? { kind: "question", questionIndex, ...parsed }
|
|
68
|
+
: undefined;
|
|
69
|
+
}
|
|
70
|
+
/** Match live tabs and extract the prompt; callers validate the prompt and complete choice rows. */
|
|
71
|
+
export function readClaudeQuestionPanel(frame, questions) {
|
|
72
|
+
if (!(claudeQuestionCandidate(frame.text) && matchesClaudeQuestionTabs(frame, questions)))
|
|
73
|
+
return undefined;
|
|
74
|
+
const start = questionPanelStart(frame.lines);
|
|
75
|
+
const body = frame.lines.slice(start + 1);
|
|
76
|
+
const first = body.findIndex((line) => row.test(line));
|
|
77
|
+
if (first < 0)
|
|
78
|
+
return undefined;
|
|
79
|
+
return {
|
|
80
|
+
start,
|
|
81
|
+
body,
|
|
82
|
+
first,
|
|
83
|
+
prompt: normalizeClaudeQuestionText(body.slice(0, first).join("\n")),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export function matchesClaudeQuestionTabs(frame, questions) {
|
|
87
|
+
if (questions.length === 0 || questions.some((question) => !question.header))
|
|
88
|
+
return false;
|
|
89
|
+
const title = frame.lines[questionPanelStart(frame.lines)];
|
|
90
|
+
const tabs = questions.map((question) => `☐ ${question.header}`).join(" ");
|
|
91
|
+
const expected = questions.length === 1 ? ` ${tabs}` : `← ${tabs} ✔ Submit →`;
|
|
92
|
+
return title?.replaceAll("☒", "☐") === expected;
|
|
93
|
+
}
|
|
94
|
+
/** Header-like model copy without a native opening fence cannot replace the live panel. */
|
|
95
|
+
function questionPanelStart(lines) {
|
|
96
|
+
return lines.findLastIndex((line, index) => header.test(line) && index > 0 && fence.test(lines[index - 1]));
|
|
97
|
+
}
|
|
98
|
+
/** Captured native selection dialogs can park their cursor at the bottom-left viewport cell. */
|
|
99
|
+
function questionCursor(frame) {
|
|
100
|
+
return (/^❯/.test(frame.lines[frame.cursorRow] ?? "") ||
|
|
101
|
+
(frame.cursorX === 0 && frame.cursorRow === frame.rows - 1));
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../../src/claude/questions/screen.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,uBAAuB,EACvB,iBAAiB,IAAI,GAAG,GACzB,MAAM,WAAW,CAAC;AAiBnB,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAClD,MAAM,yBAAyB,GAAG,+BAA+B,CAAC;AAClE,MAAM,KAAK,GAAG,YAAY,CAAC;AAC3B,MAAM,MAAM,GAAG,oBAAoB,CAAC;AACpC,MAAM,cAAc,GAAG,wCAAwC,CAAC;AAChE,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEjD,oGAAoG;AACpG,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5B,iFAAiF;IACjF,qFAAqF;IACrF,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,OAAO,CACL,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAChG,CAAC;AACJ,CAAC;AACD,kGAAkG;AAClG,MAAM,UAAU,yBAAyB,CACvC,KAAoB,EACpB,SAAwC;IAExC,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,mBAAmB,GAAG,CAAC,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,IACE,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC;YACxD,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC;YAEvC,OAAO,SAAS,CAAC;QACnB,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACnF,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC;aACjC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;IACvF,CAAC;IACD,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CACvC,CAAC,QAAQ,EAAE,EAAE,CAAC,2BAA2B,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,CACtE,CAAC;IACF,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IACvF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;IACvD,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IACxD,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM;QACzC,KAAK,CAAC,OAAO,IAAI,iCAAiC;QAClD,KAAK,CAAC,SAAS,IAAI,QAAQ;QAC3B,KAAK,CAAC,SAAS,IAAI,WAAW,CAAC;IACjC,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,WAAW;QACzC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE;QAChD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,SAAwC;IAExC,IAAI,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvF,OAAO,SAAS,CAAC;IACnB,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM,EAAE,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAoB,EACpB,SAAwC;IAExC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,eAAe,CAAC;IACjF,OAAO,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,QAAQ,CAAC;AAClD,CAAC;AAED,2FAA2F;AAC3F,SAAS,kBAAkB,CAAC,KAAwB;IAClD,OAAO,KAAK,CAAC,aAAa,CACxB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,CACjF,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,SAAS,cAAc,CAAC,KAAoB;IAC1C,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC7C,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAC5D,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Claude rendered-screen fact table for turn-state and attention detection.
|
|
3
3
|
* Implements PRD §5.3, C-TURN-01 through C-TURN-05, and C-ATTN-01 through
|
|
4
|
-
* C-ATTN-
|
|
4
|
+
* C-ATTN-05.
|
|
5
5
|
*/
|
|
6
6
|
import type { ScreenFactTable } from "../core/screen-facts.ts";
|
|
7
|
+
import { type TrustClearance } from "../core/trust/clearance.ts";
|
|
8
|
+
import type { ElwoodTerminal } from "../terminal/headless.ts";
|
|
9
|
+
/** Zero-based input position after Claude's two-cell "❯ " composer prefix. */
|
|
10
|
+
export declare const claudeComposerInputColumn = 2;
|
|
11
|
+
/** Native empty-composer row shape; callers own activity and dialog checks. */
|
|
12
|
+
export declare const claudeComposerRow: RegExp;
|
|
13
|
+
/**
|
|
14
|
+
* Claude's trust-clearance grammar, owned HERE beside the rest of Claude's verified
|
|
15
|
+
* screen facts (C-TRUST-01). Clearance needs Claude's own chrome — the version banner or
|
|
16
|
+
* the permission-mode or manual-mode footer — plus the composer fenced between rule
|
|
17
|
+
* lines, so a frame that merely contains a `❯` is not mistaken for an answered gate.
|
|
18
|
+
*/
|
|
19
|
+
export declare const claudeTrustClearance: TrustClearance;
|
|
20
|
+
/** A per-batch composer cannot release trust until every received byte has rendered. */
|
|
21
|
+
export declare function liveClaudeClearance(readTerminal: () => ElwoodTerminal, textClearance?: TrustClearance): TrustClearance;
|
|
7
22
|
/**
|
|
8
23
|
* Verified through claude 2.1.258 (see `verifiedAgainst`). The footer renders
|
|
9
24
|
* "... · esc to interrupt · ..." only while a turn runs and is elided below
|
|
@@ -16,11 +31,13 @@ import type { ScreenFactTable } from "../core/screen-facts.ts";
|
|
|
16
31
|
* matching the question plus the numbered-Yes line together avoids matching
|
|
17
32
|
* model prose that merely quotes the phrase. The OSC window title carries a
|
|
18
33
|
* braille-spinner glyph (U+2800–U+28FF) while a turn runs and "✳ " when idle
|
|
34
|
+
* on 2.1.258; 2.1.281 also emits the captured "◐ " working prefix
|
|
19
35
|
* — a width-independent working signal that survives Claude's footer elision
|
|
20
36
|
* on narrow screens. Model/effort switch dialogs use either `❯` or `›` and
|
|
21
37
|
* can be numbered or unnumbered; their complete title/action shape blocks the
|
|
22
38
|
* dialog caret from being mistaken for the idle composer. Verified on claude
|
|
23
|
-
* 2.1.258.
|
|
39
|
+
* 2.1.258. The questionnaire blocking pattern and manual-mode footer were
|
|
40
|
+
* captured on 2.1.305; other rules retain the earlier version evidence.
|
|
24
41
|
*/
|
|
25
42
|
export declare const claudeScreenFactTable: ScreenFactTable;
|
|
26
43
|
/** Appends the shared per-agent trust blocking rules (C-ATTN-03; PRD §5.1). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-table.d.ts","sourceRoot":"","sources":["../../src/claude/screen-table.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"screen-table.d.ts","sourceRoot":"","sources":["../../src/claude/screen-table.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM9D,8EAA8E;AAC9E,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,QAA+C,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,cASlC,CAAC;AAEF,wFAAwF;AACxF,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,cAAc,EAClC,aAAa,GAAE,cAAqC,GACnD,cAAc,CAiBhB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,qBAAqB,EAAE,eA6BnC,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,OAAO,GAAG,eAAe,CAEvF"}
|
|
@@ -1,10 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Claude rendered-screen fact table for turn-state and attention detection.
|
|
3
3
|
* Implements PRD §5.3, C-TURN-01 through C-TURN-05, and C-ATTN-01 through
|
|
4
|
-
* C-ATTN-
|
|
4
|
+
* C-ATTN-05.
|
|
5
5
|
*/
|
|
6
6
|
import { withTrustBlockingRules } from "../core/trust/blocking.js";
|
|
7
|
+
import { nativeComposerClearance } from "../core/trust/clearance.js";
|
|
8
|
+
import { cursorViewportRow } from "../terminal/coordinates.js";
|
|
9
|
+
import { currentRenderedFrame, settledCursorVisible } from "../terminal/cursor.js";
|
|
10
|
+
import { claudeManualModeFooter } from "./composer/footer.js";
|
|
7
11
|
import { isClaudeSwitchConfirmation } from "./model-switch-confirmation.js";
|
|
12
|
+
import { claudeQuestionCandidate } from "./questions/screen.js";
|
|
13
|
+
const claudeWorkingTitle = /^[⠀-⣿◐]\s/;
|
|
14
|
+
/** Zero-based input position after Claude's two-cell "❯ " composer prefix. */
|
|
15
|
+
export const claudeComposerInputColumn = 2;
|
|
16
|
+
/** Native empty-composer row shape; callers own activity and dialog checks. */
|
|
17
|
+
export const claudeComposerRow = /^\s*❯(?:[ \t ]*|[ \t ]+Try "[^"\n]+")\s*$/m;
|
|
18
|
+
/**
|
|
19
|
+
* Claude's trust-clearance grammar, owned HERE beside the rest of Claude's verified
|
|
20
|
+
* screen facts (C-TRUST-01). Clearance needs Claude's own chrome — the version banner or
|
|
21
|
+
* the permission-mode or manual-mode footer — plus the composer fenced between rule
|
|
22
|
+
* lines, so a frame that merely contains a `❯` is not mistaken for an answered gate.
|
|
23
|
+
*/
|
|
24
|
+
export const claudeTrustClearance = nativeComposerClearance(claudeComposerRow, (frame) => (/Claude Code v[\d.]+/.test(frame) ||
|
|
25
|
+
claudeManualModeFooter.test(frame) ||
|
|
26
|
+
/^\s*-- INSERT -- ⏵⏵ (?:don['’]t ask|auto mode) on \(shift\+tab to cycle\) · ← for agents\s*$/m.test(frame)) &&
|
|
27
|
+
/(?:^|\n)[─━]{3,}\s*\n❯(?:[ \t ]*|[ \t ]+Try "[^"\n]+")\s*\n[─━]{3,}/.test(frame));
|
|
28
|
+
/** A per-batch composer cannot release trust until every received byte has rendered. */
|
|
29
|
+
export function liveClaudeClearance(readTerminal, textClearance = claudeTrustClearance) {
|
|
30
|
+
return (text) => {
|
|
31
|
+
const terminal = readTerminal();
|
|
32
|
+
const frame = currentRenderedFrame(terminal);
|
|
33
|
+
if (frame?.text !== text ||
|
|
34
|
+
!settledCursorVisible(terminal.xterm) ||
|
|
35
|
+
frame.cursorX !== claudeComposerInputColumn ||
|
|
36
|
+
claudeWorkingTitle.test(terminal.title))
|
|
37
|
+
return false;
|
|
38
|
+
const buffer = terminal.xterm.buffer.active;
|
|
39
|
+
// cursorY is relative to baseY; snapshot row zero starts at viewportY.
|
|
40
|
+
const viewportCursorRow = cursorViewportRow(frame.cursorY, buffer);
|
|
41
|
+
const composer = frame.lines[viewportCursorRow] ?? "";
|
|
42
|
+
return composer.startsWith("❯") && claudeComposerRow.test(composer) && textClearance(text);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
8
45
|
/**
|
|
9
46
|
* Verified through claude 2.1.258 (see `verifiedAgainst`). The footer renders
|
|
10
47
|
* "... · esc to interrupt · ..." only while a turn runs and is elided below
|
|
@@ -17,23 +54,30 @@ import { isClaudeSwitchConfirmation } from "./model-switch-confirmation.js";
|
|
|
17
54
|
* matching the question plus the numbered-Yes line together avoids matching
|
|
18
55
|
* model prose that merely quotes the phrase. The OSC window title carries a
|
|
19
56
|
* braille-spinner glyph (U+2800–U+28FF) while a turn runs and "✳ " when idle
|
|
57
|
+
* on 2.1.258; 2.1.281 also emits the captured "◐ " working prefix
|
|
20
58
|
* — a width-independent working signal that survives Claude's footer elision
|
|
21
59
|
* on narrow screens. Model/effort switch dialogs use either `❯` or `›` and
|
|
22
60
|
* can be numbered or unnumbered; their complete title/action shape blocks the
|
|
23
61
|
* dialog caret from being mistaken for the idle composer. Verified on claude
|
|
24
|
-
* 2.1.258.
|
|
62
|
+
* 2.1.258. The questionnaire blocking pattern and manual-mode footer were
|
|
63
|
+
* captured on 2.1.305; other rules retain the earlier version evidence.
|
|
25
64
|
*/
|
|
26
65
|
export const claudeScreenFactTable = {
|
|
27
66
|
agent: "claude",
|
|
28
|
-
verifiedAgainst: "claude 2.1.258",
|
|
67
|
+
verifiedAgainst: "claude 2.1.258; question dialog and manual footer: 2.1.305",
|
|
29
68
|
rules: [
|
|
69
|
+
{
|
|
70
|
+
id: "claude-question-dialog",
|
|
71
|
+
fact: "blocking_prompt_visible",
|
|
72
|
+
match: claudeQuestionCandidate,
|
|
73
|
+
},
|
|
30
74
|
{ id: "claude-composer-marker", fact: "composer_visible", all: [/^\s*❯/m] },
|
|
31
75
|
{ id: "claude-working-footer", fact: "working_visible", all: [/esc to interrupt/i] },
|
|
32
76
|
{
|
|
33
77
|
id: "claude-working-title",
|
|
34
78
|
fact: "working_visible",
|
|
35
79
|
region: "title",
|
|
36
|
-
all: [
|
|
80
|
+
all: [claudeWorkingTitle],
|
|
37
81
|
},
|
|
38
82
|
{ id: "claude-interrupt-banner", fact: "interrupt_complete_visible", all: [/⎿\s*Interrupted/] },
|
|
39
83
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-table.js","sourceRoot":"","sources":["../../src/claude/screen-table.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"screen-table.js","sourceRoot":"","sources":["../../src/claude/screen-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/claude/serialize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/claude/serialize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAEjB,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,gBAAgB,GACvB,mBAAmB,CAerB"}
|
package/dist/claude/serialize.js
CHANGED
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
* Converts typed hook handler results to Claude hook process output.
|
|
3
3
|
* Implements PRD §6.4.
|
|
4
4
|
*/
|
|
5
|
+
import { inertRecord } from "../core/inert-record.js";
|
|
5
6
|
export function serializeHookResult(eventName, result) {
|
|
6
7
|
if (result === undefined)
|
|
7
|
-
return { exitCode: 0, stdout: "", stderr: "" };
|
|
8
|
+
return inertRecord({ exitCode: 0, stdout: "", stderr: "" });
|
|
8
9
|
if ("behavior" in result)
|
|
9
10
|
return jsonOutput(permissionRequest(eventName, result));
|
|
10
11
|
if ("retry" in result)
|
|
11
|
-
return jsonOutput({
|
|
12
|
+
return jsonOutput({
|
|
13
|
+
hookSpecificOutput: { __proto__: null, hookEventName: eventName, retry: true },
|
|
14
|
+
});
|
|
12
15
|
if ("worktreePath" in result)
|
|
13
16
|
return worktree(result.worktreePath);
|
|
14
17
|
if ("decision" in result)
|
|
@@ -17,13 +20,25 @@ export function serializeHookResult(eventName, result) {
|
|
|
17
20
|
return jsonOutput(result);
|
|
18
21
|
// PreToolUse decisions, elicitation actions, and context/output fields all
|
|
19
22
|
// travel as hook-specific output keyed by the event name.
|
|
20
|
-
return jsonOutput({
|
|
23
|
+
return jsonOutput({
|
|
24
|
+
hookSpecificOutput: { __proto__: null, hookEventName: eventName, ...result },
|
|
25
|
+
});
|
|
21
26
|
}
|
|
22
27
|
function jsonOutput(value) {
|
|
23
|
-
return {
|
|
28
|
+
return inertRecord({
|
|
29
|
+
exitCode: 0,
|
|
30
|
+
stdout: `${JSON.stringify(Object.assign(Object.create(null), value))}\n`,
|
|
31
|
+
stderr: "",
|
|
32
|
+
});
|
|
24
33
|
}
|
|
25
34
|
function permissionRequest(eventName, result) {
|
|
26
|
-
return {
|
|
35
|
+
return {
|
|
36
|
+
hookSpecificOutput: {
|
|
37
|
+
__proto__: null,
|
|
38
|
+
hookEventName: eventName,
|
|
39
|
+
decision: { __proto__: null, ...result },
|
|
40
|
+
},
|
|
41
|
+
};
|
|
27
42
|
}
|
|
28
43
|
function topLevel(eventName, result) {
|
|
29
44
|
return {
|
|
@@ -33,6 +48,7 @@ function topLevel(eventName, result) {
|
|
|
33
48
|
? {}
|
|
34
49
|
: {
|
|
35
50
|
hookSpecificOutput: {
|
|
51
|
+
__proto__: null,
|
|
36
52
|
hookEventName: eventName,
|
|
37
53
|
additionalContext: result.additionalContext,
|
|
38
54
|
},
|
|
@@ -40,6 +56,6 @@ function topLevel(eventName, result) {
|
|
|
40
56
|
};
|
|
41
57
|
}
|
|
42
58
|
function worktree(path) {
|
|
43
|
-
return { exitCode: 0, stdout: `${path}\n`, stderr: "" };
|
|
59
|
+
return inertRecord({ exitCode: 0, stdout: `${path}\n`, stderr: "" });
|
|
44
60
|
}
|
|
45
61
|
//# sourceMappingURL=serialize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/claude/serialize.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/claude/serialize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAOtD,MAAM,UAAU,mBAAmB,CACjC,SAA8B,EAC9B,MAAwB;IAExB,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACtF,IAAI,UAAU,IAAI,MAAM;QAAE,OAAO,UAAU,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,IAAI,MAAM;QACnB,OAAO,UAAU,CAAC;YAChB,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;SAC/E,CAAC,CAAC;IACL,IAAI,cAAc,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACnE,IAAI,UAAU,IAAI,MAAM;QAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,IAAI,UAAU,IAAI,MAAM;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IACpD,2EAA2E;IAC3E,0DAA0D;IAC1D,OAAO,UAAU,CAAC;QAChB,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;KAC7E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,WAAW,CAAC;QACjB,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI;QACxE,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,MAA+B;IAC3E,OAAO;QACL,kBAAkB,EAAE;YAClB,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,SAAS;YACxB,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE;SACzC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,SAAiB,EACjB,MAIC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,kBAAkB,EAAE;oBAClB,SAAS,EAAE,IAAI;oBACf,aAAa,EAAE,SAAS;oBACxB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;iBAC5C;aACF,CAAC;KACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
import type { StartClaudeOptions } from "../../core/types.ts";
|
|
2
|
-
import type { SessionRuntime } from "../../state/runtime-paths.ts";
|
|
3
|
-
import { type SessionRecord } from "../../state/store.ts";
|
|
4
|
-
import { type ClaudePreflightWarning } from "../preflight.ts";
|
|
5
1
|
import { ClaudeSessionImpl } from "./instance.ts";
|
|
6
|
-
|
|
7
|
-
readonly record: SessionRecord;
|
|
8
|
-
readonly stateDir: string;
|
|
9
|
-
readonly runtime: SessionRuntime;
|
|
10
|
-
readonly options: StartClaudeOptions;
|
|
11
|
-
readonly resumed: boolean;
|
|
12
|
-
readonly preflightWarning: ClaudePreflightWarning | undefined;
|
|
13
|
-
};
|
|
2
|
+
import { type BuildClaudeSessionInput } from "./runtime.ts";
|
|
14
3
|
export declare function buildClaudeSession(input: BuildClaudeSessionInput): Promise<ClaudeSessionImpl>;
|
|
15
4
|
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/claude/session/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/claude/session/build.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,KAAK,uBAAuB,EAM7B,MAAM,cAAc,CAAC;AAGtB,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CA8J5B"}
|
|
@@ -1,58 +1,50 @@
|
|
|
1
1
|
/** Builds a live ClaudeSessionApi from a record + runtime. Implements PRD §5, §6, §8, §9. */
|
|
2
2
|
import { defaultTerminalSize } from "../../core/defaults.js";
|
|
3
3
|
import { causeDetails, elwoodError } from "../../core/errors.js";
|
|
4
|
-
import { observeRenderedFrame } from "../../core/rendered-observers.js";
|
|
5
|
-
import { createStartupWarningGate, deliverFrameWarnings } from "../../core/startup/frame.js";
|
|
6
4
|
import { emitSettledStartupOutcomes } from "../../core/startup/write.js";
|
|
7
5
|
import { TerminalReplayBuffer } from "../../core/terminal-replay.js";
|
|
8
6
|
import { TypedEmitter } from "../../events/emitter.js";
|
|
9
7
|
import { loadRuntimeLoopDefinitions as loadLoops } from "../../runtime/loop-restore.js";
|
|
8
|
+
import { bindStartupLifetime, createSessionFrameObserver } from "../../runtime/session/frames.js";
|
|
9
|
+
import { withAutomatedInput } from "../../runtime/session/picker-input.js";
|
|
10
10
|
import { createReadinessGate } from "../../runtime/session/readiness.js";
|
|
11
|
+
import { bindTurnSubmission } from "../../runtime/session/turn-submission.js";
|
|
11
12
|
import { assertStartupThenRelease, createStartupBuffer } from "../../runtime/startup/buffer.js";
|
|
12
13
|
import { cleanupStartupResources, guardStartupRegion } from "../../runtime/startup/cleanup.js";
|
|
13
14
|
import { secureMkdir } from "../../state/files.js";
|
|
14
15
|
import { writeSessionRecord } from "../../state/store.js";
|
|
16
|
+
import { currentRenderedFrame, renderedSnapshot } from "../../terminal/cursor.js";
|
|
15
17
|
import { attachPtyTerminal } from "../../terminal/headless.js";
|
|
18
|
+
import { LoginExpiringWatcher } from "../login/renewal.js";
|
|
16
19
|
import { preflightEvent } from "../preflight.js";
|
|
17
|
-
import {
|
|
20
|
+
import { liveClaudeClearance } from "../screen-table.js";
|
|
21
|
+
import { ClaudeStartupPromptResponder, guardedClaudeAutomationWrite } from "../startup-prompts.js";
|
|
18
22
|
import { CLAUDE_STARTUP_MIN_COLS } from "../startup-size.js";
|
|
19
23
|
import { currentClaudeHookBridgeFactory } from "./bridge.js";
|
|
20
24
|
import { buildClaudeHookErrorHandler, buildClaudeHookHandler } from "./hook-handler.js";
|
|
21
25
|
import { ClaudeSessionImpl } from "./instance.js";
|
|
22
26
|
import { buildClaudeObservers, handleClaudeExit, registerInitialHooks, spawnClaudePty, writeRuntimeFiles, } from "./runtime.js";
|
|
27
|
+
import { createClaudeStartupWarningGate } from "./startup-warnings.js";
|
|
23
28
|
import { createTranscriptWatcher, observeTranscript } from "./transcript.js";
|
|
24
29
|
export async function buildClaudeSession(input) {
|
|
25
30
|
const { record, stateDir, runtime, options, resumed, preflightWarning } = input;
|
|
26
31
|
secureMkdir(runtime.sessionDir);
|
|
27
|
-
writeSessionRecord(record, runtime.sessionDir);
|
|
32
|
+
writeSessionRecord(record, runtime.sessionDir, runtime.stateOwnership.publishFile);
|
|
28
33
|
const loopDefinitions = resumed ? loadLoops(stateDir, record.elwoodSessionId) : [];
|
|
29
34
|
writeRuntimeFiles(runtime, options);
|
|
30
35
|
const emitter = new TypedEmitter();
|
|
31
36
|
registerInitialHooks(emitter, options.hooks);
|
|
32
37
|
let session;
|
|
33
|
-
|
|
34
|
-
// drop/read-error diagnostics — route through ONE gate that buffers anything emitted
|
|
35
|
-
// before startClaude resolves and flushes it on a deferred macrotask after return,
|
|
36
|
-
// so every source stays observable without late-subscriber replay (C-API-14).
|
|
37
|
-
const warnGate = createStartupWarningGate({
|
|
38
|
-
emitWarnings: (w) => deliverFrameWarnings(session, w),
|
|
39
|
-
});
|
|
38
|
+
const warnGate = createClaudeStartupWarningGate(() => session, () => promptResponder.closing, (deliver) => wired.duringDelivery(deliver));
|
|
40
39
|
const wired = createTranscriptWatcher(record.elwoodSessionId, emitter, () => warnGate);
|
|
41
40
|
const { watcher: transcriptWatcher, flushPendingWarnings, finishSafely } = wired;
|
|
42
|
-
// Initial readiness is hook-backed (`InstructionsLoaded` fires `mark`); the first
|
|
43
|
-
// frame arms a starvation deadline so a missing/failed hook cannot starve the queue,
|
|
44
|
-
// and on resume the first composer frame also marks ready (PRD §5.3, C-API-28).
|
|
45
41
|
const autotrust = options.autotrust ?? false;
|
|
46
|
-
// Observers are built BEFORE the readiness gate so its callback never closes
|
|
47
|
-
// over a binding declared later in this function.
|
|
48
42
|
const observers = buildClaudeObservers(record.elwoodSessionId, autotrust, emitter);
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
turnWatcher.arm(resumed); // resume arms in settling mode (no phantom replay turn)
|
|
52
|
-
// completeInitialReady advances readiness in a finally, isolating restore/warning
|
|
53
|
-
// failures internally, so its promise never rejects (not awaited).
|
|
43
|
+
const readiness = createReadinessGate(() => {
|
|
44
|
+
observers.turn.arm(resumed); // resume arms in settling mode (no phantom replay turn)
|
|
54
45
|
void session?.completeInitialReady();
|
|
55
46
|
}, resumed);
|
|
47
|
+
const { ready } = readiness;
|
|
56
48
|
const bridge = currentClaudeHookBridgeFactory()(runtime.socketPath, runtime.bridgeToken, record.elwoodSessionId, buildClaudeHookHandler({
|
|
57
49
|
record,
|
|
58
50
|
options,
|
|
@@ -60,15 +52,14 @@ export async function buildClaudeSession(input) {
|
|
|
60
52
|
transcriptWatcher,
|
|
61
53
|
ready,
|
|
62
54
|
getSession: () => session,
|
|
63
|
-
getTurnWatcher: () =>
|
|
55
|
+
getTurnWatcher: () => observers.turn,
|
|
64
56
|
observeHookTranscript: (event) => observeTranscript(transcriptWatcher, event),
|
|
65
|
-
|
|
57
|
+
onHookOutcome: (event, result) => session?.resolveQuestionHook(event, result),
|
|
58
|
+
}), buildClaudeHookErrorHandler(record, emitter, () => session));
|
|
66
59
|
try {
|
|
67
60
|
await bridge.start();
|
|
68
61
|
}
|
|
69
62
|
catch (error) {
|
|
70
|
-
// Best-effort shut down a partially-started bridge so its listener/socket is not
|
|
71
|
-
// leaked; contained so the original bridge-start error is the one that rejects.
|
|
72
63
|
await bridge.stop().catch(() => undefined);
|
|
73
64
|
throw elwoodError("hook_bridge_failed", "Could not start Elwood hook bridge.", {
|
|
74
65
|
...causeDetails(error),
|
|
@@ -89,57 +80,53 @@ export async function buildClaudeSession(input) {
|
|
|
89
80
|
throw error;
|
|
90
81
|
}
|
|
91
82
|
const startupOutput = createStartupBuffer();
|
|
92
|
-
let
|
|
83
|
+
let observedExit;
|
|
93
84
|
const terminalReplay = new TerminalReplayBuffer(record.elwoodSessionId);
|
|
94
85
|
terminalReplay.captureStartupAttention(emitter);
|
|
95
|
-
const
|
|
86
|
+
const frameObserver = createSessionFrameObserver(observers, () => session, () => promptResponder, readiness, liveClaudeClearance(() => terminal));
|
|
87
|
+
const promptResponder = new ClaudeStartupPromptResponder(autotrust, frameObserver.refresh, liveClaudeClearance(() => terminal));
|
|
96
88
|
let latestRenderedText = "";
|
|
89
|
+
const loginExpiring = new LoginExpiringWatcher();
|
|
97
90
|
const terminal = attachPtyTerminal(startupSize, pty, (data, renderedTerminal) => {
|
|
98
|
-
startupOutput.push(data);
|
|
99
91
|
terminalReplay.push(data);
|
|
100
|
-
|
|
92
|
+
const snapshot = renderedSnapshot(renderedTerminal);
|
|
93
|
+
latestRenderedText = snapshot.text;
|
|
101
94
|
const frame = { text: latestRenderedText, title: renderedTerminal.title };
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
// listener must never skip readiness, login detection, or terminal:data (§5.7).
|
|
95
|
+
const send = (input) => withAutomatedInput(renderedTerminal, () => renderedTerminal.sendInput(input));
|
|
96
|
+
const read = () => latestRenderedText;
|
|
97
|
+
const guarded = guardedClaudeAutomationWrite(renderedTerminal, send, read, () => promptResponder.closing, promptResponder.closingSignal);
|
|
98
|
+
const trustRead = () => currentRenderedFrame(renderedTerminal)?.text;
|
|
99
|
+
const autos = promptResponder.handle(frame.text, send, read, guarded, trustRead);
|
|
108
100
|
emitSettledStartupOutcomes(emitter, "claude", record.elwoodSessionId, autos, {
|
|
109
101
|
emitWarnings: (warnings) => warnGate.emitWarnings(warnings),
|
|
110
102
|
});
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const reading = observeRenderedFrame(observers, frame, session);
|
|
114
|
-
active.inputBlocking = reading.facts.blocking_prompt_visible;
|
|
115
|
-
observeReadinessFrame(reading.facts); // blocking gate + resume-composer mark
|
|
116
|
-
// Surface a mid-session login-expiry banner once (C-CLAUDE-18); no-op pre-readiness.
|
|
103
|
+
frameObserver.observe(frame);
|
|
104
|
+
warnGate.emitWarnings(loginExpiring.observeFrame(snapshot, record.elwoodSessionId, renderedTerminal));
|
|
117
105
|
session?.noteLoginExpiry(frame.text);
|
|
118
106
|
emitter.emit("terminal:data", { elwoodSessionId: record.elwoodSessionId, data });
|
|
119
|
-
});
|
|
107
|
+
}, startupOutput.push);
|
|
120
108
|
session = new ClaudeSessionImpl(record, stateDir, runtime, pty, terminal, bridge, emitter, terminalReplay, requestedSize, loopDefinitions);
|
|
121
|
-
const active = session;
|
|
109
|
+
const active = bindTurnSubmission(session, observers);
|
|
110
|
+
bindStartupLifetime(active, promptResponder, readiness);
|
|
111
|
+
frameObserver.refresh();
|
|
122
112
|
const beforeCleanup = () => active.pauseLoopsForStartupCleanup(ready.cancel);
|
|
123
|
-
// Guard every live-resource step after session creation: a failure in any of them
|
|
124
|
-
// tears down the now-live PTY, bridge, terminal, and watcher first (PRD §9.1, §9.4).
|
|
125
113
|
await guardStartupRegion(async () => {
|
|
126
114
|
active.startLoops();
|
|
127
115
|
flushPendingWarnings(); // sink now exists: flush any early-buffered diagnostic (§5.7)
|
|
128
|
-
// A hook or deadline that fired before the session existed submitted nothing
|
|
129
|
-
// (evidence is `session?.`-guarded); replay it now the session can consume it.
|
|
130
116
|
ready.replay();
|
|
131
117
|
pty.onExit((exit) => {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
118
|
+
if (observedExit)
|
|
119
|
+
return;
|
|
120
|
+
observedExit = exit;
|
|
121
|
+
active.beginExitFinalization();
|
|
122
|
+
active.closing.abort();
|
|
123
|
+
handleClaudeExit(emitter, record.elwoodSessionId, exit, (afterFlush) => finishSafely(() => warnGate.afterDelivery(afterFlush)), () => active.submitExit());
|
|
135
124
|
});
|
|
136
|
-
|
|
137
|
-
await assertStartupThenRelease("claude", startupOutput, () => startupExit);
|
|
125
|
+
await assertStartupThenRelease("claude", startupOutput, () => observedExit);
|
|
138
126
|
active.submitEvidence("startup_usable");
|
|
139
|
-
|
|
140
|
-
|
|
127
|
+
frameObserver.blockOnceLive(active);
|
|
128
|
+
input.activate();
|
|
141
129
|
}, { before: beforeCleanup, pty, bridge, terminal, after: () => transcriptWatcher.stop() });
|
|
142
|
-
// Open buffered startup warnings after return so synchronous subscribers see them (C-API-14).
|
|
143
130
|
if (preflightWarning !== undefined) {
|
|
144
131
|
warnGate.emitWarnings([preflightEvent(record.elwoodSessionId, preflightWarning)]);
|
|
145
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/claude/session/build.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/claude/session/build.ts"],"names":[],"mappings":"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"}
|