test(subagent): narrow named instance evidence
This commit is contained in:
parent
a89f72841a
commit
cf16ee41bf
7 changed files with 66 additions and 106 deletions
|
|
@ -18,59 +18,47 @@
|
|||
models:
|
||||
- id: deepseek-v4-flash
|
||||
- id: deepseek-v4-pro
|
||||
- id: subagent-codex-safe
|
||||
- id: subagent-codex-primary
|
||||
name: '@deepseek-ai/dsh-subagent-codex'
|
||||
config:
|
||||
providerName: codex-safe
|
||||
permissionMode: never
|
||||
env:
|
||||
DSH_CODEX_INSTANCE: safe
|
||||
- id: subagent-codex-bypass
|
||||
providerName: codex-primary
|
||||
- id: subagent-codex-secondary
|
||||
name: '@deepseek-ai/dsh-subagent-codex'
|
||||
config:
|
||||
providerName: codex-bypass
|
||||
permissionMode: dangerously-bypass-approvals-and-sandbox
|
||||
env:
|
||||
DSH_CODEX_INSTANCE: bypass
|
||||
- id: subagent-claude-safe
|
||||
providerName: codex-secondary
|
||||
- id: subagent-claude-primary
|
||||
name: '@deepseek-ai/dsh-subagent-claude-code'
|
||||
config:
|
||||
providerName: claude-safe
|
||||
permissionMode: dontAsk
|
||||
env:
|
||||
DSH_CLAUDE_INSTANCE: safe
|
||||
- id: subagent-claude-bypass
|
||||
providerName: claude-primary
|
||||
- id: subagent-claude-secondary
|
||||
name: '@deepseek-ai/dsh-subagent-claude-code'
|
||||
config:
|
||||
providerName: claude-bypass
|
||||
permissionMode: bypassPermissions
|
||||
env:
|
||||
DSH_CLAUDE_INSTANCE: bypass
|
||||
- id: tool-subagent-codex-safe
|
||||
providerName: claude-secondary
|
||||
- id: tool-subagent-codex-primary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: codex-safe
|
||||
toolName: subagent_codex_safe
|
||||
provider: codex-primary
|
||||
toolName: subagent_codex_primary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
- id: tool-subagent-codex-bypass
|
||||
- id: tool-subagent-codex-secondary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: codex-bypass
|
||||
toolName: subagent_codex_bypass
|
||||
provider: codex-secondary
|
||||
toolName: subagent_codex_secondary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
- id: tool-subagent-claude-safe
|
||||
- id: tool-subagent-claude-primary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: claude-safe
|
||||
toolName: subagent_claude_safe
|
||||
provider: claude-primary
|
||||
toolName: subagent_claude_primary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
- id: tool-subagent-claude-bypass
|
||||
- id: tool-subagent-claude-secondary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: claude-bypass
|
||||
toolName: subagent_claude_bypass
|
||||
provider: claude-secondary
|
||||
toolName: subagent_claude_secondary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
|
|
|
|||
|
|
@ -7,59 +7,47 @@
|
|||
path: ./cordis.yml
|
||||
patches:
|
||||
- insert:
|
||||
- id: subagent-codex-safe
|
||||
- id: subagent-codex-primary
|
||||
name: '@deepseek-ai/dsh-subagent-codex'
|
||||
config:
|
||||
providerName: codex-safe
|
||||
permissionMode: never
|
||||
env:
|
||||
DSH_CODEX_INSTANCE: safe
|
||||
- id: subagent-codex-bypass
|
||||
providerName: codex-primary
|
||||
- id: subagent-codex-secondary
|
||||
name: '@deepseek-ai/dsh-subagent-codex'
|
||||
config:
|
||||
providerName: codex-bypass
|
||||
permissionMode: dangerously-bypass-approvals-and-sandbox
|
||||
env:
|
||||
DSH_CODEX_INSTANCE: bypass
|
||||
- id: subagent-claude-safe
|
||||
providerName: codex-secondary
|
||||
- id: subagent-claude-primary
|
||||
name: '@deepseek-ai/dsh-subagent-claude-code'
|
||||
config:
|
||||
providerName: claude-safe
|
||||
permissionMode: dontAsk
|
||||
env:
|
||||
DSH_CLAUDE_INSTANCE: safe
|
||||
- id: subagent-claude-bypass
|
||||
providerName: claude-primary
|
||||
- id: subagent-claude-secondary
|
||||
name: '@deepseek-ai/dsh-subagent-claude-code'
|
||||
config:
|
||||
providerName: claude-bypass
|
||||
permissionMode: bypassPermissions
|
||||
env:
|
||||
DSH_CLAUDE_INSTANCE: bypass
|
||||
- id: tool-subagent-codex-safe
|
||||
providerName: claude-secondary
|
||||
- id: tool-subagent-codex-primary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: codex-safe
|
||||
toolName: subagent_codex_safe
|
||||
provider: codex-primary
|
||||
toolName: subagent_codex_primary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
- id: tool-subagent-codex-bypass
|
||||
- id: tool-subagent-codex-secondary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: codex-bypass
|
||||
toolName: subagent_codex_bypass
|
||||
provider: codex-secondary
|
||||
toolName: subagent_codex_secondary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
- id: tool-subagent-claude-safe
|
||||
- id: tool-subagent-claude-primary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: claude-safe
|
||||
toolName: subagent_claude_safe
|
||||
provider: claude-primary
|
||||
toolName: subagent_claude_primary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
- id: tool-subagent-claude-bypass
|
||||
- id: tool-subagent-claude-secondary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: claude-bypass
|
||||
toolName: subagent_claude_bypass
|
||||
provider: claude-secondary
|
||||
toolName: subagent_claude_secondary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
|
|
|
|||
|
|
@ -18,31 +18,25 @@
|
|||
models:
|
||||
- id: deepseek-v4-flash
|
||||
- id: deepseek-v4-pro
|
||||
- id: subagent-codex-safe
|
||||
- id: subagent-codex-primary
|
||||
name: '@deepseek-ai/dsh-subagent-codex'
|
||||
config:
|
||||
providerName: codex-safe
|
||||
permissionMode: never
|
||||
env:
|
||||
DSH_CODEX_INSTANCE: safe
|
||||
- id: subagent-codex-bypass
|
||||
providerName: codex-primary
|
||||
- id: subagent-codex-secondary
|
||||
name: '@deepseek-ai/dsh-subagent-codex'
|
||||
config:
|
||||
providerName: codex-bypass
|
||||
permissionMode: dangerously-bypass-approvals-and-sandbox
|
||||
env:
|
||||
DSH_CODEX_INSTANCE: bypass
|
||||
- id: tool-subagent-codex-safe
|
||||
providerName: codex-secondary
|
||||
- id: tool-subagent-codex-primary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: codex-safe
|
||||
toolName: subagent_codex_safe
|
||||
provider: codex-primary
|
||||
toolName: subagent_codex_primary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
- id: tool-subagent-codex-bypass
|
||||
- id: tool-subagent-codex-secondary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: codex-bypass
|
||||
toolName: subagent_codex_bypass
|
||||
provider: codex-secondary
|
||||
toolName: subagent_codex_secondary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
|
|
|
|||
|
|
@ -7,31 +7,25 @@
|
|||
path: ./cordis.yml
|
||||
patches:
|
||||
- insert:
|
||||
- id: subagent-codex-safe
|
||||
- id: subagent-codex-primary
|
||||
name: '@deepseek-ai/dsh-subagent-codex'
|
||||
config:
|
||||
providerName: codex-safe
|
||||
permissionMode: never
|
||||
env:
|
||||
DSH_CODEX_INSTANCE: safe
|
||||
- id: subagent-codex-bypass
|
||||
providerName: codex-primary
|
||||
- id: subagent-codex-secondary
|
||||
name: '@deepseek-ai/dsh-subagent-codex'
|
||||
config:
|
||||
providerName: codex-bypass
|
||||
permissionMode: dangerously-bypass-approvals-and-sandbox
|
||||
env:
|
||||
DSH_CODEX_INSTANCE: bypass
|
||||
- id: tool-subagent-codex-safe
|
||||
providerName: codex-secondary
|
||||
- id: tool-subagent-codex-primary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: codex-safe
|
||||
toolName: subagent_codex_safe
|
||||
provider: codex-primary
|
||||
toolName: subagent_codex_primary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
- id: tool-subagent-codex-bypass
|
||||
- id: tool-subagent-codex-secondary
|
||||
name: '@deepseek-ai/dsh-tool-subagent'
|
||||
config:
|
||||
provider: codex-bypass
|
||||
toolName: subagent_codex_bypass
|
||||
provider: codex-secondary
|
||||
toolName: subagent_codex_secondary
|
||||
backgroundMode: one-shot
|
||||
maxDepth: provider-managed
|
||||
|
|
|
|||
|
|
@ -307,7 +307,7 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "subagent_claude_bypass",
|
||||
"name": "subagent_claude_primary",
|
||||
"description": "Delegate a self-contained task to a subagent (a separate agent that works in its own context) to offload focused, independent work — research, a scoped implementation, an analysis — so it does not consume this conversation's context. The subagent returns its result, not its intermediate steps. Give it a complete, standalone prompt: it does not see this conversation. This call waits for the result by default. Set `run_in_background: true` to return a job id; collect with `job_output` and stop with `job_kill`.",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
|
|
@ -332,7 +332,7 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "subagent_claude_safe",
|
||||
"name": "subagent_claude_secondary",
|
||||
"description": "Delegate a self-contained task to a subagent (a separate agent that works in its own context) to offload focused, independent work — research, a scoped implementation, an analysis — so it does not consume this conversation's context. The subagent returns its result, not its intermediate steps. Give it a complete, standalone prompt: it does not see this conversation. This call waits for the result by default. Set `run_in_background: true` to return a job id; collect with `job_output` and stop with `job_kill`.",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
|
|
@ -357,7 +357,7 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "subagent_codex_bypass",
|
||||
"name": "subagent_codex_primary",
|
||||
"description": "Delegate a self-contained task to a subagent (a separate agent that works in its own context) to offload focused, independent work — research, a scoped implementation, an analysis — so it does not consume this conversation's context. The subagent returns its result, not its intermediate steps. Give it a complete, standalone prompt: it does not see this conversation. This call waits for the result by default. Set `run_in_background: true` to return a job id; collect with `job_output` and stop with `job_kill`.",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
|
|
@ -382,7 +382,7 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "subagent_codex_safe",
|
||||
"name": "subagent_codex_secondary",
|
||||
"description": "Delegate a self-contained task to a subagent (a separate agent that works in its own context) to offload focused, independent work — research, a scoped implementation, an analysis — so it does not consume this conversation's context. The subagent returns its result, not its intermediate steps. Give it a complete, standalone prompt: it does not see this conversation. This call waits for the result by default. Set `run_in_background: true` to return a job id; collect with `job_output` and stop with `job_kill`.",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
|
|
|
|||
|
|
@ -307,7 +307,7 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "subagent_codex_bypass",
|
||||
"name": "subagent_codex_primary",
|
||||
"description": "Delegate a self-contained task to a subagent (a separate agent that works in its own context) to offload focused, independent work — research, a scoped implementation, an analysis — so it does not consume this conversation's context. The subagent returns its result, not its intermediate steps. Give it a complete, standalone prompt: it does not see this conversation. This call waits for the result by default. Set `run_in_background: true` to return a job id; collect with `job_output` and stop with `job_kill`.",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
|
|
@ -332,7 +332,7 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "subagent_codex_safe",
|
||||
"name": "subagent_codex_secondary",
|
||||
"description": "Delegate a self-contained task to a subagent (a separate agent that works in its own context) to offload focused, independent work — research, a scoped implementation, an analysis — so it does not consume this conversation's context. The subagent returns its result, not its intermediate steps. Give it a complete, standalone prompt: it does not see this conversation. This call waits for the result by default. Set `run_in_background: true` to return a job id; collect with `job_output` and stop with `job_kill`.",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ interface RealHarness {
|
|||
readonly ctx: Context
|
||||
readonly handles: SubprocessHandle[]
|
||||
readonly parent: Agent
|
||||
readonly providerName: string
|
||||
readonly env: Record<string, string>
|
||||
readonly workspace: string
|
||||
}
|
||||
|
|
@ -134,7 +133,6 @@ async function realRuntime(): Promise<RealRuntime> {
|
|||
async function realHarness(
|
||||
script: readonly ResponsesBehavior[],
|
||||
permissionMode?: CodexPermissionMode,
|
||||
providerName = 'codex',
|
||||
): Promise<{
|
||||
readonly harness: RealHarness
|
||||
readonly fixture: ResponsesFixture
|
||||
|
|
@ -142,7 +140,6 @@ async function realHarness(
|
|||
const instance = await realInstanceFixture(script)
|
||||
const { ctx, handles } = await realRuntime()
|
||||
await ctx.plugin(codex, {
|
||||
providerName,
|
||||
env: instance.env,
|
||||
...permissionMode === undefined ? {} : { permissionMode },
|
||||
disposeGraceMs: 2_000,
|
||||
|
|
@ -156,7 +153,6 @@ async function realHarness(
|
|||
ctx,
|
||||
handles,
|
||||
parent,
|
||||
providerName,
|
||||
env: instance.env,
|
||||
workspace: instance.workspace,
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue