mirror of
https://github.com/simstudioai/sim.git
synced 2026-04-06 03:00:16 -04:00
Edit subagents
This commit is contained in:
@@ -329,6 +329,7 @@ export async function applySseEvent(
|
||||
const startData = asRecord(data.data)
|
||||
const toolCallId = startData.tool_call_id as string | undefined
|
||||
if (toolCallId) {
|
||||
context.subAgentParentStack.push(toolCallId)
|
||||
context.subAgentParentToolCallId = toolCallId
|
||||
const { toolCallsById } = get()
|
||||
const parentToolCall = toolCallsById[toolCallId]
|
||||
@@ -343,6 +344,7 @@ export async function applySseEvent(
|
||||
logger.info('[SSE] Subagent session started', {
|
||||
subagent: data.subagent,
|
||||
parentToolCallId: toolCallId,
|
||||
depth: context.subAgentParentStack.length,
|
||||
})
|
||||
}
|
||||
return true
|
||||
@@ -371,7 +373,11 @@ export async function applySseEvent(
|
||||
})
|
||||
}
|
||||
}
|
||||
context.subAgentParentToolCallId = undefined
|
||||
context.subAgentParentStack.pop()
|
||||
context.subAgentParentToolCallId =
|
||||
context.subAgentParentStack.length > 0
|
||||
? context.subAgentParentStack[context.subAgentParentStack.length - 1]
|
||||
: undefined
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ export interface StreamingContext {
|
||||
wasAborted?: boolean
|
||||
suppressContinueOption?: boolean
|
||||
subAgentParentToolCallId?: string
|
||||
subAgentParentStack: string[]
|
||||
subAgentContent: Record<string, string>
|
||||
subAgentToolCalls: Record<string, CopilotToolCall[]>
|
||||
subAgentBlocks: Record<string, SubAgentContentBlock[]>
|
||||
|
||||
@@ -37,6 +37,7 @@ describe('sse-handlers tool lifecycle', () => {
|
||||
currentThinkingBlock: null,
|
||||
isInThinkingBlock: false,
|
||||
subAgentParentToolCallId: undefined,
|
||||
subAgentParentStack: [],
|
||||
subAgentContent: {},
|
||||
subAgentToolCalls: {},
|
||||
pendingContent: '',
|
||||
|
||||
@@ -45,6 +45,7 @@ export function createStreamingContext(overrides?: Partial<StreamingContext>): S
|
||||
currentThinkingBlock: null,
|
||||
isInThinkingBlock: false,
|
||||
subAgentParentToolCallId: undefined,
|
||||
subAgentParentStack: [],
|
||||
subAgentContent: {},
|
||||
subAgentToolCalls: {},
|
||||
pendingContent: '',
|
||||
@@ -125,11 +126,12 @@ export async function runStreamLoop(
|
||||
continue
|
||||
}
|
||||
|
||||
// Standard subagent start/end handling.
|
||||
// Standard subagent start/end handling (stack-based for nested agents).
|
||||
if (normalizedEvent.type === 'subagent_start') {
|
||||
const eventData = normalizedEvent.data as Record<string, unknown> | undefined
|
||||
const toolCallId = eventData?.tool_call_id as string | undefined
|
||||
if (toolCallId) {
|
||||
context.subAgentParentStack.push(toolCallId)
|
||||
context.subAgentParentToolCallId = toolCallId
|
||||
context.subAgentContent[toolCallId] = ''
|
||||
context.subAgentToolCalls[toolCallId] = []
|
||||
@@ -138,7 +140,11 @@ export async function runStreamLoop(
|
||||
}
|
||||
|
||||
if (normalizedEvent.type === 'subagent_end') {
|
||||
context.subAgentParentToolCallId = undefined
|
||||
context.subAgentParentStack.pop()
|
||||
context.subAgentParentToolCallId =
|
||||
context.subAgentParentStack.length > 0
|
||||
? context.subAgentParentStack[context.subAgentParentStack.length - 1]
|
||||
: undefined
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
@@ -76,6 +76,7 @@ export interface StreamingContext {
|
||||
currentThinkingBlock: ContentBlock | null
|
||||
isInThinkingBlock: boolean
|
||||
subAgentParentToolCallId?: string
|
||||
subAgentParentStack: string[]
|
||||
subAgentContent: Record<string, string>
|
||||
subAgentToolCalls: Record<string, ToolCallState[]>
|
||||
pendingContent: string
|
||||
|
||||
@@ -233,6 +233,7 @@ function createClientStreamingContext(messageId: string): ClientStreamingContext
|
||||
designWorkflowContent: '',
|
||||
pendingContent: '',
|
||||
doneEventCount: 0,
|
||||
subAgentParentStack: [],
|
||||
subAgentContent: {},
|
||||
subAgentToolCalls: {},
|
||||
subAgentBlocks: {},
|
||||
|
||||
Reference in New Issue
Block a user