@with-logic/elwood 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +182 -3
- package/CONTRIBUTING.md +104 -0
- package/LICENSE +1 -1
- package/README.md +295 -26
- package/SECURITY.md +42 -0
- package/dist/claude/command.d.ts +9 -2
- package/dist/claude/command.d.ts.map +1 -1
- package/dist/claude/command.js +23 -16
- package/dist/claude/command.js.map +1 -1
- package/dist/claude/model-picker.d.ts.map +1 -1
- package/dist/claude/model-picker.js +4 -3
- package/dist/claude/model-picker.js.map +1 -1
- package/dist/claude/model-switch-confirmation.js +9 -1
- package/dist/claude/model-switch-confirmation.js.map +1 -1
- package/dist/claude/screen-table.js +1 -1
- package/dist/claude/screen-table.js.map +1 -1
- package/dist/claude/session/build.d.ts.map +1 -1
- package/dist/claude/session/build.js +3 -0
- package/dist/claude/session/build.js.map +1 -1
- package/dist/claude/session/index.d.ts.map +1 -1
- package/dist/claude/session/index.js +5 -2
- package/dist/claude/session/index.js.map +1 -1
- package/dist/claude/session/resume.d.ts +1 -1
- package/dist/claude/session/resume.d.ts.map +1 -1
- package/dist/claude/session/resume.js +5 -1
- package/dist/claude/session/resume.js.map +1 -1
- package/dist/claude/session/start-or-resume.js +1 -0
- package/dist/claude/session/start-or-resume.js.map +1 -1
- package/dist/claude/simple.d.ts.map +1 -1
- package/dist/claude/simple.js +4 -0
- package/dist/claude/simple.js.map +1 -1
- package/dist/cli/args/index.d.ts +3 -1
- package/dist/cli/args/index.d.ts.map +1 -1
- package/dist/cli/args/index.js +10 -2
- package/dist/cli/args/index.js.map +1 -1
- package/dist/cli/args/options.d.ts.map +1 -1
- package/dist/cli/args/options.js +2 -0
- package/dist/cli/args/options.js.map +1 -1
- package/dist/cli/args-commands.d.ts +10 -0
- package/dist/cli/args-commands.d.ts.map +1 -0
- package/dist/cli/args-commands.js +113 -0
- package/dist/cli/args-commands.js.map +1 -0
- package/dist/cli/command-types.d.ts +26 -0
- package/dist/cli/command-types.d.ts.map +1 -0
- package/dist/cli/command-types.js +9 -0
- package/dist/cli/command-types.js.map +1 -0
- package/dist/cli/config/codec-primitives.d.ts +20 -0
- package/dist/cli/config/codec-primitives.d.ts.map +1 -0
- package/dist/cli/config/codec-primitives.js +51 -0
- package/dist/cli/config/codec-primitives.js.map +1 -0
- package/dist/cli/config/codec.d.ts.map +1 -1
- package/dist/cli/config/codec.js +4 -46
- package/dist/cli/config/codec.js.map +1 -1
- package/dist/cli/config/effective.d.ts.map +1 -1
- package/dist/cli/config/effective.js +1 -0
- package/dist/cli/config/effective.js.map +1 -1
- package/dist/cli/config/keys.d.ts +1 -1
- package/dist/cli/config/keys.d.ts.map +1 -1
- package/dist/cli/config/keys.js +1 -0
- package/dist/cli/config/keys.js.map +1 -1
- package/dist/cli/entry.d.ts +4 -2
- package/dist/cli/entry.d.ts.map +1 -1
- package/dist/cli/entry.js +2 -1
- package/dist/cli/entry.js.map +1 -1
- package/dist/cli/help.d.ts +2 -2
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +40 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/interactive/index.d.ts +26 -0
- package/dist/cli/interactive/index.d.ts.map +1 -0
- package/dist/cli/interactive/index.js +33 -0
- package/dist/cli/interactive/index.js.map +1 -0
- package/dist/cli/interactive/launch.d.ts +14 -0
- package/dist/cli/interactive/launch.d.ts.map +1 -0
- package/dist/cli/interactive/launch.js +66 -0
- package/dist/cli/interactive/launch.js.map +1 -0
- package/dist/cli/interactive/spawn.d.ts +18 -0
- package/dist/cli/interactive/spawn.d.ts.map +1 -0
- package/dist/cli/interactive/spawn.js +53 -0
- package/dist/cli/interactive/spawn.js.map +1 -0
- package/dist/cli/main-failure.d.ts +28 -0
- package/dist/cli/main-failure.d.ts.map +1 -0
- package/dist/cli/main-failure.js +78 -0
- package/dist/cli/main-failure.js.map +1 -0
- package/dist/cli/main.d.ts +12 -4
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +27 -73
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/models/index.d.ts +20 -0
- package/dist/cli/models/index.d.ts.map +1 -0
- package/dist/cli/models/index.js +63 -0
- package/dist/cli/models/index.js.map +1 -0
- package/dist/cli/models/render.d.ts +9 -0
- package/dist/cli/models/render.d.ts.map +1 -0
- package/dist/cli/models/render.js +33 -0
- package/dist/cli/models/render.js.map +1 -0
- package/dist/cli/request/index.d.ts.map +1 -1
- package/dist/cli/request/index.js +8 -2
- package/dist/cli/request/index.js.map +1 -1
- package/dist/cli/request/layers.d.ts +2 -0
- package/dist/cli/request/layers.d.ts.map +1 -1
- package/dist/cli/request/layers.js +9 -5
- package/dist/cli/request/layers.js.map +1 -1
- package/dist/cli/request/posture.d.ts +28 -0
- package/dist/cli/request/posture.d.ts.map +1 -0
- package/dist/cli/request/posture.js +70 -0
- package/dist/cli/request/posture.js.map +1 -0
- package/dist/cli/request/resolution-types.d.ts +1 -0
- package/dist/cli/request/resolution-types.d.ts.map +1 -1
- package/dist/cli/request/settings.d.ts +2 -12
- package/dist/cli/request/settings.d.ts.map +1 -1
- package/dist/cli/request/settings.js +2 -25
- package/dist/cli/request/settings.js.map +1 -1
- package/dist/cli/request/validation.d.ts +12 -0
- package/dist/cli/request/validation.d.ts.map +1 -1
- package/dist/cli/request/validation.js +30 -10
- package/dist/cli/request/validation.js.map +1 -1
- package/dist/cli/request/values.d.ts +1 -0
- package/dist/cli/request/values.d.ts.map +1 -1
- package/dist/cli/request/values.js +1 -0
- package/dist/cli/request/values.js.map +1 -1
- package/dist/cli/run/index.d.ts.map +1 -1
- package/dist/cli/run/index.js +5 -41
- package/dist/cli/run/index.js.map +1 -1
- package/dist/cli/run/subscribe.d.ts +19 -0
- package/dist/cli/run/subscribe.d.ts.map +1 -0
- package/dist/cli/run/subscribe.js +47 -0
- package/dist/cli/run/subscribe.js.map +1 -0
- package/dist/cli/session/launch.d.ts +3 -0
- package/dist/cli/session/launch.d.ts.map +1 -1
- package/dist/cli/session/launch.js +11 -0
- package/dist/cli/session/launch.js.map +1 -1
- package/dist/cli/sessions/index.d.ts +30 -0
- package/dist/cli/sessions/index.d.ts.map +1 -0
- package/dist/cli/sessions/index.js +61 -0
- package/dist/cli/sessions/index.js.map +1 -0
- package/dist/cli/sessions/list.d.ts +28 -0
- package/dist/cli/sessions/list.d.ts.map +1 -0
- package/dist/cli/sessions/list.js +63 -0
- package/dist/cli/sessions/list.js.map +1 -0
- package/dist/cli/sessions/settings.d.ts +11 -0
- package/dist/cli/sessions/settings.d.ts.map +1 -0
- package/dist/cli/sessions/settings.js +26 -0
- package/dist/cli/sessions/settings.js.map +1 -0
- package/dist/cli/table.d.ts +7 -0
- package/dist/cli/table.d.ts.map +1 -0
- package/dist/cli/table.js +14 -0
- package/dist/cli/table.js.map +1 -0
- package/dist/cli/types.d.ts +5 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js.map +1 -1
- package/dist/codex/command.d.ts +18 -2
- package/dist/codex/command.d.ts.map +1 -1
- package/dist/codex/command.js +39 -24
- package/dist/codex/command.js.map +1 -1
- package/dist/codex/model-picker.d.ts.map +1 -1
- package/dist/codex/model-picker.js +3 -2
- package/dist/codex/model-picker.js.map +1 -1
- package/dist/codex/session/build.d.ts.map +1 -1
- package/dist/codex/session/build.js +5 -7
- package/dist/codex/session/build.js.map +1 -1
- package/dist/codex/session/index.d.ts.map +1 -1
- package/dist/codex/session/index.js +5 -2
- package/dist/codex/session/index.js.map +1 -1
- package/dist/codex/session/resume.d.ts +1 -1
- package/dist/codex/session/resume.d.ts.map +1 -1
- package/dist/codex/session/resume.js +5 -1
- package/dist/codex/session/resume.js.map +1 -1
- package/dist/codex/session/start-or-resume.js +1 -0
- package/dist/codex/session/start-or-resume.js.map +1 -1
- package/dist/codex/session/types.d.ts +3 -0
- package/dist/codex/session/types.d.ts.map +1 -1
- package/dist/codex/simple.d.ts.map +1 -1
- package/dist/codex/simple.js +4 -0
- package/dist/codex/simple.js.map +1 -1
- package/dist/core/errors.d.ts +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/high-trust.d.ts +41 -0
- package/dist/core/high-trust.d.ts.map +1 -0
- package/dist/core/high-trust.js +50 -0
- package/dist/core/high-trust.js.map +1 -0
- package/dist/core/input/index.d.ts.map +1 -1
- package/dist/core/input/index.js +15 -3
- package/dist/core/input/index.js.map +1 -1
- package/dist/core/models/input.d.ts +3 -0
- package/dist/core/models/input.d.ts.map +1 -0
- package/dist/core/models/input.js +9 -0
- package/dist/core/models/input.js.map +1 -0
- package/dist/core/models/picker.d.ts +2 -1
- package/dist/core/models/picker.d.ts.map +1 -1
- package/dist/core/models/picker.js +6 -5
- package/dist/core/models/picker.js.map +1 -1
- package/dist/core/models/tui-screen.d.ts +1 -1
- package/dist/core/models/tui-screen.d.ts.map +1 -1
- package/dist/core/models/tui-screen.js +26 -3
- package/dist/core/models/tui-screen.js.map +1 -1
- package/dist/core/trust/allowlist.d.ts +56 -0
- package/dist/core/trust/allowlist.d.ts.map +1 -0
- package/dist/core/{trust-prompts.js → trust/allowlist.js} +21 -38
- package/dist/core/trust/allowlist.js.map +1 -0
- package/dist/core/trust/prompts.d.ts +4 -46
- package/dist/core/trust/prompts.d.ts.map +1 -1
- package/dist/core/trust/prompts.js +2 -73
- package/dist/core/trust/prompts.js.map +1 -1
- package/dist/core/trust/responder.d.ts +2 -0
- package/dist/core/trust/responder.d.ts.map +1 -1
- package/dist/core/trust/responder.js +4 -0
- package/dist/core/trust/responder.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/runtime/launch-arguments.d.ts +12 -0
- package/dist/runtime/launch-arguments.d.ts.map +1 -0
- package/dist/runtime/launch-arguments.js +15 -0
- package/dist/runtime/launch-arguments.js.map +1 -0
- package/dist/runtime/session/base.d.ts.map +1 -1
- package/dist/runtime/session/base.js +4 -1
- package/dist/runtime/session/base.js.map +1 -1
- package/dist/runtime/session/commands.d.ts +2 -1
- package/dist/runtime/session/commands.d.ts.map +1 -1
- package/dist/runtime/session/commands.js +10 -4
- package/dist/runtime/session/commands.js.map +1 -1
- package/dist/runtime/session/lifecycle.d.ts +3 -4
- package/dist/runtime/session/lifecycle.d.ts.map +1 -1
- package/dist/runtime/session/lifecycle.js +6 -5
- package/dist/runtime/session/lifecycle.js.map +1 -1
- package/dist/state/directories.d.ts +4 -0
- package/dist/state/directories.d.ts.map +1 -0
- package/dist/state/directories.js +41 -0
- package/dist/state/directories.js.map +1 -0
- package/dist/state/files.d.ts.map +1 -1
- package/dist/state/files.js +25 -11
- package/dist/state/files.js.map +1 -1
- package/dist/state/private-session.d.ts.map +1 -1
- package/dist/state/private-session.js +2 -0
- package/dist/state/private-session.js.map +1 -1
- package/dist/state/store.d.ts.map +1 -1
- package/dist/state/store.js +7 -1
- package/dist/state/store.js.map +1 -1
- package/docs/cli-behavior.md +89 -1
- package/docs/cli-output.md +60 -0
- package/docs/cli.md +10 -2
- package/docs/codex/cli.md +57 -0
- package/docs/codex/config.md +47 -0
- package/docs/codex/hooks.md +70 -0
- package/examples/README.md +56 -0
- package/examples/full.ts +113 -0
- package/examples/minimal.ts +15 -0
- package/examples/stream.ts +39 -0
- package/examples/support.ts +71 -0
- package/package.json +17 -10
- package/prd/01-overview.md +21 -0
- package/prd/02-goals.md +47 -0
- package/prd/03-terminology.md +32 -0
- package/prd/04-architecture.md +121 -0
- package/prd/05-api/5.1-starting-claude.md +108 -0
- package/prd/05-api/5.2-resuming-claude.md +86 -0
- package/prd/05-api/5.3-claude-session-api.md +658 -0
- package/prd/05-api/5.4-events.md +145 -0
- package/prd/05-api/5.5-starting-codex.md +106 -0
- package/prd/05-api/5.6-resuming-codex.md +48 -0
- package/prd/05-api/5.7-codex-session-api.md +425 -0
- package/prd/05-api/5.8-session-api.md +122 -0
- package/prd/05-api/5.9-loops.md +170 -0
- package/prd/05-api/README.md +19 -0
- package/prd/06-claude-hook-bridge.md +164 -0
- package/prd/07-claude-policy.md +15 -0
- package/prd/07a-codex-hook-bridge.md +76 -0
- package/prd/08-state.md +127 -0
- package/prd/09-lifecycle.md +222 -0
- package/prd/10-errors.md +55 -0
- package/prd/11-test-app.md +53 -0
- package/prd/12-e2e.md +23 -0
- package/prd/12a-cli.md +375 -0
- package/prd/13-latitude.md +12 -0
- package/prd/14-conformance.md +333 -0
- package/prd/15-open-notes.md +8 -0
- package/prd/README.md +45 -0
- package/dist/claude/hook-dispatch.d.ts +0 -9
- package/dist/claude/hook-dispatch.d.ts.map +0 -1
- package/dist/claude/hook-dispatch.js +0 -12
- package/dist/claude/hook-dispatch.js.map +0 -1
- package/dist/claude/hook-events-extra.d.ts +0 -81
- package/dist/claude/hook-events-extra.d.ts.map +0 -1
- package/dist/claude/hook-events-extra.js +0 -6
- package/dist/claude/hook-events-extra.js.map +0 -1
- package/dist/claude/hook-events.d.ts +0 -101
- package/dist/claude/hook-events.d.ts.map +0 -1
- package/dist/claude/hook-events.js +0 -6
- package/dist/claude/hook-events.js.map +0 -1
- package/dist/claude/hook-names.d.ts +0 -24
- package/dist/claude/hook-names.d.ts.map +0 -1
- package/dist/claude/hook-names.js +0 -45
- package/dist/claude/hook-names.js.map +0 -1
- package/dist/claude/hooks.d.ts +0 -78
- package/dist/claude/hooks.d.ts.map +0 -1
- package/dist/claude/hooks.js +0 -6
- package/dist/claude/hooks.js.map +0 -1
- package/dist/claude/session-bridge.d.ts +0 -11
- package/dist/claude/session-bridge.d.ts.map +0 -1
- package/dist/claude/session-bridge.js +0 -18
- package/dist/claude/session-bridge.js.map +0 -1
- package/dist/claude/session-build.d.ts +0 -15
- package/dist/claude/session-build.d.ts.map +0 -1
- package/dist/claude/session-build.js +0 -147
- package/dist/claude/session-build.js.map +0 -1
- package/dist/claude/session-hook-handler.d.ts +0 -34
- package/dist/claude/session-hook-handler.d.ts.map +0 -1
- package/dist/claude/session-hook-handler.js +0 -42
- package/dist/claude/session-hook-handler.js.map +0 -1
- package/dist/claude/session-instance.d.ts +0 -42
- package/dist/claude/session-instance.d.ts.map +0 -1
- package/dist/claude/session-instance.js +0 -146
- package/dist/claude/session-instance.js.map +0 -1
- package/dist/claude/session-interface.d.ts +0 -49
- package/dist/claude/session-interface.d.ts.map +0 -1
- package/dist/claude/session-interface.js +0 -10
- package/dist/claude/session-interface.js.map +0 -1
- package/dist/claude/session-resume.d.ts +0 -8
- package/dist/claude/session-resume.d.ts.map +0 -1
- package/dist/claude/session-resume.js +0 -47
- package/dist/claude/session-resume.js.map +0 -1
- package/dist/claude/session-runtime.d.ts +0 -43
- package/dist/claude/session-runtime.d.ts.map +0 -1
- package/dist/claude/session-runtime.js +0 -105
- package/dist/claude/session-runtime.js.map +0 -1
- package/dist/claude/session-transcript.d.ts +0 -62
- package/dist/claude/session-transcript.d.ts.map +0 -1
- package/dist/claude/session-transcript.js +0 -88
- package/dist/claude/session-transcript.js.map +0 -1
- package/dist/claude/session.d.ts +0 -18
- package/dist/claude/session.d.ts.map +0 -1
- package/dist/claude/session.js +0 -58
- package/dist/claude/session.js.map +0 -1
- package/dist/claude/start-or-resume.d.ts +0 -12
- package/dist/claude/start-or-resume.d.ts.map +0 -1
- package/dist/claude/start-or-resume.js +0 -32
- package/dist/claude/start-or-resume.js.map +0 -1
- package/dist/claude/tool-hook-events.d.ts +0 -10
- package/dist/claude/tool-hook-events.d.ts.map +0 -1
- package/dist/claude/tool-hook-events.js +0 -18
- package/dist/claude/tool-hook-events.js.map +0 -1
- package/dist/claude/tool-types.d.ts +0 -158
- package/dist/claude/tool-types.d.ts.map +0 -1
- package/dist/claude/tool-types.js +0 -6
- package/dist/claude/tool-types.js.map +0 -1
- package/dist/claude/validate-input.d.ts +0 -8
- package/dist/claude/validate-input.d.ts.map +0 -1
- package/dist/claude/validate-input.js +0 -137
- package/dist/claude/validate-input.js.map +0 -1
- package/dist/claude/validate-permission-update.d.ts +0 -10
- package/dist/claude/validate-permission-update.d.ts.map +0 -1
- package/dist/claude/validate-permission-update.js +0 -72
- package/dist/claude/validate-permission-update.js.map +0 -1
- package/dist/claude/validate-result.d.ts +0 -7
- package/dist/claude/validate-result.d.ts.map +0 -1
- package/dist/claude/validate-result.js +0 -118
- package/dist/claude/validate-result.js.map +0 -1
- package/dist/claude/validate-shapes.d.ts +0 -22
- package/dist/claude/validate-shapes.d.ts.map +0 -1
- package/dist/claude/validate-shapes.js +0 -15
- package/dist/claude/validate-shapes.js.map +0 -1
- package/dist/claude/validate-tool-update.d.ts +0 -15
- package/dist/claude/validate-tool-update.d.ts.map +0 -1
- package/dist/claude/validate-tool-update.js +0 -122
- package/dist/claude/validate-tool-update.js.map +0 -1
- package/dist/cli/agent-detect.d.ts +0 -44
- package/dist/cli/agent-detect.d.ts.map +0 -1
- package/dist/cli/agent-detect.js +0 -66
- package/dist/cli/agent-detect.js.map +0 -1
- package/dist/cli/arg-errors.d.ts +0 -6
- package/dist/cli/arg-errors.d.ts.map +0 -1
- package/dist/cli/arg-errors.js +0 -44
- package/dist/cli/arg-errors.js.map +0 -1
- package/dist/cli/arg-options.d.ts +0 -26
- package/dist/cli/arg-options.d.ts.map +0 -1
- package/dist/cli/arg-options.js +0 -50
- package/dist/cli/arg-options.js.map +0 -1
- package/dist/cli/args.d.ts +0 -7
- package/dist/cli/args.d.ts.map +0 -1
- package/dist/cli/args.js +0 -70
- package/dist/cli/args.js.map +0 -1
- package/dist/cli/lifecycle-outcome.d.ts +0 -13
- package/dist/cli/lifecycle-outcome.d.ts.map +0 -1
- package/dist/cli/lifecycle-outcome.js +0 -20
- package/dist/cli/lifecycle-outcome.js.map +0 -1
- package/dist/cli/lifecycle.d.ts +0 -61
- package/dist/cli/lifecycle.d.ts.map +0 -1
- package/dist/cli/lifecycle.js +0 -152
- package/dist/cli/lifecycle.js.map +0 -1
- package/dist/cli/request-finalize.d.ts +0 -10
- package/dist/cli/request-finalize.d.ts.map +0 -1
- package/dist/cli/request-finalize.js +0 -135
- package/dist/cli/request-finalize.js.map +0 -1
- package/dist/cli/request-layers.d.ts +0 -30
- package/dist/cli/request-layers.d.ts.map +0 -1
- package/dist/cli/request-layers.js +0 -44
- package/dist/cli/request-layers.js.map +0 -1
- package/dist/cli/request-settings.d.ts +0 -34
- package/dist/cli/request-settings.d.ts.map +0 -1
- package/dist/cli/request-settings.js +0 -66
- package/dist/cli/request-settings.js.map +0 -1
- package/dist/cli/request-sources.d.ts +0 -13
- package/dist/cli/request-sources.d.ts.map +0 -1
- package/dist/cli/request-sources.js +0 -23
- package/dist/cli/request-sources.js.map +0 -1
- package/dist/cli/request-validation.d.ts +0 -18
- package/dist/cli/request-validation.d.ts.map +0 -1
- package/dist/cli/request-validation.js +0 -84
- package/dist/cli/request-validation.js.map +0 -1
- package/dist/cli/request-values.d.ts +0 -33
- package/dist/cli/request-values.d.ts.map +0 -1
- package/dist/cli/request-values.js +0 -73
- package/dist/cli/request-values.js.map +0 -1
- package/dist/cli/request.d.ts +0 -12
- package/dist/cli/request.d.ts.map +0 -1
- package/dist/cli/request.js +0 -103
- package/dist/cli/request.js.map +0 -1
- package/dist/cli/resolution-types.d.ts +0 -35
- package/dist/cli/resolution-types.d.ts.map +0 -1
- package/dist/cli/resolution-types.js +0 -6
- package/dist/cli/resolution-types.js.map +0 -1
- package/dist/cli/run-output-lines.d.ts +0 -14
- package/dist/cli/run-output-lines.d.ts.map +0 -1
- package/dist/cli/run-output-lines.js +0 -42
- package/dist/cli/run-output-lines.js.map +0 -1
- package/dist/cli/run-output.d.ts +0 -48
- package/dist/cli/run-output.d.ts.map +0 -1
- package/dist/cli/run-output.js +0 -150
- package/dist/cli/run-output.js.map +0 -1
- package/dist/cli/run.d.ts +0 -20
- package/dist/cli/run.d.ts.map +0 -1
- package/dist/cli/run.js +0 -126
- package/dist/cli/run.js.map +0 -1
- package/dist/cli/session-launch.d.ts +0 -23
- package/dist/cli/session-launch.d.ts.map +0 -1
- package/dist/cli/session-launch.js +0 -57
- package/dist/cli/session-launch.js.map +0 -1
- package/dist/cli/session.d.ts +0 -68
- package/dist/cli/session.d.ts.map +0 -1
- package/dist/cli/session.js +0 -124
- package/dist/cli/session.js.map +0 -1
- package/dist/codex/attach-images.d.ts +0 -20
- package/dist/codex/attach-images.d.ts.map +0 -1
- package/dist/codex/attach-images.js +0 -66
- package/dist/codex/attach-images.js.map +0 -1
- package/dist/codex/clipboard-lock.d.ts +0 -15
- package/dist/codex/clipboard-lock.d.ts.map +0 -1
- package/dist/codex/clipboard-lock.js +0 -16
- package/dist/codex/clipboard-lock.js.map +0 -1
- package/dist/codex/clipboard.d.ts +0 -32
- package/dist/codex/clipboard.d.ts.map +0 -1
- package/dist/codex/clipboard.js +0 -92
- package/dist/codex/clipboard.js.map +0 -1
- package/dist/codex/config-lock.d.ts +0 -21
- package/dist/codex/config-lock.d.ts.map +0 -1
- package/dist/codex/config-lock.js +0 -22
- package/dist/codex/config-lock.js.map +0 -1
- package/dist/codex/config-restore.d.ts +0 -33
- package/dist/codex/config-restore.d.ts.map +0 -1
- package/dist/codex/config-restore.js +0 -90
- package/dist/codex/config-restore.js.map +0 -1
- package/dist/codex/config-transaction.d.ts +0 -26
- package/dist/codex/config-transaction.d.ts.map +0 -1
- package/dist/codex/config-transaction.js +0 -47
- package/dist/codex/config-transaction.js.map +0 -1
- package/dist/codex/hook-dispatch.d.ts +0 -9
- package/dist/codex/hook-dispatch.d.ts.map +0 -1
- package/dist/codex/hook-dispatch.js +0 -14
- package/dist/codex/hook-dispatch.js.map +0 -1
- package/dist/codex/hook-names.d.ts +0 -19
- package/dist/codex/hook-names.d.ts.map +0 -1
- package/dist/codex/hook-names.js +0 -17
- package/dist/codex/hook-names.js.map +0 -1
- package/dist/codex/hooks.d.ts +0 -99
- package/dist/codex/hooks.d.ts.map +0 -1
- package/dist/codex/hooks.js +0 -6
- package/dist/codex/hooks.js.map +0 -1
- package/dist/codex/initial-ready.d.ts +0 -19
- package/dist/codex/initial-ready.d.ts.map +0 -1
- package/dist/codex/initial-ready.js +0 -19
- package/dist/codex/initial-ready.js.map +0 -1
- package/dist/codex/serialize.d.ts +0 -8
- package/dist/codex/serialize.d.ts.map +0 -1
- package/dist/codex/serialize.js +0 -48
- package/dist/codex/serialize.js.map +0 -1
- package/dist/codex/session-bridge.d.ts +0 -14
- package/dist/codex/session-bridge.d.ts.map +0 -1
- package/dist/codex/session-bridge.js +0 -20
- package/dist/codex/session-bridge.js.map +0 -1
- package/dist/codex/session-build.d.ts +0 -15
- package/dist/codex/session-build.d.ts.map +0 -1
- package/dist/codex/session-build.js +0 -144
- package/dist/codex/session-build.js.map +0 -1
- package/dist/codex/session-cleanup.d.ts +0 -12
- package/dist/codex/session-cleanup.d.ts.map +0 -1
- package/dist/codex/session-cleanup.js +0 -15
- package/dist/codex/session-cleanup.js.map +0 -1
- package/dist/codex/session-hooks.d.ts +0 -13
- package/dist/codex/session-hooks.d.ts.map +0 -1
- package/dist/codex/session-hooks.js +0 -54
- package/dist/codex/session-hooks.js.map +0 -1
- package/dist/codex/session-instance.d.ts +0 -50
- package/dist/codex/session-instance.d.ts.map +0 -1
- package/dist/codex/session-instance.js +0 -117
- package/dist/codex/session-instance.js.map +0 -1
- package/dist/codex/session-resume.d.ts +0 -7
- package/dist/codex/session-resume.d.ts.map +0 -1
- package/dist/codex/session-resume.js +0 -44
- package/dist/codex/session-resume.js.map +0 -1
- package/dist/codex/session-runtime.d.ts +0 -7
- package/dist/codex/session-runtime.d.ts.map +0 -1
- package/dist/codex/session-runtime.js +0 -10
- package/dist/codex/session-runtime.js.map +0 -1
- package/dist/codex/session-transcript.d.ts +0 -30
- package/dist/codex/session-transcript.d.ts.map +0 -1
- package/dist/codex/session-transcript.js +0 -53
- package/dist/codex/session-transcript.js.map +0 -1
- package/dist/codex/session-types.d.ts +0 -87
- package/dist/codex/session-types.d.ts.map +0 -1
- package/dist/codex/session-types.js +0 -6
- package/dist/codex/session-types.js.map +0 -1
- package/dist/codex/session-warnings.d.ts +0 -27
- package/dist/codex/session-warnings.d.ts.map +0 -1
- package/dist/codex/session-warnings.js +0 -54
- package/dist/codex/session-warnings.js.map +0 -1
- package/dist/codex/session.d.ts +0 -16
- package/dist/codex/session.d.ts.map +0 -1
- package/dist/codex/session.js +0 -61
- package/dist/codex/session.js.map +0 -1
- package/dist/codex/start-or-resume.d.ts +0 -12
- package/dist/codex/start-or-resume.d.ts.map +0 -1
- package/dist/codex/start-or-resume.js +0 -31
- package/dist/codex/start-or-resume.js.map +0 -1
- package/dist/codex/transcript/cursor-io.d.ts +0 -7
- package/dist/codex/transcript/cursor-io.d.ts.map +0 -1
- package/dist/codex/transcript/cursor-io.js +0 -7
- package/dist/codex/transcript/cursor-io.js.map +0 -1
- package/dist/codex/transcript/cursor.d.ts +0 -8
- package/dist/codex/transcript/cursor.d.ts.map +0 -1
- package/dist/codex/transcript/cursor.js +0 -8
- package/dist/codex/transcript/cursor.js.map +0 -1
- package/dist/codex/transcript/drops.d.ts +0 -9
- package/dist/codex/transcript/drops.d.ts.map +0 -1
- package/dist/codex/transcript/drops.js +0 -9
- package/dist/codex/transcript/drops.js.map +0 -1
- package/dist/codex/transcript.d.ts +0 -12
- package/dist/codex/transcript.d.ts.map +0 -1
- package/dist/codex/transcript.js +0 -10
- package/dist/codex/transcript.js.map +0 -1
- package/dist/codex/validate-result.d.ts +0 -7
- package/dist/codex/validate-result.d.ts.map +0 -1
- package/dist/codex/validate-result.js +0 -84
- package/dist/codex/validate-result.js.map +0 -1
- package/dist/codex/validate.d.ts +0 -11
- package/dist/codex/validate.d.ts.map +0 -1
- package/dist/codex/validate.js +0 -88
- package/dist/codex/validate.js.map +0 -1
- package/dist/core/activity-lifecycle.d.ts +0 -21
- package/dist/core/activity-lifecycle.d.ts.map +0 -1
- package/dist/core/activity-lifecycle.js +0 -45
- package/dist/core/activity-lifecycle.js.map +0 -1
- package/dist/core/activity-meta.d.ts +0 -13
- package/dist/core/activity-meta.d.ts.map +0 -1
- package/dist/core/activity-meta.js +0 -67
- package/dist/core/activity-meta.js.map +0 -1
- package/dist/core/activity-transcript.d.ts +0 -19
- package/dist/core/activity-transcript.d.ts.map +0 -1
- package/dist/core/activity-transcript.js +0 -60
- package/dist/core/activity-transcript.js.map +0 -1
- package/dist/core/activity.d.ts +0 -51
- package/dist/core/activity.d.ts.map +0 -1
- package/dist/core/activity.js +0 -81
- package/dist/core/activity.js.map +0 -1
- package/dist/core/control-queue-state.d.ts +0 -29
- package/dist/core/control-queue-state.d.ts.map +0 -1
- package/dist/core/control-queue-state.js +0 -95
- package/dist/core/control-queue-state.js.map +0 -1
- package/dist/core/control-queue-traits.d.ts +0 -54
- package/dist/core/control-queue-traits.d.ts.map +0 -1
- package/dist/core/control-queue-traits.js +0 -118
- package/dist/core/control-queue-traits.js.map +0 -1
- package/dist/core/control-queue-types.d.ts +0 -45
- package/dist/core/control-queue-types.d.ts.map +0 -1
- package/dist/core/control-queue-types.js +0 -7
- package/dist/core/control-queue-types.js.map +0 -1
- package/dist/core/control-queue.d.ts +0 -21
- package/dist/core/control-queue.d.ts.map +0 -1
- package/dist/core/control-queue.js +0 -98
- package/dist/core/control-queue.js.map +0 -1
- package/dist/core/list-models.d.ts +0 -44
- package/dist/core/list-models.d.ts.map +0 -1
- package/dist/core/list-models.js +0 -73
- package/dist/core/list-models.js.map +0 -1
- package/dist/core/model-picker.d.ts +0 -22
- package/dist/core/model-picker.d.ts.map +0 -1
- package/dist/core/model-picker.js +0 -58
- package/dist/core/model-picker.js.map +0 -1
- package/dist/core/model-rows.d.ts +0 -21
- package/dist/core/model-rows.d.ts.map +0 -1
- package/dist/core/model-rows.js +0 -57
- package/dist/core/model-rows.js.map +0 -1
- package/dist/core/probe-state.d.ts +0 -21
- package/dist/core/probe-state.d.ts.map +0 -1
- package/dist/core/probe-state.js +0 -39
- package/dist/core/probe-state.js.map +0 -1
- package/dist/core/session-input-abort.d.ts +0 -10
- package/dist/core/session-input-abort.d.ts.map +0 -1
- package/dist/core/session-input-abort.js +0 -44
- package/dist/core/session-input-abort.js.map +0 -1
- package/dist/core/session-input.d.ts +0 -37
- package/dist/core/session-input.d.ts.map +0 -1
- package/dist/core/session-input.js +0 -154
- package/dist/core/session-input.js.map +0 -1
- package/dist/core/session-warnings.d.ts +0 -20
- package/dist/core/session-warnings.d.ts.map +0 -1
- package/dist/core/session-warnings.js +0 -32
- package/dist/core/session-warnings.js.map +0 -1
- package/dist/core/simple/loop-controls.d.ts +0 -7
- package/dist/core/simple/loop-controls.d.ts.map +0 -1
- package/dist/core/simple/loop-controls.js +0 -7
- package/dist/core/simple/loop-controls.js.map +0 -1
- package/dist/core/startup-automation.d.ts +0 -54
- package/dist/core/startup-automation.d.ts.map +0 -1
- package/dist/core/startup-automation.js +0 -40
- package/dist/core/startup-automation.js.map +0 -1
- package/dist/core/startup-frame.d.ts +0 -39
- package/dist/core/startup-frame.d.ts.map +0 -1
- package/dist/core/startup-frame.js +0 -60
- package/dist/core/startup-frame.js.map +0 -1
- package/dist/core/startup-write.d.ts +0 -47
- package/dist/core/startup-write.d.ts.map +0 -1
- package/dist/core/startup-write.js +0 -73
- package/dist/core/startup-write.js.map +0 -1
- package/dist/core/trust-blocking.d.ts +0 -22
- package/dist/core/trust-blocking.d.ts.map +0 -1
- package/dist/core/trust-blocking.js +0 -38
- package/dist/core/trust-blocking.js.map +0 -1
- package/dist/core/trust-prompts.d.ts +0 -135
- package/dist/core/trust-prompts.d.ts.map +0 -1
- package/dist/core/trust-prompts.js.map +0 -1
- package/dist/core/trust-responder.d.ts +0 -48
- package/dist/core/trust-responder.d.ts.map +0 -1
- package/dist/core/trust-responder.js +0 -119
- package/dist/core/trust-responder.js.map +0 -1
- package/dist/core/tui-screen.d.ts +0 -21
- package/dist/core/tui-screen.d.ts.map +0 -1
- package/dist/core/tui-screen.js +0 -56
- package/dist/core/tui-screen.js.map +0 -1
- package/dist/core/update-warning.d.ts +0 -25
- package/dist/core/update-warning.d.ts.map +0 -1
- package/dist/core/update-warning.js +0 -33
- package/dist/core/update-warning.js.map +0 -1
- package/dist/core/warning-lifecycle.d.ts +0 -23
- package/dist/core/warning-lifecycle.d.ts.map +0 -1
- package/dist/core/warning-lifecycle.js +0 -6
- package/dist/core/warning-lifecycle.js.map +0 -1
- package/dist/core/warning-reasons.d.ts +0 -62
- package/dist/core/warning-reasons.d.ts.map +0 -1
- package/dist/core/warning-reasons.js +0 -121
- package/dist/core/warning-reasons.js.map +0 -1
- package/dist/core/warnings.d.ts +0 -145
- package/dist/core/warnings.d.ts.map +0 -1
- package/dist/core/warnings.js +0 -12
- package/dist/core/warnings.js.map +0 -1
- package/dist/runtime/cleanup-latch.d.ts +0 -27
- package/dist/runtime/cleanup-latch.d.ts.map +0 -1
- package/dist/runtime/cleanup-latch.js +0 -43
- package/dist/runtime/cleanup-latch.js.map +0 -1
- package/dist/runtime/initial-ready-advance.d.ts +0 -22
- package/dist/runtime/initial-ready-advance.d.ts.map +0 -1
- package/dist/runtime/initial-ready-advance.js +0 -39
- package/dist/runtime/initial-ready-advance.js.map +0 -1
- package/dist/runtime/initial-ready-fallback.d.ts +0 -12
- package/dist/runtime/initial-ready-fallback.d.ts.map +0 -1
- package/dist/runtime/initial-ready-fallback.js +0 -20
- package/dist/runtime/initial-ready-fallback.js.map +0 -1
- package/dist/runtime/initial-ready.d.ts +0 -49
- package/dist/runtime/initial-ready.d.ts.map +0 -1
- package/dist/runtime/initial-ready.js +0 -81
- package/dist/runtime/initial-ready.js.map +0 -1
- package/dist/runtime/reap-tree.d.ts +0 -62
- package/dist/runtime/reap-tree.d.ts.map +0 -1
- package/dist/runtime/reap-tree.js +0 -108
- package/dist/runtime/reap-tree.js.map +0 -1
- package/dist/runtime/session-base-types.d.ts +0 -36
- package/dist/runtime/session-base-types.d.ts.map +0 -1
- package/dist/runtime/session-base-types.js +0 -14
- package/dist/runtime/session-base-types.js.map +0 -1
- package/dist/runtime/session-base.d.ts +0 -48
- package/dist/runtime/session-base.d.ts.map +0 -1
- package/dist/runtime/session-base.js +0 -76
- package/dist/runtime/session-base.js.map +0 -1
- package/dist/runtime/session-commands.d.ts +0 -43
- package/dist/runtime/session-commands.d.ts.map +0 -1
- package/dist/runtime/session-commands.js +0 -52
- package/dist/runtime/session-commands.js.map +0 -1
- package/dist/runtime/session-exit.d.ts +0 -16
- package/dist/runtime/session-exit.d.ts.map +0 -1
- package/dist/runtime/session-exit.js +0 -32
- package/dist/runtime/session-exit.js.map +0 -1
- package/dist/runtime/session-image-attach.d.ts +0 -45
- package/dist/runtime/session-image-attach.d.ts.map +0 -1
- package/dist/runtime/session-image-attach.js +0 -82
- package/dist/runtime/session-image-attach.js.map +0 -1
- package/dist/runtime/session-lifecycle.d.ts +0 -61
- package/dist/runtime/session-lifecycle.d.ts.map +0 -1
- package/dist/runtime/session-lifecycle.js +0 -164
- package/dist/runtime/session-lifecycle.js.map +0 -1
- package/dist/runtime/session-loops.d.ts +0 -32
- package/dist/runtime/session-loops.d.ts.map +0 -1
- package/dist/runtime/session-loops.js +0 -62
- package/dist/runtime/session-loops.js.map +0 -1
- package/dist/runtime/session-readiness.d.ts +0 -18
- package/dist/runtime/session-readiness.d.ts.map +0 -1
- package/dist/runtime/session-readiness.js +0 -22
- package/dist/runtime/session-readiness.js.map +0 -1
- package/dist/runtime/session-reap.d.ts +0 -28
- package/dist/runtime/session-reap.d.ts.map +0 -1
- package/dist/runtime/session-reap.js +0 -51
- package/dist/runtime/session-reap.js.map +0 -1
- package/dist/runtime/session-resize.d.ts +0 -20
- package/dist/runtime/session-resize.d.ts.map +0 -1
- package/dist/runtime/session-resize.js +0 -26
- package/dist/runtime/session-resize.js.map +0 -1
- package/dist/runtime/session-shutdown-binding.d.ts +0 -30
- package/dist/runtime/session-shutdown-binding.d.ts.map +0 -1
- package/dist/runtime/session-shutdown-binding.js +0 -37
- package/dist/runtime/session-shutdown-binding.js.map +0 -1
- package/dist/runtime/session-shutdown.d.ts +0 -60
- package/dist/runtime/session-shutdown.d.ts.map +0 -1
- package/dist/runtime/session-shutdown.js +0 -140
- package/dist/runtime/session-shutdown.js.map +0 -1
- package/dist/runtime/session-status-wiring.d.ts +0 -38
- package/dist/runtime/session-status-wiring.d.ts.map +0 -1
- package/dist/runtime/session-status-wiring.js +0 -41
- package/dist/runtime/session-status-wiring.js.map +0 -1
- package/dist/runtime/session-status.d.ts +0 -7
- package/dist/runtime/session-status.d.ts.map +0 -1
- package/dist/runtime/session-status.js +0 -22
- package/dist/runtime/session-status.js.map +0 -1
- package/dist/runtime/shutdown-coordinator.d.ts +0 -57
- package/dist/runtime/shutdown-coordinator.d.ts.map +0 -1
- package/dist/runtime/shutdown-coordinator.js +0 -77
- package/dist/runtime/shutdown-coordinator.js.map +0 -1
- package/dist/runtime/startup-buffer.d.ts +0 -33
- package/dist/runtime/startup-buffer.d.ts.map +0 -1
- package/dist/runtime/startup-buffer.js +0 -53
- package/dist/runtime/startup-buffer.js.map +0 -1
- package/dist/runtime/startup-cleanup.d.ts +0 -43
- package/dist/runtime/startup-cleanup.d.ts.map +0 -1
- package/dist/runtime/startup-cleanup.js +0 -89
- package/dist/runtime/startup-cleanup.js.map +0 -1
- package/dist/runtime/startup.d.ts +0 -17
- package/dist/runtime/startup.d.ts.map +0 -1
- package/dist/runtime/startup.js +0 -47
- package/dist/runtime/startup.js.map +0 -1
- package/dist/runtime/status-emit.d.ts +0 -14
- package/dist/runtime/status-emit.d.ts.map +0 -1
- package/dist/runtime/status-emit.js +0 -15
- package/dist/runtime/status-emit.js.map +0 -1
- package/dist/runtime/teardown.d.ts +0 -15
- package/dist/runtime/teardown.d.ts.map +0 -1
- package/dist/runtime/teardown.js +0 -40
- package/dist/runtime/teardown.js.map +0 -1
- package/dist/runtime/terminate.d.ts +0 -22
- package/dist/runtime/terminate.d.ts.map +0 -1
- package/dist/runtime/terminate.js +0 -129
- package/dist/runtime/terminate.js.map +0 -1
- package/dist/runtime/update-lock.d.ts +0 -19
- package/dist/runtime/update-lock.d.ts.map +0 -1
- package/dist/runtime/update-lock.js +0 -183
- package/dist/runtime/update-lock.js.map +0 -1
- package/dist/runtime/update-once.d.ts +0 -40
- package/dist/runtime/update-once.d.ts.map +0 -1
- package/dist/runtime/update-once.js +0 -88
- package/dist/runtime/update-once.js.map +0 -1
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/** Queue lifecycle and cancellation bookkeeping (PRD §5.3/§5.9). */
|
|
2
|
-
import { ControlCancellation, overtakesReadiness } from "./control-queue-traits.js";
|
|
3
|
-
import { toError } from "./errors.js";
|
|
4
|
-
/** Shared mutable state for the serialized control queue. */
|
|
5
|
-
export class ControlQueueState {
|
|
6
|
-
queue = [];
|
|
7
|
-
ready = false;
|
|
8
|
-
everReady = false;
|
|
9
|
-
closed = false;
|
|
10
|
-
readinessEpoch = 0;
|
|
11
|
-
bypassable = 0;
|
|
12
|
-
inFlight;
|
|
13
|
-
submitAbort;
|
|
14
|
-
cancellation = new ControlCancellation();
|
|
15
|
-
stoppedError;
|
|
16
|
-
constructor(stoppedError) {
|
|
17
|
-
this.stoppedError = stoppedError;
|
|
18
|
-
}
|
|
19
|
-
markReady() {
|
|
20
|
-
if (this.closed)
|
|
21
|
-
return;
|
|
22
|
-
this.everReady = this.ready = true;
|
|
23
|
-
this.readinessEpoch += 1;
|
|
24
|
-
this.drain();
|
|
25
|
-
}
|
|
26
|
-
suspendReadiness() {
|
|
27
|
-
this.ready = false;
|
|
28
|
-
this.readinessEpoch += 1;
|
|
29
|
-
}
|
|
30
|
-
close() {
|
|
31
|
-
this.closed = true;
|
|
32
|
-
const error = this.stoppedError();
|
|
33
|
-
this.submitAbort?.abort(error);
|
|
34
|
-
const settling = this.inFlight;
|
|
35
|
-
this.inFlight = undefined;
|
|
36
|
-
this.bypassable = 0;
|
|
37
|
-
if (settling) {
|
|
38
|
-
this.cancellation.remove(settling);
|
|
39
|
-
settling.reject(error);
|
|
40
|
-
}
|
|
41
|
-
this.cancellation.clear();
|
|
42
|
-
for (const operation of this.queue.splice(0)) {
|
|
43
|
-
this.cancellation.remove(operation);
|
|
44
|
-
operation.reject(error);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
enqueue(op, cancel) {
|
|
48
|
-
if (this.closed)
|
|
49
|
-
return Promise.reject(this.stoppedError());
|
|
50
|
-
return new Promise((resolve, reject) => {
|
|
51
|
-
const operation = { ...op, resolve, reject };
|
|
52
|
-
this.queue.push(operation);
|
|
53
|
-
if (overtakesReadiness(operation))
|
|
54
|
-
this.bypassable += 1;
|
|
55
|
-
if (cancel)
|
|
56
|
-
this.listenForCancel(operation, cancel);
|
|
57
|
-
if (!cancel?.signal.aborted)
|
|
58
|
-
this.drain();
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
settle(operation, finish) {
|
|
62
|
-
if (this.inFlight !== operation)
|
|
63
|
-
return;
|
|
64
|
-
this.inFlight = undefined;
|
|
65
|
-
this.cancellation.remove(operation);
|
|
66
|
-
finish();
|
|
67
|
-
this.drain();
|
|
68
|
-
}
|
|
69
|
-
armAbort() {
|
|
70
|
-
this.submitAbort?.abort();
|
|
71
|
-
this.submitAbort = new AbortController();
|
|
72
|
-
return this.submitAbort.signal;
|
|
73
|
-
}
|
|
74
|
-
abortError(signal) {
|
|
75
|
-
return toError(signal.reason);
|
|
76
|
-
}
|
|
77
|
-
listenForCancel(operation, cancel) {
|
|
78
|
-
this.cancellation.listen(operation, cancel, (error) => this.cancelOperation(operation, error));
|
|
79
|
-
}
|
|
80
|
-
cancelOperation(operation, error) {
|
|
81
|
-
const index = this.queue.indexOf(operation);
|
|
82
|
-
if (index >= 0) {
|
|
83
|
-
this.queue.splice(index, 1);
|
|
84
|
-
if (overtakesReadiness(operation))
|
|
85
|
-
this.bypassable -= 1;
|
|
86
|
-
this.cancellation.remove(operation);
|
|
87
|
-
operation.reject(error);
|
|
88
|
-
}
|
|
89
|
-
else if (this.inFlight === operation && !operation.run) {
|
|
90
|
-
this.cancellation.mark(operation, error);
|
|
91
|
-
this.submitAbort?.abort(error);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=control-queue-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-queue-state.js","sourceRoot":"","sources":["../../src/core/control-queue-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static per-operation traits for the control queue: the kinds a session can
|
|
3
|
-
* submit and their readiness/turn semantics. Split from the queue logic per the
|
|
4
|
-
* repo convention of separating static tables from behavior (PRD §5.3).
|
|
5
|
-
*/
|
|
6
|
-
import type { Cancel, QueuedOperation } from "./control-queue-types.ts";
|
|
7
|
-
export type ControlQueueError = () => Error;
|
|
8
|
-
/** How an operation's text is written to the terminal (not a domain name). */
|
|
9
|
-
export type ControlSubmitMode = "pasted_input" | "command";
|
|
10
|
-
export type ControlOperationKind = "message" | "guidance" | "prompt" | "compact" | "list_models" | "set_model" | "login";
|
|
11
|
-
/**
|
|
12
|
-
* When an operation may leave the readiness queue's holding lane.
|
|
13
|
-
* - `"ready"`: only once the session is ready (ordinary messages, compact).
|
|
14
|
-
* - `"always"`: immediately, even before readiness (prompts, picker commands).
|
|
15
|
-
* - `"running_after_ready"`: once ready, OR — after the session has been ready
|
|
16
|
-
* at least once — during a live turn the caller is intervening in (guidance).
|
|
17
|
-
*/
|
|
18
|
-
export type ReadinessPolicy = "ready" | "always" | "running_after_ready";
|
|
19
|
-
/** The bypass-eligibility shape `overtakesReadiness`/`nextDispatchIndex` read. */
|
|
20
|
-
export type OvertakeCandidate = {
|
|
21
|
-
readonly kind: ControlOperationKind;
|
|
22
|
-
readonly mayBypassReadiness: boolean;
|
|
23
|
-
};
|
|
24
|
-
/** Whether a queued operation may dispatch even though the session is not ready. */
|
|
25
|
-
export declare function overtakesReadiness(op: OvertakeCandidate): boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Index of the next operation to dispatch, or -1. Head dispatches when ready;
|
|
28
|
-
* otherwise the first overtaker goes. `bypassable === 0` skips the scan when no
|
|
29
|
-
* queued op can dispatch while not ready (keeps a message backlog amortized O(1)).
|
|
30
|
-
*/
|
|
31
|
-
export declare function nextDispatchIndex(queue: readonly OvertakeCandidate[], ready: boolean, bypassable: number): number;
|
|
32
|
-
export type ControlOperationTraits = {
|
|
33
|
-
readonly reportsCallerSubmission: boolean;
|
|
34
|
-
readonly consumesReadiness: boolean;
|
|
35
|
-
readonly readiness: ReadinessPolicy;
|
|
36
|
-
readonly submitMode: ControlSubmitMode;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Slash-command operations do not start a user turn, so no completion hook
|
|
40
|
-
* will re-arm readiness afterwards; consuming readiness would deadlock later
|
|
41
|
-
* sends. `guidance` is the only conditional policy: see `ReadinessPolicy`.
|
|
42
|
-
*/
|
|
43
|
-
export declare const controlOperationTraits: Readonly<Record<ControlOperationKind, ControlOperationTraits>>;
|
|
44
|
-
/** Owns abort-listener cleanup and the one in-flight cancellation marker. */
|
|
45
|
-
export declare class ControlCancellation {
|
|
46
|
-
private readonly hooks;
|
|
47
|
-
private cancelled;
|
|
48
|
-
listen(operation: QueuedOperation, cancel: Cancel, drop: (error: Error) => void): void;
|
|
49
|
-
mark(operation: QueuedOperation, error: Error): void;
|
|
50
|
-
errorFor(operation: QueuedOperation): Error | undefined;
|
|
51
|
-
remove(operation: QueuedOperation): void;
|
|
52
|
-
clear(): void;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=control-queue-traits.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-queue-traits.d.ts","sourceRoot":"","sources":["../../src/core/control-queue-traits.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAExE,MAAM,MAAM,iBAAiB,GAAG,MAAM,KAAK,CAAC;AAC5C,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,SAAS,CAAC;AAC3D,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,UAAU,GACV,QAAQ,GACR,SAAS,GACT,aAAa,GACb,WAAW,GACX,OAAO,CAAC;AAEZ;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,qBAAqB,CAAC;AAmBzE,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,iBAAiB,EAAE,EACnC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,GACjB,MAAM,CAKR;AAED,MAAM,MAAM,sBAAsB,GAAG;IAKnC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;CACxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CA8CrD,CAAC;AAEF,6EAA6E;AAC7E,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,SAAS,CAA2D;IAE5E,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAOtF,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAIpD,QAAQ,CAAC,SAAS,EAAE,eAAe,GAAG,KAAK,GAAG,SAAS;IAIvD,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAMxC,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static per-operation traits for the control queue: the kinds a session can
|
|
3
|
-
* submit and their readiness/turn semantics. Split from the queue logic per the
|
|
4
|
-
* repo convention of separating static tables from behavior (PRD §5.3).
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Whether an operation with this readiness policy may dispatch while the session
|
|
8
|
-
* is not ready. Exhaustive over ReadinessPolicy with no runtime default (100%
|
|
9
|
-
* coverage holds): a new member leaves a return-less path, so `noImplicitReturns`
|
|
10
|
-
* fails the build rather than letting it silently become non-bypassable.
|
|
11
|
-
*/
|
|
12
|
-
function dispatchesWhileNotReady(policy, mayBypass) {
|
|
13
|
-
switch (policy) {
|
|
14
|
-
case "always":
|
|
15
|
-
return true;
|
|
16
|
-
case "running_after_ready":
|
|
17
|
-
return mayBypass;
|
|
18
|
-
case "ready":
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
/** Whether a queued operation may dispatch even though the session is not ready. */
|
|
23
|
-
export function overtakesReadiness(op) {
|
|
24
|
-
return dispatchesWhileNotReady(controlOperationTraits[op.kind].readiness, op.mayBypassReadiness);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Index of the next operation to dispatch, or -1. Head dispatches when ready;
|
|
28
|
-
* otherwise the first overtaker goes. `bypassable === 0` skips the scan when no
|
|
29
|
-
* queued op can dispatch while not ready (keeps a message backlog amortized O(1)).
|
|
30
|
-
*/
|
|
31
|
-
export function nextDispatchIndex(queue, ready, bypassable) {
|
|
32
|
-
if (ready)
|
|
33
|
-
return 0;
|
|
34
|
-
if (overtakesReadiness(queue[0]))
|
|
35
|
-
return 0;
|
|
36
|
-
if (bypassable === 0)
|
|
37
|
-
return -1;
|
|
38
|
-
return queue.findIndex(overtakesReadiness);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Slash-command operations do not start a user turn, so no completion hook
|
|
42
|
-
* will re-arm readiness afterwards; consuming readiness would deadlock later
|
|
43
|
-
* sends. `guidance` is the only conditional policy: see `ReadinessPolicy`.
|
|
44
|
-
*/
|
|
45
|
-
export const controlOperationTraits = {
|
|
46
|
-
message: {
|
|
47
|
-
reportsCallerSubmission: true,
|
|
48
|
-
consumesReadiness: true,
|
|
49
|
-
readiness: "ready",
|
|
50
|
-
submitMode: "pasted_input",
|
|
51
|
-
},
|
|
52
|
-
guidance: {
|
|
53
|
-
reportsCallerSubmission: true,
|
|
54
|
-
consumesReadiness: true,
|
|
55
|
-
readiness: "running_after_ready",
|
|
56
|
-
submitMode: "pasted_input",
|
|
57
|
-
},
|
|
58
|
-
prompt: {
|
|
59
|
-
reportsCallerSubmission: true,
|
|
60
|
-
consumesReadiness: true,
|
|
61
|
-
readiness: "always",
|
|
62
|
-
submitMode: "pasted_input",
|
|
63
|
-
},
|
|
64
|
-
compact: {
|
|
65
|
-
reportsCallerSubmission: false,
|
|
66
|
-
consumesReadiness: false,
|
|
67
|
-
readiness: "ready",
|
|
68
|
-
submitMode: "command",
|
|
69
|
-
},
|
|
70
|
-
list_models: {
|
|
71
|
-
reportsCallerSubmission: false,
|
|
72
|
-
consumesReadiness: false,
|
|
73
|
-
readiness: "always",
|
|
74
|
-
submitMode: "command",
|
|
75
|
-
},
|
|
76
|
-
set_model: {
|
|
77
|
-
reportsCallerSubmission: false,
|
|
78
|
-
consumesReadiness: false,
|
|
79
|
-
readiness: "always",
|
|
80
|
-
submitMode: "command",
|
|
81
|
-
},
|
|
82
|
-
// `/login` recovery: a picker command that must dispatch even while the session
|
|
83
|
-
// is not ready (login has lapsed, so it may never reach `ready` on its own).
|
|
84
|
-
login: {
|
|
85
|
-
reportsCallerSubmission: false,
|
|
86
|
-
consumesReadiness: false,
|
|
87
|
-
readiness: "always",
|
|
88
|
-
submitMode: "command",
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
/** Owns abort-listener cleanup and the one in-flight cancellation marker. */
|
|
92
|
-
export class ControlCancellation {
|
|
93
|
-
hooks = new Map();
|
|
94
|
-
cancelled;
|
|
95
|
-
listen(operation, cancel, drop) {
|
|
96
|
-
const listener = () => drop(cancel.error());
|
|
97
|
-
cancel.signal.addEventListener("abort", listener, { once: true });
|
|
98
|
-
this.hooks.set(operation, () => cancel.signal.removeEventListener("abort", listener));
|
|
99
|
-
if (cancel.signal.aborted)
|
|
100
|
-
listener();
|
|
101
|
-
}
|
|
102
|
-
mark(operation, error) {
|
|
103
|
-
this.cancelled = { operation, error };
|
|
104
|
-
}
|
|
105
|
-
errorFor(operation) {
|
|
106
|
-
return this.cancelled?.operation === operation ? this.cancelled.error : undefined;
|
|
107
|
-
}
|
|
108
|
-
remove(operation) {
|
|
109
|
-
this.hooks.get(operation)?.();
|
|
110
|
-
this.hooks.delete(operation);
|
|
111
|
-
if (this.cancelled?.operation === operation)
|
|
112
|
-
this.cancelled = undefined;
|
|
113
|
-
}
|
|
114
|
-
clear() {
|
|
115
|
-
this.cancelled = undefined;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=control-queue-traits.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-queue-traits.js","sourceRoot":"","sources":["../../src/core/control-queue-traits.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types for the serialized control queue: the submitter contract, the exclusive
|
|
3
|
-
* task shape, cancellation, and a queued operation. Split from the queue class
|
|
4
|
-
* to keep each file focused (PRD §5.3, C-API-19/37/44).
|
|
5
|
-
*/
|
|
6
|
-
import type { ControlOperationKind, ControlSubmitMode } from "./control-queue-traits.ts";
|
|
7
|
-
export type ControlSubmitter = (input: string, mode: ControlSubmitMode, signal: AbortSignal) => Promise<void>;
|
|
8
|
-
/** An abortable task run while its queue op holds the queue; aborts on close. */
|
|
9
|
-
export type AbortableQueueTask = (signal: AbortSignal) => Promise<void>;
|
|
10
|
-
/** Drops a still-queued op when `signal` aborts, rejecting it with `error()`. */
|
|
11
|
-
export type Cancel = {
|
|
12
|
-
readonly signal: AbortSignal;
|
|
13
|
-
readonly error: () => Error;
|
|
14
|
-
};
|
|
15
|
-
/** Internal provenance for activity and recurring-loop scheduling decisions. */
|
|
16
|
-
export type ControlSubmissionOrigin = {
|
|
17
|
-
readonly kind: "caller";
|
|
18
|
-
} | {
|
|
19
|
-
readonly kind: "loop";
|
|
20
|
-
readonly loopId: string;
|
|
21
|
-
};
|
|
22
|
-
/** Optional internal controls for an attributed, cancellable text submission. */
|
|
23
|
-
export type ControlSendOptions = {
|
|
24
|
-
readonly cancel?: Cancel;
|
|
25
|
-
readonly origin?: ControlSubmissionOrigin;
|
|
26
|
-
};
|
|
27
|
-
type QueuedOperationBase = {
|
|
28
|
-
readonly input: string;
|
|
29
|
-
readonly kind: ControlOperationKind;
|
|
30
|
-
readonly mayBypassReadiness: boolean;
|
|
31
|
-
readonly origin: ControlSubmissionOrigin;
|
|
32
|
-
readonly resolve: () => void;
|
|
33
|
-
readonly reject: (error: Error) => void;
|
|
34
|
-
};
|
|
35
|
-
type RunOrAttach = {
|
|
36
|
-
readonly run: AbortableQueueTask;
|
|
37
|
-
readonly attach?: never;
|
|
38
|
-
} | {
|
|
39
|
-
readonly run?: never;
|
|
40
|
-
readonly attach?: AbortableQueueTask;
|
|
41
|
-
};
|
|
42
|
-
export type QueuedOperation = QueuedOperationBase & RunOrAttach;
|
|
43
|
-
export type PendingOperation = Omit<QueuedOperationBase, "resolve" | "reject"> & RunOrAttach;
|
|
44
|
-
export {};
|
|
45
|
-
//# sourceMappingURL=control-queue-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-queue-types.d.ts","sourceRoot":"","sources":["../../src/core/control-queue-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKzF,MAAM,MAAM,gBAAgB,GAAG,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAExE,iFAAiF;AACjF,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,KAAK,CAAA;CAAE,CAAC;AAEnF,gFAAgF;AAChF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAC3C,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAEpC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACzC,CAAC;AAMF,KAAK,WAAW,GACZ;IAAE,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAIhE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG,WAAW,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types for the serialized control queue: the submitter contract, the exclusive
|
|
3
|
-
* task shape, cancellation, and a queued operation. Split from the queue class
|
|
4
|
-
* to keep each file focused (PRD §5.3, C-API-19/37/44).
|
|
5
|
-
*/
|
|
6
|
-
export {};
|
|
7
|
-
//# sourceMappingURL=control-queue-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-queue-types.js","sourceRoot":"","sources":["../../src/core/control-queue-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/** Serialized adapter controls with readiness semantics (PRD §5.3/§5.9). */
|
|
2
|
-
import { ControlQueueState } from "./control-queue-state.ts";
|
|
3
|
-
import { type ControlOperationKind, type ControlQueueError } from "./control-queue-traits.ts";
|
|
4
|
-
import type { AbortableQueueTask, Cancel, ControlSendOptions, ControlSubmissionOrigin, ControlSubmitter } from "./control-queue-types.ts";
|
|
5
|
-
export type { ControlOperationKind, ControlOperationTraits, ControlQueueError, ControlSubmitMode, ReadinessPolicy, } from "./control-queue-traits.ts";
|
|
6
|
-
export { controlOperationTraits } from "./control-queue-traits.ts";
|
|
7
|
-
export type { AbortableQueueTask, Cancel, ControlSendOptions, ControlSubmissionOrigin, ControlSubmitter, } from "./control-queue-types.ts";
|
|
8
|
-
export declare class ControlQueue extends ControlQueueState {
|
|
9
|
-
private readonly submit;
|
|
10
|
-
private readonly onTurnStarted;
|
|
11
|
-
private readonly guidanceMayBypass;
|
|
12
|
-
constructor(submit: ControlSubmitter, stoppedError: ControlQueueError, onTurnStarted: (origin: ControlSubmissionOrigin) => void, guidanceMayBypass?: () => boolean);
|
|
13
|
-
send(input: string, kind: ControlOperationKind, attach?: AbortableQueueTask, options?: ControlSendOptions): Promise<void>;
|
|
14
|
-
runExclusive(kind: ControlOperationKind, run: AbortableQueueTask, cancel?: Cancel): Promise<void>;
|
|
15
|
-
protected drain(): void;
|
|
16
|
-
private submitWithAttach;
|
|
17
|
-
private beginSubmission;
|
|
18
|
-
private commit;
|
|
19
|
-
private rollback;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=control-queue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-queue.d.ts","sourceRoot":"","sources":["../../src/core/control-queue.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAG5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,iBAAiB,EAIvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EACV,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAIlC,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4C;IAC1E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;gBAGhD,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,iBAAiB,EAC/B,aAAa,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,EACxD,iBAAiB,GAAE,MAAM,OAAqB;IAQhD,IAAI,CACF,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,oBAAoB,EAC1B,MAAM,CAAC,EAAE,kBAAkB,EAC3B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC;IAiBhB,YAAY,CACV,IAAI,EAAE,oBAAoB,EAC1B,GAAG,EAAE,kBAAkB,EACvB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAahB,SAAS,CAAC,KAAK,IAAI,IAAI;YA8BT,gBAAgB;IAa9B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,QAAQ;CASjB"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/** Serialized adapter controls with readiness semantics (PRD §5.3/§5.9). */
|
|
2
|
-
import { runContained } from "./contained.js";
|
|
3
|
-
import { ControlQueueState } from "./control-queue-state.js";
|
|
4
|
-
import { controlOperationTraits, nextDispatchIndex, overtakesReadiness, } from "./control-queue-traits.js";
|
|
5
|
-
import { toError } from "./errors.js";
|
|
6
|
-
export { controlOperationTraits } from "./control-queue-traits.js";
|
|
7
|
-
const callerOrigin = { kind: "caller" };
|
|
8
|
-
export class ControlQueue extends ControlQueueState {
|
|
9
|
-
submit;
|
|
10
|
-
onTurnStarted;
|
|
11
|
-
guidanceMayBypass;
|
|
12
|
-
constructor(submit, stoppedError, onTurnStarted, guidanceMayBypass = () => false) {
|
|
13
|
-
super(stoppedError);
|
|
14
|
-
this.submit = submit;
|
|
15
|
-
this.onTurnStarted = onTurnStarted;
|
|
16
|
-
this.guidanceMayBypass = guidanceMayBypass;
|
|
17
|
-
}
|
|
18
|
-
send(input, kind, attach, options = {}) {
|
|
19
|
-
const mayBypassReadiness = controlOperationTraits[kind].readiness === "running_after_ready" &&
|
|
20
|
-
this.everReady &&
|
|
21
|
-
this.guidanceMayBypass();
|
|
22
|
-
return this.enqueue({
|
|
23
|
-
input,
|
|
24
|
-
kind,
|
|
25
|
-
mayBypassReadiness,
|
|
26
|
-
origin: options.origin ?? callerOrigin,
|
|
27
|
-
...(attach ? { attach } : {}),
|
|
28
|
-
}, options.cancel);
|
|
29
|
-
}
|
|
30
|
-
runExclusive(kind, run, cancel) {
|
|
31
|
-
return this.enqueue({
|
|
32
|
-
input: "",
|
|
33
|
-
kind,
|
|
34
|
-
mayBypassReadiness: false,
|
|
35
|
-
origin: callerOrigin,
|
|
36
|
-
run,
|
|
37
|
-
}, cancel);
|
|
38
|
-
}
|
|
39
|
-
drain() {
|
|
40
|
-
if (this.inFlight || this.queue.length === 0)
|
|
41
|
-
return;
|
|
42
|
-
const index = nextDispatchIndex(this.queue, this.ready, this.bypassable);
|
|
43
|
-
if (index < 0)
|
|
44
|
-
return;
|
|
45
|
-
const operation = this.queue.splice(index, 1)[0];
|
|
46
|
-
if (overtakesReadiness(operation))
|
|
47
|
-
this.bypassable -= 1;
|
|
48
|
-
this.inFlight = operation;
|
|
49
|
-
const traits = controlOperationTraits[operation.kind];
|
|
50
|
-
const priorReady = this.ready;
|
|
51
|
-
const epoch = this.readinessEpoch;
|
|
52
|
-
let dispatched;
|
|
53
|
-
try {
|
|
54
|
-
const signal = this.armAbort();
|
|
55
|
-
if (!operation.attach)
|
|
56
|
-
this.beginSubmission(operation, traits);
|
|
57
|
-
dispatched = operation.run
|
|
58
|
-
? operation.run(signal)
|
|
59
|
-
: this.submitWithAttach(operation, traits, signal);
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
this.rollback(operation, priorReady, epoch, toError(error));
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
dispatched.then(() => this.commit(operation, traits), (error) => {
|
|
66
|
-
const cancellation = this.cancellation.errorFor(operation);
|
|
67
|
-
this.rollback(operation, priorReady, epoch, cancellation ?? toError(error));
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
async submitWithAttach(operation, traits, signal) {
|
|
71
|
-
if (operation.attach) {
|
|
72
|
-
await operation.attach(signal);
|
|
73
|
-
if (signal.aborted)
|
|
74
|
-
throw this.abortError(signal);
|
|
75
|
-
this.beginSubmission(operation, traits);
|
|
76
|
-
}
|
|
77
|
-
await this.submit(operation.input, traits.submitMode, signal);
|
|
78
|
-
}
|
|
79
|
-
beginSubmission(operation, traits) {
|
|
80
|
-
if (traits.consumesReadiness)
|
|
81
|
-
this.ready = false;
|
|
82
|
-
if (traits.reportsCallerSubmission && operation.origin.kind === "caller") {
|
|
83
|
-
runContained(() => this.onTurnStarted(operation.origin));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
commit(operation, traits) {
|
|
87
|
-
if (traits.reportsCallerSubmission && operation.origin.kind === "loop") {
|
|
88
|
-
runContained(() => this.onTurnStarted(operation.origin));
|
|
89
|
-
}
|
|
90
|
-
this.settle(operation, () => operation.resolve());
|
|
91
|
-
}
|
|
92
|
-
rollback(operation, priorReady, epoch, error) {
|
|
93
|
-
if (!this.closed && this.readinessEpoch === epoch)
|
|
94
|
-
this.ready = priorReady;
|
|
95
|
-
this.settle(operation, () => operation.reject(error));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=control-queue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"control-queue.js","sourceRoot":"","sources":["../../src/core/control-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session-less model enumeration: start a throwaway session, list its models,
|
|
3
|
-
* and always tear it down. Implements PRD §5.3 and C-API-41.
|
|
4
|
-
*/
|
|
5
|
-
import type { ElwoodAgentSession } from "./agent-session.ts";
|
|
6
|
-
import type { AgentModelOption } from "./model-rows.ts";
|
|
7
|
-
/** Launch-relevant options for a throwaway model-listing probe (C-API-41). */
|
|
8
|
-
export type ListModelsOptions = {
|
|
9
|
-
readonly cwd: string;
|
|
10
|
-
readonly stateDir?: string;
|
|
11
|
-
readonly autoupdate?: boolean;
|
|
12
|
-
readonly hookTimeoutMs?: number;
|
|
13
|
-
readonly strictVersionCheck?: boolean;
|
|
14
|
-
/** Bounds the picker automation, exactly as on a live session's `listModels`. */
|
|
15
|
-
readonly timeoutMs?: number;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* The throwaway session surface a probe drives: wait for ready, list, tear down.
|
|
19
|
-
* Derived from the public session contract so it uses the SAME closed
|
|
20
|
-
* `ElwoodSessionStatus` type and cannot drift from the real methods.
|
|
21
|
-
*/
|
|
22
|
-
type ProbeSession = Pick<ElwoodAgentSession, "waitForStatus" | "listModels" | "teardown">;
|
|
23
|
-
/** Adapter hooks for a probe: how to start the session and how to remove ALL its state. */
|
|
24
|
-
export type ProbeAdapter<S extends ProbeSession> = {
|
|
25
|
-
/** Starts the throwaway session against the probe's owned state directory. */
|
|
26
|
-
readonly start: () => Promise<S>;
|
|
27
|
-
/**
|
|
28
|
-
* Removes ALL probe state (its owned temp directory and everything under it).
|
|
29
|
-
* Runs on EVERY outcome — success, readiness/picker failure, AND a start failure
|
|
30
|
-
* that already allocated a state directory or runtime files — so nothing leaks
|
|
31
|
-
* regardless of how far startup got (C-API-41). Best-effort and non-throwing.
|
|
32
|
-
*/
|
|
33
|
-
readonly removeState: () => void;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Runs a throwaway session to its first readiness, lists its models, and cleans
|
|
37
|
-
* up EVERYTHING it allocated — the session (via `teardown`) and its owned state
|
|
38
|
-
* directory (via `removeState`) — on every outcome, so nothing is leaked (C-API-41).
|
|
39
|
-
* The probe only opens and cancels the picker, so the user's default stays
|
|
40
|
-
* untouched. A teardown/cleanup failure never masks a real list/readiness error.
|
|
41
|
-
*/
|
|
42
|
-
export declare function probeModels<S extends ProbeSession>(adapter: ProbeAdapter<S>, options: ListModelsOptions): Promise<readonly AgentModelOption[]>;
|
|
43
|
-
export {};
|
|
44
|
-
//# sourceMappingURL=list-models.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../src/core/list-models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,KAAK,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC;AAE1F,2FAA2F;AAC3F,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,YAAY,IAAI;IACjD,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,YAAY,EACtD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAiBtC"}
|
package/dist/core/list-models.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session-less model enumeration: start a throwaway session, list its models,
|
|
3
|
-
* and always tear it down. Implements PRD §5.3 and C-API-41.
|
|
4
|
-
*/
|
|
5
|
-
import { errnoCode, toError } from "./errors.js";
|
|
6
|
-
/**
|
|
7
|
-
* Runs a throwaway session to its first readiness, lists its models, and cleans
|
|
8
|
-
* up EVERYTHING it allocated — the session (via `teardown`) and its owned state
|
|
9
|
-
* directory (via `removeState`) — on every outcome, so nothing is leaked (C-API-41).
|
|
10
|
-
* The probe only opens and cancels the picker, so the user's default stays
|
|
11
|
-
* untouched. A teardown/cleanup failure never masks a real list/readiness error.
|
|
12
|
-
*/
|
|
13
|
-
export async function probeModels(adapter, options) {
|
|
14
|
-
let session;
|
|
15
|
-
try {
|
|
16
|
-
session = await adapter.start();
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
// Adapter startup can allocate a state directory / runtime files BEFORE the
|
|
20
|
-
// bridge or PTY fails, so "no returned session" does not mean "nothing
|
|
21
|
-
// allocated": remove the owned state directory before rethrowing (C-API-41).
|
|
22
|
-
adapter.removeState();
|
|
23
|
-
throw error;
|
|
24
|
-
}
|
|
25
|
-
try {
|
|
26
|
-
return await runProbe(session, options);
|
|
27
|
-
}
|
|
28
|
-
finally {
|
|
29
|
-
// Always sweep the owned state directory, even after a successful teardown.
|
|
30
|
-
adapter.removeState();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
async function runProbe(session, options) {
|
|
34
|
-
let models;
|
|
35
|
-
try {
|
|
36
|
-
await session.waitForStatus((status) => status === "ready");
|
|
37
|
-
models = await session.listModels(options.timeoutMs === undefined ? undefined : { timeoutMs: options.timeoutMs });
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
// The list/readiness error is what the caller must see, so it stays the thrown
|
|
41
|
-
// error and teardown never masks it. But a FAILED teardown here can leak a
|
|
42
|
-
// probe process tree, so surface it as a bounded `cause` rather than silently
|
|
43
|
-
// discarding it: the caller keeps the primary error AND learns of the leak.
|
|
44
|
-
await teardownWithoutMasking(session, toError(error));
|
|
45
|
-
throw error;
|
|
46
|
-
}
|
|
47
|
-
// The clean path DOES surface a genuine teardown failure — a leaked probe
|
|
48
|
-
// session is a real defect the caller should learn about (C-API-41).
|
|
49
|
-
await session.teardown();
|
|
50
|
-
return models;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Tear down the probe on the error path without masking the primary error. A
|
|
54
|
-
* rejecting teardown can leave a probe process tree alive, so instead of
|
|
55
|
-
* discarding it we attach a bounded diagnostic (the teardown error's allowlisted
|
|
56
|
-
* errno, or its name) to the primary error's `cause` — visible to the caller,
|
|
57
|
-
* never overriding the readiness/picker error that actually explains the failure.
|
|
58
|
-
*/
|
|
59
|
-
async function teardownWithoutMasking(session, primary) {
|
|
60
|
-
try {
|
|
61
|
-
await session.teardown();
|
|
62
|
-
}
|
|
63
|
-
catch (teardownError) {
|
|
64
|
-
// `cause` may already be set by the primary error; only fill it when empty so
|
|
65
|
-
// we never clobber a more specific upstream cause. The token is bounded — an
|
|
66
|
-
// errno like `EPERM` or the error's constructor name — never a raw message.
|
|
67
|
-
if (primary.cause === undefined) {
|
|
68
|
-
const token = errnoCode(teardownError) ?? toError(teardownError).name;
|
|
69
|
-
primary.cause = `probe_teardown_failed:${token}`;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=list-models.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../src/core/list-models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAkCjD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAwB,EACxB,OAA0B;IAE1B,IAAI,OAAU,CAAC;IACf,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4EAA4E;QAC5E,uEAAuE;QACvE,6EAA6E;QAC7E,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;YAAS,CAAC;QACT,4EAA4E;QAC5E,OAAO,CAAC,WAAW,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,OAAU,EACV,OAA0B;IAE1B,IAAI,MAAmC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;QAC5D,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAC/B,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAC/E,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+EAA+E;QAC/E,2EAA2E;QAC3E,8EAA8E;QAC9E,4EAA4E;QAC5E,MAAM,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,0EAA0E;IAC1E,qEAAqE;IACrE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,sBAAsB,CAAC,OAAqB,EAAE,OAAc;IACzE,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,aAAa,EAAE,CAAC;QACvB,8EAA8E;QAC9E,6EAA6E;QAC7E,4EAA4E;QAC5E,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;YACtE,OAAO,CAAC,KAAK,GAAG,yBAAyB,KAAK,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared /model picker automation for adapter sessions.
|
|
3
|
-
* Implements PRD §5.3, §5.7, C-API-23, and C-API-24.
|
|
4
|
-
*/
|
|
5
|
-
import type { AgentModelOption, ParsedModelPicker } from "./model-rows.ts";
|
|
6
|
-
import { type ScreenTerminal } from "./tui-screen.ts";
|
|
7
|
-
export declare function pickerTimeout(options?: {
|
|
8
|
-
readonly timeoutMs?: number;
|
|
9
|
-
}): number;
|
|
10
|
-
export type ModelPickerIo = {
|
|
11
|
-
readonly terminal: ScreenTerminal;
|
|
12
|
-
readonly submit: (command: string) => Promise<void>;
|
|
13
|
-
};
|
|
14
|
-
export type ModelPickerSpec = {
|
|
15
|
-
readonly agent: string;
|
|
16
|
-
readonly isOpen: (text: string) => boolean;
|
|
17
|
-
readonly parse: (text: string) => ParsedModelPicker;
|
|
18
|
-
readonly apply: (io: ModelPickerIo, timeoutMs: number) => Promise<void>;
|
|
19
|
-
};
|
|
20
|
-
export declare function listPickerModels(io: ModelPickerIo, spec: ModelPickerSpec, timeoutMs: number): Promise<readonly AgentModelOption[]>;
|
|
21
|
-
export declare function setPickerModel(io: ModelPickerIo, spec: ModelPickerSpec, id: string, timeoutMs: number): Promise<void>;
|
|
22
|
-
//# sourceMappingURL=model-picker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-picker.d.ts","sourceRoot":"","sources":["../../src/core/model-picker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE/E;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE,CAAC;AAOF,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAUtC;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|