@the-open-engine/zeroshot 6.30.1 → 6.31.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/lib/agent-cli-provider/adapters/acp.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/acp.js +7 -11
- package/lib/agent-cli-provider/adapters/acp.js.map +1 -1
- package/lib/agent-cli-provider/adapters/omp-policy.d.ts +4 -0
- package/lib/agent-cli-provider/adapters/omp-policy.d.ts.map +1 -0
- package/lib/agent-cli-provider/adapters/omp-policy.js +47 -0
- package/lib/agent-cli-provider/adapters/omp-policy.js.map +1 -0
- package/lib/agent-cli-provider/adapters/omp.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/omp.js +8 -158
- package/lib/agent-cli-provider/adapters/omp.js.map +1 -1
- package/lib/agent-cli-provider/adapters/pi.d.ts.map +1 -1
- package/lib/agent-cli-provider/adapters/pi.js +12 -124
- package/lib/agent-cli-provider/adapters/pi.js.map +1 -1
- package/lib/agent-cli-provider/assistant-stream.d.ts +27 -0
- package/lib/agent-cli-provider/assistant-stream.d.ts.map +1 -0
- package/lib/agent-cli-provider/assistant-stream.js +119 -0
- package/lib/agent-cli-provider/assistant-stream.js.map +1 -0
- package/lib/agent-cli-provider/contract-actions.d.ts.map +1 -1
- package/lib/agent-cli-provider/contract-actions.js +42 -1
- package/lib/agent-cli-provider/contract-actions.js.map +1 -1
- package/lib/agent-cli-provider/contract-invoke.d.ts.map +1 -1
- package/lib/agent-cli-provider/contract-invoke.js +68 -38
- package/lib/agent-cli-provider/contract-invoke.js.map +1 -1
- package/lib/agent-cli-provider/contract-support.d.ts +5 -6
- package/lib/agent-cli-provider/contract-support.d.ts.map +1 -1
- package/lib/agent-cli-provider/contract-support.js +99 -6
- package/lib/agent-cli-provider/contract-support.js.map +1 -1
- package/lib/agent-cli-provider/index.d.ts +8 -6
- package/lib/agent-cli-provider/index.d.ts.map +1 -1
- package/lib/agent-cli-provider/index.js +34 -10
- package/lib/agent-cli-provider/index.js.map +1 -1
- package/lib/agent-cli-provider/omp/auth-policy.d.ts +31 -0
- package/lib/agent-cli-provider/omp/auth-policy.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/auth-policy.js +98 -0
- package/lib/agent-cli-provider/omp/auth-policy.js.map +1 -0
- package/lib/agent-cli-provider/{omp-release.d.ts → omp/release.d.ts} +1 -1
- package/lib/agent-cli-provider/omp/release.d.ts.map +1 -0
- package/lib/agent-cli-provider/{omp-release.js → omp/release.js} +1 -1
- package/lib/agent-cli-provider/omp/release.js.map +1 -0
- package/lib/agent-cli-provider/{omp-rpc-bounds.d.ts → omp/rpc-bounds.d.ts} +1 -1
- package/lib/agent-cli-provider/omp/rpc-bounds.d.ts.map +1 -0
- package/lib/agent-cli-provider/{omp-rpc-bounds.js → omp/rpc-bounds.js} +1 -1
- package/lib/agent-cli-provider/omp/rpc-bounds.js.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver-channel.d.ts +19 -0
- package/lib/agent-cli-provider/omp/rpc-driver-channel.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver-channel.js +109 -0
- package/lib/agent-cli-provider/omp/rpc-driver-channel.js.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver-dispatch.d.ts +27 -0
- package/lib/agent-cli-provider/omp/rpc-driver-dispatch.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver-dispatch.js +135 -0
- package/lib/agent-cli-provider/omp/rpc-driver-dispatch.js.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver-runner.d.ts +3 -0
- package/lib/agent-cli-provider/omp/rpc-driver-runner.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver-runner.js +205 -0
- package/lib/agent-cli-provider/omp/rpc-driver-runner.js.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver-state.d.ts +80 -0
- package/lib/agent-cli-provider/omp/rpc-driver-state.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver-state.js +86 -0
- package/lib/agent-cli-provider/omp/rpc-driver-state.js.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver.d.ts +3 -0
- package/lib/agent-cli-provider/omp/rpc-driver.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-driver.js +6 -0
- package/lib/agent-cli-provider/omp/rpc-driver.js.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-event-lines.d.ts +8 -0
- package/lib/agent-cli-provider/omp/rpc-event-lines.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-event-lines.js +59 -0
- package/lib/agent-cli-provider/omp/rpc-event-lines.js.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-events.d.ts +16 -0
- package/lib/agent-cli-provider/omp/rpc-events.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-events.js +115 -0
- package/lib/agent-cli-provider/omp/rpc-events.js.map +1 -0
- package/lib/agent-cli-provider/{omp-rpc-protocol.d.ts → omp/rpc-protocol-contract.d.ts} +1 -13
- package/lib/agent-cli-provider/omp/rpc-protocol-contract.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-protocol-contract.js +54 -0
- package/lib/agent-cli-provider/omp/rpc-protocol-contract.js.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-protocol.d.ts +15 -0
- package/lib/agent-cli-provider/omp/rpc-protocol.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/rpc-protocol.js +208 -0
- package/lib/agent-cli-provider/omp/rpc-protocol.js.map +1 -0
- package/lib/agent-cli-provider/{omp-rpc-session.d.ts → omp/rpc-session.d.ts} +1 -1
- package/lib/agent-cli-provider/omp/rpc-session.d.ts.map +1 -0
- package/lib/agent-cli-provider/{omp-rpc-session.js → omp/rpc-session.js} +1 -1
- package/lib/agent-cli-provider/omp/rpc-session.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-contract.d.ts +34 -0
- package/lib/agent-cli-provider/omp/sdk-contract.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-contract.js +81 -0
- package/lib/agent-cli-provider/omp/sdk-contract.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-credentials.d.ts +6 -0
- package/lib/agent-cli-provider/omp/sdk-process-credentials.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-credentials.js +44 -0
- package/lib/agent-cli-provider/omp/sdk-process-credentials.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-error.d.ts +5 -0
- package/lib/agent-cli-provider/omp/sdk-process-error.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-error.js +13 -0
- package/lib/agent-cli-provider/omp/sdk-process-error.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-io.d.ts +18 -0
- package/lib/agent-cli-provider/omp/sdk-process-io.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-io.js +80 -0
- package/lib/agent-cli-provider/omp/sdk-process-io.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-private-runtime.d.ts +51 -0
- package/lib/agent-cli-provider/omp/sdk-process-private-runtime.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-private-runtime.js +154 -0
- package/lib/agent-cli-provider/omp/sdk-process-private-runtime.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-result.d.ts +26 -0
- package/lib/agent-cli-provider/omp/sdk-process-result.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-result.js +117 -0
- package/lib/agent-cli-provider/omp/sdk-process-result.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-runner.d.ts +7 -0
- package/lib/agent-cli-provider/omp/sdk-process-runner.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-process-runner.js +204 -0
- package/lib/agent-cli-provider/omp/sdk-process-runner.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-collector.d.ts +3 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-collector.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-collector.js +145 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-collector.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-frame.d.ts +4 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-frame.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-frame.js +183 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-frame.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-request.d.ts +8 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-request.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-request.js +170 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-request.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-result.d.ts +5 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-result.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-result.js +74 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-result.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-types.d.ts +94 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-types.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-types.js +54 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-types.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-value.d.ts +18 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-value.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-value.js +229 -0
- package/lib/agent-cli-provider/omp/sdk-protocol-value.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol.d.ts +7 -0
- package/lib/agent-cli-provider/omp/sdk-protocol.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-protocol.js +28 -0
- package/lib/agent-cli-provider/omp/sdk-protocol.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-runtime.d.ts +29 -0
- package/lib/agent-cli-provider/omp/sdk-runtime.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-runtime.js +110 -0
- package/lib/agent-cli-provider/omp/sdk-runtime.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-auth.d.ts +3 -0
- package/lib/agent-cli-provider/omp/sdk-settings-auth.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-auth.js +86 -0
- package/lib/agent-cli-provider/omp/sdk-settings-auth.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-constants.d.ts +26 -0
- package/lib/agent-cli-provider/omp/sdk-settings-constants.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-constants.js +148 -0
- package/lib/agent-cli-provider/omp/sdk-settings-constants.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-model-fields.d.ts +5 -0
- package/lib/agent-cli-provider/omp/sdk-settings-model-fields.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-model-fields.js +198 -0
- package/lib/agent-cli-provider/omp/sdk-settings-model-fields.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-model.d.ts +4 -0
- package/lib/agent-cli-provider/omp/sdk-settings-model.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-model.js +163 -0
- package/lib/agent-cli-provider/omp/sdk-settings-model.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-normalize.d.ts +18 -0
- package/lib/agent-cli-provider/omp/sdk-settings-normalize.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-normalize.js +148 -0
- package/lib/agent-cli-provider/omp/sdk-settings-normalize.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-selector.d.ts +3 -0
- package/lib/agent-cli-provider/omp/sdk-settings-selector.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-selector.js +22 -0
- package/lib/agent-cli-provider/omp/sdk-settings-selector.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-types.d.ts +68 -0
- package/lib/agent-cli-provider/omp/sdk-settings-types.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-types.js +19 -0
- package/lib/agent-cli-provider/omp/sdk-settings-types.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-values.d.ts +14 -0
- package/lib/agent-cli-provider/omp/sdk-settings-values.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings-values.js +112 -0
- package/lib/agent-cli-provider/omp/sdk-settings-values.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings.d.ts +5 -0
- package/lib/agent-cli-provider/omp/sdk-settings.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-settings.js +16 -0
- package/lib/agent-cli-provider/omp/sdk-settings.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-context.d.ts +11 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-context.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-context.js +171 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-context.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.d.ts +5 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.js +94 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-credentials.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-execute.d.ts +5 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-execute.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-execute.js +175 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-execute.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-output.d.ts +5 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-output.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-output.js +216 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-output.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.d.ts +11 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.js +265 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-runtime.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-types.d.ts +148 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-types.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-types.js +84 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar-types.js.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar.d.ts +4 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar.d.ts.map +1 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar.js +9 -0
- package/lib/agent-cli-provider/omp/sdk-sidecar.js.map +1 -0
- package/lib/agent-cli-provider/process-runner.d.ts +1 -0
- package/lib/agent-cli-provider/process-runner.d.ts.map +1 -1
- package/lib/agent-cli-provider/process-runner.js +19 -6
- package/lib/agent-cli-provider/process-runner.js.map +1 -1
- package/lib/agent-cli-provider/provider-registry.d.ts +18 -4
- package/lib/agent-cli-provider/provider-registry.d.ts.map +1 -1
- package/lib/agent-cli-provider/provider-registry.js +21 -7
- package/lib/agent-cli-provider/provider-registry.js.map +1 -1
- package/lib/agent-cli-provider/single-agent-runtime.d.ts +10 -1
- package/lib/agent-cli-provider/single-agent-runtime.d.ts.map +1 -1
- package/lib/agent-cli-provider/single-agent-runtime.js +378 -11
- package/lib/agent-cli-provider/single-agent-runtime.js.map +1 -1
- package/lib/agent-cli-provider/types.d.ts +110 -2
- package/lib/agent-cli-provider/types.d.ts.map +1 -1
- package/lib/agent-cli-provider/types.js.map +1 -1
- package/npm-shrinkwrap.json +18116 -0
- package/package.json +16 -3
- package/scripts/omp/bun-ffi.d.ts +28 -0
- package/scripts/omp/host-supervisor-cleanup.ts +100 -0
- package/scripts/omp/host-supervisor-launch.ts +38 -0
- package/scripts/omp/host-supervisor-native.ts +181 -0
- package/scripts/omp/host-supervisor-tracker.ts +258 -0
- package/scripts/omp/host-supervisor.ts +298 -0
- package/scripts/omp/promise-gate.ts +13 -0
- package/scripts/omp/runtime-identities.js +283 -0
- package/scripts/omp/runtime-lock.js +232 -0
- package/scripts/omp/runtime-release.js +105 -0
- package/scripts/omp/runtime.js +33 -0
- package/scripts/omp/sidecar.ts +124 -0
- package/scripts/opcore-introduced-check.js +5 -0
- package/scripts/release-preflight.js +19 -0
- package/src/agent-cli-provider/adapters/acp.ts +18 -17
- package/src/agent-cli-provider/adapters/omp-policy.ts +45 -0
- package/src/agent-cli-provider/adapters/omp.ts +9 -155
- package/src/agent-cli-provider/adapters/pi.ts +15 -145
- package/src/agent-cli-provider/assistant-stream.ts +155 -0
- package/src/agent-cli-provider/contract-actions.ts +14 -2
- package/src/agent-cli-provider/contract-invoke.ts +77 -40
- package/src/agent-cli-provider/contract-support.ts +83 -12
- package/src/agent-cli-provider/index.ts +60 -5
- package/src/agent-cli-provider/omp/auth-policy.ts +126 -0
- package/src/agent-cli-provider/omp/rpc-driver-channel.ts +144 -0
- package/src/agent-cli-provider/omp/rpc-driver-dispatch.ts +177 -0
- package/src/agent-cli-provider/omp/rpc-driver-runner.ts +199 -0
- package/src/agent-cli-provider/omp/rpc-driver-state.ts +165 -0
- package/src/agent-cli-provider/omp/rpc-driver.ts +8 -0
- package/src/agent-cli-provider/omp/rpc-event-lines.ts +58 -0
- package/src/agent-cli-provider/omp/rpc-events.ts +154 -0
- package/src/agent-cli-provider/omp/rpc-protocol-contract.ts +77 -0
- package/src/agent-cli-provider/{omp-rpc-protocol.ts → omp/rpc-protocol.ts} +9 -111
- package/src/agent-cli-provider/omp/sdk-contract.ts +123 -0
- package/src/agent-cli-provider/omp/sdk-process-credentials.ts +55 -0
- package/src/agent-cli-provider/omp/sdk-process-error.ts +9 -0
- package/src/agent-cli-provider/omp/sdk-process-io.ts +92 -0
- package/src/agent-cli-provider/omp/sdk-process-private-runtime.ts +249 -0
- package/src/agent-cli-provider/omp/sdk-process-result.ts +181 -0
- package/src/agent-cli-provider/omp/sdk-process-runner.ts +281 -0
- package/src/agent-cli-provider/omp/sdk-protocol-collector.ts +140 -0
- package/src/agent-cli-provider/omp/sdk-protocol-frame.ts +260 -0
- package/src/agent-cli-provider/omp/sdk-protocol-request.ts +181 -0
- package/src/agent-cli-provider/omp/sdk-protocol-result.ts +80 -0
- package/src/agent-cli-provider/omp/sdk-protocol-types.ts +156 -0
- package/src/agent-cli-provider/omp/sdk-protocol-value.ts +234 -0
- package/src/agent-cli-provider/omp/sdk-protocol.ts +46 -0
- package/src/agent-cli-provider/omp/sdk-runtime.ts +159 -0
- package/src/agent-cli-provider/omp/sdk-settings-auth.ts +78 -0
- package/src/agent-cli-provider/omp/sdk-settings-constants.ts +147 -0
- package/src/agent-cli-provider/omp/sdk-settings-model-fields.ts +233 -0
- package/src/agent-cli-provider/omp/sdk-settings-model.ts +238 -0
- package/src/agent-cli-provider/omp/sdk-settings-normalize.ts +242 -0
- package/src/agent-cli-provider/omp/sdk-settings-selector.ts +28 -0
- package/src/agent-cli-provider/omp/sdk-settings-types.ts +88 -0
- package/src/agent-cli-provider/omp/sdk-settings-values.ts +118 -0
- package/src/agent-cli-provider/omp/sdk-settings.ts +33 -0
- package/src/agent-cli-provider/omp/sdk-sidecar-context.ts +199 -0
- package/src/agent-cli-provider/omp/sdk-sidecar-credentials.ts +100 -0
- package/src/agent-cli-provider/omp/sdk-sidecar-execute.ts +201 -0
- package/src/agent-cli-provider/omp/sdk-sidecar-output.ts +235 -0
- package/src/agent-cli-provider/omp/sdk-sidecar-runtime.ts +244 -0
- package/src/agent-cli-provider/omp/sdk-sidecar-types.ts +173 -0
- package/src/agent-cli-provider/omp/sdk-sidecar.ts +3 -0
- package/src/agent-cli-provider/process-runner.ts +22 -8
- package/src/agent-cli-provider/provider-registry.ts +29 -10
- package/src/agent-cli-provider/single-agent-runtime.ts +444 -18
- package/src/agent-cli-provider/types.ts +131 -3
- package/src/command-cleanup-ownership.js +15 -0
- package/task-lib/omp-sdk-runtime.js +8 -0
- package/task-lib/runner.js +121 -40
- package/task-lib/sdk-watcher.js +154 -0
- package/lib/agent-cli-provider/omp-release.d.ts.map +0 -1
- package/lib/agent-cli-provider/omp-release.js.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-bounds.d.ts.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-bounds.js.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-driver.d.ts +0 -40
- package/lib/agent-cli-provider/omp-rpc-driver.d.ts.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-driver.js +0 -519
- package/lib/agent-cli-provider/omp-rpc-driver.js.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-events.d.ts +0 -28
- package/lib/agent-cli-provider/omp-rpc-events.d.ts.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-events.js +0 -264
- package/lib/agent-cli-provider/omp-rpc-events.js.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-protocol.d.ts.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-protocol.js +0 -272
- package/lib/agent-cli-provider/omp-rpc-protocol.js.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-session.d.ts.map +0 -1
- package/lib/agent-cli-provider/omp-rpc-session.js.map +0 -1
- package/src/agent-cli-provider/omp-rpc-driver.ts +0 -639
- package/src/agent-cli-provider/omp-rpc-events.ts +0 -318
- /package/src/agent-cli-provider/{omp-release.ts → omp/release.ts} +0 -0
- /package/src/agent-cli-provider/{omp-rpc-bounds.ts → omp/rpc-bounds.ts} +0 -0
- /package/src/agent-cli-provider/{omp-rpc-session.ts → omp/rpc-session.ts} +0 -0
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { OmpSessionLaunch } from './omp-rpc-session';
|
|
2
|
-
import type { CommandSpec, OutputEvent } from './types';
|
|
3
|
-
export interface OmpRpcSpawnEvidence {
|
|
4
|
-
readonly pid: number;
|
|
5
|
-
readonly processGroupId: number | null;
|
|
6
|
-
readonly terminationStrategy: 'process-group' | 'process-tree';
|
|
7
|
-
}
|
|
8
|
-
export interface OmpRpcSessionEvidence {
|
|
9
|
-
readonly phase: 'ready' | 'terminal';
|
|
10
|
-
readonly sessionId: string | null;
|
|
11
|
-
readonly sessionFile: string | null;
|
|
12
|
-
readonly selectedProvider: string;
|
|
13
|
-
readonly selectedModel: string;
|
|
14
|
-
readonly thinkingLevel: string;
|
|
15
|
-
}
|
|
16
|
-
export interface OmpRpcTaskRequest {
|
|
17
|
-
readonly commandSpec: CommandSpec;
|
|
18
|
-
readonly prompt: string;
|
|
19
|
-
readonly expectedVersion: string;
|
|
20
|
-
readonly session: OmpSessionLaunch;
|
|
21
|
-
readonly signal: AbortSignal;
|
|
22
|
-
readonly timeoutMs: number;
|
|
23
|
-
readonly abortGraceMs: number;
|
|
24
|
-
readonly exitGraceMs: number;
|
|
25
|
-
}
|
|
26
|
-
export interface OmpRpcTaskHooks {
|
|
27
|
-
readonly onSpawn: (evidence: OmpRpcSpawnEvidence) => Promise<void>;
|
|
28
|
-
readonly onEvent: (event: OutputEvent) => Promise<void>;
|
|
29
|
-
readonly onSession: (evidence: OmpRpcSessionEvidence) => Promise<void>;
|
|
30
|
-
}
|
|
31
|
-
export interface OmpRpcTaskResult {
|
|
32
|
-
readonly events: readonly OutputEvent[];
|
|
33
|
-
readonly text: string;
|
|
34
|
-
readonly session: OmpRpcSessionEvidence;
|
|
35
|
-
readonly stopReason: string;
|
|
36
|
-
readonly exitCode: number | null;
|
|
37
|
-
readonly signal: string | null;
|
|
38
|
-
}
|
|
39
|
-
export declare function runOmpRpcTask(request: OmpRpcTaskRequest, hooks: OmpRpcTaskHooks): Promise<OmpRpcTaskResult>;
|
|
40
|
-
//# sourceMappingURL=omp-rpc-driver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"omp-rpc-driver.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/omp-rpc-driver.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,mBAAmB,EAAE,eAAe,GAAG,cAAc,CAAC;CAChE;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AA2FD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAoe3B"}
|
|
@@ -1,519 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runOmpRpcTask = runOmpRpcTask;
|
|
4
|
-
const node_child_process_1 = require("node:child_process");
|
|
5
|
-
const env_safety_1 = require("./env-safety");
|
|
6
|
-
const omp_rpc_protocol_1 = require("./omp-rpc-protocol");
|
|
7
|
-
const omp_rpc_events_1 = require("./omp-rpc-events");
|
|
8
|
-
const omp_rpc_bounds_1 = require("./omp-rpc-bounds");
|
|
9
|
-
const json_1 = require("./json");
|
|
10
|
-
const UNKNOWN_SESSION_EVIDENCE = {
|
|
11
|
-
sessionId: null,
|
|
12
|
-
sessionFile: null,
|
|
13
|
-
selectedProvider: '',
|
|
14
|
-
selectedModel: '',
|
|
15
|
-
thinkingLevel: '',
|
|
16
|
-
};
|
|
17
|
-
// extension_ui_request method table (docs/rpc.md "Extension UI Sub-Protocol"). Zeroshot has no
|
|
18
|
-
// interactive host surface, so every method resolves to a cancelled/no-op response instead of
|
|
19
|
-
// blocking the child indefinitely.
|
|
20
|
-
const UI_RESPONDERS = {
|
|
21
|
-
confirm: (id) => ({ type: 'extension_ui_response', id, confirmed: false, cancelled: true }),
|
|
22
|
-
select: (id) => ({ type: 'extension_ui_response', id, cancelled: true }),
|
|
23
|
-
input: (id) => ({ type: 'extension_ui_response', id, cancelled: true }),
|
|
24
|
-
editor: (id) => ({ type: 'extension_ui_response', id, cancelled: true }),
|
|
25
|
-
open_url: (id) => ({ type: 'extension_ui_response', id, cancelled: true }),
|
|
26
|
-
notify: (id) => ({ type: 'extension_ui_response', id, cancelled: false }),
|
|
27
|
-
setStatus: (id) => ({ type: 'extension_ui_response', id, cancelled: false }),
|
|
28
|
-
setWidget: (id) => ({ type: 'extension_ui_response', id, cancelled: false }),
|
|
29
|
-
setTitle: (id) => ({ type: 'extension_ui_response', id, cancelled: false }),
|
|
30
|
-
set_editor_text: (id) => ({ type: 'extension_ui_response', id, cancelled: false }),
|
|
31
|
-
cancel: (id) => ({ type: 'extension_ui_response', id, cancelled: false }),
|
|
32
|
-
};
|
|
33
|
-
class OmpRpcTaskFailure extends Error {
|
|
34
|
-
stopReason;
|
|
35
|
-
constructor(stopReason, message) {
|
|
36
|
-
super(message);
|
|
37
|
-
this.name = 'OmpRpcTaskFailure';
|
|
38
|
-
this.stopReason = stopReason;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function createDriverState() {
|
|
42
|
-
return {
|
|
43
|
-
decoder: new omp_rpc_protocol_1.OmpRpcFrameDecoder(omp_rpc_protocol_1.DEFAULT_OMP_RPC_DECODER_LIMITS),
|
|
44
|
-
eventState: (0, omp_rpc_events_1.createOmpRpcEventState)(),
|
|
45
|
-
pending: new Map(),
|
|
46
|
-
lifetimeRequestIds: new Set(),
|
|
47
|
-
queuedFrames: 0,
|
|
48
|
-
events: [],
|
|
49
|
-
textParts: [],
|
|
50
|
-
stderrTail: '',
|
|
51
|
-
negotiatedV2: false,
|
|
52
|
-
readyReceived: false,
|
|
53
|
-
promptSent: false,
|
|
54
|
-
terminal: false,
|
|
55
|
-
settled: false,
|
|
56
|
-
abortStopReason: null,
|
|
57
|
-
pendingStopReason: null,
|
|
58
|
-
terminationStarted: false,
|
|
59
|
-
sessionEvidence: UNKNOWN_SESSION_EVIDENCE,
|
|
60
|
-
processExit: null,
|
|
61
|
-
chain: Promise.resolve(),
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
// eslint-disable-next-line max-lines-per-function
|
|
65
|
-
function runOmpRpcTask(request, hooks) {
|
|
66
|
-
return new Promise((resolvePromise, rejectPromise) => {
|
|
67
|
-
const { commandSpec } = request;
|
|
68
|
-
const state = createDriverState();
|
|
69
|
-
const child = (0, node_child_process_1.spawn)(commandSpec.binary, [...commandSpec.args], {
|
|
70
|
-
shell: false,
|
|
71
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
72
|
-
...(commandSpec.cwd === undefined ? {} : { cwd: commandSpec.cwd }),
|
|
73
|
-
detached: process.platform !== 'win32',
|
|
74
|
-
windowsHide: true,
|
|
75
|
-
env: { ...(0, env_safety_1.omitProcessControlEnv)(process.env), ...(0, env_safety_1.omitUnsafeProviderEnv)(commandSpec.env) },
|
|
76
|
-
});
|
|
77
|
-
// Gated on the 'spawn' event (fires only once the OS has actually created the process and
|
|
78
|
-
// assigned a real pid), not called synchronously right after spawn(): when the binary is
|
|
79
|
-
// missing, `child.pid` is still undefined at this point and the eventual 'error' event is
|
|
80
|
-
// what surfaces the failure. Synthesizing spawn evidence for a pid that was never real (e.g.
|
|
81
|
-
// a placeholder) would let ownership-based termination signal an unrelated, potentially
|
|
82
|
-
// privileged PID once that placeholder is treated as an owned process/group id. No stdin
|
|
83
|
-
// write happens before this resolves (negotiateAndPrompt awaits it), so spawn evidence stays
|
|
84
|
-
// durable before the prompt is written, and is simply never reported when spawn never
|
|
85
|
-
// succeeds.
|
|
86
|
-
const spawnHookPromise = new Promise((resolveSpawnHook) => {
|
|
87
|
-
child.once('spawn', () => {
|
|
88
|
-
const pid = child.pid;
|
|
89
|
-
// Node guarantees a defined pid once 'spawn' fires; this is a defensive narrowing only.
|
|
90
|
-
if (pid === undefined) {
|
|
91
|
-
failPermanently('spawn-hook-failed', 'Process spawned without a pid.');
|
|
92
|
-
resolveSpawnHook();
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
hooks
|
|
96
|
-
.onSpawn({
|
|
97
|
-
pid,
|
|
98
|
-
processGroupId: process.platform === 'win32' ? null : pid,
|
|
99
|
-
terminationStrategy: process.platform === 'win32' ? 'process-tree' : 'process-group',
|
|
100
|
-
})
|
|
101
|
-
.then(resolveSpawnHook, (error) => {
|
|
102
|
-
failPermanently('spawn-hook-failed', error instanceof Error ? error.message : String(error));
|
|
103
|
-
resolveSpawnHook();
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
let abortTimer;
|
|
108
|
-
let timeoutTimer;
|
|
109
|
-
function clearTimers() {
|
|
110
|
-
if (abortTimer !== undefined)
|
|
111
|
-
clearTimeout(abortTimer);
|
|
112
|
-
if (timeoutTimer !== undefined)
|
|
113
|
-
clearTimeout(timeoutTimer);
|
|
114
|
-
}
|
|
115
|
-
function deriveStopReason() {
|
|
116
|
-
const lastResult = [...state.events].reverse().find((event) => event.type === 'result');
|
|
117
|
-
if (lastResult && lastResult.type === 'result' && lastResult.success === false) {
|
|
118
|
-
return 'turn-failed';
|
|
119
|
-
}
|
|
120
|
-
return 'completed';
|
|
121
|
-
}
|
|
122
|
-
function finish(stopReason) {
|
|
123
|
-
if (state.settled)
|
|
124
|
-
return;
|
|
125
|
-
state.settled = true;
|
|
126
|
-
clearTimers();
|
|
127
|
-
resolvePromise({
|
|
128
|
-
events: state.events,
|
|
129
|
-
text: state.textParts.join(''),
|
|
130
|
-
session: { ...state.sessionEvidence, phase: 'terminal' },
|
|
131
|
-
stopReason,
|
|
132
|
-
exitCode: state.processExit?.exitCode ?? null,
|
|
133
|
-
signal: state.processExit?.signal ?? null,
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
function pushEvent(event) {
|
|
137
|
-
state.events.push(event);
|
|
138
|
-
if (event.type === 'text')
|
|
139
|
-
state.textParts.push(event.text);
|
|
140
|
-
void hooks.onEvent(event).catch(() => { });
|
|
141
|
-
}
|
|
142
|
-
// A child that exits *on a signal* leaves child.exitCode null and reports the signal name in
|
|
143
|
-
// child.signalCode instead, so exitCode alone is not a terminal check. Both must be consulted
|
|
144
|
-
// before any kill(): once the child has been reaped its pid — and therefore the negative pid
|
|
145
|
-
// captured here as a process-group id — can be reused by an unrelated process group, and
|
|
146
|
-
// signalling that group would terminate a process this driver never owned.
|
|
147
|
-
function hasExited() {
|
|
148
|
-
return child.exitCode !== null || child.signalCode !== null;
|
|
149
|
-
}
|
|
150
|
-
function terminateOwnedBoundary() {
|
|
151
|
-
if (state.terminationStarted || child.pid === undefined || hasExited())
|
|
152
|
-
return;
|
|
153
|
-
state.terminationStarted = true;
|
|
154
|
-
const pid = child.pid;
|
|
155
|
-
try {
|
|
156
|
-
if (process.platform === 'win32')
|
|
157
|
-
child.kill('SIGTERM');
|
|
158
|
-
else
|
|
159
|
-
process.kill(-pid, 'SIGTERM');
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
// Process may already be gone.
|
|
163
|
-
}
|
|
164
|
-
setTimeout(() => {
|
|
165
|
-
if (hasExited())
|
|
166
|
-
return;
|
|
167
|
-
try {
|
|
168
|
-
if (process.platform === 'win32')
|
|
169
|
-
child.kill('SIGKILL');
|
|
170
|
-
else
|
|
171
|
-
process.kill(-pid, 'SIGKILL');
|
|
172
|
-
}
|
|
173
|
-
catch {
|
|
174
|
-
// Process may already be gone.
|
|
175
|
-
}
|
|
176
|
-
}, request.exitGraceMs);
|
|
177
|
-
}
|
|
178
|
-
function failPermanently(stopReason, message) {
|
|
179
|
-
if (state.terminal)
|
|
180
|
-
return;
|
|
181
|
-
state.terminal = true;
|
|
182
|
-
state.pendingStopReason = stopReason;
|
|
183
|
-
pushEvent({ type: 'result', success: false, result: null, error: `${stopReason}: ${message}` });
|
|
184
|
-
terminateOwnedBoundary();
|
|
185
|
-
}
|
|
186
|
-
function registerLifetimeId(id) {
|
|
187
|
-
if (state.lifetimeRequestIds.has(id))
|
|
188
|
-
return true;
|
|
189
|
-
if (state.lifetimeRequestIds.size >= omp_rpc_bounds_1.MAX_LIFETIME_REQUEST_IDS)
|
|
190
|
-
return false;
|
|
191
|
-
state.lifetimeRequestIds.add(id);
|
|
192
|
-
return true;
|
|
193
|
-
}
|
|
194
|
-
function writeFrame(frame) {
|
|
195
|
-
if (child.stdin.destroyed)
|
|
196
|
-
return;
|
|
197
|
-
try {
|
|
198
|
-
child.stdin.write((0, omp_rpc_protocol_1.encodeOmpRpcCommand)(frame, omp_rpc_protocol_1.DEFAULT_OMP_RPC_DECODER_LIMITS.maxPhysicalFrameBytes));
|
|
199
|
-
}
|
|
200
|
-
catch {
|
|
201
|
-
// Stdin already closed; the close handler settles the task.
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
function sendCommand(command) {
|
|
205
|
-
const id = command.id ?? '';
|
|
206
|
-
if (!registerLifetimeId(id)) {
|
|
207
|
-
return Promise.reject(new OmpRpcTaskFailure('lifetime-request-id-exceeded', `command id "${id}" exceeds the lifetime request-id bound.`));
|
|
208
|
-
}
|
|
209
|
-
if (state.pending.size >= omp_rpc_bounds_1.MAX_PENDING_REQUESTS) {
|
|
210
|
-
return Promise.reject(new OmpRpcTaskFailure('pending-request-exceeded', 'too many concurrent outbound RPC commands are awaiting a response.'));
|
|
211
|
-
}
|
|
212
|
-
return new Promise((resolve, reject) => {
|
|
213
|
-
state.pending.set(id, { resolve, reject });
|
|
214
|
-
writeFrame(command);
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
function assertSuccessfulResponse(response, command, id) {
|
|
218
|
-
if ((0, json_1.getString)(response, 'command') !== command || (0, json_1.getString)(response, 'id') !== id) {
|
|
219
|
-
throw new OmpRpcTaskFailure('malformed-response', `Expected a ${command} response with id "${id}".`);
|
|
220
|
-
}
|
|
221
|
-
if ((0, json_1.getBoolean)(response, 'success') !== true) {
|
|
222
|
-
throw new OmpRpcTaskFailure('unsafe-config', (0, json_1.getString)(response, 'error') ?? `${command} was rejected.`);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
function handleResponse(frame) {
|
|
226
|
-
const id = (0, json_1.getOptionalString)(frame, 'id');
|
|
227
|
-
if (!id)
|
|
228
|
-
return;
|
|
229
|
-
const command = state.pending.get(id);
|
|
230
|
-
if (command === undefined)
|
|
231
|
-
return;
|
|
232
|
-
state.pending.delete(id);
|
|
233
|
-
command.resolve(frame);
|
|
234
|
-
}
|
|
235
|
-
function handleExtensionUiRequest(frame) {
|
|
236
|
-
const id = (0, json_1.getString)(frame, 'id');
|
|
237
|
-
const method = (0, json_1.getString)(frame, 'method');
|
|
238
|
-
if (id === null || method === null) {
|
|
239
|
-
throw new OmpRpcTaskFailure('malformed-extension-ui-request', 'extension_ui_request is missing id/method.');
|
|
240
|
-
}
|
|
241
|
-
if (!registerLifetimeId(id)) {
|
|
242
|
-
throw new OmpRpcTaskFailure('lifetime-request-id-exceeded', `extension_ui_request id "${id}" exceeds the lifetime request-id bound.`);
|
|
243
|
-
}
|
|
244
|
-
const responder = UI_RESPONDERS[method];
|
|
245
|
-
if (responder === undefined) {
|
|
246
|
-
throw new OmpRpcTaskFailure('unsupported-ui-method', `extension_ui_request used unsupported method "${method}".`);
|
|
247
|
-
}
|
|
248
|
-
writeFrame(responder(id));
|
|
249
|
-
}
|
|
250
|
-
function handleHostToolCall(frame) {
|
|
251
|
-
const id = (0, json_1.getString)(frame, 'id');
|
|
252
|
-
if (id === null)
|
|
253
|
-
throw new OmpRpcTaskFailure('malformed-host-tool-call', 'host_tool_call is missing id.');
|
|
254
|
-
if (!registerLifetimeId(id)) {
|
|
255
|
-
throw new OmpRpcTaskFailure('lifetime-request-id-exceeded', `host_tool_call id "${id}" exceeds the lifetime request-id bound.`);
|
|
256
|
-
}
|
|
257
|
-
writeFrame({
|
|
258
|
-
type: 'host_tool_result',
|
|
259
|
-
id,
|
|
260
|
-
isError: true,
|
|
261
|
-
result: { content: [{ type: 'text', text: 'Zeroshot declares no host tools' }] },
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
function handleHostUriRequest(frame) {
|
|
265
|
-
const id = (0, json_1.getString)(frame, 'id');
|
|
266
|
-
if (id === null)
|
|
267
|
-
throw new OmpRpcTaskFailure('malformed-host-uri-request', 'host_uri_request is missing id.');
|
|
268
|
-
if (!registerLifetimeId(id)) {
|
|
269
|
-
throw new OmpRpcTaskFailure('lifetime-request-id-exceeded', `host_uri_request id "${id}" exceeds the lifetime request-id bound.`);
|
|
270
|
-
}
|
|
271
|
-
writeFrame({ type: 'host_uri_result', id, isError: true, error: 'Zeroshot declares no host URI schemes' });
|
|
272
|
-
}
|
|
273
|
-
function handlePromptResultFrame(frame) {
|
|
274
|
-
if ((0, json_1.getString)(frame, 'id') !== 'zs-2')
|
|
275
|
-
return;
|
|
276
|
-
const agentInvoked = (0, json_1.getBoolean)(frame, 'agentInvoked') ?? false;
|
|
277
|
-
if (agentInvoked)
|
|
278
|
-
return; // agent_end is authoritative for the invoked path.
|
|
279
|
-
// Do not set state.terminal here: the enqueue() .catch() handler calls failPermanently(),
|
|
280
|
-
// which owns that transition and no-ops if it's already true (see negotiateAndPrompt()).
|
|
281
|
-
throw new OmpRpcTaskFailure('local-only-prompt', 'OMP resolved the prompt without invoking the agent (no agent turn).');
|
|
282
|
-
}
|
|
283
|
-
function handleAgentEnd() {
|
|
284
|
-
if (state.terminal)
|
|
285
|
-
return;
|
|
286
|
-
state.terminal = true;
|
|
287
|
-
state.pendingStopReason = deriveStopReason();
|
|
288
|
-
// Graceful shutdown: close stdin so OMP exits on its own (docs/rpc.md: "When stdin closes
|
|
289
|
-
// ... the process exits with code 0"). Only escalate to SIGTERM/SIGKILL if that stalls.
|
|
290
|
-
child.stdin?.end();
|
|
291
|
-
setTimeout(() => terminateOwnedBoundary(), request.exitGraceMs);
|
|
292
|
-
}
|
|
293
|
-
function emitNormalized(frame) {
|
|
294
|
-
for (const event of (0, omp_rpc_events_1.normalizeOmpRpcFrame)(frame, state.eventState))
|
|
295
|
-
pushEvent(event);
|
|
296
|
-
}
|
|
297
|
-
function dispatchReadyFrame(frame) {
|
|
298
|
-
state.readyReceived = true;
|
|
299
|
-
if (frame.type !== 'ready') {
|
|
300
|
-
throw new OmpRpcTaskFailure('unsupported-protocol', `Expected an initial ready frame, got "${frame.type}".`);
|
|
301
|
-
}
|
|
302
|
-
const supportedVersions = (0, json_1.getArray)(frame, 'supportedProtocolVersions');
|
|
303
|
-
if (!supportedVersions.includes(2)) {
|
|
304
|
-
throw new OmpRpcTaskFailure('unsupported-protocol', `OMP ready frame did not advertise protocol v2 (supportedProtocolVersions=${JSON.stringify(supportedVersions)}).`);
|
|
305
|
-
}
|
|
306
|
-
const maxFrameBytes = (0, json_1.getNumber)(frame, 'maxFrameBytes');
|
|
307
|
-
const maxReassembledFrameBytes = (0, json_1.getNumber)(frame, 'maxReassembledFrameBytes');
|
|
308
|
-
if (maxFrameBytes === null ||
|
|
309
|
-
maxFrameBytes > omp_rpc_protocol_1.DEFAULT_OMP_RPC_DECODER_LIMITS.maxPhysicalFrameBytes ||
|
|
310
|
-
maxReassembledFrameBytes === null ||
|
|
311
|
-
maxReassembledFrameBytes > omp_rpc_protocol_1.DEFAULT_OMP_RPC_DECODER_LIMITS.maxReassembledFrameBytes) {
|
|
312
|
-
throw new OmpRpcTaskFailure('unsupported-limits', `OMP ready frame advertised limits above the pinned decoder caps (maxFrameBytes=${String(maxFrameBytes)}, maxReassembledFrameBytes=${String(maxReassembledFrameBytes)}).`);
|
|
313
|
-
}
|
|
314
|
-
negotiateAndPrompt().catch((error) => {
|
|
315
|
-
if (error instanceof omp_rpc_protocol_1.OmpRpcProtocolError)
|
|
316
|
-
failPermanently(error.code, error.message);
|
|
317
|
-
else if (error instanceof OmpRpcTaskFailure)
|
|
318
|
-
failPermanently(error.stopReason, error.message);
|
|
319
|
-
else
|
|
320
|
-
failPermanently('driver-error', error instanceof Error ? error.message : String(error));
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
async function negotiateAndPrompt() {
|
|
324
|
-
// Every stdin write is ordered after onSpawn resolves (spawn evidence must be durable
|
|
325
|
-
// before the prompt is written, so a detached watcher crash after spawn is still owned).
|
|
326
|
-
await spawnHookPromise;
|
|
327
|
-
if (state.settled)
|
|
328
|
-
return;
|
|
329
|
-
const negotiateResponse = await sendCommand({ id: 'zs-1', type: 'negotiate_protocol', protocolVersion: 2 });
|
|
330
|
-
assertSuccessfulResponse(negotiateResponse, 'negotiate_protocol', 'zs-1');
|
|
331
|
-
state.negotiatedV2 = true;
|
|
332
|
-
const stateResponse = await sendCommand({ id: 'zs-state', type: 'get_state' }).catch(() => null);
|
|
333
|
-
state.sessionEvidence = sessionEvidenceFromState(stateResponse);
|
|
334
|
-
await hooks.onSession({ ...state.sessionEvidence, phase: 'ready' });
|
|
335
|
-
state.promptSent = true;
|
|
336
|
-
const ack = await sendCommand({ id: 'zs-2', type: 'prompt', message: request.prompt });
|
|
337
|
-
assertSuccessfulResponse(ack, 'prompt', 'zs-2');
|
|
338
|
-
const data = (0, json_1.getRecord)(ack, 'data');
|
|
339
|
-
const agentInvoked = data ? (0, json_1.getBoolean)(data, 'agentInvoked') : null;
|
|
340
|
-
if (agentInvoked === false) {
|
|
341
|
-
// Do not set state.terminal here: failPermanently() (invoked by this function's
|
|
342
|
-
// .catch() handler) owns that transition and no-ops if it's already true, which would
|
|
343
|
-
// skip pushEvent/terminateOwnedBoundary and hang the task forever.
|
|
344
|
-
throw new OmpRpcTaskFailure('local-only-prompt', 'OMP resolved the prompt without invoking the agent (no agent turn).');
|
|
345
|
-
}
|
|
346
|
-
// agentInvoked true or omitted: completion is driven entirely by later frame dispatch
|
|
347
|
-
// (agent_end / a delayed prompt_result), not by this function returning.
|
|
348
|
-
}
|
|
349
|
-
// Present on both the get_state response's `data` and a `session_info_update` event frame per
|
|
350
|
-
// docs/rpc.md; either may carry only a subset, so callers merge this onto prior evidence
|
|
351
|
-
// rather than replacing it wholesale.
|
|
352
|
-
function sessionFieldsFromRecord(record) {
|
|
353
|
-
const sessionId = (0, json_1.getString)(record, 'sessionId');
|
|
354
|
-
const sessionFile = (0, json_1.getString)(record, 'sessionFile');
|
|
355
|
-
return {
|
|
356
|
-
...(sessionId !== null ? { sessionId } : {}),
|
|
357
|
-
...(sessionFile !== null ? { sessionFile } : {}),
|
|
358
|
-
};
|
|
359
|
-
}
|
|
360
|
-
function sessionEvidenceFromState(stateResponse) {
|
|
361
|
-
if (stateResponse === null || (0, json_1.getBoolean)(stateResponse, 'success') !== true)
|
|
362
|
-
return UNKNOWN_SESSION_EVIDENCE;
|
|
363
|
-
const data = (0, json_1.getRecord)(stateResponse, 'data');
|
|
364
|
-
const model = data ? (0, json_1.getRecord)(data, 'model') : null;
|
|
365
|
-
return {
|
|
366
|
-
...UNKNOWN_SESSION_EVIDENCE,
|
|
367
|
-
...(data ? sessionFieldsFromRecord(data) : {}),
|
|
368
|
-
selectedProvider: (model ? (0, json_1.getString)(model, 'provider') : null) ?? '',
|
|
369
|
-
selectedModel: (model ? (0, json_1.getString)(model, 'id') : null) ?? '',
|
|
370
|
-
thinkingLevel: (data ? (0, json_1.getString)(data, 'thinkingLevel') : null) ?? '',
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
// session_info_update is a builtin slash-command side channel (docs/rpc.md) that can carry a
|
|
374
|
-
// later-observed sessionId/sessionFile than the initial get_state snapshot. Returning the
|
|
375
|
-
// hooks.onSession() promise (rather than fire-and-forget) lets a persistence failure surface
|
|
376
|
-
// through the same enqueue()/state.chain .catch() -> failPermanently() path as every other
|
|
377
|
-
// dispatch failure, instead of being silently swallowed.
|
|
378
|
-
function handleSessionInfoUpdate(frame) {
|
|
379
|
-
const updates = sessionFieldsFromRecord(frame);
|
|
380
|
-
if (Object.keys(updates).length === 0)
|
|
381
|
-
return;
|
|
382
|
-
state.sessionEvidence = { ...state.sessionEvidence, ...updates };
|
|
383
|
-
return hooks.onSession({ ...state.sessionEvidence, phase: 'ready' });
|
|
384
|
-
}
|
|
385
|
-
function dispatchFrame(frame) {
|
|
386
|
-
if (state.terminal)
|
|
387
|
-
return; // Frames after the terminal frame are dropped.
|
|
388
|
-
if (!state.readyReceived) {
|
|
389
|
-
dispatchReadyFrame(frame);
|
|
390
|
-
return;
|
|
391
|
-
}
|
|
392
|
-
(0, omp_rpc_protocol_1.assertNoPreNegotiationRpcChunk)(frame.type, state.negotiatedV2);
|
|
393
|
-
switch (frame.type) {
|
|
394
|
-
case 'response':
|
|
395
|
-
handleResponse(frame);
|
|
396
|
-
return;
|
|
397
|
-
case 'extension_ui_request':
|
|
398
|
-
handleExtensionUiRequest(frame);
|
|
399
|
-
return;
|
|
400
|
-
case 'host_tool_call':
|
|
401
|
-
handleHostToolCall(frame);
|
|
402
|
-
return;
|
|
403
|
-
case 'host_uri_request':
|
|
404
|
-
handleHostUriRequest(frame);
|
|
405
|
-
return;
|
|
406
|
-
case 'host_tool_cancel':
|
|
407
|
-
case 'host_uri_cancel':
|
|
408
|
-
return; // No long-running host operation is ever started, so nothing to cancel.
|
|
409
|
-
case 'extension_error':
|
|
410
|
-
throw new OmpRpcTaskFailure('extension-error', (0, json_1.getString)(frame, 'error') ?? 'OMP extension runner reported an error.');
|
|
411
|
-
case 'prompt_result':
|
|
412
|
-
handlePromptResultFrame(frame);
|
|
413
|
-
return;
|
|
414
|
-
case 'agent_end':
|
|
415
|
-
handleAgentEnd();
|
|
416
|
-
return;
|
|
417
|
-
case 'session_info_update':
|
|
418
|
-
return handleSessionInfoUpdate(frame);
|
|
419
|
-
default:
|
|
420
|
-
if (state.promptSent)
|
|
421
|
-
emitNormalized(frame);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
function enqueue(frame) {
|
|
425
|
-
// Bounded before anything is queued: a single stdout chunk can decode to an
|
|
426
|
-
// attacker-controlled number of frames (each individually within the decoder's per-frame
|
|
427
|
-
// caps), and dispatch is asynchronous (chained via state.chain), so without this check a
|
|
428
|
-
// burst could queue unbounded work before any of it is actually processed.
|
|
429
|
-
if (state.queuedFrames >= omp_rpc_bounds_1.MAX_PENDING_REQUESTS) {
|
|
430
|
-
failPermanently('pending-request-exceeded', `More than ${omp_rpc_bounds_1.MAX_PENDING_REQUESTS} RPC frames are queued awaiting dispatch.`);
|
|
431
|
-
return;
|
|
432
|
-
}
|
|
433
|
-
state.queuedFrames += 1;
|
|
434
|
-
state.chain = state.chain
|
|
435
|
-
.then(() => dispatchFrame(frame))
|
|
436
|
-
.catch((error) => {
|
|
437
|
-
if (error instanceof omp_rpc_protocol_1.OmpRpcProtocolError)
|
|
438
|
-
failPermanently(error.code, error.message);
|
|
439
|
-
else if (error instanceof OmpRpcTaskFailure)
|
|
440
|
-
failPermanently(error.stopReason, error.message);
|
|
441
|
-
else
|
|
442
|
-
failPermanently('driver-error', error instanceof Error ? error.message : String(error));
|
|
443
|
-
})
|
|
444
|
-
.finally(() => {
|
|
445
|
-
state.queuedFrames -= 1;
|
|
446
|
-
});
|
|
447
|
-
}
|
|
448
|
-
child.stdout?.on('data', (chunk) => {
|
|
449
|
-
let frames;
|
|
450
|
-
try {
|
|
451
|
-
frames = state.decoder.push(chunk, state.negotiatedV2);
|
|
452
|
-
}
|
|
453
|
-
catch (error) {
|
|
454
|
-
if (error instanceof omp_rpc_protocol_1.OmpRpcProtocolError)
|
|
455
|
-
failPermanently(error.code, error.message);
|
|
456
|
-
else
|
|
457
|
-
failPermanently('decoder-error', error instanceof Error ? error.message : String(error));
|
|
458
|
-
return;
|
|
459
|
-
}
|
|
460
|
-
for (const frame of frames)
|
|
461
|
-
enqueue(frame);
|
|
462
|
-
});
|
|
463
|
-
child.stderr?.on('data', (chunk) => {
|
|
464
|
-
state.stderrTail = (state.stderrTail + chunk.toString('utf8')).slice(-omp_rpc_bounds_1.MAX_STDERR_TAIL_BYTES);
|
|
465
|
-
});
|
|
466
|
-
child.once('error', (error) => {
|
|
467
|
-
if (state.settled)
|
|
468
|
-
return;
|
|
469
|
-
state.settled = true;
|
|
470
|
-
clearTimers();
|
|
471
|
-
rejectPromise(error);
|
|
472
|
-
});
|
|
473
|
-
child.once('close', (exitCode, signal) => {
|
|
474
|
-
state.processExit = { exitCode, signal: signal ?? null };
|
|
475
|
-
for (const command of state.pending.values()) {
|
|
476
|
-
command.reject(new OmpRpcTaskFailure('process-closed', 'child process ended before a response arrived.'));
|
|
477
|
-
}
|
|
478
|
-
state.pending.clear();
|
|
479
|
-
if (state.terminal) {
|
|
480
|
-
// Outcome already decided (agent_end / a permanent failure); the process has now actually
|
|
481
|
-
// exited, so resolve with the real exitCode/signal.
|
|
482
|
-
finish(state.pendingStopReason ?? deriveStopReason());
|
|
483
|
-
return;
|
|
484
|
-
}
|
|
485
|
-
state.terminal = true;
|
|
486
|
-
let detail;
|
|
487
|
-
try {
|
|
488
|
-
state.decoder.finish();
|
|
489
|
-
detail = `OMP process exited (code=${exitCode ?? 'null'}, signal=${signal ?? 'null'}) before a terminal RPC frame arrived.`;
|
|
490
|
-
}
|
|
491
|
-
catch (error) {
|
|
492
|
-
detail = error instanceof omp_rpc_protocol_1.OmpRpcProtocolError ? error.message : String(error);
|
|
493
|
-
}
|
|
494
|
-
if (state.stderrTail)
|
|
495
|
-
detail += ` stderr: ${state.stderrTail}`;
|
|
496
|
-
const stopReason = state.abortStopReason ?? 'stream-ended-before-terminal';
|
|
497
|
-
pushEvent({ type: 'result', success: false, result: null, error: `${stopReason}: ${detail}` });
|
|
498
|
-
finish(stopReason);
|
|
499
|
-
});
|
|
500
|
-
function beginAbort(stopReason) {
|
|
501
|
-
if (state.settled || state.terminal || state.abortStopReason !== null)
|
|
502
|
-
return;
|
|
503
|
-
state.abortStopReason = stopReason;
|
|
504
|
-
writeFrame({ id: 'zs-abort', type: 'abort' });
|
|
505
|
-
abortTimer = setTimeout(() => {
|
|
506
|
-
if (!state.terminal)
|
|
507
|
-
terminateOwnedBoundary();
|
|
508
|
-
}, request.abortGraceMs);
|
|
509
|
-
}
|
|
510
|
-
if (request.signal.aborted) {
|
|
511
|
-
beginAbort('cancelled');
|
|
512
|
-
}
|
|
513
|
-
else {
|
|
514
|
-
request.signal.addEventListener('abort', () => beginAbort('cancelled'), { once: true });
|
|
515
|
-
}
|
|
516
|
-
timeoutTimer = setTimeout(() => beginAbort('timeout'), request.timeoutMs);
|
|
517
|
-
});
|
|
518
|
-
}
|
|
519
|
-
//# sourceMappingURL=omp-rpc-driver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"omp-rpc-driver.js","sourceRoot":"","sources":["../../src/agent-cli-provider/omp-rpc-driver.ts"],"names":[],"mappings":";;AAuJA,sCAueC;AA9nBD,2DAA2C;AAC3C,6CAA4E;AAC5E,yDAQ4B;AAC5B,qDAAgF;AAChF,qDAI0B;AAC1B,iCAAkG;AA6ClG,MAAM,wBAAwB,GAAyC;IACrE,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;CAClB,CAAC;AAIF,+FAA+F;AAC/F,8FAA8F;AAC9F,mCAAmC;AACnC,MAAM,aAAa,GAA0C;IAC3D,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC3F,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACxE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACvE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACxE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1E,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACzE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC5E,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC5E,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC3E,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAClF,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;CAC1E,CAAC;AAEF,MAAM,iBAAkB,SAAQ,KAAK;IAC1B,UAAU,CAAS;IAE5B,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AA6BD,SAAS,iBAAiB;IACxB,OAAO;QACL,OAAO,EAAE,IAAI,qCAAkB,CAAC,iDAA8B,CAAC;QAC/D,UAAU,EAAE,IAAA,uCAAsB,GAAE;QACpC,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,IAAI;QACrB,iBAAiB,EAAE,IAAI;QACvB,kBAAkB,EAAE,KAAK;QACzB,eAAe,EAAE,wBAAwB;QACzC,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;KACzB,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,SAAgB,aAAa,CAC3B,OAA0B,EAC1B,KAAsB;IAEtB,OAAO,IAAI,OAAO,CAAmB,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;QACrE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAChC,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE;YAC7D,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;YAClE,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACtC,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,EAAE,GAAG,IAAA,kCAAqB,EAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,IAAA,kCAAqB,EAAC,WAAW,CAAC,GAAG,CAAC,EAAE;SAC1F,CAAC,CAAC;QAEH,0FAA0F;QAC1F,yFAAyF;QACzF,0FAA0F;QAC1F,6FAA6F;QAC7F,wFAAwF;QACxF,yFAAyF;QACzF,6FAA6F;QAC7F,sFAAsF;QACtF,YAAY;QACZ,MAAM,gBAAgB,GAAkB,IAAI,OAAO,CAAO,CAAC,gBAAgB,EAAE,EAAE;YAC7E,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;gBACtB,wFAAwF;gBACxF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,eAAe,CAAC,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;oBACvE,gBAAgB,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBACD,KAAK;qBACF,OAAO,CAAC;oBACP,GAAG;oBACH,cAAc,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;oBACzD,mBAAmB,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe;iBACrF,CAAC;qBACD,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAc,EAAE,EAAE;oBACzC,eAAe,CACb,mBAAmB,EACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;oBACF,gBAAgB,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,UAAsC,CAAC;QAC3C,IAAI,YAAwC,CAAC;QAE7C,SAAS,WAAW;YAClB,IAAI,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,YAAY,KAAK,SAAS;gBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC;QAED,SAAS,gBAAgB;YACvB,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACxF,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC/E,OAAO,aAAa,CAAC;YACvB,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,SAAS,MAAM,CAAC,UAAkB;YAChC,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO;YAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,WAAW,EAAE,CAAC;YACd,cAAc,CAAC;gBACb,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE;gBACxD,UAAU;gBACV,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,IAAI,IAAI;gBAC7C,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,IAAI;aAC1C,CAAC,CAAC;QACL,CAAC;QAED,SAAS,SAAS,CAAC,KAAkB;YACnC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5D,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,6FAA6F;QAC7F,8FAA8F;QAC9F,6FAA6F;QAC7F,yFAAyF;QACzF,2EAA2E;QAC3E,SAAS,SAAS;YAChB,OAAO,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QAC9D,CAAC;QAED,SAAS,sBAAsB;YAC7B,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,SAAS,EAAE;gBAAE,OAAO;YAC/E,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACtB,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;oBACnD,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;YACD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,SAAS,EAAE;oBAAE,OAAO;gBACxB,IAAI,CAAC;oBACH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;wBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;wBACnD,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACrC,CAAC;gBAAC,MAAM,CAAC;oBACP,+BAA+B;gBACjC,CAAC;YACH,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1B,CAAC;QAED,SAAS,eAAe,CAAC,UAAkB,EAAE,OAAe;YAC1D,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO;YAC3B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAAC;YACrC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,KAAK,OAAO,EAAE,EAAE,CAAC,CAAC;YAChG,sBAAsB,EAAE,CAAC;QAC3B,CAAC;QAED,SAAS,kBAAkB,CAAC,EAAU;YACpC,IAAI,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClD,IAAI,KAAK,CAAC,kBAAkB,CAAC,IAAI,IAAI,yCAAwB;gBAAE,OAAO,KAAK,CAAC;YAC5E,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,UAAU,CAAC,KAAoB;YACtC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS;gBAAE,OAAO;YAClC,IAAI,CAAC;gBACH,KAAK,CAAC,KAAK,CAAC,KAAK,CACf,IAAA,sCAAmB,EAAC,KAAK,EAAE,iDAA8B,CAAC,qBAAqB,CAAC,CACjF,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,4DAA4D;YAC9D,CAAC;QACH,CAAC;QAED,SAAS,WAAW,CAAC,OAAsB;YACzC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,iBAAiB,CAAC,8BAA8B,EAAE,eAAe,EAAE,0CAA0C,CAAC,CACnH,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,qCAAoB,EAAE,CAAC;gBAC/C,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,oEAAoE,CAAC,CACxH,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC9D,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC3C,UAAU,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,SAAS,wBAAwB,CAAC,QAAiC,EAAE,OAAe,EAAE,EAAU;YAC9F,IAAI,IAAA,gBAAS,EAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,OAAO,IAAI,IAAA,gBAAS,EAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnF,MAAM,IAAI,iBAAiB,CAAC,oBAAoB,EAAE,cAAc,OAAO,sBAAsB,EAAE,IAAI,CAAC,CAAC;YACvG,CAAC;YACD,IAAI,IAAA,iBAAU,EAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7C,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,IAAA,gBAAS,EAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,gBAAgB,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;QAED,SAAS,cAAc,CAAC,KAAyB;YAC/C,MAAM,EAAE,GAAG,IAAA,wBAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE;gBAAE,OAAO;YAChB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,SAAS,wBAAwB,CAAC,KAAyB;YACzD,MAAM,EAAE,GAAG,IAAA,gBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,iBAAiB,CAAC,gCAAgC,EAAE,4CAA4C,CAAC,CAAC;YAC9G,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,EAC9B,4BAA4B,EAAE,0CAA0C,CACzE,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,iDAAiD,MAAM,IAAI,CAAC,CAAC;YACpH,CAAC;YACD,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,SAAS,kBAAkB,CAAC,KAAyB;YACnD,MAAM,EAAE,GAAG,IAAA,gBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,EAAE,KAAK,IAAI;gBAAE,MAAM,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,CAAC;YAC1G,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,EAC9B,sBAAsB,EAAE,0CAA0C,CACnE,CAAC;YACJ,CAAC;YACD,UAAU,CAAC;gBACT,IAAI,EAAE,kBAAkB;gBACxB,EAAE;gBACF,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,EAAE;aACjF,CAAC,CAAC;QACL,CAAC;QAED,SAAS,oBAAoB,CAAC,KAAyB;YACrD,MAAM,EAAE,GAAG,IAAA,gBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,EAAE,KAAK,IAAI;gBAAE,MAAM,IAAI,iBAAiB,CAAC,4BAA4B,EAAE,iCAAiC,CAAC,CAAC;YAC9G,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,EAC9B,wBAAwB,EAAE,0CAA0C,CACrE,CAAC;YACJ,CAAC;YACD,UAAU,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC,CAAC;QAC7G,CAAC;QAED,SAAS,uBAAuB,CAAC,KAAyB;YACxD,IAAI,IAAA,gBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,MAAM;gBAAE,OAAO;YAC9C,MAAM,YAAY,GAAG,IAAA,iBAAU,EAAC,KAAK,EAAE,cAAc,CAAC,IAAI,KAAK,CAAC;YAChE,IAAI,YAAY;gBAAE,OAAO,CAAC,mDAAmD;YAC7E,0FAA0F;YAC1F,yFAAyF;YACzF,MAAM,IAAI,iBAAiB,CACzB,mBAAmB,EACnB,qEAAqE,CACtE,CAAC;QACJ,CAAC;QAED,SAAS,cAAc;YACrB,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO;YAC3B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,KAAK,CAAC,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;YAC7C,0FAA0F;YAC1F,wFAAwF;YACxF,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YACnB,UAAU,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAClE,CAAC;QAED,SAAS,cAAc,CAAC,KAAyB;YAC/C,KAAK,MAAM,KAAK,IAAI,IAAA,qCAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;gBAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACtF,CAAC;QAED,SAAS,kBAAkB,CAAC,KAAyB;YACnD,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,EAAE,yCAAyC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YAC/G,CAAC;YACD,MAAM,iBAAiB,GAAG,IAAA,eAAQ,EAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;YACvE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,iBAAiB,CACzB,sBAAsB,EACtB,4EAA4E,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAClH,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GAAG,IAAA,gBAAS,EAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YACxD,MAAM,wBAAwB,GAAG,IAAA,gBAAS,EAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;YAC9E,IACE,aAAa,KAAK,IAAI;gBACtB,aAAa,GAAG,iDAA8B,CAAC,qBAAqB;gBACpE,wBAAwB,KAAK,IAAI;gBACjC,wBAAwB,GAAG,iDAA8B,CAAC,wBAAwB,EAClF,CAAC;gBACD,MAAM,IAAI,iBAAiB,CACzB,oBAAoB,EACpB,kFAAkF,MAAM,CAAC,aAAa,CAAC,8BAA8B,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAC1K,CAAC;YACJ,CAAC;YACD,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAC5C,IAAI,KAAK,YAAY,sCAAmB;oBAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;qBAChF,IAAI,KAAK,YAAY,iBAAiB;oBAAE,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;;oBACzF,eAAe,CAAC,cAAc,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/F,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,UAAU,kBAAkB;YAC/B,sFAAsF;YACtF,yFAAyF;YACzF,MAAM,gBAAgB,CAAC;YACvB,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO;YAC1B,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5G,wBAAwB,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;YAC1E,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;YAE1B,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACjG,KAAK,CAAC,eAAe,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAEpE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACvF,wBAAwB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;gBAC3B,gFAAgF;gBAChF,sFAAsF;gBACtF,mEAAmE;gBACnE,MAAM,IAAI,iBAAiB,CACzB,mBAAmB,EACnB,qEAAqE,CACtE,CAAC;YACJ,CAAC;YACD,sFAAsF;YACtF,yEAAyE;QAC3E,CAAC;QAED,8FAA8F;QAC9F,yFAAyF;QACzF,sCAAsC;QACtC,SAAS,uBAAuB,CAC9B,MAA+B;YAE/B,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YACrD,OAAO;gBACL,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,CAAC;QACJ,CAAC;QAED,SAAS,wBAAwB,CAC/B,aAA6C;YAE7C,IAAI,aAAa,KAAK,IAAI,IAAI,IAAA,iBAAU,EAAC,aAAa,EAAE,SAAS,CAAC,KAAK,IAAI;gBAAE,OAAO,wBAAwB,CAAC;YAC7G,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAS,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrD,OAAO;gBACL,GAAG,wBAAwB;gBAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAS,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;gBACrE,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAS,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC5D,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAS,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;aACtE,CAAC;QACJ,CAAC;QAED,6FAA6F;QAC7F,0FAA0F;QAC1F,6FAA6F;QAC7F,2FAA2F;QAC3F,yDAAyD;QACzD,SAAS,uBAAuB,CAAC,KAAyB;YACxD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC9C,KAAK,CAAC,eAAe,GAAG,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,SAAS,aAAa,CAAC,KAAyB;YAC9C,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO,CAAC,+CAA+C;YAC3E,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBACzB,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;YACD,IAAA,iDAA8B,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAC/D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,UAAU;oBACb,cAAc,CAAC,KAAK,CAAC,CAAC;oBACtB,OAAO;gBACT,KAAK,sBAAsB;oBACzB,wBAAwB,CAAC,KAAK,CAAC,CAAC;oBAChC,OAAO;gBACT,KAAK,gBAAgB;oBACnB,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBAC1B,OAAO;gBACT,KAAK,kBAAkB;oBACrB,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBAC5B,OAAO;gBACT,KAAK,kBAAkB,CAAC;gBACxB,KAAK,iBAAiB;oBACpB,OAAO,CAAC,wEAAwE;gBAClF,KAAK,iBAAiB;oBACpB,MAAM,IAAI,iBAAiB,CACzB,iBAAiB,EACjB,IAAA,gBAAS,EAAC,KAAK,EAAE,OAAO,CAAC,IAAI,yCAAyC,CACvE,CAAC;gBACJ,KAAK,eAAe;oBAClB,uBAAuB,CAAC,KAAK,CAAC,CAAC;oBAC/B,OAAO;gBACT,KAAK,WAAW;oBACd,cAAc,EAAE,CAAC;oBACjB,OAAO;gBACT,KAAK,qBAAqB;oBACxB,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;gBACxC;oBACE,IAAI,KAAK,CAAC,UAAU;wBAAE,cAAc,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,SAAS,OAAO,CAAC,KAAyB;YACxC,4EAA4E;YAC5E,yFAAyF;YACzF,yFAAyF;YACzF,2EAA2E;YAC3E,IAAI,KAAK,CAAC,YAAY,IAAI,qCAAoB,EAAE,CAAC;gBAC/C,eAAe,CACb,0BAA0B,EAC1B,aAAa,qCAAoB,2CAA2C,CAC7E,CAAC;gBACF,OAAO;YACT,CAAC;YACD,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YACxB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;iBACtB,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACxB,IAAI,KAAK,YAAY,sCAAmB;oBAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;qBAChF,IAAI,KAAK,YAAY,iBAAiB;oBAAE,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;;oBACzF,eAAe,CAAC,cAAc,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/F,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC;QAED,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,IAAI,MAAqC,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,sCAAmB;oBAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;;oBAChF,eAAe,CAAC,eAAe,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9F,OAAO;YACT,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,MAAM;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACzC,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sCAAqB,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5B,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO;YAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,WAAW,EAAE,CAAC;YACd,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YACvC,KAAK,CAAC,WAAW,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;YACzD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7C,OAAO,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,gDAAgD,CAAC,CAAC,CAAC;YAC5G,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,0FAA0F;gBAC1F,oDAAoD;gBACpD,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,gBAAgB,EAAE,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,IAAI,MAAc,CAAC;YACnB,IAAI,CAAC;gBACH,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,GAAG,4BAA4B,QAAQ,IAAI,MAAM,YAAY,MAAM,IAAI,MAAM,wCAAwC,CAAC;YAC9H,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,KAAK,YAAY,sCAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,KAAK,CAAC,UAAU;gBAAE,MAAM,IAAI,YAAY,KAAK,CAAC,UAAU,EAAE,CAAC;YAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,IAAI,8BAA8B,CAAC;YAC3E,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/F,MAAM,CAAC,UAAU,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,SAAS,UAAU,CAAC,UAAkB;YACpC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI;gBAAE,OAAO;YAC9E,KAAK,CAAC,eAAe,GAAG,UAAU,CAAC;YACnC,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAAE,sBAAsB,EAAE,CAAC;YAChD,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3B,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { type OmpRpcInboundFrame } from './omp-rpc-protocol';
|
|
2
|
-
import type { OutputEvent, ProviderParseResult, ProviderParserState } from './types';
|
|
3
|
-
export interface OmpRpcEventState {
|
|
4
|
-
lastAssistantText: string;
|
|
5
|
-
lastAssistantThinking: string;
|
|
6
|
-
lastToolId: string | null | undefined;
|
|
7
|
-
normalizedBytes: number;
|
|
8
|
-
}
|
|
9
|
-
export declare function createOmpRpcEventState(): OmpRpcEventState;
|
|
10
|
-
/**
|
|
11
|
-
* Normalize one decoded OMP RPC v2 event frame into zero or more OutputEvents. Only the frame
|
|
12
|
-
* types below produce output; every other known-pre-negotiation frame (agent_start/agent_end,
|
|
13
|
-
* turn_start, ready, response, session_info_update, subagent_*, ...) is protocol/control plumbing
|
|
14
|
-
* the driver consumes directly and must never leak into log/attach/ledger output.
|
|
15
|
-
*/
|
|
16
|
-
export declare function normalizeOmpRpcFrame(frame: OmpRpcInboundFrame, state: OmpRpcEventState): readonly OutputEvent[];
|
|
17
|
-
/**
|
|
18
|
-
* Parse one line of the rpc-stdio lane's already-normalized OutputEvent JSON stream (produced
|
|
19
|
-
* from `OmpRpcTaskResult.events` by `contract-invoke.ts` / `rpc-watcher.js`). This is the
|
|
20
|
-
* `ProviderAdapter.parseEvent` counterpart to `normalizeOmpRpcFrame` above: the driver normalizes
|
|
21
|
-
* raw RPC frames to OutputEvent once, and this function is a validating passthrough over that
|
|
22
|
-
* already-normalized shape so generic log/attach tooling built on `adapter.parseEvent` keeps
|
|
23
|
-
* working for the omp provider without re-deriving events from raw frames. Each case rebuilds a
|
|
24
|
-
* literal matching its OutputEvent variant instead of casting the parsed record, so an
|
|
25
|
-
* unexpectedly-shaped line fails closed (returns null) rather than passing through untyped.
|
|
26
|
-
*/
|
|
27
|
-
export declare function parseNormalizedOmpRpcEventLine(line: string, _state: ProviderParserState): ProviderParseResult;
|
|
28
|
-
//# sourceMappingURL=omp-rpc-events.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"omp-rpc-events.d.ts","sourceRoot":"","sources":["../../src/agent-cli-provider/omp-rpc-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAalF,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAErF,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,CAOzD;AAuMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,gBAAgB,GACtB,SAAS,WAAW,EAAE,CAmBxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,mBAAmB,GAC1B,mBAAmB,CA8CrB"}
|