feat: sdk subagent support

This commit is contained in:
mingholy.lmh
2025-11-25 10:03:15 +08:00
parent e1ffaec499
commit d76cdf1076
11 changed files with 705 additions and 41 deletions

View File

@@ -129,6 +129,7 @@ export class Query implements AsyncIterable<CLIMessage> {
sdkMcpServers:
sdkMcpServerNames.length > 0 ? sdkMcpServerNames : undefined,
mcpServers: this.options.mcpServers,
agents: this.options.agents,
});
} catch (error) {
console.error('[Query] Initialization error:', error);

View File

@@ -517,7 +517,7 @@ export interface SubagentConfig {
tools?: string[];
systemPrompt: string;
level: SubagentLevel;
filePath: string;
filePath?: string;
modelConfig?: Partial<ModelConfig>;
runConfig?: Partial<RunConfig>;
color?: string;

View File

@@ -31,7 +31,6 @@ export const SubagentConfigSchema = z.object({
description: z.string().min(1, 'Description must be a non-empty string'),
tools: z.array(z.string()).optional(),
systemPrompt: z.string().min(1, 'System prompt must be a non-empty string'),
filePath: z.string().min(1, 'File path must be a non-empty string'),
modelConfig: ModelConfigSchema.partial().optional(),
runConfig: RunConfigSchema.partial().optional(),
color: z.string().optional(),
@@ -71,9 +70,9 @@ export const QueryOptionsSchema = z
typeof val === 'object' &&
'name' in val &&
'description' in val &&
'systemPrompt' in val &&
'filePath' in val,
{ message: 'agents must be an array of SubagentConfig objects' },
'systemPrompt' in val && {
message: 'agents must be an array of SubagentConfig objects',
},
),
)
.optional(),