@with-logic/elwood 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +172 -0
- package/LICENSE +21 -0
- package/README.md +304 -0
- package/dist/bridge/limits.d.ts +13 -0
- package/dist/bridge/limits.d.ts.map +1 -0
- package/dist/bridge/limits.js +13 -0
- package/dist/bridge/limits.js.map +1 -0
- package/dist/bridge/parse.d.ts +21 -0
- package/dist/bridge/parse.d.ts.map +1 -0
- package/dist/bridge/parse.js +45 -0
- package/dist/bridge/parse.js.map +1 -0
- package/dist/bridge/script.d.ts +6 -0
- package/dist/bridge/script.d.ts.map +1 -0
- package/dist/bridge/script.js +76 -0
- package/dist/bridge/script.js.map +1 -0
- package/dist/bridge/server.d.ts +26 -0
- package/dist/bridge/server.d.ts.map +1 -0
- package/dist/bridge/server.js +149 -0
- package/dist/bridge/server.js.map +1 -0
- package/dist/bridge/types.d.ts +10 -0
- package/dist/bridge/types.d.ts.map +1 -0
- package/dist/bridge/types.js +6 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/claude/attach-images.d.ts +17 -0
- package/dist/claude/attach-images.d.ts.map +1 -0
- package/dist/claude/attach-images.js +42 -0
- package/dist/claude/attach-images.js.map +1 -0
- package/dist/claude/command.d.ts +11 -0
- package/dist/claude/command.d.ts.map +1 -0
- package/dist/claude/command.js +34 -0
- package/dist/claude/command.js.map +1 -0
- package/dist/claude/handler-types.d.ts +23 -0
- package/dist/claude/handler-types.d.ts.map +1 -0
- package/dist/claude/handler-types.js +6 -0
- package/dist/claude/handler-types.js.map +1 -0
- package/dist/claude/hook-dispatch.d.ts +9 -0
- package/dist/claude/hook-dispatch.d.ts.map +1 -0
- package/dist/claude/hook-dispatch.js +12 -0
- package/dist/claude/hook-dispatch.js.map +1 -0
- package/dist/claude/hook-events-extra.d.ts +81 -0
- package/dist/claude/hook-events-extra.d.ts.map +1 -0
- package/dist/claude/hook-events-extra.js +6 -0
- package/dist/claude/hook-events-extra.js.map +1 -0
- package/dist/claude/hook-events.d.ts +101 -0
- package/dist/claude/hook-events.d.ts.map +1 -0
- package/dist/claude/hook-events.js +6 -0
- package/dist/claude/hook-events.js.map +1 -0
- package/dist/claude/hook-names.d.ts +24 -0
- package/dist/claude/hook-names.d.ts.map +1 -0
- package/dist/claude/hook-names.js +45 -0
- package/dist/claude/hook-names.js.map +1 -0
- package/dist/claude/hooks/dispatch.d.ts +9 -0
- package/dist/claude/hooks/dispatch.d.ts.map +1 -0
- package/dist/claude/hooks/dispatch.js +12 -0
- package/dist/claude/hooks/dispatch.js.map +1 -0
- package/dist/claude/hooks/events-extra.d.ts +81 -0
- package/dist/claude/hooks/events-extra.d.ts.map +1 -0
- package/dist/claude/hooks/events-extra.js +6 -0
- package/dist/claude/hooks/events-extra.js.map +1 -0
- package/dist/claude/hooks/events.d.ts +101 -0
- package/dist/claude/hooks/events.d.ts.map +1 -0
- package/dist/claude/hooks/events.js +6 -0
- package/dist/claude/hooks/events.js.map +1 -0
- package/dist/claude/hooks/index.d.ts +78 -0
- package/dist/claude/hooks/index.d.ts.map +1 -0
- package/dist/claude/hooks/index.js +6 -0
- package/dist/claude/hooks/index.js.map +1 -0
- package/dist/claude/hooks/names.d.ts +24 -0
- package/dist/claude/hooks/names.d.ts.map +1 -0
- package/dist/claude/hooks/names.js +45 -0
- package/dist/claude/hooks/names.js.map +1 -0
- package/dist/claude/hooks/tool-events.d.ts +10 -0
- package/dist/claude/hooks/tool-events.d.ts.map +1 -0
- package/dist/claude/hooks/tool-events.js +18 -0
- package/dist/claude/hooks/tool-events.js.map +1 -0
- package/dist/claude/hooks/tool-types.d.ts +158 -0
- package/dist/claude/hooks/tool-types.d.ts.map +1 -0
- package/dist/claude/hooks/tool-types.js +6 -0
- package/dist/claude/hooks/tool-types.js.map +1 -0
- package/dist/claude/hooks.d.ts +78 -0
- package/dist/claude/hooks.d.ts.map +1 -0
- package/dist/claude/hooks.js +6 -0
- package/dist/claude/hooks.js.map +1 -0
- package/dist/claude/list-models.d.ts +14 -0
- package/dist/claude/list-models.d.ts.map +1 -0
- package/dist/claude/list-models.js +31 -0
- package/dist/claude/list-models.js.map +1 -0
- package/dist/claude/login/abort.d.ts +39 -0
- package/dist/claude/login/abort.d.ts.map +1 -0
- package/dist/claude/login/abort.js +81 -0
- package/dist/claude/login/abort.js.map +1 -0
- package/dist/claude/login/driver.d.ts +27 -0
- package/dist/claude/login/driver.d.ts.map +1 -0
- package/dist/claude/login/driver.js +30 -0
- package/dist/claude/login/driver.js.map +1 -0
- package/dist/claude/login/expiry-screen.d.ts +24 -0
- package/dist/claude/login/expiry-screen.d.ts.map +1 -0
- package/dist/claude/login/expiry-screen.js +31 -0
- package/dist/claude/login/expiry-screen.js.map +1 -0
- package/dist/claude/login/screens.d.ts +26 -0
- package/dist/claude/login/screens.d.ts.map +1 -0
- package/dist/claude/login/screens.js +33 -0
- package/dist/claude/login/screens.js.map +1 -0
- package/dist/claude/login/session-login.d.ts +24 -0
- package/dist/claude/login/session-login.d.ts.map +1 -0
- package/dist/claude/login/session-login.js +97 -0
- package/dist/claude/login/session-login.js.map +1 -0
- package/dist/claude/login/stages.d.ts +22 -0
- package/dist/claude/login/stages.d.ts.map +1 -0
- package/dist/claude/login/stages.js +144 -0
- package/dist/claude/login/stages.js.map +1 -0
- package/dist/claude/login/types.d.ts +38 -0
- package/dist/claude/login/types.d.ts.map +1 -0
- package/dist/claude/login/types.js +5 -0
- package/dist/claude/login/types.js.map +1 -0
- package/dist/claude/login/validate.d.ts +15 -0
- package/dist/claude/login/validate.d.ts.map +1 -0
- package/dist/claude/login/validate.js +43 -0
- package/dist/claude/login/validate.js.map +1 -0
- package/dist/claude/login-expired.d.ts +31 -0
- package/dist/claude/login-expired.d.ts.map +1 -0
- package/dist/claude/login-expired.js +61 -0
- package/dist/claude/login-expired.js.map +1 -0
- package/dist/claude/model-picker.d.ts +7 -0
- package/dist/claude/model-picker.d.ts.map +1 -0
- package/dist/claude/model-picker.js +43 -0
- package/dist/claude/model-picker.js.map +1 -0
- package/dist/claude/model-switch-confirmation.d.ts +16 -0
- package/dist/claude/model-switch-confirmation.d.ts.map +1 -0
- package/dist/claude/model-switch-confirmation.js +63 -0
- package/dist/claude/model-switch-confirmation.js.map +1 -0
- package/dist/claude/normalize.d.ts +7 -0
- package/dist/claude/normalize.d.ts.map +1 -0
- package/dist/claude/normalize.js +63 -0
- package/dist/claude/normalize.js.map +1 -0
- package/dist/claude/permissions.d.ts +26 -0
- package/dist/claude/permissions.d.ts.map +1 -0
- package/dist/claude/permissions.js +6 -0
- package/dist/claude/permissions.js.map +1 -0
- package/dist/claude/preflight.d.ts +17 -0
- package/dist/claude/preflight.d.ts.map +1 -0
- package/dist/claude/preflight.js +82 -0
- package/dist/claude/preflight.js.map +1 -0
- package/dist/claude/resize-restore.d.ts +13 -0
- package/dist/claude/resize-restore.d.ts.map +1 -0
- package/dist/claude/resize-restore.js +29 -0
- package/dist/claude/resize-restore.js.map +1 -0
- package/dist/claude/screen-table.d.ts +28 -0
- package/dist/claude/screen-table.d.ts.map +1 -0
- package/dist/claude/screen-table.js +55 -0
- package/dist/claude/screen-table.js.map +1 -0
- package/dist/claude/serialize.d.ts +8 -0
- package/dist/claude/serialize.d.ts.map +1 -0
- package/dist/claude/serialize.js +45 -0
- package/dist/claude/serialize.js.map +1 -0
- package/dist/claude/session/bridge.d.ts +11 -0
- package/dist/claude/session/bridge.d.ts.map +1 -0
- package/dist/claude/session/bridge.js +18 -0
- package/dist/claude/session/bridge.js.map +1 -0
- package/dist/claude/session/build.d.ts +15 -0
- package/dist/claude/session/build.d.ts.map +1 -0
- package/dist/claude/session/build.js +147 -0
- package/dist/claude/session/build.js.map +1 -0
- package/dist/claude/session/hook-handler.d.ts +34 -0
- package/dist/claude/session/hook-handler.d.ts.map +1 -0
- package/dist/claude/session/hook-handler.js +42 -0
- package/dist/claude/session/hook-handler.js.map +1 -0
- package/dist/claude/session/index.d.ts +18 -0
- package/dist/claude/session/index.d.ts.map +1 -0
- package/dist/claude/session/index.js +58 -0
- package/dist/claude/session/index.js.map +1 -0
- package/dist/claude/session/instance.d.ts +42 -0
- package/dist/claude/session/instance.d.ts.map +1 -0
- package/dist/claude/session/instance.js +146 -0
- package/dist/claude/session/instance.js.map +1 -0
- package/dist/claude/session/interface.d.ts +49 -0
- package/dist/claude/session/interface.d.ts.map +1 -0
- package/dist/claude/session/interface.js +10 -0
- package/dist/claude/session/interface.js.map +1 -0
- package/dist/claude/session/resume.d.ts +8 -0
- package/dist/claude/session/resume.d.ts.map +1 -0
- package/dist/claude/session/resume.js +47 -0
- package/dist/claude/session/resume.js.map +1 -0
- package/dist/claude/session/runtime.d.ts +43 -0
- package/dist/claude/session/runtime.d.ts.map +1 -0
- package/dist/claude/session/runtime.js +105 -0
- package/dist/claude/session/runtime.js.map +1 -0
- package/dist/claude/session/start-or-resume.d.ts +12 -0
- package/dist/claude/session/start-or-resume.d.ts.map +1 -0
- package/dist/claude/session/start-or-resume.js +32 -0
- package/dist/claude/session/start-or-resume.js.map +1 -0
- package/dist/claude/session/transcript.d.ts +62 -0
- package/dist/claude/session/transcript.d.ts.map +1 -0
- package/dist/claude/session/transcript.js +88 -0
- package/dist/claude/session/transcript.js.map +1 -0
- package/dist/claude/session-bridge.d.ts +11 -0
- package/dist/claude/session-bridge.d.ts.map +1 -0
- package/dist/claude/session-bridge.js +18 -0
- package/dist/claude/session-bridge.js.map +1 -0
- package/dist/claude/session-build.d.ts +15 -0
- package/dist/claude/session-build.d.ts.map +1 -0
- package/dist/claude/session-build.js +147 -0
- package/dist/claude/session-build.js.map +1 -0
- package/dist/claude/session-hook-handler.d.ts +34 -0
- package/dist/claude/session-hook-handler.d.ts.map +1 -0
- package/dist/claude/session-hook-handler.js +42 -0
- package/dist/claude/session-hook-handler.js.map +1 -0
- package/dist/claude/session-instance.d.ts +42 -0
- package/dist/claude/session-instance.d.ts.map +1 -0
- package/dist/claude/session-instance.js +146 -0
- package/dist/claude/session-instance.js.map +1 -0
- package/dist/claude/session-interface.d.ts +49 -0
- package/dist/claude/session-interface.d.ts.map +1 -0
- package/dist/claude/session-interface.js +10 -0
- package/dist/claude/session-interface.js.map +1 -0
- package/dist/claude/session-resume.d.ts +8 -0
- package/dist/claude/session-resume.d.ts.map +1 -0
- package/dist/claude/session-resume.js +47 -0
- package/dist/claude/session-resume.js.map +1 -0
- package/dist/claude/session-runtime.d.ts +43 -0
- package/dist/claude/session-runtime.d.ts.map +1 -0
- package/dist/claude/session-runtime.js +105 -0
- package/dist/claude/session-runtime.js.map +1 -0
- package/dist/claude/session-transcript.d.ts +62 -0
- package/dist/claude/session-transcript.d.ts.map +1 -0
- package/dist/claude/session-transcript.js +88 -0
- package/dist/claude/session-transcript.js.map +1 -0
- package/dist/claude/session.d.ts +18 -0
- package/dist/claude/session.d.ts.map +1 -0
- package/dist/claude/session.js +58 -0
- package/dist/claude/session.js.map +1 -0
- package/dist/claude/settings.d.ts +14 -0
- package/dist/claude/settings.d.ts.map +1 -0
- package/dist/claude/settings.js +34 -0
- package/dist/claude/settings.js.map +1 -0
- package/dist/claude/simple.d.ts +28 -0
- package/dist/claude/simple.d.ts.map +1 -0
- package/dist/claude/simple.js +45 -0
- package/dist/claude/simple.js.map +1 -0
- package/dist/claude/start-or-resume.d.ts +12 -0
- package/dist/claude/start-or-resume.d.ts.map +1 -0
- package/dist/claude/start-or-resume.js +32 -0
- package/dist/claude/start-or-resume.js.map +1 -0
- package/dist/claude/startup-prompts.d.ts +16 -0
- package/dist/claude/startup-prompts.d.ts.map +1 -0
- package/dist/claude/startup-prompts.js +46 -0
- package/dist/claude/startup-prompts.js.map +1 -0
- package/dist/claude/startup-size.d.ts +8 -0
- package/dist/claude/startup-size.d.ts.map +1 -0
- package/dist/claude/startup-size.js +8 -0
- package/dist/claude/startup-size.js.map +1 -0
- package/dist/claude/tool-hook-events.d.ts +10 -0
- package/dist/claude/tool-hook-events.d.ts.map +1 -0
- package/dist/claude/tool-hook-events.js +18 -0
- package/dist/claude/tool-hook-events.js.map +1 -0
- package/dist/claude/tool-types.d.ts +158 -0
- package/dist/claude/tool-types.d.ts.map +1 -0
- package/dist/claude/tool-types.js +6 -0
- package/dist/claude/tool-types.js.map +1 -0
- package/dist/claude/transcript/baseline.d.ts +33 -0
- package/dist/claude/transcript/baseline.d.ts.map +1 -0
- package/dist/claude/transcript/baseline.js +108 -0
- package/dist/claude/transcript/baseline.js.map +1 -0
- package/dist/claude/transcript/cursor-io.d.ts +15 -0
- package/dist/claude/transcript/cursor-io.d.ts.map +1 -0
- package/dist/claude/transcript/cursor-io.js +44 -0
- package/dist/claude/transcript/cursor-io.js.map +1 -0
- package/dist/claude/transcript/cursor.d.ts +24 -0
- package/dist/claude/transcript/cursor.d.ts.map +1 -0
- package/dist/claude/transcript/cursor.js +43 -0
- package/dist/claude/transcript/cursor.js.map +1 -0
- package/dist/claude/transcript/drain-context.d.ts +22 -0
- package/dist/claude/transcript/drain-context.d.ts.map +1 -0
- package/dist/claude/transcript/drain-context.js +18 -0
- package/dist/claude/transcript/drain-context.js.map +1 -0
- package/dist/claude/transcript/drain.d.ts +33 -0
- package/dist/claude/transcript/drain.d.ts.map +1 -0
- package/dist/claude/transcript/drain.js +56 -0
- package/dist/claude/transcript/drain.js.map +1 -0
- package/dist/claude/transcript/drops.d.ts +9 -0
- package/dist/claude/transcript/drops.d.ts.map +1 -0
- package/dist/claude/transcript/drops.js +9 -0
- package/dist/claude/transcript/drops.js.map +1 -0
- package/dist/claude/transcript/emit.d.ts +26 -0
- package/dist/claude/transcript/emit.d.ts.map +1 -0
- package/dist/claude/transcript/emit.js +57 -0
- package/dist/claude/transcript/emit.js.map +1 -0
- package/dist/claude/transcript/fs-guard.d.ts +24 -0
- package/dist/claude/transcript/fs-guard.d.ts.map +1 -0
- package/dist/claude/transcript/fs-guard.js +48 -0
- package/dist/claude/transcript/fs-guard.js.map +1 -0
- package/dist/claude/transcript/index.d.ts +38 -0
- package/dist/claude/transcript/index.d.ts.map +1 -0
- package/dist/claude/transcript/index.js +191 -0
- package/dist/claude/transcript/index.js.map +1 -0
- package/dist/claude/transcript/summary.d.ts +40 -0
- package/dist/claude/transcript/summary.d.ts.map +1 -0
- package/dist/claude/transcript/summary.js +90 -0
- package/dist/claude/transcript/summary.js.map +1 -0
- package/dist/claude/transcript/warnings.d.ts +31 -0
- package/dist/claude/transcript/warnings.d.ts.map +1 -0
- package/dist/claude/transcript/warnings.js +53 -0
- package/dist/claude/transcript/warnings.js.map +1 -0
- package/dist/claude/transcript/watcher-config.d.ts +22 -0
- package/dist/claude/transcript/watcher-config.d.ts.map +1 -0
- package/dist/claude/transcript/watcher-config.js +7 -0
- package/dist/claude/transcript/watcher-config.js.map +1 -0
- package/dist/claude/validate/input.d.ts +8 -0
- package/dist/claude/validate/input.d.ts.map +1 -0
- package/dist/claude/validate/input.js +137 -0
- package/dist/claude/validate/input.js.map +1 -0
- package/dist/claude/validate/permission-update.d.ts +10 -0
- package/dist/claude/validate/permission-update.d.ts.map +1 -0
- package/dist/claude/validate/permission-update.js +72 -0
- package/dist/claude/validate/permission-update.js.map +1 -0
- package/dist/claude/validate/result.d.ts +7 -0
- package/dist/claude/validate/result.d.ts.map +1 -0
- package/dist/claude/validate/result.js +118 -0
- package/dist/claude/validate/result.js.map +1 -0
- package/dist/claude/validate/shapes.d.ts +22 -0
- package/dist/claude/validate/shapes.d.ts.map +1 -0
- package/dist/claude/validate/shapes.js +15 -0
- package/dist/claude/validate/shapes.js.map +1 -0
- package/dist/claude/validate/tool-update.d.ts +15 -0
- package/dist/claude/validate/tool-update.d.ts.map +1 -0
- package/dist/claude/validate/tool-update.js +122 -0
- package/dist/claude/validate/tool-update.js.map +1 -0
- package/dist/claude/validate-input.d.ts +8 -0
- package/dist/claude/validate-input.d.ts.map +1 -0
- package/dist/claude/validate-input.js +137 -0
- package/dist/claude/validate-input.js.map +1 -0
- package/dist/claude/validate-permission-update.d.ts +10 -0
- package/dist/claude/validate-permission-update.d.ts.map +1 -0
- package/dist/claude/validate-permission-update.js +72 -0
- package/dist/claude/validate-permission-update.js.map +1 -0
- package/dist/claude/validate-result.d.ts +7 -0
- package/dist/claude/validate-result.d.ts.map +1 -0
- package/dist/claude/validate-result.js +118 -0
- package/dist/claude/validate-result.js.map +1 -0
- package/dist/claude/validate-shapes.d.ts +22 -0
- package/dist/claude/validate-shapes.d.ts.map +1 -0
- package/dist/claude/validate-shapes.js +15 -0
- package/dist/claude/validate-shapes.js.map +1 -0
- package/dist/claude/validate-tool-update.d.ts +15 -0
- package/dist/claude/validate-tool-update.d.ts.map +1 -0
- package/dist/claude/validate-tool-update.js +122 -0
- package/dist/claude/validate-tool-update.js.map +1 -0
- package/dist/cli/agent-detect.d.ts +44 -0
- package/dist/cli/agent-detect.d.ts.map +1 -0
- package/dist/cli/agent-detect.js +66 -0
- package/dist/cli/agent-detect.js.map +1 -0
- package/dist/cli/arg-errors.d.ts +6 -0
- package/dist/cli/arg-errors.d.ts.map +1 -0
- package/dist/cli/arg-errors.js +44 -0
- package/dist/cli/arg-errors.js.map +1 -0
- package/dist/cli/arg-options.d.ts +26 -0
- package/dist/cli/arg-options.d.ts.map +1 -0
- package/dist/cli/arg-options.js +50 -0
- package/dist/cli/arg-options.js.map +1 -0
- package/dist/cli/args/errors.d.ts +6 -0
- package/dist/cli/args/errors.d.ts.map +1 -0
- package/dist/cli/args/errors.js +44 -0
- package/dist/cli/args/errors.js.map +1 -0
- package/dist/cli/args/index.d.ts +7 -0
- package/dist/cli/args/index.d.ts.map +1 -0
- package/dist/cli/args/index.js +70 -0
- package/dist/cli/args/index.js.map +1 -0
- package/dist/cli/args/options.d.ts +26 -0
- package/dist/cli/args/options.d.ts.map +1 -0
- package/dist/cli/args/options.js +50 -0
- package/dist/cli/args/options.js.map +1 -0
- package/dist/cli/args.d.ts +7 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +70 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/config/codec.d.ts +12 -0
- package/dist/cli/config/codec.d.ts.map +1 -0
- package/dist/cli/config/codec.js +196 -0
- package/dist/cli/config/codec.js.map +1 -0
- package/dist/cli/config/commands.d.ts +15 -0
- package/dist/cli/config/commands.d.ts.map +1 -0
- package/dist/cli/config/commands.js +56 -0
- package/dist/cli/config/commands.js.map +1 -0
- package/dist/cli/config/effective.d.ts +21 -0
- package/dist/cli/config/effective.d.ts.map +1 -0
- package/dist/cli/config/effective.js +70 -0
- package/dist/cli/config/effective.js.map +1 -0
- package/dist/cli/config/keys.d.ts +7 -0
- package/dist/cli/config/keys.d.ts.map +1 -0
- package/dist/cli/config/keys.js +23 -0
- package/dist/cli/config/keys.js.map +1 -0
- package/dist/cli/config/paths.d.ts +13 -0
- package/dist/cli/config/paths.d.ts.map +1 -0
- package/dist/cli/config/paths.js +33 -0
- package/dist/cli/config/paths.js.map +1 -0
- package/dist/cli/config/store.d.ts +16 -0
- package/dist/cli/config/store.d.ts.map +1 -0
- package/dist/cli/config/store.js +97 -0
- package/dist/cli/config/store.js.map +1 -0
- package/dist/cli/duration.d.ts +6 -0
- package/dist/cli/duration.d.ts.map +1 -0
- package/dist/cli/duration.js +20 -0
- package/dist/cli/duration.js.map +1 -0
- package/dist/cli/entry.d.ts +27 -0
- package/dist/cli/entry.d.ts.map +1 -0
- package/dist/cli/entry.js +57 -0
- package/dist/cli/entry.js.map +1 -0
- package/dist/cli/head/display.d.ts +30 -0
- package/dist/cli/head/display.d.ts.map +1 -0
- package/dist/cli/head/display.js +108 -0
- package/dist/cli/head/display.js.map +1 -0
- package/dist/cli/head/process.d.ts +4 -0
- package/dist/cli/head/process.d.ts.map +1 -0
- package/dist/cli/head/process.js +94 -0
- package/dist/cli/head/process.js.map +1 -0
- package/dist/cli/head/types.d.ts +19 -0
- package/dist/cli/head/types.d.ts.map +1 -0
- package/dist/cli/head/types.js +3 -0
- package/dist/cli/head/types.js.map +1 -0
- package/dist/cli/help.d.ts +7 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +82 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/input.d.ts +8 -0
- package/dist/cli/input.d.ts.map +1 -0
- package/dist/cli/input.js +37 -0
- package/dist/cli/input.js.map +1 -0
- package/dist/cli/lifecycle/index.d.ts +61 -0
- package/dist/cli/lifecycle/index.d.ts.map +1 -0
- package/dist/cli/lifecycle/index.js +152 -0
- package/dist/cli/lifecycle/index.js.map +1 -0
- package/dist/cli/lifecycle/outcome.d.ts +13 -0
- package/dist/cli/lifecycle/outcome.d.ts.map +1 -0
- package/dist/cli/lifecycle/outcome.js +20 -0
- package/dist/cli/lifecycle/outcome.js.map +1 -0
- package/dist/cli/lifecycle-outcome.d.ts +13 -0
- package/dist/cli/lifecycle-outcome.d.ts.map +1 -0
- package/dist/cli/lifecycle-outcome.js +20 -0
- package/dist/cli/lifecycle-outcome.js.map +1 -0
- package/dist/cli/lifecycle.d.ts +61 -0
- package/dist/cli/lifecycle.d.ts.map +1 -0
- package/dist/cli/lifecycle.js +152 -0
- package/dist/cli/lifecycle.js.map +1 -0
- package/dist/cli/main.d.ts +33 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +139 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/output/json.d.ts +8 -0
- package/dist/cli/output/json.d.ts.map +1 -0
- package/dist/cli/output/json.js +8 -0
- package/dist/cli/output/json.js.map +1 -0
- package/dist/cli/output/jsonl.d.ts +18 -0
- package/dist/cli/output/jsonl.d.ts.map +1 -0
- package/dist/cli/output/jsonl.js +32 -0
- package/dist/cli/output/jsonl.js.map +1 -0
- package/dist/cli/output/records.d.ts +13 -0
- package/dist/cli/output/records.d.ts.map +1 -0
- package/dist/cli/output/records.js +40 -0
- package/dist/cli/output/records.js.map +1 -0
- package/dist/cli/output/sanitize.d.ts +9 -0
- package/dist/cli/output/sanitize.d.ts.map +1 -0
- package/dist/cli/output/sanitize.js +28 -0
- package/dist/cli/output/sanitize.js.map +1 -0
- package/dist/cli/output/text.d.ts +15 -0
- package/dist/cli/output/text.d.ts.map +1 -0
- package/dist/cli/output/text.js +29 -0
- package/dist/cli/output/text.js.map +1 -0
- package/dist/cli/output/types.d.ts +74 -0
- package/dist/cli/output/types.d.ts.map +1 -0
- package/dist/cli/output/types.js +6 -0
- package/dist/cli/output/types.js.map +1 -0
- package/dist/cli/request/agent-detect.d.ts +44 -0
- package/dist/cli/request/agent-detect.d.ts.map +1 -0
- package/dist/cli/request/agent-detect.js +66 -0
- package/dist/cli/request/agent-detect.js.map +1 -0
- package/dist/cli/request/finalize.d.ts +10 -0
- package/dist/cli/request/finalize.d.ts.map +1 -0
- package/dist/cli/request/finalize.js +135 -0
- package/dist/cli/request/finalize.js.map +1 -0
- package/dist/cli/request/index.d.ts +12 -0
- package/dist/cli/request/index.d.ts.map +1 -0
- package/dist/cli/request/index.js +103 -0
- package/dist/cli/request/index.js.map +1 -0
- package/dist/cli/request/layers.d.ts +30 -0
- package/dist/cli/request/layers.d.ts.map +1 -0
- package/dist/cli/request/layers.js +44 -0
- package/dist/cli/request/layers.js.map +1 -0
- package/dist/cli/request/resolution-types.d.ts +35 -0
- package/dist/cli/request/resolution-types.d.ts.map +1 -0
- package/dist/cli/request/resolution-types.js +6 -0
- package/dist/cli/request/resolution-types.js.map +1 -0
- package/dist/cli/request/settings.d.ts +34 -0
- package/dist/cli/request/settings.d.ts.map +1 -0
- package/dist/cli/request/settings.js +66 -0
- package/dist/cli/request/settings.js.map +1 -0
- package/dist/cli/request/sources.d.ts +13 -0
- package/dist/cli/request/sources.d.ts.map +1 -0
- package/dist/cli/request/sources.js +23 -0
- package/dist/cli/request/sources.js.map +1 -0
- package/dist/cli/request/validation.d.ts +18 -0
- package/dist/cli/request/validation.d.ts.map +1 -0
- package/dist/cli/request/validation.js +84 -0
- package/dist/cli/request/validation.js.map +1 -0
- package/dist/cli/request/values.d.ts +33 -0
- package/dist/cli/request/values.d.ts.map +1 -0
- package/dist/cli/request/values.js +73 -0
- package/dist/cli/request/values.js.map +1 -0
- package/dist/cli/request-finalize.d.ts +10 -0
- package/dist/cli/request-finalize.d.ts.map +1 -0
- package/dist/cli/request-finalize.js +135 -0
- package/dist/cli/request-finalize.js.map +1 -0
- package/dist/cli/request-layers.d.ts +30 -0
- package/dist/cli/request-layers.d.ts.map +1 -0
- package/dist/cli/request-layers.js +44 -0
- package/dist/cli/request-layers.js.map +1 -0
- package/dist/cli/request-settings.d.ts +34 -0
- package/dist/cli/request-settings.d.ts.map +1 -0
- package/dist/cli/request-settings.js +66 -0
- package/dist/cli/request-settings.js.map +1 -0
- package/dist/cli/request-sources.d.ts +13 -0
- package/dist/cli/request-sources.d.ts.map +1 -0
- package/dist/cli/request-sources.js +23 -0
- package/dist/cli/request-sources.js.map +1 -0
- package/dist/cli/request-validation.d.ts +18 -0
- package/dist/cli/request-validation.d.ts.map +1 -0
- package/dist/cli/request-validation.js +84 -0
- package/dist/cli/request-validation.js.map +1 -0
- package/dist/cli/request-values.d.ts +33 -0
- package/dist/cli/request-values.d.ts.map +1 -0
- package/dist/cli/request-values.js +73 -0
- package/dist/cli/request-values.js.map +1 -0
- package/dist/cli/request.d.ts +12 -0
- package/dist/cli/request.d.ts.map +1 -0
- package/dist/cli/request.js +103 -0
- package/dist/cli/request.js.map +1 -0
- package/dist/cli/resolution-types.d.ts +35 -0
- package/dist/cli/resolution-types.d.ts.map +1 -0
- package/dist/cli/resolution-types.js +6 -0
- package/dist/cli/resolution-types.js.map +1 -0
- package/dist/cli/run/index.d.ts +20 -0
- package/dist/cli/run/index.d.ts.map +1 -0
- package/dist/cli/run/index.js +126 -0
- package/dist/cli/run/index.js.map +1 -0
- package/dist/cli/run/output-lines.d.ts +14 -0
- package/dist/cli/run/output-lines.d.ts.map +1 -0
- package/dist/cli/run/output-lines.js +42 -0
- package/dist/cli/run/output-lines.js.map +1 -0
- package/dist/cli/run/output.d.ts +48 -0
- package/dist/cli/run/output.d.ts.map +1 -0
- package/dist/cli/run/output.js +150 -0
- package/dist/cli/run/output.js.map +1 -0
- package/dist/cli/run-output-lines.d.ts +14 -0
- package/dist/cli/run-output-lines.d.ts.map +1 -0
- package/dist/cli/run-output-lines.js +42 -0
- package/dist/cli/run-output-lines.js.map +1 -0
- package/dist/cli/run-output.d.ts +48 -0
- package/dist/cli/run-output.d.ts.map +1 -0
- package/dist/cli/run-output.js +150 -0
- package/dist/cli/run-output.js.map +1 -0
- package/dist/cli/run.d.ts +20 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +126 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/session/index.d.ts +68 -0
- package/dist/cli/session/index.d.ts.map +1 -0
- package/dist/cli/session/index.js +124 -0
- package/dist/cli/session/index.js.map +1 -0
- package/dist/cli/session/launch.d.ts +23 -0
- package/dist/cli/session/launch.d.ts.map +1 -0
- package/dist/cli/session/launch.js +57 -0
- package/dist/cli/session/launch.js.map +1 -0
- package/dist/cli/session-launch.d.ts +23 -0
- package/dist/cli/session-launch.d.ts.map +1 -0
- package/dist/cli/session-launch.js +57 -0
- package/dist/cli/session-launch.js.map +1 -0
- package/dist/cli/session.d.ts +68 -0
- package/dist/cli/session.d.ts.map +1 -0
- package/dist/cli/session.js +124 -0
- package/dist/cli/session.js.map +1 -0
- package/dist/cli/stream.d.ts +25 -0
- package/dist/cli/stream.d.ts.map +1 -0
- package/dist/cli/stream.js +92 -0
- package/dist/cli/stream.js.map +1 -0
- package/dist/cli/types.d.ts +148 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +30 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/update-attention.d.ts +32 -0
- package/dist/cli/update-attention.d.ts.map +1 -0
- package/dist/cli/update-attention.js +60 -0
- package/dist/cli/update-attention.js.map +1 -0
- package/dist/cli/validation-error.d.ts +11 -0
- package/dist/cli/validation-error.d.ts.map +1 -0
- package/dist/cli/validation-error.js +13 -0
- package/dist/cli/validation-error.js.map +1 -0
- package/dist/cli/version.d.ts +7 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +11 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/codex/attach-images.d.ts +20 -0
- package/dist/codex/attach-images.d.ts.map +1 -0
- package/dist/codex/attach-images.js +66 -0
- package/dist/codex/attach-images.js.map +1 -0
- package/dist/codex/clipboard-lock.d.ts +15 -0
- package/dist/codex/clipboard-lock.d.ts.map +1 -0
- package/dist/codex/clipboard-lock.js +16 -0
- package/dist/codex/clipboard-lock.js.map +1 -0
- package/dist/codex/clipboard.d.ts +32 -0
- package/dist/codex/clipboard.d.ts.map +1 -0
- package/dist/codex/clipboard.js +92 -0
- package/dist/codex/clipboard.js.map +1 -0
- package/dist/codex/command.d.ts +9 -0
- package/dist/codex/command.d.ts.map +1 -0
- package/dist/codex/command.js +72 -0
- package/dist/codex/command.js.map +1 -0
- package/dist/codex/config/lock.d.ts +21 -0
- package/dist/codex/config/lock.d.ts.map +1 -0
- package/dist/codex/config/lock.js +22 -0
- package/dist/codex/config/lock.js.map +1 -0
- package/dist/codex/config/restore.d.ts +33 -0
- package/dist/codex/config/restore.d.ts.map +1 -0
- package/dist/codex/config/restore.js +90 -0
- package/dist/codex/config/restore.js.map +1 -0
- package/dist/codex/config/transaction.d.ts +26 -0
- package/dist/codex/config/transaction.d.ts.map +1 -0
- package/dist/codex/config/transaction.js +47 -0
- package/dist/codex/config/transaction.js.map +1 -0
- package/dist/codex/config-lock.d.ts +21 -0
- package/dist/codex/config-lock.d.ts.map +1 -0
- package/dist/codex/config-lock.js +22 -0
- package/dist/codex/config-lock.js.map +1 -0
- package/dist/codex/config-restore.d.ts +33 -0
- package/dist/codex/config-restore.d.ts.map +1 -0
- package/dist/codex/config-restore.js +90 -0
- package/dist/codex/config-restore.js.map +1 -0
- package/dist/codex/config-transaction.d.ts +26 -0
- package/dist/codex/config-transaction.d.ts.map +1 -0
- package/dist/codex/config-transaction.js +47 -0
- package/dist/codex/config-transaction.js.map +1 -0
- package/dist/codex/hook-dispatch.d.ts +9 -0
- package/dist/codex/hook-dispatch.d.ts.map +1 -0
- package/dist/codex/hook-dispatch.js +14 -0
- package/dist/codex/hook-dispatch.js.map +1 -0
- package/dist/codex/hook-names.d.ts +19 -0
- package/dist/codex/hook-names.d.ts.map +1 -0
- package/dist/codex/hook-names.js +17 -0
- package/dist/codex/hook-names.js.map +1 -0
- package/dist/codex/hooks/dispatch.d.ts +9 -0
- package/dist/codex/hooks/dispatch.d.ts.map +1 -0
- package/dist/codex/hooks/dispatch.js +14 -0
- package/dist/codex/hooks/dispatch.js.map +1 -0
- package/dist/codex/hooks/index.d.ts +99 -0
- package/dist/codex/hooks/index.d.ts.map +1 -0
- package/dist/codex/hooks/index.js +6 -0
- package/dist/codex/hooks/index.js.map +1 -0
- package/dist/codex/hooks/names.d.ts +19 -0
- package/dist/codex/hooks/names.d.ts.map +1 -0
- package/dist/codex/hooks/names.js +17 -0
- package/dist/codex/hooks/names.js.map +1 -0
- package/dist/codex/hooks/serialize.d.ts +8 -0
- package/dist/codex/hooks/serialize.d.ts.map +1 -0
- package/dist/codex/hooks/serialize.js +48 -0
- package/dist/codex/hooks/serialize.js.map +1 -0
- package/dist/codex/hooks/validate-result.d.ts +7 -0
- package/dist/codex/hooks/validate-result.d.ts.map +1 -0
- package/dist/codex/hooks/validate-result.js +84 -0
- package/dist/codex/hooks/validate-result.js.map +1 -0
- package/dist/codex/hooks/validate.d.ts +11 -0
- package/dist/codex/hooks/validate.d.ts.map +1 -0
- package/dist/codex/hooks/validate.js +88 -0
- package/dist/codex/hooks/validate.js.map +1 -0
- package/dist/codex/hooks.d.ts +99 -0
- package/dist/codex/hooks.d.ts.map +1 -0
- package/dist/codex/hooks.js +6 -0
- package/dist/codex/hooks.js.map +1 -0
- package/dist/codex/images/attach.d.ts +20 -0
- package/dist/codex/images/attach.d.ts.map +1 -0
- package/dist/codex/images/attach.js +66 -0
- package/dist/codex/images/attach.js.map +1 -0
- package/dist/codex/images/clipboard-lock.d.ts +15 -0
- package/dist/codex/images/clipboard-lock.d.ts.map +1 -0
- package/dist/codex/images/clipboard-lock.js +16 -0
- package/dist/codex/images/clipboard-lock.js.map +1 -0
- package/dist/codex/images/clipboard.d.ts +32 -0
- package/dist/codex/images/clipboard.d.ts.map +1 -0
- package/dist/codex/images/clipboard.js +92 -0
- package/dist/codex/images/clipboard.js.map +1 -0
- package/dist/codex/initial-ready.d.ts +19 -0
- package/dist/codex/initial-ready.d.ts.map +1 -0
- package/dist/codex/initial-ready.js +19 -0
- package/dist/codex/initial-ready.js.map +1 -0
- package/dist/codex/list-models.d.ts +16 -0
- package/dist/codex/list-models.d.ts.map +1 -0
- package/dist/codex/list-models.js +35 -0
- package/dist/codex/list-models.js.map +1 -0
- package/dist/codex/model-picker.d.ts +7 -0
- package/dist/codex/model-picker.d.ts.map +1 -0
- package/dist/codex/model-picker.js +22 -0
- package/dist/codex/model-picker.js.map +1 -0
- package/dist/codex/preflight.d.ts +17 -0
- package/dist/codex/preflight.d.ts.map +1 -0
- package/dist/codex/preflight.js +94 -0
- package/dist/codex/preflight.js.map +1 -0
- package/dist/codex/pty.d.ts +9 -0
- package/dist/codex/pty.d.ts.map +1 -0
- package/dist/codex/pty.js +26 -0
- package/dist/codex/pty.js.map +1 -0
- package/dist/codex/screen-table.d.ts +16 -0
- package/dist/codex/screen-table.d.ts.map +1 -0
- package/dist/codex/screen-table.js +68 -0
- package/dist/codex/screen-table.js.map +1 -0
- package/dist/codex/serialize.d.ts +8 -0
- package/dist/codex/serialize.d.ts.map +1 -0
- package/dist/codex/serialize.js +48 -0
- package/dist/codex/serialize.js.map +1 -0
- package/dist/codex/session/bridge.d.ts +14 -0
- package/dist/codex/session/bridge.d.ts.map +1 -0
- package/dist/codex/session/bridge.js +20 -0
- package/dist/codex/session/bridge.js.map +1 -0
- package/dist/codex/session/build.d.ts +15 -0
- package/dist/codex/session/build.d.ts.map +1 -0
- package/dist/codex/session/build.js +144 -0
- package/dist/codex/session/build.js.map +1 -0
- package/dist/codex/session/cleanup.d.ts +12 -0
- package/dist/codex/session/cleanup.d.ts.map +1 -0
- package/dist/codex/session/cleanup.js +15 -0
- package/dist/codex/session/cleanup.js.map +1 -0
- package/dist/codex/session/hooks.d.ts +13 -0
- package/dist/codex/session/hooks.d.ts.map +1 -0
- package/dist/codex/session/hooks.js +54 -0
- package/dist/codex/session/hooks.js.map +1 -0
- package/dist/codex/session/index.d.ts +16 -0
- package/dist/codex/session/index.d.ts.map +1 -0
- package/dist/codex/session/index.js +61 -0
- package/dist/codex/session/index.js.map +1 -0
- package/dist/codex/session/instance.d.ts +50 -0
- package/dist/codex/session/instance.d.ts.map +1 -0
- package/dist/codex/session/instance.js +117 -0
- package/dist/codex/session/instance.js.map +1 -0
- package/dist/codex/session/resume.d.ts +7 -0
- package/dist/codex/session/resume.d.ts.map +1 -0
- package/dist/codex/session/resume.js +44 -0
- package/dist/codex/session/resume.js.map +1 -0
- package/dist/codex/session/runtime.d.ts +7 -0
- package/dist/codex/session/runtime.d.ts.map +1 -0
- package/dist/codex/session/runtime.js +10 -0
- package/dist/codex/session/runtime.js.map +1 -0
- package/dist/codex/session/start-or-resume.d.ts +12 -0
- package/dist/codex/session/start-or-resume.d.ts.map +1 -0
- package/dist/codex/session/start-or-resume.js +31 -0
- package/dist/codex/session/start-or-resume.js.map +1 -0
- package/dist/codex/session/transcript.d.ts +30 -0
- package/dist/codex/session/transcript.d.ts.map +1 -0
- package/dist/codex/session/transcript.js +53 -0
- package/dist/codex/session/transcript.js.map +1 -0
- package/dist/codex/session/types.d.ts +87 -0
- package/dist/codex/session/types.d.ts.map +1 -0
- package/dist/codex/session/types.js +6 -0
- package/dist/codex/session/types.js.map +1 -0
- package/dist/codex/session/warnings.d.ts +27 -0
- package/dist/codex/session/warnings.d.ts.map +1 -0
- package/dist/codex/session/warnings.js +54 -0
- package/dist/codex/session/warnings.js.map +1 -0
- package/dist/codex/session-bridge.d.ts +14 -0
- package/dist/codex/session-bridge.d.ts.map +1 -0
- package/dist/codex/session-bridge.js +20 -0
- package/dist/codex/session-bridge.js.map +1 -0
- package/dist/codex/session-build.d.ts +15 -0
- package/dist/codex/session-build.d.ts.map +1 -0
- package/dist/codex/session-build.js +144 -0
- package/dist/codex/session-build.js.map +1 -0
- package/dist/codex/session-cleanup.d.ts +12 -0
- package/dist/codex/session-cleanup.d.ts.map +1 -0
- package/dist/codex/session-cleanup.js +15 -0
- package/dist/codex/session-cleanup.js.map +1 -0
- package/dist/codex/session-hooks.d.ts +13 -0
- package/dist/codex/session-hooks.d.ts.map +1 -0
- package/dist/codex/session-hooks.js +54 -0
- package/dist/codex/session-hooks.js.map +1 -0
- package/dist/codex/session-instance.d.ts +50 -0
- package/dist/codex/session-instance.d.ts.map +1 -0
- package/dist/codex/session-instance.js +117 -0
- package/dist/codex/session-instance.js.map +1 -0
- package/dist/codex/session-resume.d.ts +7 -0
- package/dist/codex/session-resume.d.ts.map +1 -0
- package/dist/codex/session-resume.js +44 -0
- package/dist/codex/session-resume.js.map +1 -0
- package/dist/codex/session-runtime.d.ts +7 -0
- package/dist/codex/session-runtime.d.ts.map +1 -0
- package/dist/codex/session-runtime.js +10 -0
- package/dist/codex/session-runtime.js.map +1 -0
- package/dist/codex/session-transcript.d.ts +30 -0
- package/dist/codex/session-transcript.d.ts.map +1 -0
- package/dist/codex/session-transcript.js +53 -0
- package/dist/codex/session-transcript.js.map +1 -0
- package/dist/codex/session-types.d.ts +87 -0
- package/dist/codex/session-types.d.ts.map +1 -0
- package/dist/codex/session-types.js +6 -0
- package/dist/codex/session-types.js.map +1 -0
- package/dist/codex/session-warnings.d.ts +27 -0
- package/dist/codex/session-warnings.d.ts.map +1 -0
- package/dist/codex/session-warnings.js +54 -0
- package/dist/codex/session-warnings.js.map +1 -0
- package/dist/codex/session.d.ts +16 -0
- package/dist/codex/session.d.ts.map +1 -0
- package/dist/codex/session.js +61 -0
- package/dist/codex/session.js.map +1 -0
- package/dist/codex/simple.d.ts +25 -0
- package/dist/codex/simple.d.ts.map +1 -0
- package/dist/codex/simple.js +37 -0
- package/dist/codex/simple.js.map +1 -0
- package/dist/codex/start-or-resume.d.ts +12 -0
- package/dist/codex/start-or-resume.d.ts.map +1 -0
- package/dist/codex/start-or-resume.js +31 -0
- package/dist/codex/start-or-resume.js.map +1 -0
- package/dist/codex/startup-prompts.d.ts +32 -0
- package/dist/codex/startup-prompts.d.ts.map +1 -0
- package/dist/codex/startup-prompts.js +136 -0
- package/dist/codex/startup-prompts.js.map +1 -0
- package/dist/codex/tool-types.d.ts +21 -0
- package/dist/codex/tool-types.d.ts.map +1 -0
- package/dist/codex/tool-types.js +6 -0
- package/dist/codex/tool-types.js.map +1 -0
- package/dist/codex/transcript/cursor-io.d.ts +7 -0
- package/dist/codex/transcript/cursor-io.d.ts.map +1 -0
- package/dist/codex/transcript/cursor-io.js +7 -0
- package/dist/codex/transcript/cursor-io.js.map +1 -0
- package/dist/codex/transcript/cursor.d.ts +8 -0
- package/dist/codex/transcript/cursor.d.ts.map +1 -0
- package/dist/codex/transcript/cursor.js +8 -0
- package/dist/codex/transcript/cursor.js.map +1 -0
- package/dist/codex/transcript/drain.d.ts +30 -0
- package/dist/codex/transcript/drain.d.ts.map +1 -0
- package/dist/codex/transcript/drain.js +48 -0
- package/dist/codex/transcript/drain.js.map +1 -0
- package/dist/codex/transcript/drops.d.ts +9 -0
- package/dist/codex/transcript/drops.d.ts.map +1 -0
- package/dist/codex/transcript/drops.js +9 -0
- package/dist/codex/transcript/drops.js.map +1 -0
- package/dist/codex/transcript/emit.d.ts +22 -0
- package/dist/codex/transcript/emit.d.ts.map +1 -0
- package/dist/codex/transcript/emit.js +57 -0
- package/dist/codex/transcript/emit.js.map +1 -0
- package/dist/codex/transcript/fs-guard.d.ts +16 -0
- package/dist/codex/transcript/fs-guard.d.ts.map +1 -0
- package/dist/codex/transcript/fs-guard.js +27 -0
- package/dist/codex/transcript/fs-guard.js.map +1 -0
- package/dist/codex/transcript/index.d.ts +12 -0
- package/dist/codex/transcript/index.d.ts.map +1 -0
- package/dist/codex/transcript/index.js +10 -0
- package/dist/codex/transcript/index.js.map +1 -0
- package/dist/codex/transcript/summary.d.ts +10 -0
- package/dist/codex/transcript/summary.d.ts.map +1 -0
- package/dist/codex/transcript/summary.js +176 -0
- package/dist/codex/transcript/summary.js.map +1 -0
- package/dist/codex/transcript/types.d.ts +65 -0
- package/dist/codex/transcript/types.d.ts.map +1 -0
- package/dist/codex/transcript/types.js +7 -0
- package/dist/codex/transcript/types.js.map +1 -0
- package/dist/codex/transcript/warnings.d.ts +25 -0
- package/dist/codex/transcript/warnings.d.ts.map +1 -0
- package/dist/codex/transcript/warnings.js +43 -0
- package/dist/codex/transcript/warnings.js.map +1 -0
- package/dist/codex/transcript/watcher-config.d.ts +22 -0
- package/dist/codex/transcript/watcher-config.d.ts.map +1 -0
- package/dist/codex/transcript/watcher-config.js +7 -0
- package/dist/codex/transcript/watcher-config.js.map +1 -0
- package/dist/codex/transcript/watcher.d.ts +34 -0
- package/dist/codex/transcript/watcher.d.ts.map +1 -0
- package/dist/codex/transcript/watcher.js +134 -0
- package/dist/codex/transcript/watcher.js.map +1 -0
- package/dist/codex/transcript.d.ts +12 -0
- package/dist/codex/transcript.d.ts.map +1 -0
- package/dist/codex/transcript.js +10 -0
- package/dist/codex/transcript.js.map +1 -0
- package/dist/codex/update-prompt.d.ts +23 -0
- package/dist/codex/update-prompt.d.ts.map +1 -0
- package/dist/codex/update-prompt.js +78 -0
- package/dist/codex/update-prompt.js.map +1 -0
- package/dist/codex/validate-result.d.ts +7 -0
- package/dist/codex/validate-result.d.ts.map +1 -0
- package/dist/codex/validate-result.js +84 -0
- package/dist/codex/validate-result.js.map +1 -0
- package/dist/codex/validate.d.ts +11 -0
- package/dist/codex/validate.d.ts.map +1 -0
- package/dist/codex/validate.js +88 -0
- package/dist/codex/validate.js.map +1 -0
- package/dist/core/activity/index.d.ts +51 -0
- package/dist/core/activity/index.d.ts.map +1 -0
- package/dist/core/activity/index.js +81 -0
- package/dist/core/activity/index.js.map +1 -0
- package/dist/core/activity/lifecycle.d.ts +21 -0
- package/dist/core/activity/lifecycle.d.ts.map +1 -0
- package/dist/core/activity/lifecycle.js +45 -0
- package/dist/core/activity/lifecycle.js.map +1 -0
- package/dist/core/activity/meta.d.ts +13 -0
- package/dist/core/activity/meta.d.ts.map +1 -0
- package/dist/core/activity/meta.js +67 -0
- package/dist/core/activity/meta.js.map +1 -0
- package/dist/core/activity/transcript.d.ts +19 -0
- package/dist/core/activity/transcript.d.ts.map +1 -0
- package/dist/core/activity/transcript.js +60 -0
- package/dist/core/activity/transcript.js.map +1 -0
- package/dist/core/activity-lifecycle.d.ts +21 -0
- package/dist/core/activity-lifecycle.d.ts.map +1 -0
- package/dist/core/activity-lifecycle.js +45 -0
- package/dist/core/activity-lifecycle.js.map +1 -0
- package/dist/core/activity-meta.d.ts +13 -0
- package/dist/core/activity-meta.d.ts.map +1 -0
- package/dist/core/activity-meta.js +67 -0
- package/dist/core/activity-meta.js.map +1 -0
- package/dist/core/activity-transcript.d.ts +19 -0
- package/dist/core/activity-transcript.d.ts.map +1 -0
- package/dist/core/activity-transcript.js +60 -0
- package/dist/core/activity-transcript.js.map +1 -0
- package/dist/core/activity.d.ts +51 -0
- package/dist/core/activity.d.ts.map +1 -0
- package/dist/core/activity.js +81 -0
- package/dist/core/activity.js.map +1 -0
- package/dist/core/agent-session.d.ts +50 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +6 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/async-mutex.d.ts +13 -0
- package/dist/core/async-mutex.d.ts.map +1 -0
- package/dist/core/async-mutex.js +18 -0
- package/dist/core/async-mutex.js.map +1 -0
- package/dist/core/attention.d.ts +19 -0
- package/dist/core/attention.d.ts.map +1 -0
- package/dist/core/attention.js +31 -0
- package/dist/core/attention.js.map +1 -0
- package/dist/core/compact.d.ts +17 -0
- package/dist/core/compact.d.ts.map +1 -0
- package/dist/core/compact.js +69 -0
- package/dist/core/compact.js.map +1 -0
- package/dist/core/contained.d.ts +7 -0
- package/dist/core/contained.d.ts.map +1 -0
- package/dist/core/contained.js +14 -0
- package/dist/core/contained.js.map +1 -0
- package/dist/core/control-queue/index.d.ts +21 -0
- package/dist/core/control-queue/index.d.ts.map +1 -0
- package/dist/core/control-queue/index.js +98 -0
- package/dist/core/control-queue/index.js.map +1 -0
- package/dist/core/control-queue/state.d.ts +29 -0
- package/dist/core/control-queue/state.d.ts.map +1 -0
- package/dist/core/control-queue/state.js +95 -0
- package/dist/core/control-queue/state.js.map +1 -0
- package/dist/core/control-queue/traits.d.ts +54 -0
- package/dist/core/control-queue/traits.d.ts.map +1 -0
- package/dist/core/control-queue/traits.js +118 -0
- package/dist/core/control-queue/traits.js.map +1 -0
- package/dist/core/control-queue/types.d.ts +45 -0
- package/dist/core/control-queue/types.d.ts.map +1 -0
- package/dist/core/control-queue/types.js +7 -0
- package/dist/core/control-queue/types.js.map +1 -0
- package/dist/core/control-queue-state.d.ts +29 -0
- package/dist/core/control-queue-state.d.ts.map +1 -0
- package/dist/core/control-queue-state.js +95 -0
- package/dist/core/control-queue-state.js.map +1 -0
- package/dist/core/control-queue-traits.d.ts +54 -0
- package/dist/core/control-queue-traits.d.ts.map +1 -0
- package/dist/core/control-queue-traits.js +118 -0
- package/dist/core/control-queue-traits.js.map +1 -0
- package/dist/core/control-queue-types.d.ts +45 -0
- package/dist/core/control-queue-types.d.ts.map +1 -0
- package/dist/core/control-queue-types.js +7 -0
- package/dist/core/control-queue-types.js.map +1 -0
- package/dist/core/control-queue.d.ts +21 -0
- package/dist/core/control-queue.d.ts.map +1 -0
- package/dist/core/control-queue.js +98 -0
- package/dist/core/control-queue.js.map +1 -0
- package/dist/core/defaults.d.ts +7 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +6 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/delay.d.ts +7 -0
- package/dist/core/delay.d.ts.map +1 -0
- package/dist/core/delay.js +9 -0
- package/dist/core/delay.js.map +1 -0
- package/dist/core/errors.d.ts +39 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +65 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/hook-dispatch.d.ts +36 -0
- package/dist/core/hook-dispatch.d.ts.map +1 -0
- package/dist/core/hook-dispatch.js +51 -0
- package/dist/core/hook-dispatch.js.map +1 -0
- package/dist/core/hook-result.d.ts +8 -0
- package/dist/core/hook-result.d.ts.map +1 -0
- package/dist/core/hook-result.js +40 -0
- package/dist/core/hook-result.js.map +1 -0
- package/dist/core/hook-timeout.d.ts +25 -0
- package/dist/core/hook-timeout.d.ts.map +1 -0
- package/dist/core/hook-timeout.js +26 -0
- package/dist/core/hook-timeout.js.map +1 -0
- package/dist/core/images/chip-wait.d.ts +43 -0
- package/dist/core/images/chip-wait.d.ts.map +1 -0
- package/dist/core/images/chip-wait.js +80 -0
- package/dist/core/images/chip-wait.js.map +1 -0
- package/dist/core/images/index.d.ts +9 -0
- package/dist/core/images/index.d.ts.map +1 -0
- package/dist/core/images/index.js +8 -0
- package/dist/core/images/index.js.map +1 -0
- package/dist/core/images/materialize.d.ts +22 -0
- package/dist/core/images/materialize.d.ts.map +1 -0
- package/dist/core/images/materialize.js +49 -0
- package/dist/core/images/materialize.js.map +1 -0
- package/dist/core/images/resolve.d.ts +45 -0
- package/dist/core/images/resolve.d.ts.map +1 -0
- package/dist/core/images/resolve.js +137 -0
- package/dist/core/images/resolve.js.map +1 -0
- package/dist/core/images/types.d.ts +39 -0
- package/dist/core/images/types.d.ts.map +1 -0
- package/dist/core/images/types.js +26 -0
- package/dist/core/images/types.js.map +1 -0
- package/dist/core/input/abort.d.ts +10 -0
- package/dist/core/input/abort.d.ts.map +1 -0
- package/dist/core/input/abort.js +44 -0
- package/dist/core/input/abort.js.map +1 -0
- package/dist/core/input/index.d.ts +37 -0
- package/dist/core/input/index.d.ts.map +1 -0
- package/dist/core/input/index.js +154 -0
- package/dist/core/input/index.js.map +1 -0
- package/dist/core/interrupt.d.ts +29 -0
- package/dist/core/interrupt.d.ts.map +1 -0
- package/dist/core/interrupt.js +57 -0
- package/dist/core/interrupt.js.map +1 -0
- package/dist/core/list-models.d.ts +44 -0
- package/dist/core/list-models.d.ts.map +1 -0
- package/dist/core/list-models.js +73 -0
- package/dist/core/list-models.js.map +1 -0
- package/dist/core/loops/constants.d.ts +13 -0
- package/dist/core/loops/constants.d.ts.map +1 -0
- package/dist/core/loops/constants.js +13 -0
- package/dist/core/loops/constants.js.map +1 -0
- package/dist/core/loops/jitter.d.ts +6 -0
- package/dist/core/loops/jitter.d.ts.map +1 -0
- package/dist/core/loops/jitter.js +20 -0
- package/dist/core/loops/jitter.js.map +1 -0
- package/dist/core/loops/loop-controls.d.ts +8 -0
- package/dist/core/loops/loop-controls.d.ts.map +1 -0
- package/dist/core/loops/loop-controls.js +3 -0
- package/dist/core/loops/loop-controls.js.map +1 -0
- package/dist/core/loops/parser.d.ts +7 -0
- package/dist/core/loops/parser.d.ts.map +1 -0
- package/dist/core/loops/parser.js +37 -0
- package/dist/core/loops/parser.js.map +1 -0
- package/dist/core/loops/scheduler-delivery.d.ts +42 -0
- package/dist/core/loops/scheduler-delivery.d.ts.map +1 -0
- package/dist/core/loops/scheduler-delivery.js +112 -0
- package/dist/core/loops/scheduler-delivery.js.map +1 -0
- package/dist/core/loops/scheduler-state.d.ts +63 -0
- package/dist/core/loops/scheduler-state.d.ts.map +1 -0
- package/dist/core/loops/scheduler-state.js +102 -0
- package/dist/core/loops/scheduler-state.js.map +1 -0
- package/dist/core/loops/scheduler.d.ts +27 -0
- package/dist/core/loops/scheduler.d.ts.map +1 -0
- package/dist/core/loops/scheduler.js +189 -0
- package/dist/core/loops/scheduler.js.map +1 -0
- package/dist/core/loops/timers.d.ts +25 -0
- package/dist/core/loops/timers.d.ts.map +1 -0
- package/dist/core/loops/timers.js +47 -0
- package/dist/core/loops/timers.js.map +1 -0
- package/dist/core/loops/timing.d.ts +27 -0
- package/dist/core/loops/timing.d.ts.map +1 -0
- package/dist/core/loops/timing.js +68 -0
- package/dist/core/loops/timing.js.map +1 -0
- package/dist/core/loops/types.d.ts +57 -0
- package/dist/core/loops/types.d.ts.map +1 -0
- package/dist/core/loops/types.js +6 -0
- package/dist/core/loops/types.js.map +1 -0
- package/dist/core/loops/validate.d.ts +9 -0
- package/dist/core/loops/validate.d.ts.map +1 -0
- package/dist/core/loops/validate.js +46 -0
- package/dist/core/loops/validate.js.map +1 -0
- package/dist/core/model-picker.d.ts +22 -0
- package/dist/core/model-picker.d.ts.map +1 -0
- package/dist/core/model-picker.js +58 -0
- package/dist/core/model-picker.js.map +1 -0
- package/dist/core/model-rows.d.ts +21 -0
- package/dist/core/model-rows.d.ts.map +1 -0
- package/dist/core/model-rows.js +57 -0
- package/dist/core/model-rows.js.map +1 -0
- package/dist/core/models/list.d.ts +44 -0
- package/dist/core/models/list.d.ts.map +1 -0
- package/dist/core/models/list.js +73 -0
- package/dist/core/models/list.js.map +1 -0
- package/dist/core/models/picker.d.ts +22 -0
- package/dist/core/models/picker.d.ts.map +1 -0
- package/dist/core/models/picker.js +58 -0
- package/dist/core/models/picker.js.map +1 -0
- package/dist/core/models/probe-state.d.ts +21 -0
- package/dist/core/models/probe-state.d.ts.map +1 -0
- package/dist/core/models/probe-state.js +39 -0
- package/dist/core/models/probe-state.js.map +1 -0
- package/dist/core/models/rows.d.ts +21 -0
- package/dist/core/models/rows.d.ts.map +1 -0
- package/dist/core/models/rows.js +57 -0
- package/dist/core/models/rows.js.map +1 -0
- package/dist/core/models/tui-screen.d.ts +21 -0
- package/dist/core/models/tui-screen.d.ts.map +1 -0
- package/dist/core/models/tui-screen.js +56 -0
- package/dist/core/models/tui-screen.js.map +1 -0
- package/dist/core/module-require.d.ts +8 -0
- package/dist/core/module-require.d.ts.map +1 -0
- package/dist/core/module-require.js +14 -0
- package/dist/core/module-require.js.map +1 -0
- package/dist/core/persona.d.ts +10 -0
- package/dist/core/persona.d.ts.map +1 -0
- package/dist/core/persona.js +18 -0
- package/dist/core/persona.js.map +1 -0
- package/dist/core/predicates.d.ts +16 -0
- package/dist/core/predicates.d.ts.map +1 -0
- package/dist/core/predicates.js +32 -0
- package/dist/core/predicates.js.map +1 -0
- package/dist/core/private-output-secrets.d.ts +9 -0
- package/dist/core/private-output-secrets.d.ts.map +1 -0
- package/dist/core/private-output-secrets.js +14 -0
- package/dist/core/private-output-secrets.js.map +1 -0
- package/dist/core/probe-state.d.ts +21 -0
- package/dist/core/probe-state.d.ts.map +1 -0
- package/dist/core/probe-state.js +39 -0
- package/dist/core/probe-state.js.map +1 -0
- package/dist/core/reasoning-effort.d.ts +40 -0
- package/dist/core/reasoning-effort.d.ts.map +1 -0
- package/dist/core/reasoning-effort.js +44 -0
- package/dist/core/reasoning-effort.js.map +1 -0
- package/dist/core/rendered-observers.d.ts +29 -0
- package/dist/core/rendered-observers.d.ts.map +1 -0
- package/dist/core/rendered-observers.js +29 -0
- package/dist/core/rendered-observers.js.map +1 -0
- package/dist/core/screen-facts.d.ts +61 -0
- package/dist/core/screen-facts.d.ts.map +1 -0
- package/dist/core/screen-facts.js +36 -0
- package/dist/core/screen-facts.js.map +1 -0
- package/dist/core/serialize.d.ts +9 -0
- package/dist/core/serialize.d.ts.map +1 -0
- package/dist/core/serialize.js +20 -0
- package/dist/core/serialize.js.map +1 -0
- package/dist/core/session-input-abort.d.ts +10 -0
- package/dist/core/session-input-abort.d.ts.map +1 -0
- package/dist/core/session-input-abort.js +44 -0
- package/dist/core/session-input-abort.js.map +1 -0
- package/dist/core/session-input.d.ts +37 -0
- package/dist/core/session-input.d.ts.map +1 -0
- package/dist/core/session-input.js +154 -0
- package/dist/core/session-input.js.map +1 -0
- package/dist/core/session-wait.d.ts +30 -0
- package/dist/core/session-wait.d.ts.map +1 -0
- package/dist/core/session-wait.js +110 -0
- package/dist/core/session-wait.js.map +1 -0
- package/dist/core/session-warnings.d.ts +20 -0
- package/dist/core/session-warnings.d.ts.map +1 -0
- package/dist/core/session-warnings.js +32 -0
- package/dist/core/session-warnings.js.map +1 -0
- package/dist/core/simple/completeness-oracle.d.ts +31 -0
- package/dist/core/simple/completeness-oracle.d.ts.map +1 -0
- package/dist/core/simple/completeness-oracle.js +51 -0
- package/dist/core/simple/completeness-oracle.js.map +1 -0
- package/dist/core/simple/events.d.ts +34 -0
- package/dist/core/simple/events.d.ts.map +1 -0
- package/dist/core/simple/events.js +56 -0
- package/dist/core/simple/events.js.map +1 -0
- package/dist/core/simple/loop-controls.d.ts +7 -0
- package/dist/core/simple/loop-controls.d.ts.map +1 -0
- package/dist/core/simple/loop-controls.js +7 -0
- package/dist/core/simple/loop-controls.js.map +1 -0
- package/dist/core/simple/resolve-paths.d.ts +23 -0
- package/dist/core/simple/resolve-paths.d.ts.map +1 -0
- package/dist/core/simple/resolve-paths.js +22 -0
- package/dist/core/simple/resolve-paths.js.map +1 -0
- package/dist/core/simple/session.d.ts +78 -0
- package/dist/core/simple/session.d.ts.map +1 -0
- package/dist/core/simple/session.js +155 -0
- package/dist/core/simple/session.js.map +1 -0
- package/dist/core/simple/subscriptions.d.ts +32 -0
- package/dist/core/simple/subscriptions.d.ts.map +1 -0
- package/dist/core/simple/subscriptions.js +63 -0
- package/dist/core/simple/subscriptions.js.map +1 -0
- package/dist/core/simple/turn-acceptance.d.ts +27 -0
- package/dist/core/simple/turn-acceptance.d.ts.map +1 -0
- package/dist/core/simple/turn-acceptance.js +71 -0
- package/dist/core/simple/turn-acceptance.js.map +1 -0
- package/dist/core/simple/turn-boundary.d.ts +42 -0
- package/dist/core/simple/turn-boundary.d.ts.map +1 -0
- package/dist/core/simple/turn-boundary.js +72 -0
- package/dist/core/simple/turn-boundary.js.map +1 -0
- package/dist/core/simple/turn-gate.d.ts +59 -0
- package/dist/core/simple/turn-gate.d.ts.map +1 -0
- package/dist/core/simple/turn-gate.js +194 -0
- package/dist/core/simple/turn-gate.js.map +1 -0
- package/dist/core/simple/turn-queue.d.ts +23 -0
- package/dist/core/simple/turn-queue.d.ts.map +1 -0
- package/dist/core/simple/turn-queue.js +43 -0
- package/dist/core/simple/turn-queue.js.map +1 -0
- package/dist/core/simple/turn-types.d.ts +128 -0
- package/dist/core/simple/turn-types.d.ts.map +1 -0
- package/dist/core/simple/turn-types.js +15 -0
- package/dist/core/simple/turn-types.js.map +1 -0
- package/dist/core/simple/turn.d.ts +37 -0
- package/dist/core/simple/turn.d.ts.map +1 -0
- package/dist/core/simple/turn.js +173 -0
- package/dist/core/simple/turn.js.map +1 -0
- package/dist/core/start-or-resume.d.ts +10 -0
- package/dist/core/start-or-resume.d.ts.map +1 -0
- package/dist/core/start-or-resume.js +24 -0
- package/dist/core/start-or-resume.js.map +1 -0
- package/dist/core/startup/automation.d.ts +54 -0
- package/dist/core/startup/automation.d.ts.map +1 -0
- package/dist/core/startup/automation.js +40 -0
- package/dist/core/startup/automation.js.map +1 -0
- package/dist/core/startup/frame.d.ts +39 -0
- package/dist/core/startup/frame.d.ts.map +1 -0
- package/dist/core/startup/frame.js +60 -0
- package/dist/core/startup/frame.js.map +1 -0
- package/dist/core/startup/write.d.ts +47 -0
- package/dist/core/startup/write.d.ts.map +1 -0
- package/dist/core/startup/write.js +73 -0
- package/dist/core/startup/write.js.map +1 -0
- package/dist/core/startup-automation.d.ts +54 -0
- package/dist/core/startup-automation.d.ts.map +1 -0
- package/dist/core/startup-automation.js +40 -0
- package/dist/core/startup-automation.js.map +1 -0
- package/dist/core/startup-frame.d.ts +39 -0
- package/dist/core/startup-frame.d.ts.map +1 -0
- package/dist/core/startup-frame.js +60 -0
- package/dist/core/startup-frame.js.map +1 -0
- package/dist/core/startup-write.d.ts +47 -0
- package/dist/core/startup-write.d.ts.map +1 -0
- package/dist/core/startup-write.js +73 -0
- package/dist/core/startup-write.js.map +1 -0
- package/dist/core/status-categories.d.ts +21 -0
- package/dist/core/status-categories.d.ts.map +1 -0
- package/dist/core/status-categories.js +20 -0
- package/dist/core/status-categories.js.map +1 -0
- package/dist/core/terminal-options.d.ts +39 -0
- package/dist/core/terminal-options.d.ts.map +1 -0
- package/dist/core/terminal-options.js +114 -0
- package/dist/core/terminal-options.js.map +1 -0
- package/dist/core/terminal-replay.d.ts +32 -0
- package/dist/core/terminal-replay.d.ts.map +1 -0
- package/dist/core/terminal-replay.js +69 -0
- package/dist/core/terminal-replay.js.map +1 -0
- package/dist/core/transcript/cursor-io.d.ts +21 -0
- package/dist/core/transcript/cursor-io.d.ts.map +1 -0
- package/dist/core/transcript/cursor-io.js +60 -0
- package/dist/core/transcript/cursor-io.js.map +1 -0
- package/dist/core/transcript/cursor.d.ts +49 -0
- package/dist/core/transcript/cursor.d.ts.map +1 -0
- package/dist/core/transcript/cursor.js +100 -0
- package/dist/core/transcript/cursor.js.map +1 -0
- package/dist/core/transcript/drops.d.ts +63 -0
- package/dist/core/transcript/drops.d.ts.map +1 -0
- package/dist/core/transcript/drops.js +86 -0
- package/dist/core/transcript/drops.js.map +1 -0
- package/dist/core/transcript/warning-router.d.ts +28 -0
- package/dist/core/transcript/warning-router.d.ts.map +1 -0
- package/dist/core/transcript/warning-router.js +37 -0
- package/dist/core/transcript/warning-router.js.map +1 -0
- package/dist/core/transcript/warnings.d.ts +14 -0
- package/dist/core/transcript/warnings.d.ts.map +1 -0
- package/dist/core/transcript/warnings.js +41 -0
- package/dist/core/transcript/warnings.js.map +1 -0
- package/dist/core/trust/blocking.d.ts +22 -0
- package/dist/core/trust/blocking.d.ts.map +1 -0
- package/dist/core/trust/blocking.js +38 -0
- package/dist/core/trust/blocking.js.map +1 -0
- package/dist/core/trust/prompts.d.ts +135 -0
- package/dist/core/trust/prompts.d.ts.map +1 -0
- package/dist/core/trust/prompts.js +108 -0
- package/dist/core/trust/prompts.js.map +1 -0
- package/dist/core/trust/responder.d.ts +48 -0
- package/dist/core/trust/responder.d.ts.map +1 -0
- package/dist/core/trust/responder.js +119 -0
- package/dist/core/trust/responder.js.map +1 -0
- package/dist/core/trust-blocking.d.ts +22 -0
- package/dist/core/trust-blocking.d.ts.map +1 -0
- package/dist/core/trust-blocking.js +38 -0
- package/dist/core/trust-blocking.js.map +1 -0
- package/dist/core/trust-prompts.d.ts +135 -0
- package/dist/core/trust-prompts.d.ts.map +1 -0
- package/dist/core/trust-prompts.js +108 -0
- package/dist/core/trust-prompts.js.map +1 -0
- package/dist/core/trust-responder.d.ts +48 -0
- package/dist/core/trust-responder.d.ts.map +1 -0
- package/dist/core/trust-responder.js +119 -0
- package/dist/core/trust-responder.js.map +1 -0
- package/dist/core/tui-screen.d.ts +21 -0
- package/dist/core/tui-screen.d.ts.map +1 -0
- package/dist/core/tui-screen.js +56 -0
- package/dist/core/tui-screen.js.map +1 -0
- package/dist/core/turn-state.d.ts +41 -0
- package/dist/core/turn-state.d.ts.map +1 -0
- package/dist/core/turn-state.js +109 -0
- package/dist/core/turn-state.js.map +1 -0
- package/dist/core/types.d.ts +109 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/update-warning.d.ts +25 -0
- package/dist/core/update-warning.d.ts.map +1 -0
- package/dist/core/update-warning.js +33 -0
- package/dist/core/update-warning.js.map +1 -0
- package/dist/core/utf8.d.ts +11 -0
- package/dist/core/utf8.d.ts.map +1 -0
- package/dist/core/utf8.js +27 -0
- package/dist/core/utf8.js.map +1 -0
- package/dist/core/versions.d.ts +11 -0
- package/dist/core/versions.d.ts.map +1 -0
- package/dist/core/versions.js +26 -0
- package/dist/core/versions.js.map +1 -0
- package/dist/core/warning-lifecycle.d.ts +23 -0
- package/dist/core/warning-lifecycle.d.ts.map +1 -0
- package/dist/core/warning-lifecycle.js +6 -0
- package/dist/core/warning-lifecycle.js.map +1 -0
- package/dist/core/warning-reasons.d.ts +62 -0
- package/dist/core/warning-reasons.d.ts.map +1 -0
- package/dist/core/warning-reasons.js +121 -0
- package/dist/core/warning-reasons.js.map +1 -0
- package/dist/core/warnings/index.d.ts +145 -0
- package/dist/core/warnings/index.d.ts.map +1 -0
- package/dist/core/warnings/index.js +12 -0
- package/dist/core/warnings/index.js.map +1 -0
- package/dist/core/warnings/lifecycle.d.ts +23 -0
- package/dist/core/warnings/lifecycle.d.ts.map +1 -0
- package/dist/core/warnings/lifecycle.js +6 -0
- package/dist/core/warnings/lifecycle.js.map +1 -0
- package/dist/core/warnings/reasons.d.ts +62 -0
- package/dist/core/warnings/reasons.d.ts.map +1 -0
- package/dist/core/warnings/reasons.js +121 -0
- package/dist/core/warnings/reasons.js.map +1 -0
- package/dist/core/warnings/session.d.ts +20 -0
- package/dist/core/warnings/session.d.ts.map +1 -0
- package/dist/core/warnings/session.js +32 -0
- package/dist/core/warnings/session.js.map +1 -0
- package/dist/core/warnings/update.d.ts +25 -0
- package/dist/core/warnings/update.d.ts.map +1 -0
- package/dist/core/warnings/update.js +33 -0
- package/dist/core/warnings/update.js.map +1 -0
- package/dist/core/warnings.d.ts +145 -0
- package/dist/core/warnings.d.ts.map +1 -0
- package/dist/core/warnings.js +12 -0
- package/dist/core/warnings.js.map +1 -0
- package/dist/events/emitter.d.ts +19 -0
- package/dist/events/emitter.d.ts.map +1 -0
- package/dist/events/emitter.js +85 -0
- package/dist/events/emitter.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/pty/node.d.ts +17 -0
- package/dist/pty/node.d.ts.map +1 -0
- package/dist/pty/node.js +79 -0
- package/dist/pty/node.js.map +1 -0
- package/dist/pty/types.d.ts +26 -0
- package/dist/pty/types.d.ts.map +1 -0
- package/dist/pty/types.js +6 -0
- package/dist/pty/types.js.map +1 -0
- package/dist/runtime/cleanup-latch.d.ts +27 -0
- package/dist/runtime/cleanup-latch.d.ts.map +1 -0
- package/dist/runtime/cleanup-latch.js +43 -0
- package/dist/runtime/cleanup-latch.js.map +1 -0
- package/dist/runtime/hook-command.d.ts +11 -0
- package/dist/runtime/hook-command.d.ts.map +1 -0
- package/dist/runtime/hook-command.js +14 -0
- package/dist/runtime/hook-command.js.map +1 -0
- package/dist/runtime/initial-ready-advance.d.ts +22 -0
- package/dist/runtime/initial-ready-advance.d.ts.map +1 -0
- package/dist/runtime/initial-ready-advance.js +39 -0
- package/dist/runtime/initial-ready-advance.js.map +1 -0
- package/dist/runtime/initial-ready-fallback.d.ts +12 -0
- package/dist/runtime/initial-ready-fallback.d.ts.map +1 -0
- package/dist/runtime/initial-ready-fallback.js +20 -0
- package/dist/runtime/initial-ready-fallback.js.map +1 -0
- package/dist/runtime/initial-ready.d.ts +49 -0
- package/dist/runtime/initial-ready.d.ts.map +1 -0
- package/dist/runtime/initial-ready.js +81 -0
- package/dist/runtime/initial-ready.js.map +1 -0
- package/dist/runtime/loop-restore.d.ts +10 -0
- package/dist/runtime/loop-restore.d.ts.map +1 -0
- package/dist/runtime/loop-restore.js +26 -0
- package/dist/runtime/loop-restore.js.map +1 -0
- package/dist/runtime/probe.d.ts +11 -0
- package/dist/runtime/probe.d.ts.map +1 -0
- package/dist/runtime/probe.js +120 -0
- package/dist/runtime/probe.js.map +1 -0
- package/dist/runtime/readiness/advance.d.ts +22 -0
- package/dist/runtime/readiness/advance.d.ts.map +1 -0
- package/dist/runtime/readiness/advance.js +39 -0
- package/dist/runtime/readiness/advance.js.map +1 -0
- package/dist/runtime/readiness/initial-ready.d.ts +49 -0
- package/dist/runtime/readiness/initial-ready.d.ts.map +1 -0
- package/dist/runtime/readiness/initial-ready.js +81 -0
- package/dist/runtime/readiness/initial-ready.js.map +1 -0
- package/dist/runtime/reap-tree.d.ts +62 -0
- package/dist/runtime/reap-tree.d.ts.map +1 -0
- package/dist/runtime/reap-tree.js +108 -0
- package/dist/runtime/reap-tree.js.map +1 -0
- package/dist/runtime/seams.d.ts +28 -0
- package/dist/runtime/seams.d.ts.map +1 -0
- package/dist/runtime/seams.js +34 -0
- package/dist/runtime/seams.js.map +1 -0
- package/dist/runtime/session/base.d.ts +48 -0
- package/dist/runtime/session/base.d.ts.map +1 -0
- package/dist/runtime/session/base.js +76 -0
- package/dist/runtime/session/base.js.map +1 -0
- package/dist/runtime/session/commands.d.ts +43 -0
- package/dist/runtime/session/commands.d.ts.map +1 -0
- package/dist/runtime/session/commands.js +52 -0
- package/dist/runtime/session/commands.js.map +1 -0
- package/dist/runtime/session/exit.d.ts +16 -0
- package/dist/runtime/session/exit.d.ts.map +1 -0
- package/dist/runtime/session/exit.js +32 -0
- package/dist/runtime/session/exit.js.map +1 -0
- package/dist/runtime/session/image-attach.d.ts +45 -0
- package/dist/runtime/session/image-attach.d.ts.map +1 -0
- package/dist/runtime/session/image-attach.js +82 -0
- package/dist/runtime/session/image-attach.js.map +1 -0
- package/dist/runtime/session/lifecycle.d.ts +58 -0
- package/dist/runtime/session/lifecycle.d.ts.map +1 -0
- package/dist/runtime/session/lifecycle.js +161 -0
- package/dist/runtime/session/lifecycle.js.map +1 -0
- package/dist/runtime/session/loops.d.ts +32 -0
- package/dist/runtime/session/loops.d.ts.map +1 -0
- package/dist/runtime/session/loops.js +62 -0
- package/dist/runtime/session/loops.js.map +1 -0
- package/dist/runtime/session/readiness.d.ts +18 -0
- package/dist/runtime/session/readiness.d.ts.map +1 -0
- package/dist/runtime/session/readiness.js +22 -0
- package/dist/runtime/session/readiness.js.map +1 -0
- package/dist/runtime/session/reap.d.ts +28 -0
- package/dist/runtime/session/reap.d.ts.map +1 -0
- package/dist/runtime/session/reap.js +51 -0
- package/dist/runtime/session/reap.js.map +1 -0
- package/dist/runtime/session/resize.d.ts +20 -0
- package/dist/runtime/session/resize.d.ts.map +1 -0
- package/dist/runtime/session/resize.js +26 -0
- package/dist/runtime/session/resize.js.map +1 -0
- package/dist/runtime/session/shutdown-binding.d.ts +30 -0
- package/dist/runtime/session/shutdown-binding.d.ts.map +1 -0
- package/dist/runtime/session/shutdown-binding.js +37 -0
- package/dist/runtime/session/shutdown-binding.js.map +1 -0
- package/dist/runtime/session/shutdown.d.ts +60 -0
- package/dist/runtime/session/shutdown.d.ts.map +1 -0
- package/dist/runtime/session/shutdown.js +140 -0
- package/dist/runtime/session/shutdown.js.map +1 -0
- package/dist/runtime/session/status-wiring.d.ts +38 -0
- package/dist/runtime/session/status-wiring.d.ts.map +1 -0
- package/dist/runtime/session/status-wiring.js +41 -0
- package/dist/runtime/session/status-wiring.js.map +1 -0
- package/dist/runtime/session/status.d.ts +7 -0
- package/dist/runtime/session/status.d.ts.map +1 -0
- package/dist/runtime/session/status.js +22 -0
- package/dist/runtime/session/status.js.map +1 -0
- package/dist/runtime/session-base-types.d.ts +36 -0
- package/dist/runtime/session-base-types.d.ts.map +1 -0
- package/dist/runtime/session-base-types.js +14 -0
- package/dist/runtime/session-base-types.js.map +1 -0
- package/dist/runtime/session-base.d.ts +48 -0
- package/dist/runtime/session-base.d.ts.map +1 -0
- package/dist/runtime/session-base.js +76 -0
- package/dist/runtime/session-base.js.map +1 -0
- package/dist/runtime/session-commands.d.ts +43 -0
- package/dist/runtime/session-commands.d.ts.map +1 -0
- package/dist/runtime/session-commands.js +52 -0
- package/dist/runtime/session-commands.js.map +1 -0
- package/dist/runtime/session-exit.d.ts +16 -0
- package/dist/runtime/session-exit.d.ts.map +1 -0
- package/dist/runtime/session-exit.js +32 -0
- package/dist/runtime/session-exit.js.map +1 -0
- package/dist/runtime/session-image-attach.d.ts +45 -0
- package/dist/runtime/session-image-attach.d.ts.map +1 -0
- package/dist/runtime/session-image-attach.js +82 -0
- package/dist/runtime/session-image-attach.js.map +1 -0
- package/dist/runtime/session-lifecycle.d.ts +61 -0
- package/dist/runtime/session-lifecycle.d.ts.map +1 -0
- package/dist/runtime/session-lifecycle.js +164 -0
- package/dist/runtime/session-lifecycle.js.map +1 -0
- package/dist/runtime/session-loops.d.ts +32 -0
- package/dist/runtime/session-loops.d.ts.map +1 -0
- package/dist/runtime/session-loops.js +62 -0
- package/dist/runtime/session-loops.js.map +1 -0
- package/dist/runtime/session-readiness.d.ts +18 -0
- package/dist/runtime/session-readiness.d.ts.map +1 -0
- package/dist/runtime/session-readiness.js +22 -0
- package/dist/runtime/session-readiness.js.map +1 -0
- package/dist/runtime/session-reap.d.ts +28 -0
- package/dist/runtime/session-reap.d.ts.map +1 -0
- package/dist/runtime/session-reap.js +51 -0
- package/dist/runtime/session-reap.js.map +1 -0
- package/dist/runtime/session-resize.d.ts +20 -0
- package/dist/runtime/session-resize.d.ts.map +1 -0
- package/dist/runtime/session-resize.js +26 -0
- package/dist/runtime/session-resize.js.map +1 -0
- package/dist/runtime/session-shutdown-binding.d.ts +30 -0
- package/dist/runtime/session-shutdown-binding.d.ts.map +1 -0
- package/dist/runtime/session-shutdown-binding.js +37 -0
- package/dist/runtime/session-shutdown-binding.js.map +1 -0
- package/dist/runtime/session-shutdown.d.ts +60 -0
- package/dist/runtime/session-shutdown.d.ts.map +1 -0
- package/dist/runtime/session-shutdown.js +140 -0
- package/dist/runtime/session-shutdown.js.map +1 -0
- package/dist/runtime/session-status-wiring.d.ts +38 -0
- package/dist/runtime/session-status-wiring.d.ts.map +1 -0
- package/dist/runtime/session-status-wiring.js +41 -0
- package/dist/runtime/session-status-wiring.js.map +1 -0
- package/dist/runtime/session-status.d.ts +7 -0
- package/dist/runtime/session-status.d.ts.map +1 -0
- package/dist/runtime/session-status.js +22 -0
- package/dist/runtime/session-status.js.map +1 -0
- package/dist/runtime/shell.d.ts +21 -0
- package/dist/runtime/shell.d.ts.map +1 -0
- package/dist/runtime/shell.js +30 -0
- package/dist/runtime/shell.js.map +1 -0
- package/dist/runtime/shutdown/cleanup-latch.d.ts +27 -0
- package/dist/runtime/shutdown/cleanup-latch.d.ts.map +1 -0
- package/dist/runtime/shutdown/cleanup-latch.js +43 -0
- package/dist/runtime/shutdown/cleanup-latch.js.map +1 -0
- package/dist/runtime/shutdown/coordinator.d.ts +57 -0
- package/dist/runtime/shutdown/coordinator.d.ts.map +1 -0
- package/dist/runtime/shutdown/coordinator.js +77 -0
- package/dist/runtime/shutdown/coordinator.js.map +1 -0
- package/dist/runtime/shutdown/reap-tree.d.ts +62 -0
- package/dist/runtime/shutdown/reap-tree.d.ts.map +1 -0
- package/dist/runtime/shutdown/reap-tree.js +108 -0
- package/dist/runtime/shutdown/reap-tree.js.map +1 -0
- package/dist/runtime/shutdown/teardown.d.ts +15 -0
- package/dist/runtime/shutdown/teardown.d.ts.map +1 -0
- package/dist/runtime/shutdown/teardown.js +40 -0
- package/dist/runtime/shutdown/teardown.js.map +1 -0
- package/dist/runtime/shutdown/terminate.d.ts +22 -0
- package/dist/runtime/shutdown/terminate.d.ts.map +1 -0
- package/dist/runtime/shutdown/terminate.js +129 -0
- package/dist/runtime/shutdown/terminate.js.map +1 -0
- package/dist/runtime/shutdown-coordinator.d.ts +57 -0
- package/dist/runtime/shutdown-coordinator.d.ts.map +1 -0
- package/dist/runtime/shutdown-coordinator.js +77 -0
- package/dist/runtime/shutdown-coordinator.js.map +1 -0
- package/dist/runtime/startup/buffer.d.ts +33 -0
- package/dist/runtime/startup/buffer.d.ts.map +1 -0
- package/dist/runtime/startup/buffer.js +53 -0
- package/dist/runtime/startup/buffer.js.map +1 -0
- package/dist/runtime/startup/cleanup.d.ts +43 -0
- package/dist/runtime/startup/cleanup.d.ts.map +1 -0
- package/dist/runtime/startup/cleanup.js +89 -0
- package/dist/runtime/startup/cleanup.js.map +1 -0
- package/dist/runtime/startup/index.d.ts +17 -0
- package/dist/runtime/startup/index.d.ts.map +1 -0
- package/dist/runtime/startup/index.js +47 -0
- package/dist/runtime/startup/index.js.map +1 -0
- package/dist/runtime/startup-buffer.d.ts +33 -0
- package/dist/runtime/startup-buffer.d.ts.map +1 -0
- package/dist/runtime/startup-buffer.js +53 -0
- package/dist/runtime/startup-buffer.js.map +1 -0
- package/dist/runtime/startup-cleanup.d.ts +43 -0
- package/dist/runtime/startup-cleanup.d.ts.map +1 -0
- package/dist/runtime/startup-cleanup.js +89 -0
- package/dist/runtime/startup-cleanup.js.map +1 -0
- package/dist/runtime/startup.d.ts +17 -0
- package/dist/runtime/startup.d.ts.map +1 -0
- package/dist/runtime/startup.js +47 -0
- package/dist/runtime/startup.js.map +1 -0
- package/dist/runtime/status-emit.d.ts +14 -0
- package/dist/runtime/status-emit.d.ts.map +1 -0
- package/dist/runtime/status-emit.js +15 -0
- package/dist/runtime/status-emit.js.map +1 -0
- package/dist/runtime/status-evidence.d.ts +35 -0
- package/dist/runtime/status-evidence.d.ts.map +1 -0
- package/dist/runtime/status-evidence.js +143 -0
- package/dist/runtime/status-evidence.js.map +1 -0
- package/dist/runtime/teardown.d.ts +15 -0
- package/dist/runtime/teardown.d.ts.map +1 -0
- package/dist/runtime/teardown.js +40 -0
- package/dist/runtime/teardown.js.map +1 -0
- package/dist/runtime/terminate.d.ts +22 -0
- package/dist/runtime/terminate.d.ts.map +1 -0
- package/dist/runtime/terminate.js +129 -0
- package/dist/runtime/terminate.js.map +1 -0
- package/dist/runtime/update/lock.d.ts +19 -0
- package/dist/runtime/update/lock.d.ts.map +1 -0
- package/dist/runtime/update/lock.js +184 -0
- package/dist/runtime/update/lock.js.map +1 -0
- package/dist/runtime/update/once.d.ts +40 -0
- package/dist/runtime/update/once.d.ts.map +1 -0
- package/dist/runtime/update/once.js +88 -0
- package/dist/runtime/update/once.js.map +1 -0
- package/dist/runtime/update-lock.d.ts +19 -0
- package/dist/runtime/update-lock.d.ts.map +1 -0
- package/dist/runtime/update-lock.js +183 -0
- package/dist/runtime/update-lock.js.map +1 -0
- package/dist/runtime/update-once.d.ts +40 -0
- package/dist/runtime/update-once.d.ts.map +1 -0
- package/dist/runtime/update-once.js +88 -0
- package/dist/runtime/update-once.js.map +1 -0
- package/dist/state/files.d.ts +20 -0
- package/dist/state/files.d.ts.map +1 -0
- package/dist/state/files.js +78 -0
- package/dist/state/files.js.map +1 -0
- package/dist/state/launch-posture.d.ts +31 -0
- package/dist/state/launch-posture.d.ts.map +1 -0
- package/dist/state/launch-posture.js +41 -0
- package/dist/state/launch-posture.js.map +1 -0
- package/dist/state/loop-store.d.ts +13 -0
- package/dist/state/loop-store.d.ts.map +1 -0
- package/dist/state/loop-store.js +54 -0
- package/dist/state/loop-store.js.map +1 -0
- package/dist/state/private-read.d.ts +20 -0
- package/dist/state/private-read.d.ts.map +1 -0
- package/dist/state/private-read.js +57 -0
- package/dist/state/private-read.js.map +1 -0
- package/dist/state/private-session.d.ts +18 -0
- package/dist/state/private-session.d.ts.map +1 -0
- package/dist/state/private-session.js +98 -0
- package/dist/state/private-session.js.map +1 -0
- package/dist/state/runtime-paths.d.ts +40 -0
- package/dist/state/runtime-paths.d.ts.map +1 -0
- package/dist/state/runtime-paths.js +39 -0
- package/dist/state/runtime-paths.js.map +1 -0
- package/dist/state/socket-home.d.ts +68 -0
- package/dist/state/socket-home.d.ts.map +1 -0
- package/dist/state/socket-home.js +99 -0
- package/dist/state/socket-home.js.map +1 -0
- package/dist/state/store.d.ts +47 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +103 -0
- package/dist/state/store.js.map +1 -0
- package/dist/state/validate-loops.d.ts +9 -0
- package/dist/state/validate-loops.d.ts.map +1 -0
- package/dist/state/validate-loops.js +81 -0
- package/dist/state/validate-loops.js.map +1 -0
- package/dist/state/validate-posture.d.ts +15 -0
- package/dist/state/validate-posture.d.ts.map +1 -0
- package/dist/state/validate-posture.js +69 -0
- package/dist/state/validate-posture.js.map +1 -0
- package/dist/state/validate-predicates.d.ts +8 -0
- package/dist/state/validate-predicates.d.ts.map +1 -0
- package/dist/state/validate-predicates.js +8 -0
- package/dist/state/validate-predicates.js.map +1 -0
- package/dist/state/validate.d.ts +16 -0
- package/dist/state/validate.d.ts.map +1 -0
- package/dist/state/validate.js +55 -0
- package/dist/state/validate.js.map +1 -0
- package/dist/terminal/headless.d.ts +30 -0
- package/dist/terminal/headless.d.ts.map +1 -0
- package/dist/terminal/headless.js +132 -0
- package/dist/terminal/headless.js.map +1 -0
- package/docs/api.md +184 -0
- package/docs/cli-behavior.md +416 -0
- package/docs/cli-output.md +124 -0
- package/docs/cli.md +171 -0
- package/docs/design-notes.md +74 -0
- package/docs/embedding.md +82 -0
- package/docs/images.md +67 -0
- package/docs/lifecycle.md +45 -0
- package/docs/login-recovery.md +86 -0
- package/docs/loops.md +58 -0
- package/package.json +83 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allowlist of known adapter startup trust prompts and how to answer them.
|
|
3
|
+
* Implements PRD §5.1 and §5.5 (C-CLAUDE-10, C-CODEX-11, C-CLAUDE-14, C-CODEX-15).
|
|
4
|
+
*
|
|
5
|
+
* This is an EXPLICIT allowlist, not an open-ended matcher: each entry names one
|
|
6
|
+
* concrete prompt by its on-screen text and a fixed affirmative outcome. A new
|
|
7
|
+
* CLI prompt is trusted only by adding a deliberate entry here — Elwood never
|
|
8
|
+
* blanket-answers "any first-run confirmation", which would silently bypass a
|
|
9
|
+
* future CLI security gate for third-party code or config.
|
|
10
|
+
*/
|
|
11
|
+
import type { ElwoodAgentKind } from "../activity/index.ts";
|
|
12
|
+
/**
|
|
13
|
+
* The fields common to every allowlisted trust prompt. The prompt and its answer
|
|
14
|
+
* are BOTH matched within the same current frame: `headerPattern` identifies the
|
|
15
|
+
* prompt by its HEADER wording, and `accept` matches the exact affirmative option
|
|
16
|
+
* label in that same prompt. This prevents a stale phrase from one frame pairing
|
|
17
|
+
* with a "Yes" from a different, current dialog (which could auto-confirm an
|
|
18
|
+
* unrelated security gate). `headerPattern` is a HEADER matcher, not a
|
|
19
|
+
* whole-frame matcher: it is only safe when tested against the frame's non-option
|
|
20
|
+
* lines (via `trustHeaderMatches`), never applied raw to the full frame.
|
|
21
|
+
*/
|
|
22
|
+
type TrustPromptBase = {
|
|
23
|
+
/**
|
|
24
|
+
* Identifies the prompt by its HEADER wording. MUST be tested only against the
|
|
25
|
+
* frame's non-option lines (see `trustHeaderMatches`) — applying it raw to the
|
|
26
|
+
* full frame would let an option-only trust phrase spoof recognition.
|
|
27
|
+
* Verified against the CLI versions below.
|
|
28
|
+
*/
|
|
29
|
+
readonly headerPattern: RegExp;
|
|
30
|
+
/** Matches the exact affirmative option label for THIS prompt (per-prompt, not generic). */
|
|
31
|
+
readonly accept: RegExp;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* When an allowlisted prompt is answered. `"autotrust"` prompts are answered ONLY
|
|
35
|
+
* under the caller's full-trust posture; `"always"` prompts are answered
|
|
36
|
+
* regardless of it (Elwood's own hook bridge, never third-party code).
|
|
37
|
+
*/
|
|
38
|
+
export type TrustAnswerPolicy = "always" | "autotrust";
|
|
39
|
+
/**
|
|
40
|
+
* One allowlisted trust prompt, as an agent+id-DISCRIMINATED union so that (a) a
|
|
41
|
+
* typo in `id` cannot compile into a public startup label, and (b)
|
|
42
|
+
* `answerPolicy: "always"` — answered regardless of `autotrust` — is permitted
|
|
43
|
+
* ONLY on Codex `hook_trust`, Elwood's OWN integration (the hook bridge) that the
|
|
44
|
+
* session requires to work. Every third-party trust prompt (skills, plugins, MCP
|
|
45
|
+
* servers, folder trust) is `answerPolicy: "autotrust"`, staying gated on the
|
|
46
|
+
* caller's full-trust posture, so the invalid "third-party prompt answered
|
|
47
|
+
* always" state is unrepresentable.
|
|
48
|
+
*/
|
|
49
|
+
export type TrustPromptSpec = ({
|
|
50
|
+
readonly agent: "claude";
|
|
51
|
+
readonly id: ClaudeTrustPromptId;
|
|
52
|
+
readonly answerPolicy: "autotrust";
|
|
53
|
+
} & TrustPromptBase) | ({
|
|
54
|
+
readonly agent: "codex";
|
|
55
|
+
readonly id: "workspace_trust";
|
|
56
|
+
readonly answerPolicy: "autotrust";
|
|
57
|
+
} & TrustPromptBase) | ({
|
|
58
|
+
readonly agent: "codex";
|
|
59
|
+
readonly id: "hook_trust";
|
|
60
|
+
/** Answered regardless of `autotrust`: Elwood's own hook bridge (never third-party code). */
|
|
61
|
+
readonly answerPolicy: "always";
|
|
62
|
+
} & TrustPromptBase);
|
|
63
|
+
/** The Claude trust-prompt ids: folder trust plus the CLI's first-run skill/plugin/MCP gates. */
|
|
64
|
+
type ClaudeTrustPromptId = "workspace_trust" | "skill_trust" | "plugin_trust" | "mcp_trust";
|
|
65
|
+
/**
|
|
66
|
+
* The allowlist. Wording verified against claude 2.1.205–2.1.252 and codex-cli 0.142.5.
|
|
67
|
+
* `workspace`/`directory` trust are the folder-trust gates; `skill`, `plugin`,
|
|
68
|
+
* and `mcp` cover the CLI's first-run trust prompts for loading third-party
|
|
69
|
+
* skills, plugins, and MCP servers under a full-trust launch.
|
|
70
|
+
*/
|
|
71
|
+
export declare const trustPromptAllowlist: readonly [{
|
|
72
|
+
readonly id: "workspace_trust";
|
|
73
|
+
readonly agent: "claude";
|
|
74
|
+
readonly headerPattern: RegExp;
|
|
75
|
+
readonly accept: RegExp;
|
|
76
|
+
readonly answerPolicy: "autotrust";
|
|
77
|
+
}, {
|
|
78
|
+
readonly id: "skill_trust";
|
|
79
|
+
readonly agent: "claude";
|
|
80
|
+
readonly headerPattern: RegExp;
|
|
81
|
+
readonly accept: RegExp;
|
|
82
|
+
readonly answerPolicy: "autotrust";
|
|
83
|
+
}, {
|
|
84
|
+
readonly id: "plugin_trust";
|
|
85
|
+
readonly agent: "claude";
|
|
86
|
+
readonly headerPattern: RegExp;
|
|
87
|
+
readonly accept: RegExp;
|
|
88
|
+
readonly answerPolicy: "autotrust";
|
|
89
|
+
}, {
|
|
90
|
+
readonly id: "mcp_trust";
|
|
91
|
+
readonly agent: "claude";
|
|
92
|
+
readonly headerPattern: RegExp;
|
|
93
|
+
readonly accept: RegExp;
|
|
94
|
+
readonly answerPolicy: "autotrust";
|
|
95
|
+
}, {
|
|
96
|
+
readonly id: "workspace_trust";
|
|
97
|
+
readonly agent: "codex";
|
|
98
|
+
readonly headerPattern: RegExp;
|
|
99
|
+
readonly accept: RegExp;
|
|
100
|
+
readonly answerPolicy: "autotrust";
|
|
101
|
+
}, {
|
|
102
|
+
readonly id: "hook_trust";
|
|
103
|
+
readonly agent: "codex";
|
|
104
|
+
readonly headerPattern: RegExp;
|
|
105
|
+
readonly accept: RegExp;
|
|
106
|
+
readonly answerPolicy: "always";
|
|
107
|
+
}];
|
|
108
|
+
/**
|
|
109
|
+
* True when `spec`'s HEADER wording appears in `header` — the frame's NON-option
|
|
110
|
+
* text as produced by `nonOptionText`. This is the ONE shared, option-aware
|
|
111
|
+
* recognizer: the responder, the cursor navigator, and the screen-fact blocking
|
|
112
|
+
* rules all go through it (each computes `nonOptionText` once per frame and
|
|
113
|
+
* tests every spec against that), so a numbered or cursor-selectable option whose
|
|
114
|
+
* label merely contains a trust phrase is never recognized as a prompt. Matching
|
|
115
|
+
* joined non-option lines also keeps wrapped headers matchable (§5.1).
|
|
116
|
+
*/
|
|
117
|
+
export declare function trustHeaderMatches(header: string, spec: TrustPromptBase): boolean;
|
|
118
|
+
/** `trustHeaderMatches` over a raw frame, for callers that test a single spec. */
|
|
119
|
+
export declare function trustPromptHeaderVisible(frame: string, spec: TrustPromptBase): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* The stable public `startup_prompt` trust labels (§5.4), derived from the
|
|
122
|
+
* allowlist so the two can never drift: deleting, adding, or renaming an entry
|
|
123
|
+
* updates this union automatically. Because `TrustPromptSpec` fixes each agent's
|
|
124
|
+
* ids to a closed literal union, a typo in an entry's `id` fails to compile
|
|
125
|
+
* against `satisfies` rather than silently widening this derived label union.
|
|
126
|
+
*/
|
|
127
|
+
export type TrustPromptId = (typeof trustPromptAllowlist)[number]["id"];
|
|
128
|
+
/** The trust label ids for one specific agent (e.g. Codex automation cannot use a Claude-only id). */
|
|
129
|
+
export type TrustPromptIdFor<A extends ElwoodAgentKind> = Extract<(typeof trustPromptAllowlist)[number], {
|
|
130
|
+
readonly agent: A;
|
|
131
|
+
}>["id"];
|
|
132
|
+
/** Specs for one agent that stay UNANSWERED under the effective policy (block on the human). */
|
|
133
|
+
export declare function blockingTrustSpecs(agent: ElwoodAgentKind, autotrust: boolean): readonly TrustPromptSpec[];
|
|
134
|
+
export {};
|
|
135
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D;;;;;;;;;GASG;AACH,KAAK,eAAe,GAAG;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GACvB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;CACjC,GAAG,eAAe,CAAC,CAAC;AAEzB,iGAAiG;AACjG,KAAK,mBAAmB,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAW5F;;;;;GAKG;AAKH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDc,CAAC;AAEhD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEjF;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEtF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAExE,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,IAAI,OAAO,CAC/D,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,EACrC;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CACtB,CAAC,IAAI,CAAC,CAAC;AAER,gGAAgG;AAChG,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,GACjB,SAAS,eAAe,EAAE,CAM5B"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allowlist of known adapter startup trust prompts and how to answer them.
|
|
3
|
+
* Implements PRD §5.1 and §5.5 (C-CLAUDE-10, C-CODEX-11, C-CLAUDE-14, C-CODEX-15).
|
|
4
|
+
*
|
|
5
|
+
* This is an EXPLICIT allowlist, not an open-ended matcher: each entry names one
|
|
6
|
+
* concrete prompt by its on-screen text and a fixed affirmative outcome. A new
|
|
7
|
+
* CLI prompt is trusted only by adding a deliberate entry here — Elwood never
|
|
8
|
+
* blanket-answers "any first-run confirmation", which would silently bypass a
|
|
9
|
+
* future CLI security gate for third-party code or config.
|
|
10
|
+
*/
|
|
11
|
+
import { nonOptionText } from "../terminal-options.js";
|
|
12
|
+
// Affirmative option shapes. Each rejects decline words so "No, ..." never matches.
|
|
13
|
+
const notDecline = "(?!.*\\b(no|without|not|quit|cancel|deny|don't)\\b)";
|
|
14
|
+
const yesOption = new RegExp(`^${notDecline}.*\\b(yes|trust|continue|proceed)\\b`, "i");
|
|
15
|
+
const useMcpOption = new RegExp(`^${notDecline}.*\\buse this(?:.*\\bMCP)? server`, "i");
|
|
16
|
+
// Codex hook trust's real affirmative is "Trust all and continue" / "Trust
|
|
17
|
+
// hooks" — matched specifically so a nearby unrelated dialog's generic "Yes,
|
|
18
|
+
// continue" (e.g. a credential prompt) can never be selected for hook trust.
|
|
19
|
+
const trustHooksOption = new RegExp(`^${notDecline}.*\\btrust\\b.*\\b(hooks?|all)\\b`, "i");
|
|
20
|
+
/**
|
|
21
|
+
* The allowlist. Wording verified against claude 2.1.205–2.1.252 and codex-cli 0.142.5.
|
|
22
|
+
* `workspace`/`directory` trust are the folder-trust gates; `skill`, `plugin`,
|
|
23
|
+
* and `mcp` cover the CLI's first-run trust prompts for loading third-party
|
|
24
|
+
* skills, plugins, and MCP servers under a full-trust launch.
|
|
25
|
+
*/
|
|
26
|
+
// Each `headerPattern` matches the prompt's QUESTION/HEADER wording — never a
|
|
27
|
+
// phrase that lives only in an affirmative option — so recognition anchors on a
|
|
28
|
+
// header line (matched via `trustHeaderMatches` over the frame's non-option
|
|
29
|
+
// text), which a hostile option cannot spoof (PRD §5.1).
|
|
30
|
+
export const trustPromptAllowlist = [
|
|
31
|
+
{
|
|
32
|
+
// Header renders as "Do you trust this folder?" or "Quick safety check: Is
|
|
33
|
+
// this a project you created or one you trust?" (claude 2.1.205/2.1.206).
|
|
34
|
+
id: "workspace_trust",
|
|
35
|
+
agent: "claude",
|
|
36
|
+
headerPattern: /do you trust this folder|project you .*\bor one you trust/i,
|
|
37
|
+
accept: yesOption,
|
|
38
|
+
answerPolicy: "autotrust",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "skill_trust",
|
|
42
|
+
agent: "claude",
|
|
43
|
+
headerPattern: /do you (?:want to )?(?:trust|load) (?:this|the) skill|load this skill\?/i,
|
|
44
|
+
accept: yesOption,
|
|
45
|
+
answerPolicy: "autotrust",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: "plugin_trust",
|
|
49
|
+
agent: "claude",
|
|
50
|
+
headerPattern: /do you (?:want to )?trust (?:this|the) plugin|trust the plugin\?/i,
|
|
51
|
+
accept: yesOption,
|
|
52
|
+
answerPolicy: "autotrust",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
// Header "New MCP server found in this project"; the affirmative option is
|
|
56
|
+
// "Use this MCP server" (no yes/trust/continue word), needing a per-prompt
|
|
57
|
+
// accept — the generic yes-matcher would leave it wedged.
|
|
58
|
+
id: "mcp_trust",
|
|
59
|
+
agent: "claude",
|
|
60
|
+
headerPattern: /New MCP server found|do you trust (?:this|the) MCP server/i,
|
|
61
|
+
accept: useMcpOption,
|
|
62
|
+
answerPolicy: "autotrust",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
// Codex's directory-trust gate keeps the stable `workspace_trust` label
|
|
66
|
+
// (PRD §5.4) even though its wording differs from Claude's.
|
|
67
|
+
id: "workspace_trust",
|
|
68
|
+
agent: "codex",
|
|
69
|
+
headerPattern: /Do you trust the contents of this directory/i,
|
|
70
|
+
accept: yesOption,
|
|
71
|
+
answerPolicy: "autotrust",
|
|
72
|
+
},
|
|
73
|
+
// Hook trust is Elwood's own integration, required for the session to work, so
|
|
74
|
+
// it is always answered (not gated on autotrust) — see `answerPolicy: "always"`.
|
|
75
|
+
{
|
|
76
|
+
id: "hook_trust",
|
|
77
|
+
agent: "codex",
|
|
78
|
+
headerPattern: /Hooks need review/i,
|
|
79
|
+
// Specific to hook trust's own option ("Trust all and continue"), never a
|
|
80
|
+
// generic "Yes" that could belong to a different dialog in the same frame.
|
|
81
|
+
accept: trustHooksOption,
|
|
82
|
+
answerPolicy: "always",
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
/**
|
|
86
|
+
* True when `spec`'s HEADER wording appears in `header` — the frame's NON-option
|
|
87
|
+
* text as produced by `nonOptionText`. This is the ONE shared, option-aware
|
|
88
|
+
* recognizer: the responder, the cursor navigator, and the screen-fact blocking
|
|
89
|
+
* rules all go through it (each computes `nonOptionText` once per frame and
|
|
90
|
+
* tests every spec against that), so a numbered or cursor-selectable option whose
|
|
91
|
+
* label merely contains a trust phrase is never recognized as a prompt. Matching
|
|
92
|
+
* joined non-option lines also keeps wrapped headers matchable (§5.1).
|
|
93
|
+
*/
|
|
94
|
+
export function trustHeaderMatches(header, spec) {
|
|
95
|
+
return spec.headerPattern.test(header);
|
|
96
|
+
}
|
|
97
|
+
/** `trustHeaderMatches` over a raw frame, for callers that test a single spec. */
|
|
98
|
+
export function trustPromptHeaderVisible(frame, spec) {
|
|
99
|
+
return trustHeaderMatches(nonOptionText(frame), spec);
|
|
100
|
+
}
|
|
101
|
+
/** Specs for one agent that stay UNANSWERED under the effective policy (block on the human). */
|
|
102
|
+
export function blockingTrustSpecs(agent, autotrust) {
|
|
103
|
+
return trustPromptAllowlist.filter(
|
|
104
|
+
// An `answerPolicy: "always"` prompt (hook trust) is auto-handled, so it must
|
|
105
|
+
// NOT be classified as human-blocking. Others block only when autotrust is off.
|
|
106
|
+
(spec) => spec.agent === agent && spec.answerPolicy !== "always" && !autotrust);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA8DvD,oFAAoF;AACpF,MAAM,UAAU,GAAG,qDAAqD,CAAC;AACzE,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,sCAAsC,EAAE,GAAG,CAAC,CAAC;AACxF,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,mCAAmC,EAAE,GAAG,CAAC,CAAC;AACxF,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,mCAAmC,EAAE,GAAG,CAAC,CAAC;AAE5F;;;;;GAKG;AACH,8EAA8E;AAC9E,gFAAgF;AAChF,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;QACE,2EAA2E;QAC3E,0EAA0E;QAC1E,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,4DAA4D;QAC3E,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,0EAA0E;QACzF,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,mEAAmE;QAClF,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,4DAA4D;QAC3E,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,wEAAwE;QACxE,4DAA4D;QAC5D,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,8CAA8C;QAC7D,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD,+EAA+E;IAC/E,iFAAiF;IACjF;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,oBAAoB;QACnC,0EAA0E;QAC1E,2EAA2E;QAC3E,MAAM,EAAE,gBAAgB;QACxB,YAAY,EAAE,QAAQ;KACvB;CAC4C,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,IAAqB;IACtE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,IAAqB;IAC3E,OAAO,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAiBD,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,CAChC,KAAsB,EACtB,SAAkB;IAElB,OAAO,oBAAoB,CAAC,MAAM;IAChC,8EAA8E;IAC9E,gFAAgF;IAChF,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,SAAS,CAC/E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects and answers the allowlisted family of adapter startup trust prompts.
|
|
3
|
+
* Implements PRD §5.1 and §9.1 (C-CLAUDE-10, C-CODEX-11, C-CLAUDE-14, C-CODEX-15).
|
|
4
|
+
*
|
|
5
|
+
* Policy (PRD §5.1): an agent must NEVER be left waiting on a trust gate.
|
|
6
|
+
* Under the caller's full-trust posture, when an allowlisted trust prompt is
|
|
7
|
+
* visible in the current frame, Elwood selects its affirmative option and sends
|
|
8
|
+
* it — always say yes. Elwood only auto-answers ALLOWLISTED prompts (an
|
|
9
|
+
* off-allowlist confirmation is left to the human), and never re-answers the same
|
|
10
|
+
* prompt; those are the only limits.
|
|
11
|
+
*/
|
|
12
|
+
import type { ElwoodAgentKind } from "../activity/index.ts";
|
|
13
|
+
import { type TrustPromptIdFor } from "./prompts.ts";
|
|
14
|
+
/** An answered trust prompt; `prompt` is narrowed to the responder's agent. */
|
|
15
|
+
export type TrustPromptAutomation<A extends ElwoodAgentKind = ElwoodAgentKind> = {
|
|
16
|
+
readonly prompt: TrustPromptIdFor<A>;
|
|
17
|
+
readonly input: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The completion of an answered trust write: a `void | Promise<void>` write is
|
|
21
|
+
* normalized to a promise that resolves on success and rejects once the prompt
|
|
22
|
+
* has been un-settled (kept retryable) on a rejected write.
|
|
23
|
+
*/
|
|
24
|
+
export type TrustWriteResult = void | Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* The outcome of handling a frame: an answered prompt, a recognized prompt whose
|
|
27
|
+
* affirmative option has not rendered yet (a TRANSIENT render delay — under the
|
|
28
|
+
* say-yes policy a later frame carrying the option is still answered, so this is
|
|
29
|
+
* never a terminal wedge), or nothing.
|
|
30
|
+
*/
|
|
31
|
+
export type TrustPromptResult<A extends ElwoodAgentKind = ElwoodAgentKind> = {
|
|
32
|
+
readonly kind: "answered";
|
|
33
|
+
readonly automation: TrustPromptAutomation<A>;
|
|
34
|
+
readonly settled: Promise<void>;
|
|
35
|
+
} | {
|
|
36
|
+
readonly kind: "option_pending";
|
|
37
|
+
readonly prompt: TrustPromptIdFor<A>;
|
|
38
|
+
} | undefined;
|
|
39
|
+
export declare class TrustPromptResponder<A extends ElwoodAgentKind> {
|
|
40
|
+
private readonly autotrust;
|
|
41
|
+
private readonly specs;
|
|
42
|
+
private readonly settled;
|
|
43
|
+
private readonly reportedPending;
|
|
44
|
+
constructor(agent: A, autotrust?: boolean);
|
|
45
|
+
/** `frame` MUST be the CURRENT rendered screen, not an accumulated buffer. */
|
|
46
|
+
handle(frame: string, write: (input: string) => TrustWriteResult, readFrame?: () => string): TrustPromptResult<A>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=responder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responder.d.ts","sourceRoot":"","sources":["../../../src/core/trust/responder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQ5D,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,cAAc,CAAC;AAQtB,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IAC/E,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IACrE;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAG9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;CAAE,GACzE,SAAS,CAAC;AAEd,qBAAa,oBAAoB,CAAC,CAAC,SAAS,eAAe;IAGzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAI1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;gBAEtD,KAAK,EAAE,CAAC,EAAE,SAAS,UAAQ;IAKvC,8EAA8E;IAC9E,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAC1C,SAAS,CAAC,EAAE,MAAM,MAAM,GACvB,iBAAiB,CAAC,CAAC,CAAC;CA0CxB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects and answers the allowlisted family of adapter startup trust prompts.
|
|
3
|
+
* Implements PRD §5.1 and §9.1 (C-CLAUDE-10, C-CODEX-11, C-CLAUDE-14, C-CODEX-15).
|
|
4
|
+
*
|
|
5
|
+
* Policy (PRD §5.1): an agent must NEVER be left waiting on a trust gate.
|
|
6
|
+
* Under the caller's full-trust posture, when an allowlisted trust prompt is
|
|
7
|
+
* visible in the current frame, Elwood selects its affirmative option and sends
|
|
8
|
+
* it — always say yes. Elwood only auto-answers ALLOWLISTED prompts (an
|
|
9
|
+
* off-allowlist confirmation is left to the human), and never re-answers the same
|
|
10
|
+
* prompt; those are the only limits.
|
|
11
|
+
*/
|
|
12
|
+
import { delay } from "../delay.js";
|
|
13
|
+
import { nonOptionText, optionInput, optionKeystrokes, selectableOptions, } from "../terminal-options.js";
|
|
14
|
+
import { trustHeaderMatches, trustPromptAllowlist, trustPromptHeaderVisible, } from "./prompts.js";
|
|
15
|
+
const cursorRetryMs = 250;
|
|
16
|
+
const cursorNavigationTimeoutMs = 5_000;
|
|
17
|
+
export class TrustPromptResponder {
|
|
18
|
+
// Whether the caller launched under full trust (`autotrust`). `answerPolicy:
|
|
19
|
+
// "always"` prompts (hook trust) are answered even when this is false.
|
|
20
|
+
autotrust;
|
|
21
|
+
specs;
|
|
22
|
+
settled = new Set();
|
|
23
|
+
// A prompt whose "option not rendered yet" state was reported once, kept
|
|
24
|
+
// SEPARATE from `settled` so a later frame with the real option can still be
|
|
25
|
+
// answered — the pending state is transient, not terminal.
|
|
26
|
+
reportedPending = new Set();
|
|
27
|
+
constructor(agent, autotrust = false) {
|
|
28
|
+
this.autotrust = autotrust;
|
|
29
|
+
this.specs = trustPromptAllowlist.filter((spec) => spec.agent === agent);
|
|
30
|
+
}
|
|
31
|
+
/** `frame` MUST be the CURRENT rendered screen, not an accumulated buffer. */
|
|
32
|
+
handle(frame, write, readFrame) {
|
|
33
|
+
const header = nonOptionText(frame);
|
|
34
|
+
for (const spec of this.specs) {
|
|
35
|
+
const id = spec.id;
|
|
36
|
+
// `answerPolicy: "always"` prompts (Elwood's own hook bridge) answer
|
|
37
|
+
// regardless of autotrust; every other trust prompt requires the caller's
|
|
38
|
+
// full-trust posture.
|
|
39
|
+
if (!(this.autotrust || spec.answerPolicy === "always"))
|
|
40
|
+
continue;
|
|
41
|
+
// Recognized when the prompt's HEADER wording appears on a NON-OPTION line
|
|
42
|
+
// (via the shared `trustHeaderMatches`), so a phrase living only inside an
|
|
43
|
+
// option label can't spoof a prompt. That is the ONLY guard — recognition
|
|
44
|
+
// means "say yes".
|
|
45
|
+
if (this.settled.has(id) || !trustHeaderMatches(header, spec))
|
|
46
|
+
continue;
|
|
47
|
+
const options = selectableOptions(frame);
|
|
48
|
+
const option = options.find((candidate) => spec.accept.test(candidate.label));
|
|
49
|
+
if (option === undefined) {
|
|
50
|
+
// Affirmative not rendered yet (partial frame). Report once, but DON'T
|
|
51
|
+
// settle — a later frame with the option can still be answered.
|
|
52
|
+
if (this.reportedPending.has(id))
|
|
53
|
+
continue;
|
|
54
|
+
this.reportedPending.add(id);
|
|
55
|
+
return { kind: "option_pending", prompt: id };
|
|
56
|
+
}
|
|
57
|
+
// Settle OPTIMISTICALLY so a second frame in the same tick does not re-answer,
|
|
58
|
+
// but keep the settle contingent on the write: if the write is rejected we
|
|
59
|
+
// un-settle here so a later frame re-attempts it, and the returned `settled`
|
|
60
|
+
// promise rejects so the caller emits a warning instead of a false "answered".
|
|
61
|
+
this.settled.add(id);
|
|
62
|
+
const input = optionInput(option);
|
|
63
|
+
const operation = option.style === "cursor"
|
|
64
|
+
? readFrame === undefined
|
|
65
|
+
? Promise.reject(new Error("Cursor trust navigation requires live screen reads."))
|
|
66
|
+
: navigateCursorOption(spec, input, write, readFrame)
|
|
67
|
+
: writeOptionKeys(optionKeystrokes(option), write);
|
|
68
|
+
const settled = operation.catch((error) => {
|
|
69
|
+
this.settled.delete(id);
|
|
70
|
+
throw error;
|
|
71
|
+
});
|
|
72
|
+
return { kind: "answered", automation: { prompt: id, input }, settled };
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Writes one option's keys in order (numbered prompts and parser-only tests). */
|
|
78
|
+
async function writeOptionKeys(keys, write) {
|
|
79
|
+
for (const key of keys)
|
|
80
|
+
await write(key);
|
|
81
|
+
}
|
|
82
|
+
/** Navigates a cursor prompt one observed frame at a time, retrying swallowed startup input. */
|
|
83
|
+
async function navigateCursorOption(spec, originalInput, write, readFrame) {
|
|
84
|
+
const deadline = Date.now() + cursorNavigationTimeoutMs;
|
|
85
|
+
while (Date.now() < deadline) {
|
|
86
|
+
const before = readFrame();
|
|
87
|
+
if (!trustPromptHeaderVisible(before, spec)) {
|
|
88
|
+
throw new Error("Cursor trust prompt disappeared before confirmation.");
|
|
89
|
+
}
|
|
90
|
+
const target = selectableOptions(before).find((option) => spec.accept.test(option.label));
|
|
91
|
+
if (target?.style !== "cursor") {
|
|
92
|
+
await delay(cursorRetryMs);
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
const key = target.offset === 0 ? "\r" : target.offset < 0 ? "\u001b[A" : "\u001b[B";
|
|
96
|
+
await write(key);
|
|
97
|
+
const progress = await waitForCursorProgress(spec, target.offset, readFrame);
|
|
98
|
+
if (progress === "cleared")
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
throw new Error(`Cursor trust navigation timed out (${originalInput}).`);
|
|
102
|
+
}
|
|
103
|
+
async function waitForCursorProgress(spec, priorOffset, readFrame) {
|
|
104
|
+
const deadline = Date.now() + cursorRetryMs;
|
|
105
|
+
while (Date.now() < deadline) {
|
|
106
|
+
await delay(20);
|
|
107
|
+
const frame = readFrame();
|
|
108
|
+
if (!trustPromptHeaderVisible(frame, spec)) {
|
|
109
|
+
if (priorOffset === 0)
|
|
110
|
+
return "cleared";
|
|
111
|
+
throw new Error("Cursor trust prompt disappeared before confirmation.");
|
|
112
|
+
}
|
|
113
|
+
const target = selectableOptions(frame).find((option) => spec.accept.test(option.label));
|
|
114
|
+
if (target?.style === "cursor" && target.offset !== priorOffset)
|
|
115
|
+
return "retry";
|
|
116
|
+
}
|
|
117
|
+
return "retry";
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=responder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responder.js","sourceRoot":"","sources":["../../../src/core/trust/responder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAKtB,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAgCxC,MAAM,OAAO,oBAAoB;IAC/B,6EAA6E;IAC7E,uEAAuE;IACtD,SAAS,CAAU;IACnB,KAAK,CAA8B;IACnC,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC1D,yEAAyE;IACzE,6EAA6E;IAC7E,2DAA2D;IAC1C,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;IAElE,YAAY,KAAQ,EAAE,SAAS,GAAG,KAAK;QACrC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,8EAA8E;IAC9E,MAAM,CACJ,KAAa,EACb,KAA0C,EAC1C,SAAwB;QAExB,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAyB,CAAC;YAC1C,qEAAqE;YACrE,0EAA0E;YAC1E,sBAAsB;YACtB,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC;gBAAE,SAAS;YAClE,2EAA2E;YAC3E,2EAA2E;YAC3E,0EAA0E;YAC1E,mBAAmB;YACnB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;gBAAE,SAAS;YACxE,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,uEAAuE;gBACvE,gEAAgE;gBAChE,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7B,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAChD,CAAC;YACD,+EAA+E;YAC/E,2EAA2E;YAC3E,6EAA6E;YAC7E,+EAA+E;YAC/E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,SAAS,GACb,MAAM,CAAC,KAAK,KAAK,QAAQ;gBACvB,CAAC,CAAC,SAAS,KAAK,SAAS;oBACvB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;oBAClF,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;gBACvD,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;QAC1E,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,kFAAkF;AAClF,KAAK,UAAU,eAAe,CAC5B,IAAuB,EACvB,KAA0C;IAE1C,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,gGAAgG;AAChG,KAAK,UAAU,oBAAoB,CACjC,IAAsB,EACtB,aAAqB,EACrB,KAA0C,EAC1C,SAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,yBAAyB,CAAC;IACxD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,IAAI,MAAM,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACrF,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC7E,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;IACrC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,IAAsB,EACtB,WAAmB,EACnB,SAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;IAC5C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAC3C,IAAI,WAAW,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzF,IAAI,MAAM,EAAE,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,OAAO,CAAC;IAClF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared builder for the per-agent trust blocking screen-fact rules.
|
|
3
|
+
* Implements PRD §5.1/§5.5 (C-ATTN-03): a trust prompt that stays UNANSWERED
|
|
4
|
+
* under the policy classifies as a blocking prompt. Both adapters build these
|
|
5
|
+
* rules identically, so the construction — option-aware header recognition,
|
|
6
|
+
* stable semantic ids, base-table append — lives here once instead of diverging
|
|
7
|
+
* across `claude/screen-table.ts` and `codex/screen-table.ts`.
|
|
8
|
+
*/
|
|
9
|
+
import type { ElwoodAgentKind } from "./activity.ts";
|
|
10
|
+
import type { ScreenFactTable } from "./screen-facts.ts";
|
|
11
|
+
/**
|
|
12
|
+
* `base` plus one `blocking_prompt_visible` rule per trust prompt that stays
|
|
13
|
+
* unanswered under `autotrust`. Each rule recognizes the prompt only by its
|
|
14
|
+
* HEADER outside the option region (`trustHeaderMatches`, the same recognizer
|
|
15
|
+
* the responder uses; the non-option text is computed once per frame and cached
|
|
16
|
+
* across the rules), so an unrelated numbered/cursor option containing a trust
|
|
17
|
+
* phrase is NOT mistaken for a blocking trust prompt (PRD §5.1). Returns `base`
|
|
18
|
+
* unchanged when no trust prompt blocks (e.g. every allowlisted prompt is
|
|
19
|
+
* auto-answered).
|
|
20
|
+
*/
|
|
21
|
+
export declare function withTrustBlockingRules(base: ScreenFactTable, agent: ElwoodAgentKind, autotrust: boolean): ScreenFactTable;
|
|
22
|
+
//# sourceMappingURL=trust-blocking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-blocking.d.ts","sourceRoot":"","sources":["../../src/core/trust-blocking.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzE;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,GACjB,eAAe,CAgBjB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared builder for the per-agent trust blocking screen-fact rules.
|
|
3
|
+
* Implements PRD §5.1/§5.5 (C-ATTN-03): a trust prompt that stays UNANSWERED
|
|
4
|
+
* under the policy classifies as a blocking prompt. Both adapters build these
|
|
5
|
+
* rules identically, so the construction — option-aware header recognition,
|
|
6
|
+
* stable semantic ids, base-table append — lives here once instead of diverging
|
|
7
|
+
* across `claude/screen-table.ts` and `codex/screen-table.ts`.
|
|
8
|
+
*/
|
|
9
|
+
import { nonOptionText } from "./terminal-options.js";
|
|
10
|
+
import { blockingTrustSpecs, trustHeaderMatches } from "./trust-prompts.js";
|
|
11
|
+
/**
|
|
12
|
+
* `base` plus one `blocking_prompt_visible` rule per trust prompt that stays
|
|
13
|
+
* unanswered under `autotrust`. Each rule recognizes the prompt only by its
|
|
14
|
+
* HEADER outside the option region (`trustHeaderMatches`, the same recognizer
|
|
15
|
+
* the responder uses; the non-option text is computed once per frame and cached
|
|
16
|
+
* across the rules), so an unrelated numbered/cursor option containing a trust
|
|
17
|
+
* phrase is NOT mistaken for a blocking trust prompt (PRD §5.1). Returns `base`
|
|
18
|
+
* unchanged when no trust prompt blocks (e.g. every allowlisted prompt is
|
|
19
|
+
* auto-answered).
|
|
20
|
+
*/
|
|
21
|
+
export function withTrustBlockingRules(base, agent, autotrust) {
|
|
22
|
+
let cachedFrame;
|
|
23
|
+
let cachedHeader = "";
|
|
24
|
+
const headerFor = (text) => {
|
|
25
|
+
if (text !== cachedFrame) {
|
|
26
|
+
cachedFrame = text;
|
|
27
|
+
cachedHeader = nonOptionText(text);
|
|
28
|
+
}
|
|
29
|
+
return cachedHeader;
|
|
30
|
+
};
|
|
31
|
+
const rules = blockingTrustSpecs(agent, autotrust).map((spec) => ({
|
|
32
|
+
id: `${agent}-${spec.id}-prompt`,
|
|
33
|
+
fact: "blocking_prompt_visible",
|
|
34
|
+
match: (text) => trustHeaderMatches(headerFor(text), spec),
|
|
35
|
+
}));
|
|
36
|
+
return rules.length === 0 ? base : { ...base, rules: [...base.rules, ...rules] };
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=trust-blocking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-blocking.js","sourceRoot":"","sources":["../../src/core/trust-blocking.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5E;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAqB,EACrB,KAAsB,EACtB,SAAkB;IAElB,IAAI,WAA+B,CAAC;IACpC,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;QACjC,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,WAAW,GAAG,IAAI,CAAC;YACnB,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IACF,MAAM,KAAK,GAAqB,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClF,EAAE,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,EAAE,SAAS;QAChC,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;KAC3D,CAAC,CAAC,CAAC;IACJ,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allowlist of known adapter startup trust prompts and how to answer them.
|
|
3
|
+
* Implements PRD §5.1 and §5.5 (C-CLAUDE-10, C-CODEX-11, C-CLAUDE-14, C-CODEX-15).
|
|
4
|
+
*
|
|
5
|
+
* This is an EXPLICIT allowlist, not an open-ended matcher: each entry names one
|
|
6
|
+
* concrete prompt by its on-screen text and a fixed affirmative outcome. A new
|
|
7
|
+
* CLI prompt is trusted only by adding a deliberate entry here — Elwood never
|
|
8
|
+
* blanket-answers "any first-run confirmation", which would silently bypass a
|
|
9
|
+
* future CLI security gate for third-party code or config.
|
|
10
|
+
*/
|
|
11
|
+
import type { ElwoodAgentKind } from "./activity.ts";
|
|
12
|
+
/**
|
|
13
|
+
* The fields common to every allowlisted trust prompt. The prompt and its answer
|
|
14
|
+
* are BOTH matched within the same current frame: `headerPattern` identifies the
|
|
15
|
+
* prompt by its HEADER wording, and `accept` matches the exact affirmative option
|
|
16
|
+
* label in that same prompt. This prevents a stale phrase from one frame pairing
|
|
17
|
+
* with a "Yes" from a different, current dialog (which could auto-confirm an
|
|
18
|
+
* unrelated security gate). `headerPattern` is a HEADER matcher, not a
|
|
19
|
+
* whole-frame matcher: it is only safe when tested against the frame's non-option
|
|
20
|
+
* lines (via `trustHeaderMatches`), never applied raw to the full frame.
|
|
21
|
+
*/
|
|
22
|
+
type TrustPromptBase = {
|
|
23
|
+
/**
|
|
24
|
+
* Identifies the prompt by its HEADER wording. MUST be tested only against the
|
|
25
|
+
* frame's non-option lines (see `trustHeaderMatches`) — applying it raw to the
|
|
26
|
+
* full frame would let an option-only trust phrase spoof recognition.
|
|
27
|
+
* Verified against the CLI versions below.
|
|
28
|
+
*/
|
|
29
|
+
readonly headerPattern: RegExp;
|
|
30
|
+
/** Matches the exact affirmative option label for THIS prompt (per-prompt, not generic). */
|
|
31
|
+
readonly accept: RegExp;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* When an allowlisted prompt is answered. `"autotrust"` prompts are answered ONLY
|
|
35
|
+
* under the caller's full-trust posture; `"always"` prompts are answered
|
|
36
|
+
* regardless of it (Elwood's own hook bridge, never third-party code).
|
|
37
|
+
*/
|
|
38
|
+
export type TrustAnswerPolicy = "always" | "autotrust";
|
|
39
|
+
/**
|
|
40
|
+
* One allowlisted trust prompt, as an agent+id-DISCRIMINATED union so that (a) a
|
|
41
|
+
* typo in `id` cannot compile into a public startup label, and (b)
|
|
42
|
+
* `answerPolicy: "always"` — answered regardless of `autotrust` — is permitted
|
|
43
|
+
* ONLY on Codex `hook_trust`, Elwood's OWN integration (the hook bridge) that the
|
|
44
|
+
* session requires to work. Every third-party trust prompt (skills, plugins, MCP
|
|
45
|
+
* servers, folder trust) is `answerPolicy: "autotrust"`, staying gated on the
|
|
46
|
+
* caller's full-trust posture, so the invalid "third-party prompt answered
|
|
47
|
+
* always" state is unrepresentable.
|
|
48
|
+
*/
|
|
49
|
+
export type TrustPromptSpec = ({
|
|
50
|
+
readonly agent: "claude";
|
|
51
|
+
readonly id: ClaudeTrustPromptId;
|
|
52
|
+
readonly answerPolicy: "autotrust";
|
|
53
|
+
} & TrustPromptBase) | ({
|
|
54
|
+
readonly agent: "codex";
|
|
55
|
+
readonly id: "workspace_trust";
|
|
56
|
+
readonly answerPolicy: "autotrust";
|
|
57
|
+
} & TrustPromptBase) | ({
|
|
58
|
+
readonly agent: "codex";
|
|
59
|
+
readonly id: "hook_trust";
|
|
60
|
+
/** Answered regardless of `autotrust`: Elwood's own hook bridge (never third-party code). */
|
|
61
|
+
readonly answerPolicy: "always";
|
|
62
|
+
} & TrustPromptBase);
|
|
63
|
+
/** The Claude trust-prompt ids: folder trust plus the CLI's first-run skill/plugin/MCP gates. */
|
|
64
|
+
type ClaudeTrustPromptId = "workspace_trust" | "skill_trust" | "plugin_trust" | "mcp_trust";
|
|
65
|
+
/**
|
|
66
|
+
* The allowlist. Wording verified against claude 2.1.205–2.1.252 and codex-cli 0.142.5.
|
|
67
|
+
* `workspace`/`directory` trust are the folder-trust gates; `skill`, `plugin`,
|
|
68
|
+
* and `mcp` cover the CLI's first-run trust prompts for loading third-party
|
|
69
|
+
* skills, plugins, and MCP servers under a full-trust launch.
|
|
70
|
+
*/
|
|
71
|
+
export declare const trustPromptAllowlist: readonly [{
|
|
72
|
+
readonly id: "workspace_trust";
|
|
73
|
+
readonly agent: "claude";
|
|
74
|
+
readonly headerPattern: RegExp;
|
|
75
|
+
readonly accept: RegExp;
|
|
76
|
+
readonly answerPolicy: "autotrust";
|
|
77
|
+
}, {
|
|
78
|
+
readonly id: "skill_trust";
|
|
79
|
+
readonly agent: "claude";
|
|
80
|
+
readonly headerPattern: RegExp;
|
|
81
|
+
readonly accept: RegExp;
|
|
82
|
+
readonly answerPolicy: "autotrust";
|
|
83
|
+
}, {
|
|
84
|
+
readonly id: "plugin_trust";
|
|
85
|
+
readonly agent: "claude";
|
|
86
|
+
readonly headerPattern: RegExp;
|
|
87
|
+
readonly accept: RegExp;
|
|
88
|
+
readonly answerPolicy: "autotrust";
|
|
89
|
+
}, {
|
|
90
|
+
readonly id: "mcp_trust";
|
|
91
|
+
readonly agent: "claude";
|
|
92
|
+
readonly headerPattern: RegExp;
|
|
93
|
+
readonly accept: RegExp;
|
|
94
|
+
readonly answerPolicy: "autotrust";
|
|
95
|
+
}, {
|
|
96
|
+
readonly id: "workspace_trust";
|
|
97
|
+
readonly agent: "codex";
|
|
98
|
+
readonly headerPattern: RegExp;
|
|
99
|
+
readonly accept: RegExp;
|
|
100
|
+
readonly answerPolicy: "autotrust";
|
|
101
|
+
}, {
|
|
102
|
+
readonly id: "hook_trust";
|
|
103
|
+
readonly agent: "codex";
|
|
104
|
+
readonly headerPattern: RegExp;
|
|
105
|
+
readonly accept: RegExp;
|
|
106
|
+
readonly answerPolicy: "always";
|
|
107
|
+
}];
|
|
108
|
+
/**
|
|
109
|
+
* True when `spec`'s HEADER wording appears in `header` — the frame's NON-option
|
|
110
|
+
* text as produced by `nonOptionText`. This is the ONE shared, option-aware
|
|
111
|
+
* recognizer: the responder, the cursor navigator, and the screen-fact blocking
|
|
112
|
+
* rules all go through it (each computes `nonOptionText` once per frame and
|
|
113
|
+
* tests every spec against that), so a numbered or cursor-selectable option whose
|
|
114
|
+
* label merely contains a trust phrase is never recognized as a prompt. Matching
|
|
115
|
+
* joined non-option lines also keeps wrapped headers matchable (§5.1).
|
|
116
|
+
*/
|
|
117
|
+
export declare function trustHeaderMatches(header: string, spec: TrustPromptBase): boolean;
|
|
118
|
+
/** `trustHeaderMatches` over a raw frame, for callers that test a single spec. */
|
|
119
|
+
export declare function trustPromptHeaderVisible(frame: string, spec: TrustPromptBase): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* The stable public `startup_prompt` trust labels (§5.4), derived from the
|
|
122
|
+
* allowlist so the two can never drift: deleting, adding, or renaming an entry
|
|
123
|
+
* updates this union automatically. Because `TrustPromptSpec` fixes each agent's
|
|
124
|
+
* ids to a closed literal union, a typo in an entry's `id` fails to compile
|
|
125
|
+
* against `satisfies` rather than silently widening this derived label union.
|
|
126
|
+
*/
|
|
127
|
+
export type TrustPromptId = (typeof trustPromptAllowlist)[number]["id"];
|
|
128
|
+
/** The trust label ids for one specific agent (e.g. Codex automation cannot use a Claude-only id). */
|
|
129
|
+
export type TrustPromptIdFor<A extends ElwoodAgentKind> = Extract<(typeof trustPromptAllowlist)[number], {
|
|
130
|
+
readonly agent: A;
|
|
131
|
+
}>["id"];
|
|
132
|
+
/** Specs for one agent that stay UNANSWERED under the effective policy (block on the human). */
|
|
133
|
+
export declare function blockingTrustSpecs(agent: ElwoodAgentKind, autotrust: boolean): readonly TrustPromptSpec[];
|
|
134
|
+
export {};
|
|
135
|
+
//# sourceMappingURL=trust-prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-prompts.d.ts","sourceRoot":"","sources":["../../src/core/trust-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD;;;;;;;;;GASG;AACH,KAAK,eAAe,GAAG;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GACvB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;CACjC,GAAG,eAAe,CAAC,CAAC;AAEzB,iGAAiG;AACjG,KAAK,mBAAmB,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAW5F;;;;;GAKG;AAKH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDc,CAAC;AAEhD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEjF;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEtF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAExE,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,IAAI,OAAO,CAC/D,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,EACrC;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CACtB,CAAC,IAAI,CAAC,CAAC;AAER,gGAAgG;AAChG,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,GACjB,SAAS,eAAe,EAAE,CAM5B"}
|