Skip to content

feat(runtime): compose createTangleProvider into createExecutor({ backend: 'provider' }) as a shipped example #1035

Description

@drewstone

What is missing

createTangleProvider builds an AgentEnvironmentProvider over Tangle Sandbox, and createExecutor({ backend: 'provider' }) consumes an AgentEnvironmentProvider as executor data. The two halves are shipped and typed, but nothing composes them. No source file in this repository imports createTangleProvider, and no example, test, or export shows a caller how to hand a Tangle provider to createExecutor. A consumer that wants a Tangle box behind the provider seam has to derive the wiring from the type signatures alone, and cannot tell which of providerAsExecutor, ProviderSeam.registry, or a bare provider string is the intended entry point. Ship the composition: one exported helper, or one example plus one test that runs a profile in a Tangle box through backend: 'provider'.

Where it lives today

Nothing in the Discovery Lab uses this path. That is the finding: the Lab runs children through createExecutor({ backend: 'sandbox' }) with a hand-wrapped SandboxClient instead, which is issue (3) in this batch. The provider seam is the intended replacement for that wrapper and it has no worked example, so the Lab never adopted it.

Where it belongs

  • agent-sdk packages/agent-provider-tangle/src/tangle-provider.ts:44export function createTangleProvider(.
  • agent-runtime src/runtime/supervise/runtime.ts:460export interface ProviderSeam extends ProviderExecutorOptions.
  • agent-runtime src/runtime/supervise/runtime.ts:4595 — the { backend: 'provider' } & ProviderSeam arm of the executor config union.
  • agent-runtime src/runtime/environment-provider.ts:378export function providerAsExecutor(, marked @experimental.

Measured motive

0 of the source files under agent-runtime/src reference createTangleProvider. The only mention anywhere in the repository is a design note, docs/research/environment-provider-adapter-spec.md:397, which says "Then implement createTangleProvider(client) that maps:" — the spec that asked for the provider, never followed by a composed example.

Acceptance

The gap closes when a test in agent-runtime builds a provider with createTangleProvider, passes it to createExecutor({ backend: 'provider', provider }), runs one AgentProfile, and asserts the settled artifact — with providerAsExecutor no longer marked @experimental, or the helper exported under a stable name.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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