@the-open-engine/zeroshot 6.30.2 → 6.31.1
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/cli/index.js +1 -2
- 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/cli/lib/first-run.js +0 -223
- 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,7 +1,27 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
import * as os from 'node:os';
|
|
4
|
+
import * as path from 'node:path';
|
|
5
|
+
|
|
1
6
|
import { getProviderAdapter } from './adapters';
|
|
2
7
|
import { UnsupportedProviderCapabilityError } from './errors';
|
|
3
8
|
import { normalizeGatewayBuildOptions, resolveGatewayConfiguration } from './gateway-tools';
|
|
4
9
|
import { isRecord } from './json';
|
|
10
|
+
import {
|
|
11
|
+
OMP_SDK_BACKEND_VERSION,
|
|
12
|
+
OMP_SDK_BUN_VERSION,
|
|
13
|
+
OMP_SDK_MAX_REQUEST_BYTES,
|
|
14
|
+
OMP_SDK_PROTOCOL_VERSION,
|
|
15
|
+
parseOmpSdkSidecarRequest,
|
|
16
|
+
} from './omp/sdk-protocol';
|
|
17
|
+
import type { OmpSdkExecutionContext, OmpSdkSidecarRequest } from './omp/sdk-protocol';
|
|
18
|
+
import {
|
|
19
|
+
normalizeOmpSdkSettings,
|
|
20
|
+
OMP_AUTH_BROKER_ENV_NAMES,
|
|
21
|
+
parseExactOmpModelSelector,
|
|
22
|
+
resolveOmpSdkSettings,
|
|
23
|
+
} from './omp/sdk-settings';
|
|
24
|
+
import type { ConfiguredOmpSdkSettings } from './omp/sdk-settings';
|
|
5
25
|
import {
|
|
6
26
|
getDefaultProviderId,
|
|
7
27
|
getProviderRegistryEntry,
|
|
@@ -23,6 +43,12 @@ import type {
|
|
|
23
43
|
ProviderId,
|
|
24
44
|
ResolvedGatewayBuildOptions,
|
|
25
45
|
ReasoningEffort,
|
|
46
|
+
OmpSdkContainmentRequirement,
|
|
47
|
+
OmpSdkExecutionIdentity,
|
|
48
|
+
OmpSdkSemanticIdentity,
|
|
49
|
+
PreparedEnvironmentPolicy,
|
|
50
|
+
PreparedPrivateArtifacts,
|
|
51
|
+
PreparedProviderInvoke,
|
|
26
52
|
WebSearchAttestation,
|
|
27
53
|
} from './types';
|
|
28
54
|
|
|
@@ -54,11 +80,19 @@ export interface SingleAgentProviderCommandInput {
|
|
|
54
80
|
export interface PreparedSingleAgentProviderCommand {
|
|
55
81
|
readonly adapter: ProviderAdapter;
|
|
56
82
|
readonly commandSpec: CommandSpec;
|
|
83
|
+
readonly context: string;
|
|
57
84
|
readonly options: BuildProviderCommandOptions;
|
|
58
85
|
readonly cliFeatures: CliFeatureOverrides;
|
|
59
86
|
readonly configuration: {
|
|
60
87
|
readonly webSearch: WebSearchAttestation;
|
|
61
88
|
};
|
|
89
|
+
readonly invoke: PreparedProviderInvoke;
|
|
90
|
+
readonly environmentPolicy?: PreparedEnvironmentPolicy;
|
|
91
|
+
readonly credentialNames?: readonly string[];
|
|
92
|
+
readonly privateArtifacts?: PreparedPrivateArtifacts;
|
|
93
|
+
readonly executionIdentity?: OmpSdkExecutionIdentity;
|
|
94
|
+
readonly semanticIdentity?: OmpSdkSemanticIdentity;
|
|
95
|
+
readonly containmentRequirement?: OmpSdkContainmentRequirement;
|
|
62
96
|
}
|
|
63
97
|
|
|
64
98
|
export interface RuntimeProviderProbe {
|
|
@@ -87,11 +121,20 @@ const MODEL_LEVELS: readonly ModelLevel[] = ['level1', 'level2', 'level3'];
|
|
|
87
121
|
const REASONING_EFFORTS: readonly ReasoningEffort[] = ['low', 'medium', 'high', 'xhigh', 'max'];
|
|
88
122
|
const LEGACY_ISOLATED_PROVIDER_SETTINGS_ENV = 'ZEROSHOT_ISOLATED_PROVIDER_SETTINGS_JSON';
|
|
89
123
|
const providerDetectionModule: unknown = require('../../lib/provider-detection');
|
|
124
|
+
const ompSdkRuntimeModule: unknown = require('../../scripts/omp/runtime');
|
|
90
125
|
|
|
91
126
|
const commandExistsFn = moduleFunction(providerDetectionModule, 'commandExists');
|
|
92
127
|
const getHelpOutputFn = moduleFunction(providerDetectionModule, 'getHelpOutput');
|
|
93
128
|
const getVersionOutputFn = moduleFunction(providerDetectionModule, 'getVersionOutput');
|
|
129
|
+
const resolveOmpSdkRuntimeFn = moduleFunction(ompSdkRuntimeModule, 'resolveOmpSdkRuntime');
|
|
94
130
|
|
|
131
|
+
export const resolveOmpTransport = (runtimeSettings?: Record<string, unknown>): 'sdk' | 'rpc' => {
|
|
132
|
+
const settings = runtimeSettings ?? loadRuntimeSettings();
|
|
133
|
+
const providerSettings = settings.providerSettings;
|
|
134
|
+
if (!isRecord(providerSettings)) return 'sdk';
|
|
135
|
+
const omp = providerSettings.omp;
|
|
136
|
+
return isRecord(omp) && omp.transport === 'rpc' ? 'rpc' : 'sdk';
|
|
137
|
+
};
|
|
95
138
|
export function prepareSingleAgentProviderCommand(
|
|
96
139
|
input: SingleAgentProviderCommandInput,
|
|
97
140
|
runtimeSettings?: Record<string, unknown>
|
|
@@ -100,6 +143,11 @@ export function prepareSingleAgentProviderCommand(
|
|
|
100
143
|
const baseOptions = input.options ?? {};
|
|
101
144
|
const settings = runtimeSettings ?? loadRuntimeSettings();
|
|
102
145
|
const adapter = adapterForRuntimeInput(input.provider, settings);
|
|
146
|
+
const ompTransport = adapter.id === 'omp' ? resolveOmpTransport(settings) : undefined;
|
|
147
|
+
if (ompTransport === 'sdk') {
|
|
148
|
+
const configuredOmpSettings = resolveOmpSdkSettings(settings);
|
|
149
|
+
return prepareOmpProviderCommand(input, adapter, baseOptions, configuredOmpSettings);
|
|
150
|
+
}
|
|
103
151
|
const providerSettings = runtimeProviderSettings(
|
|
104
152
|
settings,
|
|
105
153
|
adapter.id,
|
|
@@ -121,7 +169,9 @@ export function prepareSingleAgentProviderCommand(
|
|
|
121
169
|
authEnv,
|
|
122
170
|
});
|
|
123
171
|
return {
|
|
172
|
+
invoke: preparedInvokeForRegistry(adapter, options),
|
|
124
173
|
adapter,
|
|
174
|
+
context: input.context,
|
|
125
175
|
options,
|
|
126
176
|
cliFeatures,
|
|
127
177
|
configuration: {
|
|
@@ -130,6 +180,359 @@ export function prepareSingleAgentProviderCommand(
|
|
|
130
180
|
commandSpec: buildRuntimeCommand(adapter, input.context, options),
|
|
131
181
|
};
|
|
132
182
|
}
|
|
183
|
+
interface OmpSdkRuntimeAssets {
|
|
184
|
+
readonly bunExecutable: string;
|
|
185
|
+
readonly bunVersion: string;
|
|
186
|
+
readonly ompVersion: string;
|
|
187
|
+
readonly sidecarPath: string;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function prepareOmpProviderCommand(
|
|
191
|
+
input: SingleAgentProviderCommandInput,
|
|
192
|
+
adapter: ProviderAdapter,
|
|
193
|
+
baseOptions: BuildProviderCommandOptions,
|
|
194
|
+
rawOmpSettings: unknown
|
|
195
|
+
): PreparedSingleAgentProviderCommand {
|
|
196
|
+
const executionContext = ompExecutionContext(baseOptions.executionContext);
|
|
197
|
+
const normalized = normalizeOmpSdkSettings(rawOmpSettings, {
|
|
198
|
+
...(executionContext === undefined
|
|
199
|
+
? {}
|
|
200
|
+
: {
|
|
201
|
+
executionContext: executionContext === 'benchmark' ? 'docker' : executionContext,
|
|
202
|
+
}),
|
|
203
|
+
requireModelConfiguration: true,
|
|
204
|
+
});
|
|
205
|
+
if (executionContext === undefined) {
|
|
206
|
+
throw new Error(
|
|
207
|
+
'options.executionContext is required for OMP SDK preparation and must be "host", "detached", "docker", or "benchmark".'
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
if (baseOptions.resumeSessionId !== undefined || baseOptions.continueSession === true) {
|
|
211
|
+
throw new UnsupportedProviderCapabilityError(
|
|
212
|
+
'omp',
|
|
213
|
+
'sessionResume',
|
|
214
|
+
'OMP SDK structured runs are always fresh; resume and continue are not supported.'
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
if (baseOptions.structuredOutputRecovery === true) {
|
|
218
|
+
throw new UnsupportedProviderCapabilityError(
|
|
219
|
+
'omp',
|
|
220
|
+
'structuredOutputRecovery',
|
|
221
|
+
'OMP SDK strict output is produced by the original coding turn and cannot run a recovery turn.'
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
if (baseOptions.mcpConfig !== undefined && baseOptions.mcpConfig.length > 0) {
|
|
225
|
+
throw new UnsupportedProviderCapabilityError(
|
|
226
|
+
'omp',
|
|
227
|
+
'mcpServers',
|
|
228
|
+
'OMP SDK preparation does not accept caller MCP configuration.'
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
if (baseOptions.webSearch === true) {
|
|
232
|
+
throw new UnsupportedProviderCapabilityError(
|
|
233
|
+
'omp',
|
|
234
|
+
'webSearch',
|
|
235
|
+
'OMP SDK preparation uses the configured closed coding-tool allowlist and does not enable web search.'
|
|
236
|
+
);
|
|
237
|
+
}
|
|
238
|
+
if (baseOptions.authEnv !== undefined && Object.keys(baseOptions.authEnv).length > 0) {
|
|
239
|
+
throw new Error(
|
|
240
|
+
'options.authEnv is not accepted for OMP SDK preparation; declare credential environment variable names in providerSettings.omp.auth.'
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const configured = normalized as Readonly<ConfiguredOmpSdkSettings>;
|
|
245
|
+
const level = baseOptions.modelSpec?.level ?? configured.defaultLevel;
|
|
246
|
+
const levelOverride = configured.levelOverrides[level];
|
|
247
|
+
const requestedModel = baseOptions.modelSpec?.model;
|
|
248
|
+
if (requestedModel === null) {
|
|
249
|
+
throw new Error('options.modelSpec.model must be an exact OMP provider/model selector.');
|
|
250
|
+
}
|
|
251
|
+
if (
|
|
252
|
+
MODEL_LEVELS.indexOf(level) < MODEL_LEVELS.indexOf(configured.minLevel) ||
|
|
253
|
+
MODEL_LEVELS.indexOf(level) > MODEL_LEVELS.indexOf(configured.maxLevel)
|
|
254
|
+
) {
|
|
255
|
+
throw new Error(
|
|
256
|
+
`options.modelSpec.level must be between providerSettings.omp.minLevel (${configured.minLevel}) and maxLevel (${configured.maxLevel}).`
|
|
257
|
+
);
|
|
258
|
+
}
|
|
259
|
+
if (requestedModel !== undefined && requestedModel !== levelOverride.model) {
|
|
260
|
+
throw new Error(
|
|
261
|
+
`options.modelSpec.model must exactly match providerSettings.omp.levelOverrides.${level}.model.`
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
const modelSelector = requestedModel ?? levelOverride.model;
|
|
265
|
+
const parsedSelector = parseExactOmpModelSelector(modelSelector);
|
|
266
|
+
const requestedReasoningEffort = baseOptions.modelSpec?.reasoningEffort;
|
|
267
|
+
if (
|
|
268
|
+
requestedReasoningEffort !== undefined &&
|
|
269
|
+
requestedReasoningEffort !== levelOverride.reasoningEffort
|
|
270
|
+
) {
|
|
271
|
+
throw new Error(
|
|
272
|
+
`options.modelSpec.reasoningEffort must exactly match providerSettings.omp.levelOverrides.${level}.reasoningEffort.`
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
const reasoningEffort = requestedReasoningEffort ?? levelOverride.reasoningEffort;
|
|
276
|
+
const output = ompSdkOutputContract(baseOptions);
|
|
277
|
+
const cwd = path.resolve(baseOptions.cwd ?? process.cwd());
|
|
278
|
+
const cliFeatures = adapter.detectCliFeatures('', '');
|
|
279
|
+
const options: BuildProviderCommandOptions = {
|
|
280
|
+
cwd,
|
|
281
|
+
executionContext,
|
|
282
|
+
modelSpec: {
|
|
283
|
+
level,
|
|
284
|
+
model: modelSelector,
|
|
285
|
+
reasoningEffort,
|
|
286
|
+
},
|
|
287
|
+
outputFormat: output.mode,
|
|
288
|
+
...(output.mode === 'json' ? { jsonSchema: output.schema } : {}),
|
|
289
|
+
strictSchema: true,
|
|
290
|
+
cliFeatures,
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
const requestInput: OmpSdkSidecarRequest =
|
|
294
|
+
output.mode === 'json'
|
|
295
|
+
? {
|
|
296
|
+
protocolVersion: OMP_SDK_PROTOCOL_VERSION,
|
|
297
|
+
runId: randomUUID(),
|
|
298
|
+
cwd,
|
|
299
|
+
executionContext,
|
|
300
|
+
prompt: input.context,
|
|
301
|
+
modelSelector,
|
|
302
|
+
reasoningEffort,
|
|
303
|
+
modelsConfig: configured.modelsConfig,
|
|
304
|
+
auth: configured.auth,
|
|
305
|
+
tools: configured.tools,
|
|
306
|
+
context: '',
|
|
307
|
+
outputMode: 'json',
|
|
308
|
+
outputSchema: output.schema,
|
|
309
|
+
}
|
|
310
|
+
: {
|
|
311
|
+
protocolVersion: OMP_SDK_PROTOCOL_VERSION,
|
|
312
|
+
runId: randomUUID(),
|
|
313
|
+
cwd,
|
|
314
|
+
executionContext,
|
|
315
|
+
prompt: input.context,
|
|
316
|
+
modelSelector,
|
|
317
|
+
reasoningEffort,
|
|
318
|
+
modelsConfig: configured.modelsConfig,
|
|
319
|
+
auth: configured.auth,
|
|
320
|
+
tools: configured.tools,
|
|
321
|
+
context: '',
|
|
322
|
+
outputMode: 'text',
|
|
323
|
+
};
|
|
324
|
+
const request = parseOmpSdkSidecarRequest(requestInput);
|
|
325
|
+
const requestText = JSON.stringify(request);
|
|
326
|
+
if (Buffer.byteLength(requestText, 'utf8') > OMP_SDK_MAX_REQUEST_BYTES) {
|
|
327
|
+
throw new Error(`OMP SDK request exceeds ${OMP_SDK_MAX_REQUEST_BYTES} bytes.`);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
const usesContainerRuntime = executionContext === 'docker' || executionContext === 'benchmark';
|
|
331
|
+
const runtime = usesContainerRuntime
|
|
332
|
+
? {
|
|
333
|
+
bunExecutable: '/opt/zeroshot/node_modules/bun/bin/bun.exe',
|
|
334
|
+
bunVersion: OMP_SDK_BUN_VERSION,
|
|
335
|
+
ompVersion: OMP_SDK_BACKEND_VERSION,
|
|
336
|
+
sidecarPath: '/opt/zeroshot/scripts/omp/sidecar.ts',
|
|
337
|
+
}
|
|
338
|
+
: ompSdkRuntimeAssets();
|
|
339
|
+
let privateRoot: string | undefined;
|
|
340
|
+
try {
|
|
341
|
+
privateRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'zeroshot-omp-sdk-request-'));
|
|
342
|
+
fs.chmodSync(privateRoot, 0o700);
|
|
343
|
+
const requestPath = path.join(privateRoot, 'request.json');
|
|
344
|
+
fs.writeFileSync(requestPath, requestText, { flag: 'wx', mode: 0o600 });
|
|
345
|
+
fs.chmodSync(requestPath, 0o600);
|
|
346
|
+
const credentialNames = ompSdkCredentialNames(configured, parsedSelector.provider);
|
|
347
|
+
const invoke = {
|
|
348
|
+
lane: 'spawn',
|
|
349
|
+
parser: 'omp-sdk-ndjson',
|
|
350
|
+
ptyEligible: false,
|
|
351
|
+
strictTerminal: true,
|
|
352
|
+
} as const;
|
|
353
|
+
return {
|
|
354
|
+
context: input.context,
|
|
355
|
+
adapter,
|
|
356
|
+
options,
|
|
357
|
+
cliFeatures,
|
|
358
|
+
configuration: {
|
|
359
|
+
webSearch: { requested: false, effective: false },
|
|
360
|
+
},
|
|
361
|
+
invoke,
|
|
362
|
+
environmentPolicy: {
|
|
363
|
+
inherit: 'minimal',
|
|
364
|
+
values: Object.freeze({}),
|
|
365
|
+
},
|
|
366
|
+
credentialNames,
|
|
367
|
+
privateArtifacts: {
|
|
368
|
+
root: privateRoot,
|
|
369
|
+
requestPath,
|
|
370
|
+
owned: true,
|
|
371
|
+
},
|
|
372
|
+
executionIdentity: {
|
|
373
|
+
backend: 'omp-sdk',
|
|
374
|
+
backendVersion: OMP_SDK_BACKEND_VERSION,
|
|
375
|
+
runtime: {
|
|
376
|
+
name: 'bun',
|
|
377
|
+
version: OMP_SDK_BUN_VERSION,
|
|
378
|
+
},
|
|
379
|
+
transport: 'sdk',
|
|
380
|
+
},
|
|
381
|
+
semanticIdentity: {
|
|
382
|
+
requestedModelSelector: modelSelector,
|
|
383
|
+
reasoningEffort,
|
|
384
|
+
provider: parsedSelector.provider,
|
|
385
|
+
},
|
|
386
|
+
containmentRequirement: {
|
|
387
|
+
mode: usesContainerRuntime ? 'container' : 'host-process-tree',
|
|
388
|
+
required: true,
|
|
389
|
+
},
|
|
390
|
+
commandSpec: {
|
|
391
|
+
binary: runtime.bunExecutable,
|
|
392
|
+
args: [runtime.sidecarPath, requestPath],
|
|
393
|
+
env: {},
|
|
394
|
+
cwd,
|
|
395
|
+
cleanup: [privateRoot],
|
|
396
|
+
cleanupMetadata: [
|
|
397
|
+
{
|
|
398
|
+
kind: 'temp-directory',
|
|
399
|
+
provider: 'omp',
|
|
400
|
+
path: privateRoot,
|
|
401
|
+
reason: 'sdk-private-root',
|
|
402
|
+
},
|
|
403
|
+
],
|
|
404
|
+
warnings: [],
|
|
405
|
+
redactions: credentialNames.map((key) => ({ kind: 'env' as const, key })),
|
|
406
|
+
invocation: {
|
|
407
|
+
lane: 'spawn',
|
|
408
|
+
pty: false,
|
|
409
|
+
protocol: 'omp-sdk-v1',
|
|
410
|
+
},
|
|
411
|
+
},
|
|
412
|
+
};
|
|
413
|
+
} catch (error) {
|
|
414
|
+
if (privateRoot !== undefined) {
|
|
415
|
+
fs.rmSync(privateRoot, { recursive: true, force: true });
|
|
416
|
+
}
|
|
417
|
+
throw error;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
function ompExecutionContext(
|
|
422
|
+
value: BuildProviderCommandOptions['executionContext']
|
|
423
|
+
): OmpSdkExecutionContext | undefined {
|
|
424
|
+
if (value === undefined) return undefined;
|
|
425
|
+
if (value === 'host' || value === 'detached' || value === 'docker' || value === 'benchmark') {
|
|
426
|
+
return value;
|
|
427
|
+
}
|
|
428
|
+
throw new Error('options.executionContext must be "host", "detached", "docker", or "benchmark".');
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
function ompSdkOutputContract(
|
|
433
|
+
options: BuildProviderCommandOptions
|
|
434
|
+
):
|
|
435
|
+
| { readonly mode: 'json'; readonly schema: boolean | Readonly<Record<string, unknown>> }
|
|
436
|
+
| { readonly mode: 'text' } {
|
|
437
|
+
const hasSchema = options.jsonSchema !== undefined && options.jsonSchema !== null;
|
|
438
|
+
if (hasSchema) {
|
|
439
|
+
if (options.outputFormat !== undefined && options.outputFormat !== 'json') {
|
|
440
|
+
throw new Error('OMP SDK caller schemas require options.outputFormat "json".');
|
|
441
|
+
}
|
|
442
|
+
if (options.strictSchema === false) {
|
|
443
|
+
throw new Error('OMP SDK caller schemas require strict schema enforcement.');
|
|
444
|
+
}
|
|
445
|
+
if (typeof options.jsonSchema !== 'boolean' && !isRecord(options.jsonSchema)) {
|
|
446
|
+
throw new Error('options.jsonSchema must be a boolean or JSON Schema object.');
|
|
447
|
+
}
|
|
448
|
+
return { mode: 'json', schema: options.jsonSchema };
|
|
449
|
+
}
|
|
450
|
+
if (options.outputFormat !== undefined && options.outputFormat !== 'text') {
|
|
451
|
+
throw new Error(
|
|
452
|
+
'OMP SDK output without a caller schema must use options.outputFormat "text" and the host-owned strict text envelope.'
|
|
453
|
+
);
|
|
454
|
+
}
|
|
455
|
+
if (options.strictSchema === false) {
|
|
456
|
+
throw new Error('OMP SDK text output always uses the host-owned strict text envelope.');
|
|
457
|
+
}
|
|
458
|
+
return { mode: 'text' };
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
function ompSdkCredentialNames(
|
|
462
|
+
settings: Readonly<ConfiguredOmpSdkSettings>,
|
|
463
|
+
provider: string
|
|
464
|
+
): readonly string[] {
|
|
465
|
+
if (settings.auth.mode === 'environment') {
|
|
466
|
+
const credential = settings.auth.credentials[provider];
|
|
467
|
+
if (credential === undefined) {
|
|
468
|
+
throw new Error(`No OMP environment credential reference is declared for ${provider}.`);
|
|
469
|
+
}
|
|
470
|
+
return Object.freeze([credential.env]);
|
|
471
|
+
}
|
|
472
|
+
if (settings.auth.mode === 'broker') {
|
|
473
|
+
return Object.freeze(
|
|
474
|
+
[OMP_AUTH_BROKER_ENV_NAMES.token, OMP_AUTH_BROKER_ENV_NAMES.url].sort((left, right) =>
|
|
475
|
+
left.localeCompare(right, 'en')
|
|
476
|
+
)
|
|
477
|
+
);
|
|
478
|
+
}
|
|
479
|
+
return Object.freeze([]);
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
function requiredStringValue(value: unknown, field: string): string {
|
|
483
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
484
|
+
throw new Error(`${field} must be a non-empty string.`);
|
|
485
|
+
}
|
|
486
|
+
return value;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
function ompSdkRuntimeAssets(): OmpSdkRuntimeAssets {
|
|
490
|
+
const value = resolveOmpSdkRuntimeFn();
|
|
491
|
+
if (!isRecord(value))
|
|
492
|
+
throw new Error('Pinned OMP SDK runtime resolver returned invalid evidence.');
|
|
493
|
+
const runtime = {
|
|
494
|
+
bunExecutable: requiredStringValue(value.bunExecutable, 'ompSdkRuntime.bunExecutable'),
|
|
495
|
+
bunVersion: requiredStringValue(value.bunVersion, 'ompSdkRuntime.bunVersion'),
|
|
496
|
+
ompVersion: requiredStringValue(value.ompVersion, 'ompSdkRuntime.ompVersion'),
|
|
497
|
+
sidecarPath: requiredStringValue(value.sidecarPath, 'ompSdkRuntime.sidecarPath'),
|
|
498
|
+
};
|
|
499
|
+
if (
|
|
500
|
+
runtime.bunVersion !== OMP_SDK_BUN_VERSION ||
|
|
501
|
+
runtime.ompVersion !== OMP_SDK_BACKEND_VERSION
|
|
502
|
+
) {
|
|
503
|
+
throw new Error('Pinned OMP SDK runtime identity does not match the sidecar protocol.');
|
|
504
|
+
}
|
|
505
|
+
return runtime;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
function preparedInvokeForRegistry(
|
|
509
|
+
adapter: ProviderAdapter,
|
|
510
|
+
options: BuildProviderCommandOptions
|
|
511
|
+
): PreparedProviderInvoke {
|
|
512
|
+
const invoke = getProviderRegistryEntry(adapter.id).invoke;
|
|
513
|
+
if (invoke.lane === 'acp-stdio') {
|
|
514
|
+
return {
|
|
515
|
+
lane: 'acp-stdio',
|
|
516
|
+
parser: 'acp',
|
|
517
|
+
ptyEligible: false,
|
|
518
|
+
strictTerminal: false,
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
if (invoke.lane === 'rpc-stdio') {
|
|
522
|
+
return {
|
|
523
|
+
lane: 'rpc-stdio',
|
|
524
|
+
parser: 'provider',
|
|
525
|
+
ptyEligible: false,
|
|
526
|
+
strictTerminal: false,
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
return {
|
|
530
|
+
lane: 'spawn',
|
|
531
|
+
parser: 'provider',
|
|
532
|
+
ptyEligible: !(adapter.id === 'claude' && Boolean(options.jsonSchema)),
|
|
533
|
+
strictTerminal: false,
|
|
534
|
+
};
|
|
535
|
+
}
|
|
133
536
|
|
|
134
537
|
function buildRuntimeCommand(
|
|
135
538
|
adapter: ProviderAdapter,
|
|
@@ -146,8 +549,7 @@ function buildRuntimeCommand(
|
|
|
146
549
|
`Provider ${adapter.id} does not advertise structured-output recovery.`
|
|
147
550
|
);
|
|
148
551
|
}
|
|
149
|
-
const recoveryAdapter = adapter as ProviderAdapter &
|
|
150
|
-
Partial<StructuredOutputRecoveryAdapter>;
|
|
552
|
+
const recoveryAdapter = adapter as ProviderAdapter & Partial<StructuredOutputRecoveryAdapter>;
|
|
151
553
|
if (typeof recoveryAdapter.buildStructuredOutputRecoveryCommand !== 'function') {
|
|
152
554
|
throw new UnsupportedProviderCapabilityError(
|
|
153
555
|
adapter.id,
|
|
@@ -194,8 +596,7 @@ function resolveRuntimeCliFeatures(
|
|
|
194
596
|
'supportsResume' in detected &&
|
|
195
597
|
detected.supportsResume === true &&
|
|
196
598
|
overrides.supportsResume !== false,
|
|
197
|
-
supportsWebSearch:
|
|
198
|
-
detected.supportsWebSearch === true && overrides.supportsWebSearch !== false,
|
|
599
|
+
supportsWebSearch: detected.supportsWebSearch === true && overrides.supportsWebSearch !== false,
|
|
199
600
|
};
|
|
200
601
|
}
|
|
201
602
|
|
|
@@ -233,9 +634,35 @@ export function probeRuntimeProviderCli(
|
|
|
233
634
|
if (adapter.id === 'gateway') {
|
|
234
635
|
return probeGatewayProvider(adapter, runtimeSettings);
|
|
235
636
|
}
|
|
236
|
-
const
|
|
237
|
-
|
|
238
|
-
|
|
637
|
+
const registryEntry = getProviderRegistryEntry(adapter.id);
|
|
638
|
+
const settings = runtimeSettings ?? loadRuntimeSettings();
|
|
639
|
+
if (adapter.id === 'omp' && resolveOmpTransport(settings) === 'sdk') {
|
|
640
|
+
const capabilities = adapter.detectCliFeatures('', '');
|
|
641
|
+
try {
|
|
642
|
+
const runtime = ompSdkRuntimeAssets();
|
|
643
|
+
return {
|
|
644
|
+
available: true,
|
|
645
|
+
helpText: 'Pinned bundled OMP SDK sidecar',
|
|
646
|
+
versionText: `omp-sdk ${runtime.ompVersion}; bun ${runtime.bunVersion}`,
|
|
647
|
+
capabilities,
|
|
648
|
+
configuration: {
|
|
649
|
+
webSearch: { requested: false, effective: false },
|
|
650
|
+
},
|
|
651
|
+
};
|
|
652
|
+
} catch {
|
|
653
|
+
return {
|
|
654
|
+
available: false,
|
|
655
|
+
helpText: '',
|
|
656
|
+
versionText: '',
|
|
657
|
+
capabilities,
|
|
658
|
+
configuration: {
|
|
659
|
+
webSearch: { requested: false, effective: false },
|
|
660
|
+
},
|
|
661
|
+
};
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
const requested = registryEntry.settingsFields.includes('webSearch')
|
|
665
|
+
? runtimeProviderSettings(settings, adapter.id, process.cwd()).webSearch === true
|
|
239
666
|
: false;
|
|
240
667
|
const helpCommand = runtimeHelpCommand(adapter.id);
|
|
241
668
|
const commandAvailable =
|
|
@@ -263,18 +690,17 @@ export function probeRuntimeProviderCli(
|
|
|
263
690
|
stringResult(
|
|
264
691
|
getVersionOutputFn(
|
|
265
692
|
helpCommand.command,
|
|
266
|
-
|
|
267
|
-
? []
|
|
268
|
-
: helpCommand.args
|
|
693
|
+
registryEntry.capabilities.webSearch === true ? [] : helpCommand.args
|
|
269
694
|
)
|
|
270
695
|
).trim();
|
|
271
|
-
const availabilityProbe = getProviderRegistryEntry(adapter.id).availabilityProbe ?? 'command';
|
|
272
696
|
const capabilities = attestedCliFeatures(adapter, helpText, versionText);
|
|
273
697
|
|
|
274
698
|
return {
|
|
275
699
|
available:
|
|
276
700
|
evidence?.available ??
|
|
277
|
-
(availabilityProbe === 'help-or-version'
|
|
701
|
+
(registryEntry.availabilityProbe === 'help-or-version'
|
|
702
|
+
? Boolean(helpText || versionText)
|
|
703
|
+
: true),
|
|
278
704
|
helpText,
|
|
279
705
|
versionText,
|
|
280
706
|
capabilities,
|
|
@@ -346,7 +772,7 @@ function resolveRuntimeGatewayOptions(
|
|
|
346
772
|
? settingsGateway.headers
|
|
347
773
|
: { ...(settingsGateway.headers ?? {}), ...requestGateway.headers };
|
|
348
774
|
const mergedGateway: GatewayBuildOptions = {
|
|
349
|
-
...(requestGateway.protocol ?? settingsGateway.protocol
|
|
775
|
+
...((requestGateway.protocol ?? settingsGateway.protocol)
|
|
350
776
|
? { protocol: requestGateway.protocol ?? settingsGateway.protocol }
|
|
351
777
|
: {}),
|
|
352
778
|
...((requestGateway.baseUrl ?? settingsGateway.baseUrl)
|
|
@@ -357,7 +783,7 @@ function resolveRuntimeGatewayOptions(
|
|
|
357
783
|
: {}),
|
|
358
784
|
...(mergedHeaders === undefined ? {} : { headers: mergedHeaders }),
|
|
359
785
|
model: requestGateway.model ?? modelSpec.model ?? settingsGateway.model ?? null,
|
|
360
|
-
...(requestGateway.maxTokens ?? settingsGateway.maxTokens
|
|
786
|
+
...((requestGateway.maxTokens ?? settingsGateway.maxTokens)
|
|
361
787
|
? { maxTokens: requestGateway.maxTokens ?? settingsGateway.maxTokens }
|
|
362
788
|
: {}),
|
|
363
789
|
...((requestGateway.toolPolicy ?? settingsGateway.toolPolicy)
|
|
@@ -521,7 +947,10 @@ function webSearchAttestation(options: {
|
|
|
521
947
|
}
|
|
522
948
|
|
|
523
949
|
function assertWebSearchDeclared(provider: ProviderId, requested: boolean | undefined): void {
|
|
524
|
-
if (
|
|
950
|
+
if (
|
|
951
|
+
requested === undefined ||
|
|
952
|
+
getProviderRegistryEntry(provider).capabilities.webSearch === true
|
|
953
|
+
) {
|
|
525
954
|
return;
|
|
526
955
|
}
|
|
527
956
|
throw new UnsupportedProviderCapabilityError(
|
|
@@ -561,7 +990,6 @@ function isUnknownFunction(value: unknown): value is UnknownFunction {
|
|
|
561
990
|
return typeof value === 'function';
|
|
562
991
|
}
|
|
563
992
|
|
|
564
|
-
|
|
565
993
|
function levelOverridesFromUnknown(value: unknown, field: string): LevelOverrides {
|
|
566
994
|
if (value === undefined) return {};
|
|
567
995
|
const record = requiredRecord(value, field);
|
|
@@ -632,7 +1060,6 @@ function optionalString(value: unknown, field: string): string | undefined {
|
|
|
632
1060
|
throw new Error(`${field} must be a string.`);
|
|
633
1061
|
}
|
|
634
1062
|
|
|
635
|
-
|
|
636
1063
|
function optionalRecord(
|
|
637
1064
|
value: unknown,
|
|
638
1065
|
field: string
|
|
@@ -657,7 +1084,6 @@ function stringRecordFromUnknown(value: unknown, field: string): Readonly<Record
|
|
|
657
1084
|
return result;
|
|
658
1085
|
}
|
|
659
1086
|
|
|
660
|
-
|
|
661
1087
|
function stringResult(value: unknown): string {
|
|
662
1088
|
if (typeof value === 'string') return value;
|
|
663
1089
|
throw new Error('Provider help output must be a string.');
|