Skip to content

Temporarily gate OMP SDK defaults for explicit Bedrock routes #948

Description

@tomdps

Summary

Please temporarily gate the OMP SDK lane as opt-in (and do not select or recommend it as a default) for explicit Bedrock routes until its structured-output and route-capability failures are fixed.

This report is scoped to Zeroshot 6.31.0 (ce304c032c479ee7e33e86dc49faf5b7afc98bad) with bundled OMP 17.2.1. It does not claim that every OMP provider is broken.

Reproduction 1: strict JSON schema fails at the Zeroshot CLI -> OMP SDK boundary

  1. Configure a conductor/agent with outputFormat: "json" and an object jsonSchema.
  2. Run through provider omp with SDK transport and --strict-schema.
  3. Zeroshot serializes the schema for task run --json-schema in src/agent/agent-task-executor.js.
  4. src/agent-cli-provider/single-agent-runtime.ts::ompSdkOutputContract receives the CLI value as a string but accepts only boolean/object.

Actual result:

options.jsonSchema must be a boolean or JSON Schema object

Expected: parse and validate the serialized schema before entering the SDK request contract.

Reproduction 2: bundled Luna mapping ignores the declared Mantle route

Configuration:

model: amazon-bedrock/openai.gpt-5.6-luna
qualified route: amazon-bedrock/bedrock-mantle/us-east-1
allowed provider host: bedrock-mantle.us-east-1.api.aws
credential by name: AWS_BEARER_TOKEN_BEDROCK

OMP 17.2.1's bundled catalog maps Luna to:

api: bedrock-converse-stream
baseUrl: https://bedrock-runtime.us-east-1.amazonaws.com

The provider hard-codes:

POST /model/openai.gpt-5.6-luna/converse-stream

Direct controls, without exposing credentials:

  • Standard Bedrock Luna request: HTTP 400, The provided model identifier is invalid.
  • Account standard-Bedrock catalog: no Luna foundation model or inference profile.
  • Supported standard model with the same bearer principal: HTTP 403 because the principal lacks bedrock:CallWithBearerToken.
  • Supported standard model with the same role's SigV4 credentials: succeeds.
  • Codex 0.146.0 using the qualified Mantle route reaches the provider; its historical failure was structured-output extraction, not routing/authentication.

Expected: validate that the selected model/provider route is representable before launch, or provide an explicit Mantle transport/model override. Do not silently substitute standard Bedrock for a Mantle-qualified route.

Diagnostics problem

The OMP SDK public frame correctly remains secret-free, but currently collapses the underlying provider failure to only:

{"code":"provider-error","category":"provider","retryable":true,"redacted":true}

Please retain bounded, credential-redacted diagnostics such as HTTP status, provider error code, and endpoint class (standard-bedrock vs mantle) so 400, 403, network denial, and 5xx failures are distinguishable.

Requested temporary safety behavior

Until these are fixed:

  1. Keep OMP SDK explicitly opt-in rather than default/recommended for strict-JSON or explicit-route workloads.
  2. Fail preflight when an explicit route cannot be represented by OMP's resolved provider/model.
  3. Parse serialized caller schemas at the SDK boundary.
  4. Preserve safe provider diagnostics.

A Codex provider lane with native --output-schema is the current fallback for this workload.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions