@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
package/dist/cli/session.d.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Exact new/resume session facade for headless CLI execution.
|
|
3
|
-
* Implements PRD §12A.2/§12A.5 and C-CLI-03/C-CLI-04/C-CLI-08/C-CLI-15.
|
|
4
|
-
*/
|
|
5
|
-
import type { ElwoodAgentSession, ElwoodCommonEventMap } from "../core/agent-session.ts";
|
|
6
|
-
import type { TurnEvent } from "../core/simple/events.ts";
|
|
7
|
-
import { SessionBase } from "../core/simple/session.ts";
|
|
8
|
-
import type { TurnOptions } from "../core/simple/turn-types.ts";
|
|
9
|
-
import type { ElwoodSessionStatus, TerminalSize, Unsubscribe } from "../core/types.ts";
|
|
10
|
-
import type { SessionRecord } from "../state/store.ts";
|
|
11
|
-
import { finalizeRunRequest } from "./request.ts";
|
|
12
|
-
import { type CliLaunchDependencies } from "./session-launch.ts";
|
|
13
|
-
import type { CliAgent, EffectiveRunRequest, ResolvedRunRequest } from "./types.ts";
|
|
14
|
-
export type CliSessionDependencies = {
|
|
15
|
-
readonly randomId: () => string;
|
|
16
|
-
readonly readRecord: (stateDir: string, id: string) => SessionRecord;
|
|
17
|
-
readonly finalize: typeof finalizeRunRequest;
|
|
18
|
-
readonly launch: CliLaunchDependencies;
|
|
19
|
-
};
|
|
20
|
-
export type PreparedCliSession = {
|
|
21
|
-
readonly request: EffectiveRunRequest;
|
|
22
|
-
readonly session: CliSessionFacade;
|
|
23
|
-
};
|
|
24
|
-
export interface CliSessionFacade {
|
|
25
|
-
readonly agent: CliAgent;
|
|
26
|
-
readonly id: string;
|
|
27
|
-
readonly resumed: boolean;
|
|
28
|
-
readonly status: ElwoodSessionStatus;
|
|
29
|
-
readonly session: ElwoodAgentSession | undefined;
|
|
30
|
-
start(): Promise<ElwoodAgentSession>;
|
|
31
|
-
setup(): Promise<void>;
|
|
32
|
-
stream(prompt: string, options?: TurnOptions): AsyncGenerator<TurnEvent>;
|
|
33
|
-
send(prompt: string, options?: TurnOptions): Promise<string>;
|
|
34
|
-
on<E extends keyof ElwoodCommonEventMap>(event: E, handler: (event: ElwoodCommonEventMap[E]) => void): Unsubscribe;
|
|
35
|
-
interrupt(options?: {
|
|
36
|
-
readonly timeoutMs?: number;
|
|
37
|
-
}): Promise<void>;
|
|
38
|
-
resize(size: TerminalSize): Promise<void>;
|
|
39
|
-
close(): Promise<void>;
|
|
40
|
-
kill(): Promise<void>;
|
|
41
|
-
teardown(): Promise<void>;
|
|
42
|
-
preservedSessionId(): string | null;
|
|
43
|
-
}
|
|
44
|
-
/** Resolve stored identity first, then create one lazy facade for the effective adapter. */
|
|
45
|
-
export declare function prepareCliSession(draft: ResolvedRunRequest, dependencies?: CliSessionDependencies): Promise<PreparedCliSession>;
|
|
46
|
-
export declare class HeadlessCliSession extends SessionBase<ElwoodAgentSession> implements CliSessionFacade {
|
|
47
|
-
readonly agent: CliAgent;
|
|
48
|
-
readonly id: string;
|
|
49
|
-
readonly resumed: boolean;
|
|
50
|
-
private readonly request;
|
|
51
|
-
private readonly launchSession;
|
|
52
|
-
private setupPromise;
|
|
53
|
-
private pendingLaunch;
|
|
54
|
-
constructor(request: EffectiveRunRequest, id: string, launch: () => Promise<ElwoodAgentSession>);
|
|
55
|
-
protected readonly readBoundarySignal: import("../core/simple/turn-types.ts").BoundarySignalReader;
|
|
56
|
-
protected launch(): Promise<ElwoodAgentSession>;
|
|
57
|
-
private validatedLaunch;
|
|
58
|
-
setup(): Promise<void>;
|
|
59
|
-
on<E extends keyof ElwoodCommonEventMap>(event: E, handler: (event: ElwoodCommonEventMap[E]) => void): Unsubscribe;
|
|
60
|
-
teardown(): Promise<void>;
|
|
61
|
-
close(): Promise<void>;
|
|
62
|
-
preservedSessionId(): string | null;
|
|
63
|
-
private performSetup;
|
|
64
|
-
private clearPendingLaunch;
|
|
65
|
-
private deferPendingCleanup;
|
|
66
|
-
private removeIdentityAfterFailedLaunch;
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/cli/session.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/session.js
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Exact new/resume session facade for headless CLI execution.
|
|
3
|
-
* Implements PRD §12A.2/§12A.5 and C-CLI-03/C-CLI-04/C-CLI-08/C-CLI-15.
|
|
4
|
-
*/
|
|
5
|
-
import { randomUUID } from "node:crypto";
|
|
6
|
-
import { elwoodError } from "../core/errors.js";
|
|
7
|
-
import { SessionBase } from "../core/simple/session.js";
|
|
8
|
-
import { defaultBoundarySignal } from "../core/simple/turn.js";
|
|
9
|
-
import { readPrivateSessionRecord, removeSessionIdentity } from "../state/private-session.js";
|
|
10
|
-
import { finalizeRunRequest } from "./request.js";
|
|
11
|
-
import { createCliLaunch, defaultCliLaunchDependencies, } from "./session-launch.js";
|
|
12
|
-
const defaults = {
|
|
13
|
-
randomId: randomUUID,
|
|
14
|
-
readRecord: readPrivateSessionRecord,
|
|
15
|
-
finalize: finalizeRunRequest,
|
|
16
|
-
launch: defaultCliLaunchDependencies,
|
|
17
|
-
};
|
|
18
|
-
/** Resolve stored identity first, then create one lazy facade for the effective adapter. */
|
|
19
|
-
export async function prepareCliSession(draft, dependencies = defaults) {
|
|
20
|
-
const stored = draft.resume === undefined ? undefined : dependencies.readRecord(draft.stateDir, draft.resume);
|
|
21
|
-
const request = await dependencies.finalize(draft, stored === undefined ? undefined : { agent: stored.adapter, cwd: stored.cwd });
|
|
22
|
-
const id = draft.resume ?? dependencies.randomId();
|
|
23
|
-
const launch = createCliLaunch(request, id, dependencies.launch);
|
|
24
|
-
return { request, session: new HeadlessCliSession(request, id, launch) };
|
|
25
|
-
}
|
|
26
|
-
export class HeadlessCliSession extends SessionBase {
|
|
27
|
-
agent;
|
|
28
|
-
id;
|
|
29
|
-
resumed;
|
|
30
|
-
request;
|
|
31
|
-
launchSession;
|
|
32
|
-
setupPromise;
|
|
33
|
-
pendingLaunch;
|
|
34
|
-
constructor(request, id, launch) {
|
|
35
|
-
super();
|
|
36
|
-
this.request = request;
|
|
37
|
-
this.agent = request.agent;
|
|
38
|
-
this.id = id;
|
|
39
|
-
this.resumed = request.resume !== undefined;
|
|
40
|
-
this.launchSession = launch;
|
|
41
|
-
}
|
|
42
|
-
readBoundarySignal = defaultBoundarySignal;
|
|
43
|
-
launch() {
|
|
44
|
-
const pending = this.validatedLaunch();
|
|
45
|
-
this.pendingLaunch = pending;
|
|
46
|
-
void pending.then(() => this.clearPendingLaunch(), () => this.clearPendingLaunch());
|
|
47
|
-
return pending;
|
|
48
|
-
}
|
|
49
|
-
async validatedLaunch() {
|
|
50
|
-
const session = await this.launchSession();
|
|
51
|
-
if (session.elwoodSessionId !== this.id) {
|
|
52
|
-
await session.kill().catch(() => undefined);
|
|
53
|
-
throw elwoodError("state_corrupt", "Started session identity did not match its owner.");
|
|
54
|
-
}
|
|
55
|
-
return session;
|
|
56
|
-
}
|
|
57
|
-
setup() {
|
|
58
|
-
this.setupPromise ??= this.performSetup();
|
|
59
|
-
return this.setupPromise;
|
|
60
|
-
}
|
|
61
|
-
on(event, handler) {
|
|
62
|
-
return this.subscribe(event, handler, (session) => session.on(event, handler));
|
|
63
|
-
}
|
|
64
|
-
teardown() {
|
|
65
|
-
const live = this.session;
|
|
66
|
-
if (live !== undefined)
|
|
67
|
-
return live.teardown();
|
|
68
|
-
this.deferPendingCleanup("teardown");
|
|
69
|
-
return Promise.resolve().then(() => {
|
|
70
|
-
removeSessionIdentity(this.request.stateDir, this.id, this.agent);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
close() {
|
|
74
|
-
const live = this.session;
|
|
75
|
-
if (live !== undefined)
|
|
76
|
-
return this.closeLiveSession(live);
|
|
77
|
-
if (this.pendingLaunch !== undefined && this.preservedSessionId() === null) {
|
|
78
|
-
return this.teardown();
|
|
79
|
-
}
|
|
80
|
-
this.deferPendingCleanup("close");
|
|
81
|
-
return Promise.resolve();
|
|
82
|
-
}
|
|
83
|
-
preservedSessionId() {
|
|
84
|
-
try {
|
|
85
|
-
const record = readPrivateSessionRecord(this.request.stateDir, this.id);
|
|
86
|
-
if (record.adapter !== this.agent || !record[record.adapter].resumeId)
|
|
87
|
-
return null;
|
|
88
|
-
return this.id;
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
async performSetup() {
|
|
95
|
-
await this.start();
|
|
96
|
-
if (this.resumed && this.request.model !== undefined)
|
|
97
|
-
await this.setModel(this.request.model);
|
|
98
|
-
if (!this.resumed && this.request.persona !== undefined) {
|
|
99
|
-
await this.send(this.request.persona);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
clearPendingLaunch() {
|
|
103
|
-
this.pendingLaunch = undefined;
|
|
104
|
-
}
|
|
105
|
-
deferPendingCleanup(action) {
|
|
106
|
-
if (this.pendingLaunch === undefined)
|
|
107
|
-
return;
|
|
108
|
-
void this.start().then(async (live) => {
|
|
109
|
-
await (action === "teardown" ? live.teardown() : this.closeLiveSession(live)).catch(() => undefined);
|
|
110
|
-
}, () => {
|
|
111
|
-
if (action === "teardown")
|
|
112
|
-
this.removeIdentityAfterFailedLaunch();
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
removeIdentityAfterFailedLaunch() {
|
|
116
|
-
try {
|
|
117
|
-
removeSessionIdentity(this.request.stateDir, this.id, this.agent);
|
|
118
|
-
}
|
|
119
|
-
catch {
|
|
120
|
-
// The synchronous cleanup already reported its failure; this late retry is best-effort.
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=session.js.map
|
package/dist/cli/session.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/cli/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Codex image attachment: Codex ingests an interactive image only from the OS
|
|
3
|
-
* clipboard via Ctrl+V (it reads `public.tiff` off the macOS NSPasteboard), so
|
|
4
|
-
* Elwood snapshots the clipboard TEXT once (only text is captured), then for each
|
|
5
|
-
* image sets it + Ctrl+V + waits for the `[Image #N]` chip, then restores the text
|
|
6
|
-
* snapshot. macOS-only, and
|
|
7
|
-
* the whole transaction holds a process-wide clipboard lock so concurrent Codex
|
|
8
|
-
* sessions cannot cross-attach. Implements PRD §5.3 (C-API-46).
|
|
9
|
-
*/
|
|
10
|
-
import { type AttachTerminal, type BlockedGuard } from "../core/images/chip-wait.ts";
|
|
11
|
-
/**
|
|
12
|
-
* Attaches every image via the clipboard under a process-wide lock, restoring
|
|
13
|
-
* the user's clipboard text afterward (best-effort). Rejects with
|
|
14
|
-
* `unsupported_platform` on non-macOS BEFORE touching the clipboard, and with
|
|
15
|
-
* `image_attach_failed`/`invalid_image` on a snapshot/set/confirm failure; the
|
|
16
|
-
* caller then submits no text. The Ctrl+V is held while a blocking dialog is on
|
|
17
|
-
* screen so it never confirms a dialog (C-API-37/46).
|
|
18
|
-
*/
|
|
19
|
-
export declare function attachCodexImages(terminal: AttachTerminal, paths: readonly string[], signal: AbortSignal, blocked?: BlockedGuard, onRestoreFailed?: () => void): Promise<void>;
|
|
20
|
-
//# sourceMappingURL=attach-images.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attach-images.d.ts","sourceRoot":"","sources":["../../src/codex/attach-images.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,YAAY,EAMlB,MAAM,6BAA6B,CAAC;AAYrC;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,YAAY,EACtB,eAAe,CAAC,EAAE,MAAM,IAAI,GAC3B,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Codex image attachment: Codex ingests an interactive image only from the OS
|
|
3
|
-
* clipboard via Ctrl+V (it reads `public.tiff` off the macOS NSPasteboard), so
|
|
4
|
-
* Elwood snapshots the clipboard TEXT once (only text is captured), then for each
|
|
5
|
-
* image sets it + Ctrl+V + waits for the `[Image #N]` chip, then restores the text
|
|
6
|
-
* snapshot. macOS-only, and
|
|
7
|
-
* the whole transaction holds a process-wide clipboard lock so concurrent Codex
|
|
8
|
-
* sessions cannot cross-attach. Implements PRD §5.3 (C-API-46).
|
|
9
|
-
*/
|
|
10
|
-
import { elwoodError } from "../core/errors.js";
|
|
11
|
-
import { clearComposer, imageChipCount, sendWhenUnblocked, waitForImageChip, } from "../core/images/chip-wait.js";
|
|
12
|
-
import { clipboardImageSupported, restoreClipboardText, setClipboardImage, snapshotClipboardText, } from "./clipboard.js";
|
|
13
|
-
import { withClipboardLock } from "./clipboard-lock.js";
|
|
14
|
-
const CTRL_V = "\u0016"; // Ctrl+V triggers Codex clipboard-image paste
|
|
15
|
-
const chipWait = { settleMs: 200, timeoutMs: 10_000, pollMs: 100 };
|
|
16
|
-
/**
|
|
17
|
-
* Attaches every image via the clipboard under a process-wide lock, restoring
|
|
18
|
-
* the user's clipboard text afterward (best-effort). Rejects with
|
|
19
|
-
* `unsupported_platform` on non-macOS BEFORE touching the clipboard, and with
|
|
20
|
-
* `image_attach_failed`/`invalid_image` on a snapshot/set/confirm failure; the
|
|
21
|
-
* caller then submits no text. The Ctrl+V is held while a blocking dialog is on
|
|
22
|
-
* screen so it never confirms a dialog (C-API-37/46).
|
|
23
|
-
*/
|
|
24
|
-
export async function attachCodexImages(terminal, paths, signal, blocked, onRestoreFailed) {
|
|
25
|
-
if (!clipboardImageSupported())
|
|
26
|
-
throw elwoodError("unsupported_platform", "Codex image attachment requires macOS.");
|
|
27
|
-
await withClipboardLock(() => attachUnderLock(terminal, paths, signal, blocked, onRestoreFailed));
|
|
28
|
-
}
|
|
29
|
-
async function attachUnderLock(terminal, paths, signal, blocked, onRestoreFailed) {
|
|
30
|
-
// A waiter that acquired the lock only after its session closed must touch
|
|
31
|
-
// nothing — check abort FIRST, before snapshotting or mutating the clipboard.
|
|
32
|
-
if (signal.aborted)
|
|
33
|
-
throw elwoodError("image_attach_failed", "Image attach aborted.");
|
|
34
|
-
// Snapshot BEFORE mutating; a snapshot failure rejects here so we never
|
|
35
|
-
// overwrite then "restore" an empty string over the user's clipboard.
|
|
36
|
-
const priorClipboard = await snapshotClipboardText();
|
|
37
|
-
let staged = false;
|
|
38
|
-
try {
|
|
39
|
-
for (const path of paths) {
|
|
40
|
-
const before = imageChipCount(terminal.snapshot().text);
|
|
41
|
-
await setClipboardImage(path);
|
|
42
|
-
// sendWhenUnblocked rejects if the signal is already aborted, so a mid-attach
|
|
43
|
-
// close is caught here before the Ctrl+V reaches the PTY (C-API-46).
|
|
44
|
-
await sendWhenUnblocked(terminal, CTRL_V, blocked, signal);
|
|
45
|
-
staged = true;
|
|
46
|
-
await waitForImageChip(terminal, before, signal, chipWait);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
if (staged)
|
|
51
|
-
await clearComposer(terminal); // discard staged chips on failure (C-API-44)
|
|
52
|
-
throw error;
|
|
53
|
-
}
|
|
54
|
-
finally {
|
|
55
|
-
// Best-effort and fully isolated: neither the restore nor its warning callback
|
|
56
|
-
// may reject or mask the primary attach result/error (C-API-46).
|
|
57
|
-
try {
|
|
58
|
-
if (!(await restoreClipboardText(priorClipboard)))
|
|
59
|
-
onRestoreFailed?.();
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
// A throwing warning sink must not turn a successful attach into a failure.
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=attach-images.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attach-images.js","sourceRoot":"","sources":["../../src/codex/attach-images.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAIL,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,8CAA8C;AACvE,MAAM,QAAQ,GAAoB,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,KAAwB,EACxB,MAAmB,EACnB,OAAsB,EACtB,eAA4B;IAE5B,IAAI,CAAC,uBAAuB,EAAE;QAC5B,MAAM,WAAW,CAAC,sBAAsB,EAAE,wCAAwC,CAAC,CAAC;IACtF,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,QAAwB,EACxB,KAAwB,EACxB,MAAmB,EACnB,OAAiC,EACjC,eAAyC;IAEzC,2EAA2E;IAC3E,8EAA8E;IAC9E,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,WAAW,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;IACtF,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,cAAc,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACrD,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9B,8EAA8E;YAC9E,qEAAqE;YACrE,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC3D,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM;YAAE,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,6CAA6C;QACxF,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,+EAA+E;QAC/E,iEAAiE;QACjE,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,oBAAoB,CAAC,cAAc,CAAC,CAAC;gBAAE,eAAe,EAAE,EAAE,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,4EAA4E;QAC9E,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Process-wide async mutex for the macOS clipboard. The clipboard is a single
|
|
3
|
-
* global resource, but Elwood sessions serialize only per-session, so two
|
|
4
|
-
* concurrent Codex image attaches could interleave their snapshot/set/paste/
|
|
5
|
-
* restore transactions and cross-attach each other's images. This serializes the
|
|
6
|
-
* whole transaction across all sessions in the process. Implements PRD §5.3
|
|
7
|
-
* (C-API-46).
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Runs `task` while holding the clipboard lock: each caller waits for the prior
|
|
11
|
-
* holder to finish before starting, and the lock is released when `task`
|
|
12
|
-
* settles (success or failure), so a failing attach never wedges the queue.
|
|
13
|
-
*/
|
|
14
|
-
export declare const withClipboardLock: import("../core/async-mutex.ts").AsyncMutex;
|
|
15
|
-
//# sourceMappingURL=clipboard-lock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard-lock.d.ts","sourceRoot":"","sources":["../../src/codex/clipboard-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,6CAAqB,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Process-wide async mutex for the macOS clipboard. The clipboard is a single
|
|
3
|
-
* global resource, but Elwood sessions serialize only per-session, so two
|
|
4
|
-
* concurrent Codex image attaches could interleave their snapshot/set/paste/
|
|
5
|
-
* restore transactions and cross-attach each other's images. This serializes the
|
|
6
|
-
* whole transaction across all sessions in the process. Implements PRD §5.3
|
|
7
|
-
* (C-API-46).
|
|
8
|
-
*/
|
|
9
|
-
import { createAsyncMutex } from "../core/async-mutex.js";
|
|
10
|
-
/**
|
|
11
|
-
* Runs `task` while holding the clipboard lock: each caller waits for the prior
|
|
12
|
-
* holder to finish before starting, and the lock is released when `task`
|
|
13
|
-
* settles (success or failure), so a failing attach never wedges the queue.
|
|
14
|
-
*/
|
|
15
|
-
export const withClipboardLock = createAsyncMutex();
|
|
16
|
-
//# sourceMappingURL=clipboard-lock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard-lock.js","sourceRoot":"","sources":["../../src/codex/clipboard-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* macOS clipboard save / set-image / restore for Codex image attachment. Codex
|
|
3
|
-
* ingests an interactive image only from the OS clipboard (it reads `public.tiff`
|
|
4
|
-
* off `NSPasteboard`), so Elwood writes the image there, triggers a paste, then
|
|
5
|
-
* restores the user's prior clipboard TEXT (only text is snapshotted). Async (never blocks the event loop) and
|
|
6
|
-
* Codex-local, since this is Codex/macOS-specific mechanics. Implements PRD §5.3
|
|
7
|
-
* (C-API-46).
|
|
8
|
-
*/
|
|
9
|
-
/** Canonical, content-free copy for the clipboard-restore-failed warning (C-API-46). */
|
|
10
|
-
export declare const CLIPBOARD_RESTORE_FAILED_MESSAGE = "Elwood could not restore the clipboard after attaching an image.";
|
|
11
|
-
/** True only on macOS, where the NSPasteboard-backed attach path is available. */
|
|
12
|
-
export declare function clipboardImageSupported(): boolean;
|
|
13
|
-
/**
|
|
14
|
-
* The current clipboard text. Rejects with `image_attach_failed` when `pbpaste`
|
|
15
|
-
* fails, so the caller can abort BEFORE mutating the clipboard rather than later
|
|
16
|
-
* "restoring" an empty string over the user's real clipboard (C-API-46).
|
|
17
|
-
*/
|
|
18
|
-
export declare function snapshotClipboardText(): Promise<string>;
|
|
19
|
-
/**
|
|
20
|
-
* Restores clipboard text captured by `snapshotClipboardText` (best-effort).
|
|
21
|
-
* Returns whether the restore succeeded, so the caller can surface a content-free
|
|
22
|
-
* warning if the user's prior clipboard may have been lost (C-API-46).
|
|
23
|
-
*/
|
|
24
|
-
export declare function restoreClipboardText(text: string): Promise<boolean>;
|
|
25
|
-
/**
|
|
26
|
-
* Writes the image file at `path` onto the macOS clipboard as a native image.
|
|
27
|
-
* A file the decoder cannot load is a bad INPUT → `invalid_image`; a pasteboard
|
|
28
|
-
* write failure, process failure, or timeout is an OS/attach failure →
|
|
29
|
-
* `image_attach_failed`. Either way the caller aborts before pasting (C-API-46).
|
|
30
|
-
*/
|
|
31
|
-
export declare function setClipboardImage(path: string): Promise<void>;
|
|
32
|
-
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/codex/clipboard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH,wFAAwF;AACxF,eAAO,MAAM,gCAAgC,qEACuB,CAAC;AAErE,kFAAkF;AAClF,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAS7D;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASzE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASnE"}
|
package/dist/codex/clipboard.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* macOS clipboard save / set-image / restore for Codex image attachment. Codex
|
|
3
|
-
* ingests an interactive image only from the OS clipboard (it reads `public.tiff`
|
|
4
|
-
* off `NSPasteboard`), so Elwood writes the image there, triggers a paste, then
|
|
5
|
-
* restores the user's prior clipboard TEXT (only text is snapshotted). Async (never blocks the event loop) and
|
|
6
|
-
* Codex-local, since this is Codex/macOS-specific mechanics. Implements PRD §5.3
|
|
7
|
-
* (C-API-46).
|
|
8
|
-
*/
|
|
9
|
-
import { execFile } from "node:child_process";
|
|
10
|
-
import { promisify } from "node:util";
|
|
11
|
-
import { elwoodError } from "../core/errors.js";
|
|
12
|
-
import { currentPlatform } from "../runtime/seams.js";
|
|
13
|
-
const run = promisify(execFile);
|
|
14
|
-
const OSASCRIPT = "/usr/bin/osascript";
|
|
15
|
-
const PBPASTE = "/usr/bin/pbpaste";
|
|
16
|
-
const PBCOPY = "/usr/bin/pbcopy";
|
|
17
|
-
// JXA hosting AppKit: load the file as an NSImage and lay it on the pasteboard
|
|
18
|
-
// with writeObjects, which writes the canonical `public.tiff` representation the
|
|
19
|
-
// `arboard` reader Codex uses expects. A bare JS array becomes an NSDictionary
|
|
20
|
-
// under the bridge and is rejected, so the image is wrapped in a real NSArray.
|
|
21
|
-
const SET_IMAGE_JXA = 'function run(argv){ObjC.import("AppKit");' +
|
|
22
|
-
"var img=$.NSImage.alloc.initWithContentsOfFile(argv[0]);" +
|
|
23
|
-
'if(!img||img.isNil())throw new Error("image load failed");' +
|
|
24
|
-
"var pb=$.NSPasteboard.generalPasteboard;pb.clearContents;" +
|
|
25
|
-
"if(!pb.writeObjects($.NSArray.arrayWithObject(img)))" +
|
|
26
|
-
'throw new Error("clipboard write failed");return "ok";}';
|
|
27
|
-
/** Canonical, content-free copy for the clipboard-restore-failed warning (C-API-46). */
|
|
28
|
-
export const CLIPBOARD_RESTORE_FAILED_MESSAGE = "Elwood could not restore the clipboard after attaching an image.";
|
|
29
|
-
/** True only on macOS, where the NSPasteboard-backed attach path is available. */
|
|
30
|
-
export function clipboardImageSupported() {
|
|
31
|
-
return currentPlatform() === "darwin";
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* The current clipboard text. Rejects with `image_attach_failed` when `pbpaste`
|
|
35
|
-
* fails, so the caller can abort BEFORE mutating the clipboard rather than later
|
|
36
|
-
* "restoring" an empty string over the user's real clipboard (C-API-46).
|
|
37
|
-
*/
|
|
38
|
-
export async function snapshotClipboardText() {
|
|
39
|
-
try {
|
|
40
|
-
const { stdout } = await run(PBPASTE, [], { timeout: 5_000, encoding: "utf8" });
|
|
41
|
-
return stdout;
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
throw elwoodError("image_attach_failed", "Could not read the clipboard.", {
|
|
45
|
-
cause: error instanceof Error ? error.message : String(error),
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Restores clipboard text captured by `snapshotClipboardText` (best-effort).
|
|
51
|
-
* Returns whether the restore succeeded, so the caller can surface a content-free
|
|
52
|
-
* warning if the user's prior clipboard may have been lost (C-API-46).
|
|
53
|
-
*/
|
|
54
|
-
export async function restoreClipboardText(text) {
|
|
55
|
-
try {
|
|
56
|
-
const child = run(PBCOPY, [], { timeout: 5_000 });
|
|
57
|
-
child.child.stdin?.end(text); // inside try so a synchronous spawn/stdin failure can't escape
|
|
58
|
-
await child;
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Writes the image file at `path` onto the macOS clipboard as a native image.
|
|
67
|
-
* A file the decoder cannot load is a bad INPUT → `invalid_image`; a pasteboard
|
|
68
|
-
* write failure, process failure, or timeout is an OS/attach failure →
|
|
69
|
-
* `image_attach_failed`. Either way the caller aborts before pasting (C-API-46).
|
|
70
|
-
*/
|
|
71
|
-
export async function setClipboardImage(path) {
|
|
72
|
-
try {
|
|
73
|
-
await run(OSASCRIPT, ["-l", "JavaScript", "-e", SET_IMAGE_JXA, path], { timeout: 10_000 });
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
const reason = clipboardErrorReason(error);
|
|
77
|
-
// The JXA throws "image load failed" only when NSImage cannot decode the file.
|
|
78
|
-
const code = /image load failed/i.test(reason) ? "invalid_image" : "image_attach_failed";
|
|
79
|
-
throw elwoodError(code, `Could not place image on clipboard: ${reason}`, { path });
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
function clipboardErrorReason(error) {
|
|
83
|
-
if (error && typeof error === "object") {
|
|
84
|
-
const { stderr, message } = error;
|
|
85
|
-
if (typeof stderr === "string" && stderr.trim())
|
|
86
|
-
return stderr.trim();
|
|
87
|
-
if (typeof message === "string" && message.trim())
|
|
88
|
-
return message.trim();
|
|
89
|
-
}
|
|
90
|
-
return "clipboard image write failed";
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=clipboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/codex/clipboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Process-wide async mutex for the Codex `config.toml`. The file is a single
|
|
3
|
-
* process-global resource, but Elwood sessions serialize only per-session, so
|
|
4
|
-
* two concurrent `setModel` switches could interleave their snapshot / picker /
|
|
5
|
-
* compare-and-swap restore transactions on the shared file and leave the wrong
|
|
6
|
-
* model persisted as the user's default. This serializes the whole transaction
|
|
7
|
-
* across all sessions in the process. Mirrors clipboard-lock.ts and implements
|
|
8
|
-
* PRD §5.3 setModel restore and C-CODEX-14.
|
|
9
|
-
*
|
|
10
|
-
* SCOPE: this lock is PROCESS-LOCAL. Two separate Elwood processes sharing one
|
|
11
|
-
* `config.toml` can still interleave their transactions — an accepted current
|
|
12
|
-
* limitation (the compare-and-swap still refuses to clobber an unrelated edit).
|
|
13
|
-
* Closing it needs an inter-process lock on the resolved path and is separate work.
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Runs `task` while holding the config lock: each caller waits for the prior
|
|
17
|
-
* holder to finish before starting, and the lock is released when `task`
|
|
18
|
-
* settles (success or failure), so a failing switch never wedges the queue.
|
|
19
|
-
*/
|
|
20
|
-
export declare const withCodexConfigLock: import("../core/async-mutex.ts").AsyncMutex;
|
|
21
|
-
//# sourceMappingURL=config-lock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-lock.d.ts","sourceRoot":"","sources":["../../src/codex/config-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,6CAAqB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Process-wide async mutex for the Codex `config.toml`. The file is a single
|
|
3
|
-
* process-global resource, but Elwood sessions serialize only per-session, so
|
|
4
|
-
* two concurrent `setModel` switches could interleave their snapshot / picker /
|
|
5
|
-
* compare-and-swap restore transactions on the shared file and leave the wrong
|
|
6
|
-
* model persisted as the user's default. This serializes the whole transaction
|
|
7
|
-
* across all sessions in the process. Mirrors clipboard-lock.ts and implements
|
|
8
|
-
* PRD §5.3 setModel restore and C-CODEX-14.
|
|
9
|
-
*
|
|
10
|
-
* SCOPE: this lock is PROCESS-LOCAL. Two separate Elwood processes sharing one
|
|
11
|
-
* `config.toml` can still interleave their transactions — an accepted current
|
|
12
|
-
* limitation (the compare-and-swap still refuses to clobber an unrelated edit).
|
|
13
|
-
* Closing it needs an inter-process lock on the resolved path and is separate work.
|
|
14
|
-
*/
|
|
15
|
-
import { createAsyncMutex } from "../core/async-mutex.js";
|
|
16
|
-
/**
|
|
17
|
-
* Runs `task` while holding the config lock: each caller waits for the prior
|
|
18
|
-
* holder to finish before starting, and the lock is released when `task`
|
|
19
|
-
* settles (success or failure), so a failing switch never wedges the queue.
|
|
20
|
-
*/
|
|
21
|
-
export const withCodexConfigLock = createAsyncMutex();
|
|
22
|
-
//# sourceMappingURL=config-lock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-lock.js","sourceRoot":"","sources":["../../src/codex/config-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compensates the Codex CLI persisting picker selections into config.toml.
|
|
3
|
-
* Implements PRD §5.3 setModel restore and C-CODEX-14: a compare-and-swap restore
|
|
4
|
-
* of the user's global config that never clobbers concurrent edits, written
|
|
5
|
-
* atomically (sibling temp file + rename) so a crash mid-restore can never leave
|
|
6
|
-
* the user's config truncated.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* `restored`: the snapshot was written back. `unchanged`: the picker wrote nothing.
|
|
10
|
-
* `skipped`: the file changed in ways other than the root model keys (or vanished),
|
|
11
|
-
* so it was left alone. `no_snapshot`: no config.toml existed before the switch and
|
|
12
|
-
* the picker created one — Elwood has nothing to restore and leaves the new file.
|
|
13
|
-
*/
|
|
14
|
-
type ConfigRestoreOutcome = "restored" | "skipped" | "unchanged" | "no_snapshot";
|
|
15
|
-
export declare function codexConfigPath(): string;
|
|
16
|
-
/**
|
|
17
|
-
* Builds the CONTENT-FREE `raw` for a swallowed restore-failure warning: the config
|
|
18
|
-
* path plus a bounded errno code only — never the error message, which could carry
|
|
19
|
-
* credentials or conversation data if the failure came from a public listener.
|
|
20
|
-
*/
|
|
21
|
-
export declare function restoreFailureRaw(path: string, error: unknown): string;
|
|
22
|
-
export declare function snapshotCodexConfig(): string | undefined;
|
|
23
|
-
/**
|
|
24
|
-
* Restores the snapshot if and only if the file now differs solely in the
|
|
25
|
-
* root-level model keys the picker writes. Anything else — a concurrent user
|
|
26
|
-
* edit, an unexpected rewrite — skips the restore so user-owned configuration is
|
|
27
|
-
* never clobbered. With no snapshot (no config.toml before the switch) a file the
|
|
28
|
-
* picker created is reported as `no_snapshot` rather than misreported as a
|
|
29
|
-
* concurrent edit.
|
|
30
|
-
*/
|
|
31
|
-
export declare function restoreCodexConfig(snapshot: string | undefined): ConfigRestoreOutcome;
|
|
32
|
-
export {};
|
|
33
|
-
//# sourceMappingURL=config-restore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-restore.d.ts","sourceRoot":"","sources":["../../src/codex/config-restore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH;;;;;GAKG;AACH,KAAK,oBAAoB,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;AAEjF,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAGxD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,CAUrF"}
|