# Test-only composition: the SDK subagent backend on the real Loader/app path.
# The scripted model delegates once; the child — a COMPLETE second harness
# runtime speaking stdio JSON-RPC — echoes its process cwd, so parent-session
# cwd inheritance is asserted keylessly end to end across the SDK wire.
# `cwd` is deliberately omitted — the inheritance branch under test. The child
# launch is machine-absolute, so the driving e2e supplies it via
# DSH_TEST_CHILD_COMMAND / DSH_TEST_CHILD_ARGS / DSH_TEST_CHILD_ENV (resolved
# through the shared example-launch resolver, per testing policy).
- id: mock-llm
  name: './mock-delegating-llm.ts'

- id: subagent
  name: '@deepseek-ai/dsh-subagent'

# providerName is omitted: the composition exercises the shipped default
# (`dsh-sdk`) through the real Loader.
- id: subagent-dsh-sdk
  name: '@deepseek-ai/dsh-subagent-dsh-sdk'
  config:
    command: !!js process.env.DSH_TEST_CHILD_COMMAND
    args: !!js JSON.parse(process.env.DSH_TEST_CHILD_ARGS ?? '[]')
    provider: mock
    model: mock-echo
    env: !!js JSON.parse(process.env.DSH_TEST_CHILD_ENV ?? '{}')

- id: tool-subagent
  name: '@deepseek-ai/dsh-tool-subagent'
  config:
    provider: dsh-sdk
    toolName: subagent
    # The SDK backend advertises no depthLimit: the child harness owns its own
    # recursion budget, so the local numeric default cannot apply here.
    maxDepth: 'provider-managed'

- id: cli-agent
  name: '@deepseek-ai/dsh-cli-demo'
  config:
    provider: mock
    model: mock-delegate
    persona: 'Test SDK subagent cwd inheritance.'
    persistenceRoot: './.sessions'
    persistenceCompression: 'none'
    workspaceContext: false
