feat(agent-presets): enable background Codex and Claude Code subagent tasks

This commit is contained in:
pku-xht
2026-08-12 17:07:34 +08:00
parent b423ed15d7
commit 28fcda2751
35 changed files with 318 additions and 102 deletions

View File

@@ -1,4 +1,4 @@
# Test-only composition of both public opt-in providers and foreground tools.
# Test-only composition of both public opt-in providers and one-shot task tools.
# The owning e2e boots this tree but never invokes a model or product process.
- id: fixture
name: './fixture.ts'
@@ -20,7 +20,7 @@
config:
provider: codex
toolName: subagent_codex
enableRunInBackground: false
backgroundMode: one-shot
maxDepth: 'provider-managed'
- id: tool-subagent-claude-code
@@ -28,7 +28,7 @@
config:
provider: claude-code
toolName: subagent_claude_code
enableRunInBackground: false
backgroundMode: one-shot
maxDepth: 'provider-managed'
- id: agent-spine

View File

@@ -53,11 +53,16 @@ try {
required: tool.parameters.required,
}
})
const taskTools = ctx.tools.schemas()
.map(schema => schema.name)
.filter(name => name === 'task_kill' || name === 'task_list' || name === 'task_output')
.sort()
process.stdout.write(`${JSON.stringify({
registeredProviders: ctx.subagents.list(),
providers,
tools,
taskTools,
starts,
})}\n`)
} finally {

View File

@@ -1,4 +1,4 @@
# Test-only composition of the public opt-in provider and foreground tool.
# Test-only composition of the public opt-in provider and one-shot task tool.
# The owning e2e boots this tree but never invokes the model or Codex.
- id: fixture
name: './fixture.ts'
@@ -17,7 +17,7 @@
config:
provider: codex
toolName: subagent_codex
enableRunInBackground: false
backgroundMode: one-shot
maxDepth: 'provider-managed'
- id: agent-spine

View File

@@ -31,6 +31,10 @@ try {
if (typeof properties !== 'object' || properties === null || Array.isArray(properties)) {
throw new Error('subagent_codex tool has invalid parameter properties')
}
const taskTools = ctx.tools.schemas()
.map(schema => schema.name)
.filter(name => name === 'task_kill' || name === 'task_list' || name === 'task_output')
.sort()
process.stdout.write(`${JSON.stringify({
providers: ctx.subagents.list(),
@@ -44,6 +48,7 @@ try {
parameterNames: Object.keys(properties).sort(),
required: tool.parameters.required,
},
taskTools,
starts,
})}\n`)
} finally {