@with-logic/elwood 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +182 -3
- package/CONTRIBUTING.md +104 -0
- package/LICENSE +1 -1
- package/README.md +295 -26
- package/SECURITY.md +42 -0
- package/dist/claude/command.d.ts +9 -2
- package/dist/claude/command.d.ts.map +1 -1
- package/dist/claude/command.js +23 -16
- package/dist/claude/command.js.map +1 -1
- package/dist/claude/model-picker.d.ts.map +1 -1
- package/dist/claude/model-picker.js +4 -3
- package/dist/claude/model-picker.js.map +1 -1
- package/dist/claude/model-switch-confirmation.js +9 -1
- package/dist/claude/model-switch-confirmation.js.map +1 -1
- package/dist/claude/screen-table.js +1 -1
- package/dist/claude/screen-table.js.map +1 -1
- package/dist/claude/session/build.d.ts.map +1 -1
- package/dist/claude/session/build.js +3 -0
- package/dist/claude/session/build.js.map +1 -1
- package/dist/claude/session/index.d.ts.map +1 -1
- package/dist/claude/session/index.js +5 -2
- package/dist/claude/session/index.js.map +1 -1
- package/dist/claude/session/resume.d.ts +1 -1
- package/dist/claude/session/resume.d.ts.map +1 -1
- package/dist/claude/session/resume.js +5 -1
- package/dist/claude/session/resume.js.map +1 -1
- package/dist/claude/session/start-or-resume.js +1 -0
- package/dist/claude/session/start-or-resume.js.map +1 -1
- package/dist/claude/simple.d.ts.map +1 -1
- package/dist/claude/simple.js +4 -0
- package/dist/claude/simple.js.map +1 -1
- package/dist/cli/args/index.d.ts +3 -1
- package/dist/cli/args/index.d.ts.map +1 -1
- package/dist/cli/args/index.js +10 -2
- package/dist/cli/args/index.js.map +1 -1
- package/dist/cli/args/options.d.ts.map +1 -1
- package/dist/cli/args/options.js +2 -0
- package/dist/cli/args/options.js.map +1 -1
- package/dist/cli/args-commands.d.ts +10 -0
- package/dist/cli/args-commands.d.ts.map +1 -0
- package/dist/cli/args-commands.js +113 -0
- package/dist/cli/args-commands.js.map +1 -0
- package/dist/cli/command-types.d.ts +26 -0
- package/dist/cli/command-types.d.ts.map +1 -0
- package/dist/cli/command-types.js +9 -0
- package/dist/cli/command-types.js.map +1 -0
- package/dist/cli/config/codec-primitives.d.ts +20 -0
- package/dist/cli/config/codec-primitives.d.ts.map +1 -0
- package/dist/cli/config/codec-primitives.js +51 -0
- package/dist/cli/config/codec-primitives.js.map +1 -0
- package/dist/cli/config/codec.d.ts.map +1 -1
- package/dist/cli/config/codec.js +4 -46
- package/dist/cli/config/codec.js.map +1 -1
- package/dist/cli/config/effective.d.ts.map +1 -1
- package/dist/cli/config/effective.js +1 -0
- package/dist/cli/config/effective.js.map +1 -1
- package/dist/cli/config/keys.d.ts +1 -1
- package/dist/cli/config/keys.d.ts.map +1 -1
- package/dist/cli/config/keys.js +1 -0
- package/dist/cli/config/keys.js.map +1 -1
- package/dist/cli/entry.d.ts +4 -2
- package/dist/cli/entry.d.ts.map +1 -1
- package/dist/cli/entry.js +2 -1
- package/dist/cli/entry.js.map +1 -1
- package/dist/cli/help.d.ts +2 -2
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +40 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/interactive/index.d.ts +26 -0
- package/dist/cli/interactive/index.d.ts.map +1 -0
- package/dist/cli/interactive/index.js +33 -0
- package/dist/cli/interactive/index.js.map +1 -0
- package/dist/cli/interactive/launch.d.ts +14 -0
- package/dist/cli/interactive/launch.d.ts.map +1 -0
- package/dist/cli/interactive/launch.js +66 -0
- package/dist/cli/interactive/launch.js.map +1 -0
- package/dist/cli/interactive/spawn.d.ts +18 -0
- package/dist/cli/interactive/spawn.d.ts.map +1 -0
- package/dist/cli/interactive/spawn.js +53 -0
- package/dist/cli/interactive/spawn.js.map +1 -0
- package/dist/cli/main-failure.d.ts +28 -0
- package/dist/cli/main-failure.d.ts.map +1 -0
- package/dist/cli/main-failure.js +78 -0
- package/dist/cli/main-failure.js.map +1 -0
- package/dist/cli/main.d.ts +12 -4
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +27 -73
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/models/index.d.ts +20 -0
- package/dist/cli/models/index.d.ts.map +1 -0
- package/dist/cli/models/index.js +63 -0
- package/dist/cli/models/index.js.map +1 -0
- package/dist/cli/models/render.d.ts +9 -0
- package/dist/cli/models/render.d.ts.map +1 -0
- package/dist/cli/models/render.js +33 -0
- package/dist/cli/models/render.js.map +1 -0
- package/dist/cli/request/index.d.ts.map +1 -1
- package/dist/cli/request/index.js +8 -2
- package/dist/cli/request/index.js.map +1 -1
- package/dist/cli/request/layers.d.ts +2 -0
- package/dist/cli/request/layers.d.ts.map +1 -1
- package/dist/cli/request/layers.js +9 -5
- package/dist/cli/request/layers.js.map +1 -1
- package/dist/cli/request/posture.d.ts +28 -0
- package/dist/cli/request/posture.d.ts.map +1 -0
- package/dist/cli/request/posture.js +70 -0
- package/dist/cli/request/posture.js.map +1 -0
- package/dist/cli/request/resolution-types.d.ts +1 -0
- package/dist/cli/request/resolution-types.d.ts.map +1 -1
- package/dist/cli/request/settings.d.ts +2 -12
- package/dist/cli/request/settings.d.ts.map +1 -1
- package/dist/cli/request/settings.js +2 -25
- package/dist/cli/request/settings.js.map +1 -1
- package/dist/cli/request/validation.d.ts +12 -0
- package/dist/cli/request/validation.d.ts.map +1 -1
- package/dist/cli/request/validation.js +30 -10
- package/dist/cli/request/validation.js.map +1 -1
- package/dist/cli/request/values.d.ts +1 -0
- package/dist/cli/request/values.d.ts.map +1 -1
- package/dist/cli/request/values.js +1 -0
- package/dist/cli/request/values.js.map +1 -1
- package/dist/cli/run/index.d.ts.map +1 -1
- package/dist/cli/run/index.js +5 -41
- package/dist/cli/run/index.js.map +1 -1
- package/dist/cli/run/subscribe.d.ts +19 -0
- package/dist/cli/run/subscribe.d.ts.map +1 -0
- package/dist/cli/run/subscribe.js +47 -0
- package/dist/cli/run/subscribe.js.map +1 -0
- package/dist/cli/session/launch.d.ts +3 -0
- package/dist/cli/session/launch.d.ts.map +1 -1
- package/dist/cli/session/launch.js +11 -0
- package/dist/cli/session/launch.js.map +1 -1
- package/dist/cli/sessions/index.d.ts +30 -0
- package/dist/cli/sessions/index.d.ts.map +1 -0
- package/dist/cli/sessions/index.js +61 -0
- package/dist/cli/sessions/index.js.map +1 -0
- package/dist/cli/sessions/list.d.ts +28 -0
- package/dist/cli/sessions/list.d.ts.map +1 -0
- package/dist/cli/sessions/list.js +63 -0
- package/dist/cli/sessions/list.js.map +1 -0
- package/dist/cli/sessions/settings.d.ts +11 -0
- package/dist/cli/sessions/settings.d.ts.map +1 -0
- package/dist/cli/sessions/settings.js +26 -0
- package/dist/cli/sessions/settings.js.map +1 -0
- package/dist/cli/table.d.ts +7 -0
- package/dist/cli/table.d.ts.map +1 -0
- package/dist/cli/table.js +14 -0
- package/dist/cli/table.js.map +1 -0
- package/dist/cli/types.d.ts +5 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js.map +1 -1
- package/dist/codex/command.d.ts +18 -2
- package/dist/codex/command.d.ts.map +1 -1
- package/dist/codex/command.js +39 -24
- package/dist/codex/command.js.map +1 -1
- package/dist/codex/model-picker.d.ts.map +1 -1
- package/dist/codex/model-picker.js +3 -2
- package/dist/codex/model-picker.js.map +1 -1
- package/dist/codex/session/build.d.ts.map +1 -1
- package/dist/codex/session/build.js +5 -7
- package/dist/codex/session/build.js.map +1 -1
- package/dist/codex/session/index.d.ts.map +1 -1
- package/dist/codex/session/index.js +5 -2
- package/dist/codex/session/index.js.map +1 -1
- package/dist/codex/session/resume.d.ts +1 -1
- package/dist/codex/session/resume.d.ts.map +1 -1
- package/dist/codex/session/resume.js +5 -1
- package/dist/codex/session/resume.js.map +1 -1
- package/dist/codex/session/start-or-resume.js +1 -0
- package/dist/codex/session/start-or-resume.js.map +1 -1
- package/dist/codex/session/types.d.ts +3 -0
- package/dist/codex/session/types.d.ts.map +1 -1
- package/dist/codex/simple.d.ts.map +1 -1
- package/dist/codex/simple.js +4 -0
- package/dist/codex/simple.js.map +1 -1
- package/dist/core/errors.d.ts +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/high-trust.d.ts +41 -0
- package/dist/core/high-trust.d.ts.map +1 -0
- package/dist/core/high-trust.js +50 -0
- package/dist/core/high-trust.js.map +1 -0
- package/dist/core/input/index.d.ts.map +1 -1
- package/dist/core/input/index.js +15 -3
- package/dist/core/input/index.js.map +1 -1
- package/dist/core/models/input.d.ts +3 -0
- package/dist/core/models/input.d.ts.map +1 -0
- package/dist/core/models/input.js +9 -0
- package/dist/core/models/input.js.map +1 -0
- package/dist/core/models/picker.d.ts +2 -1
- package/dist/core/models/picker.d.ts.map +1 -1
- package/dist/core/models/picker.js +6 -5
- package/dist/core/models/picker.js.map +1 -1
- package/dist/core/models/tui-screen.d.ts +1 -1
- package/dist/core/models/tui-screen.d.ts.map +1 -1
- package/dist/core/models/tui-screen.js +26 -3
- package/dist/core/models/tui-screen.js.map +1 -1
- package/dist/core/trust/allowlist.d.ts +56 -0
- package/dist/core/trust/allowlist.d.ts.map +1 -0
- package/dist/core/{trust-prompts.js → trust/allowlist.js} +21 -38
- package/dist/core/trust/allowlist.js.map +1 -0
- package/dist/core/trust/prompts.d.ts +4 -46
- package/dist/core/trust/prompts.d.ts.map +1 -1
- package/dist/core/trust/prompts.js +2 -73
- package/dist/core/trust/prompts.js.map +1 -1
- package/dist/core/trust/responder.d.ts +2 -0
- package/dist/core/trust/responder.d.ts.map +1 -1
- package/dist/core/trust/responder.js +4 -0
- package/dist/core/trust/responder.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/runtime/launch-arguments.d.ts +12 -0
- package/dist/runtime/launch-arguments.d.ts.map +1 -0
- package/dist/runtime/launch-arguments.js +15 -0
- package/dist/runtime/launch-arguments.js.map +1 -0
- package/dist/runtime/session/base.d.ts.map +1 -1
- package/dist/runtime/session/base.js +4 -1
- package/dist/runtime/session/base.js.map +1 -1
- package/dist/runtime/session/commands.d.ts +2 -1
- package/dist/runtime/session/commands.d.ts.map +1 -1
- package/dist/runtime/session/commands.js +10 -4
- package/dist/runtime/session/commands.js.map +1 -1
- package/dist/runtime/session/lifecycle.d.ts +3 -4
- package/dist/runtime/session/lifecycle.d.ts.map +1 -1
- package/dist/runtime/session/lifecycle.js +6 -5
- package/dist/runtime/session/lifecycle.js.map +1 -1
- package/dist/state/directories.d.ts +4 -0
- package/dist/state/directories.d.ts.map +1 -0
- package/dist/state/directories.js +41 -0
- package/dist/state/directories.js.map +1 -0
- package/dist/state/files.d.ts.map +1 -1
- package/dist/state/files.js +25 -11
- package/dist/state/files.js.map +1 -1
- package/dist/state/private-session.d.ts.map +1 -1
- package/dist/state/private-session.js +2 -0
- package/dist/state/private-session.js.map +1 -1
- package/dist/state/store.d.ts.map +1 -1
- package/dist/state/store.js +7 -1
- package/dist/state/store.js.map +1 -1
- package/docs/cli-behavior.md +89 -1
- package/docs/cli-output.md +60 -0
- package/docs/cli.md +10 -2
- package/docs/codex/cli.md +57 -0
- package/docs/codex/config.md +47 -0
- package/docs/codex/hooks.md +70 -0
- package/examples/README.md +56 -0
- package/examples/full.ts +113 -0
- package/examples/minimal.ts +15 -0
- package/examples/stream.ts +39 -0
- package/examples/support.ts +71 -0
- package/package.json +17 -10
- package/prd/01-overview.md +21 -0
- package/prd/02-goals.md +47 -0
- package/prd/03-terminology.md +32 -0
- package/prd/04-architecture.md +121 -0
- package/prd/05-api/5.1-starting-claude.md +108 -0
- package/prd/05-api/5.2-resuming-claude.md +86 -0
- package/prd/05-api/5.3-claude-session-api.md +658 -0
- package/prd/05-api/5.4-events.md +145 -0
- package/prd/05-api/5.5-starting-codex.md +106 -0
- package/prd/05-api/5.6-resuming-codex.md +48 -0
- package/prd/05-api/5.7-codex-session-api.md +425 -0
- package/prd/05-api/5.8-session-api.md +122 -0
- package/prd/05-api/5.9-loops.md +170 -0
- package/prd/05-api/README.md +19 -0
- package/prd/06-claude-hook-bridge.md +164 -0
- package/prd/07-claude-policy.md +15 -0
- package/prd/07a-codex-hook-bridge.md +76 -0
- package/prd/08-state.md +127 -0
- package/prd/09-lifecycle.md +222 -0
- package/prd/10-errors.md +55 -0
- package/prd/11-test-app.md +53 -0
- package/prd/12-e2e.md +23 -0
- package/prd/12a-cli.md +375 -0
- package/prd/13-latitude.md +12 -0
- package/prd/14-conformance.md +333 -0
- package/prd/15-open-notes.md +8 -0
- package/prd/README.md +45 -0
- package/dist/claude/hook-dispatch.d.ts +0 -9
- package/dist/claude/hook-dispatch.d.ts.map +0 -1
- package/dist/claude/hook-dispatch.js +0 -12
- package/dist/claude/hook-dispatch.js.map +0 -1
- package/dist/claude/hook-events-extra.d.ts +0 -81
- package/dist/claude/hook-events-extra.d.ts.map +0 -1
- package/dist/claude/hook-events-extra.js +0 -6
- package/dist/claude/hook-events-extra.js.map +0 -1
- package/dist/claude/hook-events.d.ts +0 -101
- package/dist/claude/hook-events.d.ts.map +0 -1
- package/dist/claude/hook-events.js +0 -6
- package/dist/claude/hook-events.js.map +0 -1
- package/dist/claude/hook-names.d.ts +0 -24
- package/dist/claude/hook-names.d.ts.map +0 -1
- package/dist/claude/hook-names.js +0 -45
- package/dist/claude/hook-names.js.map +0 -1
- package/dist/claude/hooks.d.ts +0 -78
- package/dist/claude/hooks.d.ts.map +0 -1
- package/dist/claude/hooks.js +0 -6
- package/dist/claude/hooks.js.map +0 -1
- package/dist/claude/session-bridge.d.ts +0 -11
- package/dist/claude/session-bridge.d.ts.map +0 -1
- package/dist/claude/session-bridge.js +0 -18
- package/dist/claude/session-bridge.js.map +0 -1
- package/dist/claude/session-build.d.ts +0 -15
- package/dist/claude/session-build.d.ts.map +0 -1
- package/dist/claude/session-build.js +0 -147
- package/dist/claude/session-build.js.map +0 -1
- package/dist/claude/session-hook-handler.d.ts +0 -34
- package/dist/claude/session-hook-handler.d.ts.map +0 -1
- package/dist/claude/session-hook-handler.js +0 -42
- package/dist/claude/session-hook-handler.js.map +0 -1
- package/dist/claude/session-instance.d.ts +0 -42
- package/dist/claude/session-instance.d.ts.map +0 -1
- package/dist/claude/session-instance.js +0 -146
- package/dist/claude/session-instance.js.map +0 -1
- package/dist/claude/session-interface.d.ts +0 -49
- package/dist/claude/session-interface.d.ts.map +0 -1
- package/dist/claude/session-interface.js +0 -10
- package/dist/claude/session-interface.js.map +0 -1
- package/dist/claude/session-resume.d.ts +0 -8
- package/dist/claude/session-resume.d.ts.map +0 -1
- package/dist/claude/session-resume.js +0 -47
- package/dist/claude/session-resume.js.map +0 -1
- package/dist/claude/session-runtime.d.ts +0 -43
- package/dist/claude/session-runtime.d.ts.map +0 -1
- package/dist/claude/session-runtime.js +0 -105
- package/dist/claude/session-runtime.js.map +0 -1
- package/dist/claude/session-transcript.d.ts +0 -62
- package/dist/claude/session-transcript.d.ts.map +0 -1
- package/dist/claude/session-transcript.js +0 -88
- package/dist/claude/session-transcript.js.map +0 -1
- package/dist/claude/session.d.ts +0 -18
- package/dist/claude/session.d.ts.map +0 -1
- package/dist/claude/session.js +0 -58
- package/dist/claude/session.js.map +0 -1
- package/dist/claude/start-or-resume.d.ts +0 -12
- package/dist/claude/start-or-resume.d.ts.map +0 -1
- package/dist/claude/start-or-resume.js +0 -32
- package/dist/claude/start-or-resume.js.map +0 -1
- package/dist/claude/tool-hook-events.d.ts +0 -10
- package/dist/claude/tool-hook-events.d.ts.map +0 -1
- package/dist/claude/tool-hook-events.js +0 -18
- package/dist/claude/tool-hook-events.js.map +0 -1
- package/dist/claude/tool-types.d.ts +0 -158
- package/dist/claude/tool-types.d.ts.map +0 -1
- package/dist/claude/tool-types.js +0 -6
- package/dist/claude/tool-types.js.map +0 -1
- package/dist/claude/validate-input.d.ts +0 -8
- package/dist/claude/validate-input.d.ts.map +0 -1
- package/dist/claude/validate-input.js +0 -137
- package/dist/claude/validate-input.js.map +0 -1
- package/dist/claude/validate-permission-update.d.ts +0 -10
- package/dist/claude/validate-permission-update.d.ts.map +0 -1
- package/dist/claude/validate-permission-update.js +0 -72
- package/dist/claude/validate-permission-update.js.map +0 -1
- package/dist/claude/validate-result.d.ts +0 -7
- package/dist/claude/validate-result.d.ts.map +0 -1
- package/dist/claude/validate-result.js +0 -118
- package/dist/claude/validate-result.js.map +0 -1
- package/dist/claude/validate-shapes.d.ts +0 -22
- package/dist/claude/validate-shapes.d.ts.map +0 -1
- package/dist/claude/validate-shapes.js +0 -15
- package/dist/claude/validate-shapes.js.map +0 -1
- package/dist/claude/validate-tool-update.d.ts +0 -15
- package/dist/claude/validate-tool-update.d.ts.map +0 -1
- package/dist/claude/validate-tool-update.js +0 -122
- package/dist/claude/validate-tool-update.js.map +0 -1
- package/dist/cli/agent-detect.d.ts +0 -44
- package/dist/cli/agent-detect.d.ts.map +0 -1
- package/dist/cli/agent-detect.js +0 -66
- package/dist/cli/agent-detect.js.map +0 -1
- package/dist/cli/arg-errors.d.ts +0 -6
- package/dist/cli/arg-errors.d.ts.map +0 -1
- package/dist/cli/arg-errors.js +0 -44
- package/dist/cli/arg-errors.js.map +0 -1
- package/dist/cli/arg-options.d.ts +0 -26
- package/dist/cli/arg-options.d.ts.map +0 -1
- package/dist/cli/arg-options.js +0 -50
- package/dist/cli/arg-options.js.map +0 -1
- package/dist/cli/args.d.ts +0 -7
- package/dist/cli/args.d.ts.map +0 -1
- package/dist/cli/args.js +0 -70
- package/dist/cli/args.js.map +0 -1
- package/dist/cli/lifecycle-outcome.d.ts +0 -13
- package/dist/cli/lifecycle-outcome.d.ts.map +0 -1
- package/dist/cli/lifecycle-outcome.js +0 -20
- package/dist/cli/lifecycle-outcome.js.map +0 -1
- package/dist/cli/lifecycle.d.ts +0 -61
- package/dist/cli/lifecycle.d.ts.map +0 -1
- package/dist/cli/lifecycle.js +0 -152
- package/dist/cli/lifecycle.js.map +0 -1
- package/dist/cli/request-finalize.d.ts +0 -10
- package/dist/cli/request-finalize.d.ts.map +0 -1
- package/dist/cli/request-finalize.js +0 -135
- package/dist/cli/request-finalize.js.map +0 -1
- package/dist/cli/request-layers.d.ts +0 -30
- package/dist/cli/request-layers.d.ts.map +0 -1
- package/dist/cli/request-layers.js +0 -44
- package/dist/cli/request-layers.js.map +0 -1
- package/dist/cli/request-settings.d.ts +0 -34
- package/dist/cli/request-settings.d.ts.map +0 -1
- package/dist/cli/request-settings.js +0 -66
- package/dist/cli/request-settings.js.map +0 -1
- package/dist/cli/request-sources.d.ts +0 -13
- package/dist/cli/request-sources.d.ts.map +0 -1
- package/dist/cli/request-sources.js +0 -23
- package/dist/cli/request-sources.js.map +0 -1
- package/dist/cli/request-validation.d.ts +0 -18
- package/dist/cli/request-validation.d.ts.map +0 -1
- package/dist/cli/request-validation.js +0 -84
- package/dist/cli/request-validation.js.map +0 -1
- package/dist/cli/request-values.d.ts +0 -33
- package/dist/cli/request-values.d.ts.map +0 -1
- package/dist/cli/request-values.js +0 -73
- package/dist/cli/request-values.js.map +0 -1
- package/dist/cli/request.d.ts +0 -12
- package/dist/cli/request.d.ts.map +0 -1
- package/dist/cli/request.js +0 -103
- package/dist/cli/request.js.map +0 -1
- package/dist/cli/resolution-types.d.ts +0 -35
- package/dist/cli/resolution-types.d.ts.map +0 -1
- package/dist/cli/resolution-types.js +0 -6
- package/dist/cli/resolution-types.js.map +0 -1
- package/dist/cli/run-output-lines.d.ts +0 -14
- package/dist/cli/run-output-lines.d.ts.map +0 -1
- package/dist/cli/run-output-lines.js +0 -42
- package/dist/cli/run-output-lines.js.map +0 -1
- package/dist/cli/run-output.d.ts +0 -48
- package/dist/cli/run-output.d.ts.map +0 -1
- package/dist/cli/run-output.js +0 -150
- package/dist/cli/run-output.js.map +0 -1
- package/dist/cli/run.d.ts +0 -20
- package/dist/cli/run.d.ts.map +0 -1
- package/dist/cli/run.js +0 -126
- package/dist/cli/run.js.map +0 -1
- package/dist/cli/session-launch.d.ts +0 -23
- package/dist/cli/session-launch.d.ts.map +0 -1
- package/dist/cli/session-launch.js +0 -57
- package/dist/cli/session-launch.js.map +0 -1
- package/dist/cli/session.d.ts +0 -68
- package/dist/cli/session.d.ts.map +0 -1
- package/dist/cli/session.js +0 -124
- package/dist/cli/session.js.map +0 -1
- package/dist/codex/attach-images.d.ts +0 -20
- package/dist/codex/attach-images.d.ts.map +0 -1
- package/dist/codex/attach-images.js +0 -66
- package/dist/codex/attach-images.js.map +0 -1
- package/dist/codex/clipboard-lock.d.ts +0 -15
- package/dist/codex/clipboard-lock.d.ts.map +0 -1
- package/dist/codex/clipboard-lock.js +0 -16
- package/dist/codex/clipboard-lock.js.map +0 -1
- package/dist/codex/clipboard.d.ts +0 -32
- package/dist/codex/clipboard.d.ts.map +0 -1
- package/dist/codex/clipboard.js +0 -92
- package/dist/codex/clipboard.js.map +0 -1
- package/dist/codex/config-lock.d.ts +0 -21
- package/dist/codex/config-lock.d.ts.map +0 -1
- package/dist/codex/config-lock.js +0 -22
- package/dist/codex/config-lock.js.map +0 -1
- package/dist/codex/config-restore.d.ts +0 -33
- package/dist/codex/config-restore.d.ts.map +0 -1
- package/dist/codex/config-restore.js +0 -90
- package/dist/codex/config-restore.js.map +0 -1
- package/dist/codex/config-transaction.d.ts +0 -26
- package/dist/codex/config-transaction.d.ts.map +0 -1
- package/dist/codex/config-transaction.js +0 -47
- package/dist/codex/config-transaction.js.map +0 -1
- package/dist/codex/hook-dispatch.d.ts +0 -9
- package/dist/codex/hook-dispatch.d.ts.map +0 -1
- package/dist/codex/hook-dispatch.js +0 -14
- package/dist/codex/hook-dispatch.js.map +0 -1
- package/dist/codex/hook-names.d.ts +0 -19
- package/dist/codex/hook-names.d.ts.map +0 -1
- package/dist/codex/hook-names.js +0 -17
- package/dist/codex/hook-names.js.map +0 -1
- package/dist/codex/hooks.d.ts +0 -99
- package/dist/codex/hooks.d.ts.map +0 -1
- package/dist/codex/hooks.js +0 -6
- package/dist/codex/hooks.js.map +0 -1
- package/dist/codex/initial-ready.d.ts +0 -19
- package/dist/codex/initial-ready.d.ts.map +0 -1
- package/dist/codex/initial-ready.js +0 -19
- package/dist/codex/initial-ready.js.map +0 -1
- package/dist/codex/serialize.d.ts +0 -8
- package/dist/codex/serialize.d.ts.map +0 -1
- package/dist/codex/serialize.js +0 -48
- package/dist/codex/serialize.js.map +0 -1
- package/dist/codex/session-bridge.d.ts +0 -14
- package/dist/codex/session-bridge.d.ts.map +0 -1
- package/dist/codex/session-bridge.js +0 -20
- package/dist/codex/session-bridge.js.map +0 -1
- package/dist/codex/session-build.d.ts +0 -15
- package/dist/codex/session-build.d.ts.map +0 -1
- package/dist/codex/session-build.js +0 -144
- package/dist/codex/session-build.js.map +0 -1
- package/dist/codex/session-cleanup.d.ts +0 -12
- package/dist/codex/session-cleanup.d.ts.map +0 -1
- package/dist/codex/session-cleanup.js +0 -15
- package/dist/codex/session-cleanup.js.map +0 -1
- package/dist/codex/session-hooks.d.ts +0 -13
- package/dist/codex/session-hooks.d.ts.map +0 -1
- package/dist/codex/session-hooks.js +0 -54
- package/dist/codex/session-hooks.js.map +0 -1
- package/dist/codex/session-instance.d.ts +0 -50
- package/dist/codex/session-instance.d.ts.map +0 -1
- package/dist/codex/session-instance.js +0 -117
- package/dist/codex/session-instance.js.map +0 -1
- package/dist/codex/session-resume.d.ts +0 -7
- package/dist/codex/session-resume.d.ts.map +0 -1
- package/dist/codex/session-resume.js +0 -44
- package/dist/codex/session-resume.js.map +0 -1
- package/dist/codex/session-runtime.d.ts +0 -7
- package/dist/codex/session-runtime.d.ts.map +0 -1
- package/dist/codex/session-runtime.js +0 -10
- package/dist/codex/session-runtime.js.map +0 -1
- package/dist/codex/session-transcript.d.ts +0 -30
- package/dist/codex/session-transcript.d.ts.map +0 -1
- package/dist/codex/session-transcript.js +0 -53
- package/dist/codex/session-transcript.js.map +0 -1
- package/dist/codex/session-types.d.ts +0 -87
- package/dist/codex/session-types.d.ts.map +0 -1
- package/dist/codex/session-types.js +0 -6
- package/dist/codex/session-types.js.map +0 -1
- package/dist/codex/session-warnings.d.ts +0 -27
- package/dist/codex/session-warnings.d.ts.map +0 -1
- package/dist/codex/session-warnings.js +0 -54
- package/dist/codex/session-warnings.js.map +0 -1
- package/dist/codex/session.d.ts +0 -16
- package/dist/codex/session.d.ts.map +0 -1
- package/dist/codex/session.js +0 -61
- package/dist/codex/session.js.map +0 -1
- package/dist/codex/start-or-resume.d.ts +0 -12
- package/dist/codex/start-or-resume.d.ts.map +0 -1
- package/dist/codex/start-or-resume.js +0 -31
- package/dist/codex/start-or-resume.js.map +0 -1
- package/dist/codex/transcript/cursor-io.d.ts +0 -7
- package/dist/codex/transcript/cursor-io.d.ts.map +0 -1
- package/dist/codex/transcript/cursor-io.js +0 -7
- package/dist/codex/transcript/cursor-io.js.map +0 -1
- package/dist/codex/transcript/cursor.d.ts +0 -8
- package/dist/codex/transcript/cursor.d.ts.map +0 -1
- package/dist/codex/transcript/cursor.js +0 -8
- package/dist/codex/transcript/cursor.js.map +0 -1
- package/dist/codex/transcript/drops.d.ts +0 -9
- package/dist/codex/transcript/drops.d.ts.map +0 -1
- package/dist/codex/transcript/drops.js +0 -9
- package/dist/codex/transcript/drops.js.map +0 -1
- package/dist/codex/transcript.d.ts +0 -12
- package/dist/codex/transcript.d.ts.map +0 -1
- package/dist/codex/transcript.js +0 -10
- package/dist/codex/transcript.js.map +0 -1
- package/dist/codex/validate-result.d.ts +0 -7
- package/dist/codex/validate-result.d.ts.map +0 -1
- package/dist/codex/validate-result.js +0 -84
- package/dist/codex/validate-result.js.map +0 -1
- package/dist/codex/validate.d.ts +0 -11
- package/dist/codex/validate.d.ts.map +0 -1
- package/dist/codex/validate.js +0 -88
- package/dist/codex/validate.js.map +0 -1
- package/dist/core/activity-lifecycle.d.ts +0 -21
- package/dist/core/activity-lifecycle.d.ts.map +0 -1
- package/dist/core/activity-lifecycle.js +0 -45
- package/dist/core/activity-lifecycle.js.map +0 -1
- package/dist/core/activity-meta.d.ts +0 -13
- package/dist/core/activity-meta.d.ts.map +0 -1
- package/dist/core/activity-meta.js +0 -67
- package/dist/core/activity-meta.js.map +0 -1
- package/dist/core/activity-transcript.d.ts +0 -19
- package/dist/core/activity-transcript.d.ts.map +0 -1
- package/dist/core/activity-transcript.js +0 -60
- package/dist/core/activity-transcript.js.map +0 -1
- package/dist/core/activity.d.ts +0 -51
- package/dist/core/activity.d.ts.map +0 -1
- package/dist/core/activity.js +0 -81
- package/dist/core/activity.js.map +0 -1
- package/dist/core/control-queue-state.d.ts +0 -29
- package/dist/core/control-queue-state.d.ts.map +0 -1
- package/dist/core/control-queue-state.js +0 -95
- package/dist/core/control-queue-state.js.map +0 -1
- package/dist/core/control-queue-traits.d.ts +0 -54
- package/dist/core/control-queue-traits.d.ts.map +0 -1
- package/dist/core/control-queue-traits.js +0 -118
- package/dist/core/control-queue-traits.js.map +0 -1
- package/dist/core/control-queue-types.d.ts +0 -45
- package/dist/core/control-queue-types.d.ts.map +0 -1
- package/dist/core/control-queue-types.js +0 -7
- package/dist/core/control-queue-types.js.map +0 -1
- package/dist/core/control-queue.d.ts +0 -21
- package/dist/core/control-queue.d.ts.map +0 -1
- package/dist/core/control-queue.js +0 -98
- package/dist/core/control-queue.js.map +0 -1
- package/dist/core/list-models.d.ts +0 -44
- package/dist/core/list-models.d.ts.map +0 -1
- package/dist/core/list-models.js +0 -73
- package/dist/core/list-models.js.map +0 -1
- package/dist/core/model-picker.d.ts +0 -22
- package/dist/core/model-picker.d.ts.map +0 -1
- package/dist/core/model-picker.js +0 -58
- package/dist/core/model-picker.js.map +0 -1
- package/dist/core/model-rows.d.ts +0 -21
- package/dist/core/model-rows.d.ts.map +0 -1
- package/dist/core/model-rows.js +0 -57
- package/dist/core/model-rows.js.map +0 -1
- package/dist/core/probe-state.d.ts +0 -21
- package/dist/core/probe-state.d.ts.map +0 -1
- package/dist/core/probe-state.js +0 -39
- package/dist/core/probe-state.js.map +0 -1
- package/dist/core/session-input-abort.d.ts +0 -10
- package/dist/core/session-input-abort.d.ts.map +0 -1
- package/dist/core/session-input-abort.js +0 -44
- package/dist/core/session-input-abort.js.map +0 -1
- package/dist/core/session-input.d.ts +0 -37
- package/dist/core/session-input.d.ts.map +0 -1
- package/dist/core/session-input.js +0 -154
- package/dist/core/session-input.js.map +0 -1
- package/dist/core/session-warnings.d.ts +0 -20
- package/dist/core/session-warnings.d.ts.map +0 -1
- package/dist/core/session-warnings.js +0 -32
- package/dist/core/session-warnings.js.map +0 -1
- package/dist/core/simple/loop-controls.d.ts +0 -7
- package/dist/core/simple/loop-controls.d.ts.map +0 -1
- package/dist/core/simple/loop-controls.js +0 -7
- package/dist/core/simple/loop-controls.js.map +0 -1
- package/dist/core/startup-automation.d.ts +0 -54
- package/dist/core/startup-automation.d.ts.map +0 -1
- package/dist/core/startup-automation.js +0 -40
- package/dist/core/startup-automation.js.map +0 -1
- package/dist/core/startup-frame.d.ts +0 -39
- package/dist/core/startup-frame.d.ts.map +0 -1
- package/dist/core/startup-frame.js +0 -60
- package/dist/core/startup-frame.js.map +0 -1
- package/dist/core/startup-write.d.ts +0 -47
- package/dist/core/startup-write.d.ts.map +0 -1
- package/dist/core/startup-write.js +0 -73
- package/dist/core/startup-write.js.map +0 -1
- package/dist/core/trust-blocking.d.ts +0 -22
- package/dist/core/trust-blocking.d.ts.map +0 -1
- package/dist/core/trust-blocking.js +0 -38
- package/dist/core/trust-blocking.js.map +0 -1
- package/dist/core/trust-prompts.d.ts +0 -135
- package/dist/core/trust-prompts.d.ts.map +0 -1
- package/dist/core/trust-prompts.js.map +0 -1
- package/dist/core/trust-responder.d.ts +0 -48
- package/dist/core/trust-responder.d.ts.map +0 -1
- package/dist/core/trust-responder.js +0 -119
- package/dist/core/trust-responder.js.map +0 -1
- package/dist/core/tui-screen.d.ts +0 -21
- package/dist/core/tui-screen.d.ts.map +0 -1
- package/dist/core/tui-screen.js +0 -56
- package/dist/core/tui-screen.js.map +0 -1
- package/dist/core/update-warning.d.ts +0 -25
- package/dist/core/update-warning.d.ts.map +0 -1
- package/dist/core/update-warning.js +0 -33
- package/dist/core/update-warning.js.map +0 -1
- package/dist/core/warning-lifecycle.d.ts +0 -23
- package/dist/core/warning-lifecycle.d.ts.map +0 -1
- package/dist/core/warning-lifecycle.js +0 -6
- package/dist/core/warning-lifecycle.js.map +0 -1
- package/dist/core/warning-reasons.d.ts +0 -62
- package/dist/core/warning-reasons.d.ts.map +0 -1
- package/dist/core/warning-reasons.js +0 -121
- package/dist/core/warning-reasons.js.map +0 -1
- package/dist/core/warnings.d.ts +0 -145
- package/dist/core/warnings.d.ts.map +0 -1
- package/dist/core/warnings.js +0 -12
- package/dist/core/warnings.js.map +0 -1
- package/dist/runtime/cleanup-latch.d.ts +0 -27
- package/dist/runtime/cleanup-latch.d.ts.map +0 -1
- package/dist/runtime/cleanup-latch.js +0 -43
- package/dist/runtime/cleanup-latch.js.map +0 -1
- package/dist/runtime/initial-ready-advance.d.ts +0 -22
- package/dist/runtime/initial-ready-advance.d.ts.map +0 -1
- package/dist/runtime/initial-ready-advance.js +0 -39
- package/dist/runtime/initial-ready-advance.js.map +0 -1
- package/dist/runtime/initial-ready-fallback.d.ts +0 -12
- package/dist/runtime/initial-ready-fallback.d.ts.map +0 -1
- package/dist/runtime/initial-ready-fallback.js +0 -20
- package/dist/runtime/initial-ready-fallback.js.map +0 -1
- package/dist/runtime/initial-ready.d.ts +0 -49
- package/dist/runtime/initial-ready.d.ts.map +0 -1
- package/dist/runtime/initial-ready.js +0 -81
- package/dist/runtime/initial-ready.js.map +0 -1
- package/dist/runtime/reap-tree.d.ts +0 -62
- package/dist/runtime/reap-tree.d.ts.map +0 -1
- package/dist/runtime/reap-tree.js +0 -108
- package/dist/runtime/reap-tree.js.map +0 -1
- package/dist/runtime/session-base-types.d.ts +0 -36
- package/dist/runtime/session-base-types.d.ts.map +0 -1
- package/dist/runtime/session-base-types.js +0 -14
- package/dist/runtime/session-base-types.js.map +0 -1
- package/dist/runtime/session-base.d.ts +0 -48
- package/dist/runtime/session-base.d.ts.map +0 -1
- package/dist/runtime/session-base.js +0 -76
- package/dist/runtime/session-base.js.map +0 -1
- package/dist/runtime/session-commands.d.ts +0 -43
- package/dist/runtime/session-commands.d.ts.map +0 -1
- package/dist/runtime/session-commands.js +0 -52
- package/dist/runtime/session-commands.js.map +0 -1
- package/dist/runtime/session-exit.d.ts +0 -16
- package/dist/runtime/session-exit.d.ts.map +0 -1
- package/dist/runtime/session-exit.js +0 -32
- package/dist/runtime/session-exit.js.map +0 -1
- package/dist/runtime/session-image-attach.d.ts +0 -45
- package/dist/runtime/session-image-attach.d.ts.map +0 -1
- package/dist/runtime/session-image-attach.js +0 -82
- package/dist/runtime/session-image-attach.js.map +0 -1
- package/dist/runtime/session-lifecycle.d.ts +0 -61
- package/dist/runtime/session-lifecycle.d.ts.map +0 -1
- package/dist/runtime/session-lifecycle.js +0 -164
- package/dist/runtime/session-lifecycle.js.map +0 -1
- package/dist/runtime/session-loops.d.ts +0 -32
- package/dist/runtime/session-loops.d.ts.map +0 -1
- package/dist/runtime/session-loops.js +0 -62
- package/dist/runtime/session-loops.js.map +0 -1
- package/dist/runtime/session-readiness.d.ts +0 -18
- package/dist/runtime/session-readiness.d.ts.map +0 -1
- package/dist/runtime/session-readiness.js +0 -22
- package/dist/runtime/session-readiness.js.map +0 -1
- package/dist/runtime/session-reap.d.ts +0 -28
- package/dist/runtime/session-reap.d.ts.map +0 -1
- package/dist/runtime/session-reap.js +0 -51
- package/dist/runtime/session-reap.js.map +0 -1
- package/dist/runtime/session-resize.d.ts +0 -20
- package/dist/runtime/session-resize.d.ts.map +0 -1
- package/dist/runtime/session-resize.js +0 -26
- package/dist/runtime/session-resize.js.map +0 -1
- package/dist/runtime/session-shutdown-binding.d.ts +0 -30
- package/dist/runtime/session-shutdown-binding.d.ts.map +0 -1
- package/dist/runtime/session-shutdown-binding.js +0 -37
- package/dist/runtime/session-shutdown-binding.js.map +0 -1
- package/dist/runtime/session-shutdown.d.ts +0 -60
- package/dist/runtime/session-shutdown.d.ts.map +0 -1
- package/dist/runtime/session-shutdown.js +0 -140
- package/dist/runtime/session-shutdown.js.map +0 -1
- package/dist/runtime/session-status-wiring.d.ts +0 -38
- package/dist/runtime/session-status-wiring.d.ts.map +0 -1
- package/dist/runtime/session-status-wiring.js +0 -41
- package/dist/runtime/session-status-wiring.js.map +0 -1
- package/dist/runtime/session-status.d.ts +0 -7
- package/dist/runtime/session-status.d.ts.map +0 -1
- package/dist/runtime/session-status.js +0 -22
- package/dist/runtime/session-status.js.map +0 -1
- package/dist/runtime/shutdown-coordinator.d.ts +0 -57
- package/dist/runtime/shutdown-coordinator.d.ts.map +0 -1
- package/dist/runtime/shutdown-coordinator.js +0 -77
- package/dist/runtime/shutdown-coordinator.js.map +0 -1
- package/dist/runtime/startup-buffer.d.ts +0 -33
- package/dist/runtime/startup-buffer.d.ts.map +0 -1
- package/dist/runtime/startup-buffer.js +0 -53
- package/dist/runtime/startup-buffer.js.map +0 -1
- package/dist/runtime/startup-cleanup.d.ts +0 -43
- package/dist/runtime/startup-cleanup.d.ts.map +0 -1
- package/dist/runtime/startup-cleanup.js +0 -89
- package/dist/runtime/startup-cleanup.js.map +0 -1
- package/dist/runtime/startup.d.ts +0 -17
- package/dist/runtime/startup.d.ts.map +0 -1
- package/dist/runtime/startup.js +0 -47
- package/dist/runtime/startup.js.map +0 -1
- package/dist/runtime/status-emit.d.ts +0 -14
- package/dist/runtime/status-emit.d.ts.map +0 -1
- package/dist/runtime/status-emit.js +0 -15
- package/dist/runtime/status-emit.js.map +0 -1
- package/dist/runtime/teardown.d.ts +0 -15
- package/dist/runtime/teardown.d.ts.map +0 -1
- package/dist/runtime/teardown.js +0 -40
- package/dist/runtime/teardown.js.map +0 -1
- package/dist/runtime/terminate.d.ts +0 -22
- package/dist/runtime/terminate.d.ts.map +0 -1
- package/dist/runtime/terminate.js +0 -129
- package/dist/runtime/terminate.js.map +0 -1
- package/dist/runtime/update-lock.d.ts +0 -19
- package/dist/runtime/update-lock.d.ts.map +0 -1
- package/dist/runtime/update-lock.js +0 -183
- package/dist/runtime/update-lock.js.map +0 -1
- package/dist/runtime/update-once.d.ts +0 -40
- package/dist/runtime/update-once.d.ts.map +0 -1
- package/dist/runtime/update-once.js +0 -88
- package/dist/runtime/update-once.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-hook-handler.js","sourceRoot":"","sources":["../../src/claude/session-hook-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAMhD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAgBrD,sFAAsF;AACtF,MAAM,UAAU,sBAAsB,CACpC,IAA2B;IAE3B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACpE,OAAO,KAAK,EAAE,KAAc,EAAgC,EAAE;QAC5D,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,eAAe,KAAK,cAAc;YAC1C,IAAI,CAAC,UAAU,EAAE,EAAE,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,OAAO,EACP,KAAK,EACL,OAAO,CAAC,aAAa,IAAI,MAAM,EAC/B,MAAM,CAAC,eAAe,CACvB,CAAC;QACF,OAAO,CAAC,IAAI,CACV,UAAU,EACV,QAAQ,CAAC,sBAAsB,CAC7B,QAAQ,EACR,MAAM,CAAC,eAAe,EACtB,KAAK,CAAC,eAAe,EACrB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,UAAU,CACnB,CACF,CAAC;QACF,IAAI,KAAK,CAAC,eAAe,KAAK,oBAAoB;YAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACjE,IAAI,KAAK,CAAC,eAAe,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,wDAAwD;YAClF,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,EAAE,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,2BAA2B,CACzC,MAAqB,EACrB,OAAqC;IAErC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,SAAS,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,GAAG,KAAK,EAAE,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/** In-memory Claude session object exposed to callers. Implements PRD §4.1, §5, §6, §7, §8. */
|
|
2
|
-
import type { ElwoodActivityEvent } from "../core/activity.ts";
|
|
3
|
-
import type { TerminalReplayBuffer } from "../core/terminal-replay.ts";
|
|
4
|
-
import type { ClaudeEventMap, ElwoodEventHandler, ElwoodEventName, ElwoodSessionStatus, ElwoodWarningEvent, TerminalSize } from "../core/types.ts";
|
|
5
|
-
import type { TypedEmitter } from "../events/emitter.ts";
|
|
6
|
-
import type { PtyProcess } from "../pty/types.ts";
|
|
7
|
-
import { AgentSessionBase } from "../runtime/session-base.ts";
|
|
8
|
-
import type { PersistedLoopDefinition } from "../state/loop-store.ts";
|
|
9
|
-
import type { SessionRuntime } from "../state/runtime-paths.ts";
|
|
10
|
-
import { type SessionRecord } from "../state/store.ts";
|
|
11
|
-
import type { ElwoodTerminal } from "../terminal/headless.ts";
|
|
12
|
-
import type { ClaudeLoginOptions } from "./login/types.ts";
|
|
13
|
-
import type { ClaudeSessionApi } from "./session-interface.ts";
|
|
14
|
-
export type HookBridge = {
|
|
15
|
-
readonly start: () => Promise<void>;
|
|
16
|
-
readonly stop: () => Promise<void>;
|
|
17
|
-
};
|
|
18
|
-
export declare class ClaudeSessionImpl extends AgentSessionBase implements ClaudeSessionApi {
|
|
19
|
-
protected readonly picker: import("../core/model-picker.ts").ModelPickerSpec;
|
|
20
|
-
private readonly bridge;
|
|
21
|
-
private readonly emitter;
|
|
22
|
-
private requestedSize;
|
|
23
|
-
private awaitingInitialReady;
|
|
24
|
-
private initialReadyDone;
|
|
25
|
-
private readonly loginExpiredWatcher;
|
|
26
|
-
constructor(record: SessionRecord, stateDir: string, runtime: SessionRuntime, pty: PtyProcess, terminal: ElwoodTerminal, bridge: HookBridge, emitter: TypedEmitter<ClaudeEventMap>, terminalReplay: TerminalReplayBuffer, requestedSize: TerminalSize, loopDefinitions: readonly PersistedLoopDefinition[]);
|
|
27
|
-
on<E extends ElwoodEventName>(event: E, handler: ElwoodEventHandler<E>): import("../index.ts").Unsubscribe;
|
|
28
|
-
off<E extends ElwoodEventName>(event: E, handler: ElwoodEventHandler<E>): void;
|
|
29
|
-
waitForStatus(match: (status: ElwoodSessionStatus) => boolean, timeoutMs?: number): Promise<"starting" | "running" | "ready" | "blocked" | "exited" | "stopped" | "killed" | "torn_down">;
|
|
30
|
-
waitForActivity(match: (event: ElwoodActivityEvent) => boolean, timeoutMs?: number): Promise<ElwoodActivityEvent>;
|
|
31
|
-
protected stagedPaste(screen: string): boolean;
|
|
32
|
-
protected attachImages: (paths: readonly string[], signal: AbortSignal) => Promise<void>;
|
|
33
|
-
resize(size: TerminalSize): Promise<void>;
|
|
34
|
-
completeInitialReady(): Promise<void>;
|
|
35
|
-
private restoreRequestedSize;
|
|
36
|
-
rememberClaudeSessionId(sessionId: string): void;
|
|
37
|
-
emitWarnings(warnings: readonly ElwoodWarningEvent[]): void;
|
|
38
|
-
noteLoginExpiry(screenText: string): void;
|
|
39
|
-
login(options: ClaudeLoginOptions): Promise<void>;
|
|
40
|
-
protected stopRuntime(): Promise<void>;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=session-instance.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-instance.d.ts","sourceRoot":"","sources":["../../src/claude/session-instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { sessionWaitForActivity, sessionWaitForStatus } from "../core/session-wait.js";
|
|
2
|
-
import { emitSessionWarnings } from "../core/session-warnings.js";
|
|
3
|
-
import { terminalStatuses } from "../core/status-categories.js";
|
|
4
|
-
import { AgentSessionBase } from "../runtime/session-base.js";
|
|
5
|
-
import { runCleanupSteps } from "../runtime/teardown.js";
|
|
6
|
-
import { updateSessionResumeId } from "../state/store.js";
|
|
7
|
-
import { attachClaudeImages } from "./attach-images.js";
|
|
8
|
-
import { runSessionLogin } from "./login/session-login.js";
|
|
9
|
-
import { LoginExpiredWatcher, loginExpiredWarning } from "./login-expired.js";
|
|
10
|
-
import { claudeModelPicker } from "./model-picker.js";
|
|
11
|
-
import { resizeRestoreFailedWarning } from "./resize-restore.js";
|
|
12
|
-
import { CLAUDE_STARTUP_MIN_COLS } from "./startup-size.js";
|
|
13
|
-
export class ClaudeSessionImpl extends AgentSessionBase {
|
|
14
|
-
picker = claudeModelPicker;
|
|
15
|
-
bridge;
|
|
16
|
-
emitter;
|
|
17
|
-
requestedSize;
|
|
18
|
-
// Only a session requested BELOW the 100-column startup floor bootstraps wide and
|
|
19
|
-
// defers its restore to readiness (C-API-36); a 100+ session resizes immediately.
|
|
20
|
-
awaitingInitialReady;
|
|
21
|
-
// Whether the one-shot initial-ready transition has already run (idempotent).
|
|
22
|
-
initialReadyDone = false;
|
|
23
|
-
// Edge-detects a mid-session login-expiry banner so it warns once per occurrence.
|
|
24
|
-
loginExpiredWatcher = new LoginExpiredWatcher();
|
|
25
|
-
constructor(record, stateDir, runtime, pty, terminal, bridge, emitter, terminalReplay, requestedSize, loopDefinitions) {
|
|
26
|
-
super("claude", record, stateDir, runtime, pty, terminal, emitter, terminalReplay, loopDefinitions);
|
|
27
|
-
this.bridge = bridge;
|
|
28
|
-
this.emitter = emitter;
|
|
29
|
-
this.requestedSize = requestedSize;
|
|
30
|
-
this.awaitingInitialReady = requestedSize.cols < CLAUDE_STARTUP_MIN_COLS;
|
|
31
|
-
}
|
|
32
|
-
on(event, handler) {
|
|
33
|
-
// REGISTER before replaying buffered `terminal:data`: a throwing replay handler must still be
|
|
34
|
-
// subscribed for FUTURE data (otherwise startup telemetry silently disappears). Replay is of
|
|
35
|
-
// already-buffered past data and runs synchronously, so no live event interleaves.
|
|
36
|
-
const unsubscribe = this.emitter.on(event, handler);
|
|
37
|
-
this.replayFor(event, handler);
|
|
38
|
-
return unsubscribe;
|
|
39
|
-
}
|
|
40
|
-
off(event, handler) {
|
|
41
|
-
this.emitter.off(event, handler);
|
|
42
|
-
}
|
|
43
|
-
waitForStatus(match, timeoutMs) {
|
|
44
|
-
return sessionWaitForStatus(this, match, timeoutMs);
|
|
45
|
-
}
|
|
46
|
-
waitForActivity(match, timeoutMs) {
|
|
47
|
-
return sessionWaitForActivity(this, match, timeoutMs);
|
|
48
|
-
}
|
|
49
|
-
// Captured staged chip: "❯ [Pasted text #1 +15 lines]" (claude 2.1.201).
|
|
50
|
-
stagedPaste(screen) {
|
|
51
|
-
return /\[Pasted text/.test(screen);
|
|
52
|
-
}
|
|
53
|
-
// Claude reads a pasted absolute path; the paste is held while a dialog shows (C-API-45/37).
|
|
54
|
-
attachImages = (paths, signal) => attachClaudeImages(this.terminal, paths, signal, () => this.status === "blocked");
|
|
55
|
-
// A narrow session holds the PHYSICAL resize until readiness; it just records the
|
|
56
|
-
// requested geometry now and restores it at the initial-ready transition. A wide
|
|
57
|
-
// session (100+ cols) never deferred; it resizes now.
|
|
58
|
-
resize(size) {
|
|
59
|
-
if (!(this.awaitingInitialReady && !terminalStatuses.has(this.status))) {
|
|
60
|
-
this.requestedSize = size;
|
|
61
|
-
return super.resize(size);
|
|
62
|
-
}
|
|
63
|
-
// Non-terminal here: capture the requested geometry to restore at readiness
|
|
64
|
-
// without disturbing the live bootstrap width (C-API-25/39).
|
|
65
|
-
this.requestedSize = size;
|
|
66
|
-
return Promise.resolve();
|
|
67
|
-
}
|
|
68
|
-
// Restore deferred geometry (narrow only) then advance readiness — which MUST run even
|
|
69
|
-
// if the restore/warning throws, or queued messages starve (C-API-39/36). Idempotent.
|
|
70
|
-
completeInitialReady() {
|
|
71
|
-
if (this.initialReadyDone)
|
|
72
|
-
return Promise.resolve();
|
|
73
|
-
this.initialReadyDone = true;
|
|
74
|
-
const wasNarrowBootstrap = this.awaitingInitialReady;
|
|
75
|
-
this.awaitingInitialReady = false;
|
|
76
|
-
try {
|
|
77
|
-
if (wasNarrowBootstrap)
|
|
78
|
-
this.restoreRequestedSize();
|
|
79
|
-
}
|
|
80
|
-
finally {
|
|
81
|
-
this.advanceInitialReady();
|
|
82
|
-
}
|
|
83
|
-
return Promise.resolve();
|
|
84
|
-
}
|
|
85
|
-
// Apply the deferred physical geometry, so only a genuine native resize failure
|
|
86
|
-
// reports as staying at bootstrap width (C-API-39).
|
|
87
|
-
restoreRequestedSize() {
|
|
88
|
-
try {
|
|
89
|
-
this.restoreHeldSize(this.requestedSize);
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
// Isolated so a throwing warning/activity listener cannot skip readiness.
|
|
93
|
-
try {
|
|
94
|
-
this.emitWarnings([
|
|
95
|
-
resizeRestoreFailedWarning(this.elwoodSessionId, this.requestedSize, error),
|
|
96
|
-
]);
|
|
97
|
-
}
|
|
98
|
-
catch {
|
|
99
|
-
// A warning-sink/listener failure must never block readiness release.
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
rememberClaudeSessionId(sessionId) {
|
|
104
|
-
if (this.record.claude.resumeId)
|
|
105
|
-
return;
|
|
106
|
-
this.persist(updateSessionResumeId(this.record, "claude", sessionId));
|
|
107
|
-
}
|
|
108
|
-
emitWarnings(warnings) {
|
|
109
|
-
emitSessionWarnings(warnings, {
|
|
110
|
-
warning: (event) => this.emitter.emit("warning", event),
|
|
111
|
-
activity: (event) => this.emitter.emit("activity", event),
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
// Surface a mid-session login-expiry banner once (C-CLAUDE-18): gated on prior
|
|
115
|
-
// readiness (startup handles it fatally), edge-detected. FULLY non-throwing — runs
|
|
116
|
-
// in the frame callback's detached continuation, so a listener failure can't become
|
|
117
|
-
// an unhandled rejection or skip `terminal:data`. COMMIT the edge BEFORE the live
|
|
118
|
-
// fan-out: warnings are live-only (fire exactly once), and emitWarnings delivers to
|
|
119
|
-
// every listener before rethrowing a listener error — committing after would treat
|
|
120
|
-
// a throwing listener as non-delivery and re-fire the SAME incident to the listeners
|
|
121
|
-
// that already received it (a duplicate). A throwing listener is contained here.
|
|
122
|
-
noteLoginExpiry(screenText) {
|
|
123
|
-
if (!(this.everReady && this.loginExpiredWatcher.peek(screenText)))
|
|
124
|
-
return;
|
|
125
|
-
this.loginExpiredWatcher.commit();
|
|
126
|
-
try {
|
|
127
|
-
this.emitWarnings([loginExpiredWarning(this.elwoodSessionId)]);
|
|
128
|
-
}
|
|
129
|
-
catch {
|
|
130
|
-
// Live-only: a throwing listener is contained and the warning is dropped, not
|
|
131
|
-
// re-fired — the edge is already committed so a persistent banner warns once.
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
// Drive `/login` re-auth as an exclusive, abort-aware queue transaction (C-API-43).
|
|
135
|
-
login(options) {
|
|
136
|
-
const onReady = (handler) => this.emitter.on("status", (e) => e.status === "ready" && handler());
|
|
137
|
-
const blocked = () => this.status === "blocked";
|
|
138
|
-
const deps = { controlQueue: this.controlQueue, terminal: this.terminal, blocked, onReady };
|
|
139
|
-
return this.inSession(() => runSessionLogin(deps, options));
|
|
140
|
-
}
|
|
141
|
-
stopRuntime() {
|
|
142
|
-
// Dispose the terminal even if the bridge stop rejects — no first-failure leak (§9.4).
|
|
143
|
-
return runCleanupSteps([() => this.bridge.stop(), () => this.terminal.dispose()]);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=session-instance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-instance.js","sourceRoot":"","sources":["../../src/claude/session-instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The Claude-typed live-session surface (`ClaudeSessionApi`): the shape the PTY-backed
|
|
3
|
-
* session object satisfies. It is the PUBLIC low-level interface returned by the eager
|
|
4
|
-
* `startClaude`/`resumeClaude` factories and exposed through `ClaudeSession.session`;
|
|
5
|
-
* `src/index.ts` exports it and the CHANGELOG documents it as the supported low-level type.
|
|
6
|
-
* Most callers should prefer the ergonomic `ClaudeSession` class (src/claude/simple.ts),
|
|
7
|
-
* which wraps and delegates to this. Implements PRD §5 public API.
|
|
8
|
-
*/
|
|
9
|
-
import type { ElwoodActivityEvent } from "../core/activity.ts";
|
|
10
|
-
import type { SendOptions } from "../core/images/types.ts";
|
|
11
|
-
import type { LoopControls } from "../core/loops/loop-controls.ts";
|
|
12
|
-
import type { AgentModelOption } from "../core/model-rows.ts";
|
|
13
|
-
import type { ActivityMatch, ElwoodEventHandler, ElwoodEventName, ElwoodSessionStatus, ElwoodStatusDecision, StatusMatch, TerminalSize, Unsubscribe } from "../core/types.ts";
|
|
14
|
-
import type { ElwoodTerminal } from "../terminal/headless.ts";
|
|
15
|
-
import type { ClaudeLoginOptions } from "./login/types.ts";
|
|
16
|
-
export interface ClaudeSessionApi extends LoopControls {
|
|
17
|
-
readonly elwoodSessionId: string;
|
|
18
|
-
readonly cwd: string;
|
|
19
|
-
readonly status: ElwoodSessionStatus;
|
|
20
|
-
readonly terminal: ElwoodTerminal;
|
|
21
|
-
statusDecisions(): readonly ElwoodStatusDecision[];
|
|
22
|
-
waitForStatus(match: StatusMatch, timeoutMs?: number): Promise<ElwoodSessionStatus>;
|
|
23
|
-
waitForActivity(match: ActivityMatch, timeoutMs?: number): Promise<ElwoodActivityEvent>;
|
|
24
|
-
on<E extends ElwoodEventName>(event: E, handler: ElwoodEventHandler<E>): Unsubscribe;
|
|
25
|
-
off<E extends ElwoodEventName>(event: E, handler: ElwoodEventHandler<E>): void;
|
|
26
|
-
sendPrompt(prompt: string, options?: SendOptions): Promise<void>;
|
|
27
|
-
sendMessage(message: string, options?: SendOptions): Promise<void>;
|
|
28
|
-
sendGuidance(message: string, options?: SendOptions): Promise<void>;
|
|
29
|
-
sendKeys(input: string | Uint8Array): Promise<void>;
|
|
30
|
-
resize(size: TerminalSize): Promise<void>;
|
|
31
|
-
interrupt(options?: {
|
|
32
|
-
readonly timeoutMs?: number;
|
|
33
|
-
}): Promise<void>;
|
|
34
|
-
compact(options?: {
|
|
35
|
-
readonly timeoutMs?: number;
|
|
36
|
-
}): Promise<void>;
|
|
37
|
-
listModels(options?: {
|
|
38
|
-
readonly timeoutMs?: number;
|
|
39
|
-
}): Promise<readonly AgentModelOption[]>;
|
|
40
|
-
setModel(id: string, options?: {
|
|
41
|
-
readonly timeoutMs?: number;
|
|
42
|
-
}): Promise<void>;
|
|
43
|
-
/** Drive the interactive `/login` re-authentication flow to recover a lapsed login (C-API-43). */
|
|
44
|
-
login(options: ClaudeLoginOptions): Promise<void>;
|
|
45
|
-
stop(): Promise<void>;
|
|
46
|
-
kill(): Promise<void>;
|
|
47
|
-
teardown(): Promise<void>;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=session-interface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-interface.d.ts","sourceRoot":"","sources":["../../src/claude/session-interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The Claude-typed live-session surface (`ClaudeSessionApi`): the shape the PTY-backed
|
|
3
|
-
* session object satisfies. It is the PUBLIC low-level interface returned by the eager
|
|
4
|
-
* `startClaude`/`resumeClaude` factories and exposed through `ClaudeSession.session`;
|
|
5
|
-
* `src/index.ts` exports it and the CHANGELOG documents it as the supported low-level type.
|
|
6
|
-
* Most callers should prefer the ergonomic `ClaudeSession` class (src/claude/simple.ts),
|
|
7
|
-
* which wraps and delegates to this. Implements PRD §5 public API.
|
|
8
|
-
*/
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=session-interface.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-interface.js","sourceRoot":"","sources":["../../src/claude/session-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude session resume entry point built on the shared start path.
|
|
3
|
-
* Implements PRD §5.2, §9.3, and C-API-16.
|
|
4
|
-
*/
|
|
5
|
-
import type { ResumeClaudeOptions } from "../core/types.ts";
|
|
6
|
-
import type { ClaudeSessionApi } from "./session-interface.ts";
|
|
7
|
-
export declare function resumeClaude(options: ResumeClaudeOptions): Promise<ClaudeSessionApi>;
|
|
8
|
-
//# sourceMappingURL=session-resume.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-resume.d.ts","sourceRoot":"","sources":["../../src/claude/session-resume.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAS5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2C1F"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude session resume entry point built on the shared start path.
|
|
3
|
-
* Implements PRD §5.2, §9.3, and C-API-16.
|
|
4
|
-
*/
|
|
5
|
-
import { resolve } from "node:path";
|
|
6
|
-
import { elwoodError } from "../core/errors.js";
|
|
7
|
-
import { claudeLaunchPosture, effectivePosture, withClaudeLaunch, } from "../state/launch-posture.js";
|
|
8
|
-
import { defaultStateDir, readSessionRecord } from "../state/store.js";
|
|
9
|
-
import { preflightClaude } from "./preflight.js";
|
|
10
|
-
import { startClaudeFromRecord } from "./session.js";
|
|
11
|
-
export async function resumeClaude(options) {
|
|
12
|
-
// Resolve stateDir to ABSOLUTE ONCE, before any read or `await`: a relative path
|
|
13
|
-
// re-resolved after a `process.chdir()` between the record read and the runtime-file
|
|
14
|
-
// writes would read one session and write another's files (PRD §8.1). (C-STATE)
|
|
15
|
-
const stateDir = resolve(options.stateDir ?? defaultStateDir(options.cwd ?? process.cwd()));
|
|
16
|
-
const record = readSessionRecord(stateDir, options.elwoodSessionId);
|
|
17
|
-
if (record.adapter !== "claude") {
|
|
18
|
-
throw elwoodError("adapter_mismatch", "Cannot resume a non-Claude session as Claude.");
|
|
19
|
-
}
|
|
20
|
-
if (!record.claude.resumeId) {
|
|
21
|
-
throw elwoodError("resume_unavailable", "Cannot resume Claude without a Claude session id.");
|
|
22
|
-
}
|
|
23
|
-
const warning = await preflightClaude(options.strictVersionCheck ?? false, options.autoupdate ?? false);
|
|
24
|
-
// Resume defaults to the posture this session launched with; explicit options
|
|
25
|
-
// override field by field, and the effective posture is re-persisted (C-API-32,
|
|
26
|
-
// C-STATE-13). Terminal size is not persisted: it falls back to options.initialSize.
|
|
27
|
-
const launch = effectivePosture(record.claude.launch, claudeLaunchPosture(options));
|
|
28
|
-
const resumedRecord = withClaudeLaunch(record, launch);
|
|
29
|
-
return await startClaudeFromRecord(resumedRecord, stateDir, {
|
|
30
|
-
cwd: options.cwd ?? record.cwd,
|
|
31
|
-
stateDir,
|
|
32
|
-
...(options.hooks === undefined ? {} : { hooks: options.hooks }),
|
|
33
|
-
...(options.initialSize === undefined ? {} : { initialSize: options.initialSize }),
|
|
34
|
-
...(options.hookTimeoutMs === undefined ? {} : { hookTimeoutMs: options.hookTimeoutMs }),
|
|
35
|
-
...(options.autotrust === undefined ? {} : { autotrust: options.autotrust }),
|
|
36
|
-
// Reasoning effort is NOT persisted posture — re-supply it per resume (C-CLAUDE-20).
|
|
37
|
-
...(options.reasoningEffort === undefined
|
|
38
|
-
? {}
|
|
39
|
-
: { reasoningEffort: options.reasoningEffort }),
|
|
40
|
-
...launch,
|
|
41
|
-
...(options.strictVersionCheck === undefined
|
|
42
|
-
? {}
|
|
43
|
-
: { strictVersionCheck: options.strictVersionCheck }),
|
|
44
|
-
}, true, // resumed: mark ready on the first composer marker, symmetric with Codex
|
|
45
|
-
warning);
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=session-resume.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-resume.js","sourceRoot":"","sources":["../../src/claude/session-resume.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGrD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA4B;IAC7D,iFAAiF;IACjF,qFAAqF;IACrF,gFAAgF;IAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,WAAW,CAAC,kBAAkB,EAAE,+CAA+C,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,WAAW,CAAC,oBAAoB,EAAE,mDAAmD,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,eAAe,CACnC,OAAO,CAAC,kBAAkB,IAAI,KAAK,EACnC,OAAO,CAAC,UAAU,IAAI,KAAK,CAC5B,CAAC;IACF,8EAA8E;IAC9E,gFAAgF;IAChF,qFAAqF;IACrF,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IACpF,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,MAAM,qBAAqB,CAChC,aAAa,EACb,QAAQ,EACR;QACE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG;QAC9B,QAAQ;QACR,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAClF,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;QACxF,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,qFAAqF;QACrF,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QACjD,GAAG,MAAM;QACT,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS;YAC1C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC;KACxD,EACD,IAAI,EAAE,yEAAyE;IAC/E,OAAO,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime file and PTY helpers for Claude sessions.
|
|
3
|
-
* Implements PRD §4, §6, and §9.
|
|
4
|
-
*/
|
|
5
|
-
import * as activity from "../core/activity.ts";
|
|
6
|
-
import { AttentionWatcher } from "../core/attention.ts";
|
|
7
|
-
import { TurnStateWatcher } from "../core/turn-state.ts";
|
|
8
|
-
import type { ClaudeEventMap, StartClaudeOptions, TerminalSize } from "../core/types.ts";
|
|
9
|
-
import type { TypedEmitter } from "../events/emitter.ts";
|
|
10
|
-
import type { PtyExit, PtyProcess } from "../pty/types.ts";
|
|
11
|
-
import type { SessionRuntime } from "../state/runtime-paths.ts";
|
|
12
|
-
import type { SessionRecord } from "../state/store.ts";
|
|
13
|
-
/** The rendered-frame observers (turn/attention/screen-fact) for a Claude session. */
|
|
14
|
-
export declare function buildClaudeObservers(elwoodSessionId: string, autotrust: boolean, emitter: TypedEmitter<ClaudeEventMap>): {
|
|
15
|
-
turn: TurnStateWatcher;
|
|
16
|
-
attention: AttentionWatcher;
|
|
17
|
-
table: import("../core/screen-facts.ts").ScreenFactTable;
|
|
18
|
-
agent: "claude";
|
|
19
|
-
elwoodSessionId: string;
|
|
20
|
-
emitActivity: (event: activity.ElwoodActivityEvent) => void;
|
|
21
|
-
};
|
|
22
|
-
export declare function writeRuntimeFiles(runtime: SessionRuntime, options: StartClaudeOptions): void;
|
|
23
|
-
/**
|
|
24
|
-
* The per-hook timeout written into Claude's settings. The CLI's clock starts when
|
|
25
|
-
* it spawns the hook process, BEFORE the bridge connects and Elwood's own
|
|
26
|
-
* `hookTimeoutMs` race begins, so an identical value would let the CLI kill the
|
|
27
|
-
* hook just before Elwood's fail-open "no decision" reply arrived — turning every
|
|
28
|
-
* handler timeout into a CLI-side hook failure. The margin keeps Elwood the one
|
|
29
|
-
* that times out, so the parent always sees its typed `hookError` (PRD §6.3).
|
|
30
|
-
*/
|
|
31
|
-
export declare const cliHookTimeoutMarginSeconds = 5;
|
|
32
|
-
export declare function cliHookTimeoutSeconds(hookTimeoutMs: number): number;
|
|
33
|
-
export declare function spawnClaudePty(record: SessionRecord, settingsPath: string, options: StartClaudeOptions & {
|
|
34
|
-
readonly initialSize: TerminalSize;
|
|
35
|
-
}): PtyProcess;
|
|
36
|
-
export declare function registerInitialHooks(emitter: TypedEmitter<ClaudeEventMap>, handlers: StartClaudeOptions["hooks"]): void;
|
|
37
|
-
/**
|
|
38
|
-
* The PTY-exit boundary: run the bounded transcript flush, then emit `terminal:exit`
|
|
39
|
-
* and submit terminal status (which reaps) behind the shared error boundary so a
|
|
40
|
-
* throwing flush/listener never skips the unconditional reap (PRD §5.3 C-LIFE-10).
|
|
41
|
-
*/
|
|
42
|
-
export declare function handleClaudeExit(emitter: TypedEmitter<ClaudeEventMap>, elwoodSessionId: string, exit: PtyExit, finishSafely: (afterFlush: () => void) => void, submitExit: () => void): void;
|
|
43
|
-
//# sourceMappingURL=session-runtime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-runtime.d.ts","sourceRoot":"","sources":["../../src/claude/session-runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EAGd,kBAAkB,EAClB,YAAY,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD,sFAAsF;AACtF,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC;;;;;;0BAQb,QAAQ,CAAC,mBAAmB;EAErD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAW5F;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAA;CAAE,GACnE,UAAU,CAmBZ;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,EACrC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACpC,IAAI,CAKN;AAmBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,EACrC,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,OAAO,EACb,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,IAAI,KAAK,IAAI,EAC9C,UAAU,EAAE,MAAM,IAAI,GACrB,IAAI,CAIN"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime file and PTY helpers for Claude sessions.
|
|
3
|
-
* Implements PRD §4, §6, and §9.
|
|
4
|
-
*/
|
|
5
|
-
import { resolve } from "node:path";
|
|
6
|
-
import { bridgeScriptSource } from "../bridge/script.js";
|
|
7
|
-
import * as activity from "../core/activity.js";
|
|
8
|
-
import { AttentionWatcher } from "../core/attention.js";
|
|
9
|
-
import { causeDetails, elwoodError } from "../core/errors.js";
|
|
10
|
-
import { isRecord } from "../core/predicates.js";
|
|
11
|
-
import { TurnStateWatcher } from "../core/turn-state.js";
|
|
12
|
-
import { currentPtyFactory } from "../runtime/seams.js";
|
|
13
|
-
import { finishSessionExit } from "../runtime/session-exit.js";
|
|
14
|
-
import { userShell } from "../runtime/shell.js";
|
|
15
|
-
import { writePrivateFileAtomic } from "../state/files.js";
|
|
16
|
-
import { buildClaudeShellCommand, shellLaunch } from "./command.js";
|
|
17
|
-
import { claudeScreenFactTableForTrustPolicy } from "./screen-table.js";
|
|
18
|
-
import { generateClaudeSettings } from "./settings.js";
|
|
19
|
-
/** The rendered-frame observers (turn/attention/screen-fact) for a Claude session. */
|
|
20
|
-
export function buildClaudeObservers(elwoodSessionId, autotrust, emitter) {
|
|
21
|
-
return {
|
|
22
|
-
turn: new TurnStateWatcher(),
|
|
23
|
-
attention: new AttentionWatcher(),
|
|
24
|
-
table: claudeScreenFactTableForTrustPolicy(autotrust),
|
|
25
|
-
agent: "claude",
|
|
26
|
-
elwoodSessionId,
|
|
27
|
-
emitActivity: (event) => emitter.emit("activity", event),
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
export function writeRuntimeFiles(runtime, options) {
|
|
31
|
-
writePrivateFileAtomic(runtime.bridgeScriptPath, bridgeScriptSource(runtime.socketPath, runtime.bridgeToken));
|
|
32
|
-
const settings = generateClaudeSettings({
|
|
33
|
-
bridgeScriptPath: runtime.bridgeScriptPath,
|
|
34
|
-
options,
|
|
35
|
-
timeoutSeconds: cliHookTimeoutSeconds(options.hookTimeoutMs ?? 25_000),
|
|
36
|
-
});
|
|
37
|
-
writePrivateFileAtomic(runtime.settingsPath, `${JSON.stringify(settings, null, 2)}\n`);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* The per-hook timeout written into Claude's settings. The CLI's clock starts when
|
|
41
|
-
* it spawns the hook process, BEFORE the bridge connects and Elwood's own
|
|
42
|
-
* `hookTimeoutMs` race begins, so an identical value would let the CLI kill the
|
|
43
|
-
* hook just before Elwood's fail-open "no decision" reply arrived — turning every
|
|
44
|
-
* handler timeout into a CLI-side hook failure. The margin keeps Elwood the one
|
|
45
|
-
* that times out, so the parent always sees its typed `hookError` (PRD §6.3).
|
|
46
|
-
*/
|
|
47
|
-
export const cliHookTimeoutMarginSeconds = 5;
|
|
48
|
-
export function cliHookTimeoutSeconds(hookTimeoutMs) {
|
|
49
|
-
return Math.ceil(hookTimeoutMs / 1000) + cliHookTimeoutMarginSeconds;
|
|
50
|
-
}
|
|
51
|
-
export function spawnClaudePty(record, settingsPath, options) {
|
|
52
|
-
const launch = shellLaunch(userShell(), buildClaudeShellCommand(settingsPath, options, record.claude.resumeId));
|
|
53
|
-
try {
|
|
54
|
-
return currentPtyFactory()({
|
|
55
|
-
command: launch.command,
|
|
56
|
-
args: launch.args,
|
|
57
|
-
cwd: resolve(options.cwd),
|
|
58
|
-
env: {
|
|
59
|
-
...process.env,
|
|
60
|
-
ELWOOD_SESSION_ID: record.elwoodSessionId,
|
|
61
|
-
},
|
|
62
|
-
size: options.initialSize,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
throw elwoodError("pty_start_failed", "Could not start Claude PTY.", causeDetails(error));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
export function registerInitialHooks(emitter, handlers) {
|
|
70
|
-
if (!handlers)
|
|
71
|
-
return;
|
|
72
|
-
for (const [name, handler] of Object.entries(handlers)) {
|
|
73
|
-
emitter.listen(`hook:${name}`, hookHandler(name, handler));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Emit the terminal-exit event and its activity (PRD §5.3 C-LIFE-10). Called from
|
|
78
|
-
* the PTY-exit boundary's `finally` so it always runs, even if the final transcript
|
|
79
|
-
* flush threw — no missed exit event.
|
|
80
|
-
*/
|
|
81
|
-
function emitTerminalExit(emitter, elwoodSessionId, exit) {
|
|
82
|
-
emitter.emit("terminal:exit", { elwoodSessionId, ...exit });
|
|
83
|
-
emitter.emit("activity", activity.activityFromTerminalExit("claude", elwoodSessionId, exit.exitCode));
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* The PTY-exit boundary: run the bounded transcript flush, then emit `terminal:exit`
|
|
87
|
-
* and submit terminal status (which reaps) behind the shared error boundary so a
|
|
88
|
-
* throwing flush/listener never skips the unconditional reap (PRD §5.3 C-LIFE-10).
|
|
89
|
-
*/
|
|
90
|
-
export function handleClaudeExit(emitter, elwoodSessionId, exit, finishSafely, submitExit) {
|
|
91
|
-
finishSafely(() => finishSessionExit(() => emitTerminalExit(emitter, elwoodSessionId, exit), submitExit));
|
|
92
|
-
}
|
|
93
|
-
function hookHandler(name, handler) {
|
|
94
|
-
if (typeof handler === "function")
|
|
95
|
-
return handler;
|
|
96
|
-
if ((name !== "PreToolUse" && name !== "PermissionRequest") || !isRecord(handler)) {
|
|
97
|
-
return () => undefined;
|
|
98
|
-
}
|
|
99
|
-
return ((event) => {
|
|
100
|
-
const toolName = isRecord(event) && typeof event["tool_name"] === "string" ? event["tool_name"] : "";
|
|
101
|
-
const toolHandler = handler[toolName] ?? handler["unknown"];
|
|
102
|
-
return typeof toolHandler === "function" ? toolHandler(event) : undefined;
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=session-runtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-runtime.js","sourceRoot":"","sources":["../../src/claude/session-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wires the Claude transcript watcher into the session's activity stream.
|
|
3
|
-
* Implements PRD §5.4 (C-CLAUDE-15): committed assistant text and tool activity
|
|
4
|
-
* come from the transcript(s), so an un-sent ghost-text suggestion never posts.
|
|
5
|
-
*/
|
|
6
|
-
import * as activity from "../core/activity.ts";
|
|
7
|
-
import { type TranscriptWarningSink } from "../core/transcript/warning-router.ts";
|
|
8
|
-
import { ClaudeTranscriptWatcher } from "./transcript/index.ts";
|
|
9
|
-
/** The session surface the watcher emits warnings through (live-only). */
|
|
10
|
-
export type WarningSink = TranscriptWarningSink;
|
|
11
|
-
/** The narrow emitter surface the transcript wiring needs (activity only). */
|
|
12
|
-
export type TranscriptActivityEmitter = {
|
|
13
|
-
emit(event: "activity", payload: activity.ElwoodActivityEvent): void;
|
|
14
|
-
};
|
|
15
|
-
/** A watcher plus a hook to flush any early-buffered warnings once the sink exists. */
|
|
16
|
-
export type WiredTranscriptWatcher = {
|
|
17
|
-
readonly watcher: ClaudeTranscriptWatcher;
|
|
18
|
-
/** Flush warnings buffered before the session sink existed; call once it does. */
|
|
19
|
-
readonly flushPendingWarnings: () => void;
|
|
20
|
-
/**
|
|
21
|
-
* Drive `watcher.finish()` behind an error boundary (PRD §5.3 C-LIFE-10): the
|
|
22
|
-
* final transcript flush emits deltas through activity listeners, and a throwing
|
|
23
|
-
* listener must NOT abort the PTY-exit callback before it emits `terminal:exit`
|
|
24
|
-
* and reaps. `afterFlush` runs in a `finally` so those
|
|
25
|
-
* steps always execute. The flush itself is bounded (a shared watcher-wide chunk
|
|
26
|
-
* budget plus a small wall-clock slice, §9.2), so it returns to the event loop
|
|
27
|
-
* promptly rather than looping over a hundreds-of-MiB backlog. A flush failure is
|
|
28
|
-
* contained and routed as a bounded, content-free `transcript_poll_stopped`
|
|
29
|
-
* diagnostic carrying `phase: "final_flush"` (so lost trailing shutdown activity
|
|
30
|
-
* is distinguishable from a live poll failure); a throwing diagnostic listener is
|
|
31
|
-
* swallowed so it can't block lifecycle completion.
|
|
32
|
-
*/
|
|
33
|
-
readonly finishSafely: (afterFlush?: () => void) => void;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Builds a transcript watcher that emits committed items and bounded diagnostics
|
|
37
|
-
* (drops, contained fs errors, and a poll-error stop). Diagnostics are routed
|
|
38
|
-
* through the session's warning sink so they are emitted through the
|
|
39
|
-
* `warning`/`activity` contract (live-only, never persisted). The sink is resolved
|
|
40
|
-
* lazily because the session object is constructed after the watcher (PRD §5.7). A
|
|
41
|
-
* diagnostic observed BEFORE the sink exists is BUFFERED and flushed through
|
|
42
|
-
* `emitWarnings` once it does — never silently dropped.
|
|
43
|
-
*/
|
|
44
|
-
export declare function createTranscriptWatcher(elwoodSessionId: string, emitter: TranscriptActivityEmitter, sink?: () => WarningSink | undefined, pollIntervalMs?: number): WiredTranscriptWatcher;
|
|
45
|
-
/** The narrow watcher surface observeTranscript drives (observe + retire only). */
|
|
46
|
-
export type ObservableTranscript = Pick<ClaudeTranscriptWatcher, "observe" | "retire">;
|
|
47
|
-
/**
|
|
48
|
-
* Points the watcher at every transcript path the hook payload carries. A
|
|
49
|
-
* `SubagentStop` event has both a main `transcript_path` and a required
|
|
50
|
-
* `agent_transcript_path`; both must be observed (PRD §5.4). The watcher keeps
|
|
51
|
-
* an independent cursor per path and no-ops on an already-observed path.
|
|
52
|
-
*
|
|
53
|
-
* Backward tail recovery runs only when the FIRST observe of a path lands on a
|
|
54
|
-
* turn-boundary hook (`Stop`/`SubagentStop`) — the case where a just-committed
|
|
55
|
-
* turn would otherwise be missed. On `SessionStart`/resume the first observe
|
|
56
|
-
* baselines at EOF with no recovery, so a resumed session never republishes the
|
|
57
|
-
* prior conversation's final assistant/tool turn (PRD §5.4, C-CLAUDE-15).
|
|
58
|
-
*/
|
|
59
|
-
export declare function observeTranscript(watcher: ObservableTranscript, event: {
|
|
60
|
-
readonly [key: string]: unknown;
|
|
61
|
-
}): void;
|
|
62
|
-
//# sourceMappingURL=session-transcript.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-transcript.d.ts","sourceRoot":"","sources":["../../src/claude/session-transcript.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,0EAA0E;AAC1E,MAAM,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAEhD,8EAA8E;AAC9E,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,mBAAmB,GAAG,IAAI,CAAC;CACtE,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC;IAC1C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,yBAAyB,EAClC,IAAI,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,EAGpC,cAAc,CAAC,EAAE,MAAM,GACtB,sBAAsB,CAmCxB;AAKD,mFAAmF;AACnF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;AAEvF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACzC,IAAI,CAcN"}
|