Skip to content

Bind adaptive Switchyard targets and judge through OpenShell #13863

Open

Description

@cjagwani

Parent epic: #7937

Outcome

One Classic Hermes sandbox receives the OpenShell-managed provider identities required for adaptive routing: an efficient target, a capable target, and a separately identifiable judge role. Raw provider credentials stay outside the sandbox, and no Switchyard role uses inference.local.

Implementation

  • Create and attach the efficient and capable providers selected by the user’s --switchyard-config file.
  • First qualify whether the capable provider/model can also serve as the classifier judge without weakening credential isolation, accounting, or routing evidence.
  • When role reuse is not supported or accepted, require and attach the optional dedicated judge provider/model from the user input.
  • Record each physical provider’s identity, resource version, endpoint identity, model, profile identity, and credential key name.
  • Record the logical judge role separately even when it reuses the capable physical provider.
  • Generate Switchyard clients, targets, and judge references only from observed OpenShell provider state.
  • Keep API keys in the OpenShell credential store and expose only endpoint-scoped placeholders to the sandbox.
  • Set forward_auth = false for every Switchyard client.
  • Fail provider setup atomically when any required physical provider or logical role is missing, stale, duplicate, or cannot be attested.
  • Make provider removal invalidate readiness and stale routing state.
  • Support fresh provider creation in this slice; leave reuse, mutation, and credential rotation for separately scoped follow-up work.

Acceptance criteria

  • Fresh setup creates and attaches the efficient and capable target providers.
  • Preflight either proves safe judge reuse or requires a separately configured judge; it never selects a hidden default.
  • Each generated client, target, and judge reference matches observed OpenShell provider state.
  • No target or judge role uses inference.local.
  • Raw credentials remain inside the OpenShell credential boundary.
  • Partial, stale, duplicate, or unattestable provider or role state prevents routing activation.
  • Removing a required provider makes routed readiness fail instead of selecting another path.

Activity

  1. added this to the Roadmap: Q4 2026 milestone on Oct 27, 2026
  2. self-assigned this
    on Oct 27, 2026
  3. added
    area: networkingDNS, proxy, TLS, ports, host aliases, or connectivity
    area: providersInference provider integrations and provider behavior
    area: routingRequest routing, policy routing, model selection, or fallback logic
    on Oct 27, 2026
  4. changed the title [-]Bind two OpenShell inference providers for Switchyard targets[/-] [+]Bind adaptive Switchyard targets and judge through OpenShell[/+] on Oct 27, 2026
  5. added theissue type on Oct 27, 2026
  6. added
    area: securitySecurity controls, permissions, secrets, or hardening
    and removed on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area: networkingDNS, proxy, TLS, ports, host aliases, or connectivityarea: providersInference provider integrations and provider behaviorarea: routingRequest routing, policy routing, model selection, or fallback logicarea: securitySecurity controls, permissions, secrets, or hardeningintegration: hermesHermes integration behavior

Type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions