fix(look-at): allow stable idle after sync prompt
This commit is contained in:
@@ -86,24 +86,34 @@ Original error: ${createResult.error}`
|
|||||||
log("[look_at] Prompt error (ignored, will still fetch messages):", promptError)
|
log("[look_at] Prompt error (ignored, will still fetch messages):", promptError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let observedMessages: unknown[] | undefined
|
||||||
|
let observedText: string | undefined
|
||||||
if (typeof ctx.client.session.status === "function") {
|
if (typeof ctx.client.session.status === "function") {
|
||||||
await waitForLookAtSessionResult(ctx.client, sessionID)
|
const waitResult = await waitForLookAtSessionResult(ctx.client, sessionID, {
|
||||||
|
allowStableIdleWithoutActivity: true,
|
||||||
|
})
|
||||||
|
observedText = waitResult.outcome.text ?? undefined
|
||||||
|
if (observedText) {
|
||||||
|
observedMessages = waitResult.messages
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log(`[look_at] Fetching messages from session ${sessionID}...`)
|
let messages = observedMessages
|
||||||
const messagesResult = await ctx.client.session.messages({
|
if (!messages) {
|
||||||
path: { id: sessionID },
|
log(`[look_at] Fetching messages from session ${sessionID}...`)
|
||||||
})
|
const messagesResult = await ctx.client.session.messages({
|
||||||
|
path: { id: sessionID },
|
||||||
|
})
|
||||||
|
|
||||||
if (messagesResult.error) {
|
if (messagesResult.error) {
|
||||||
log("[look_at] Messages error:", messagesResult.error)
|
log("[look_at] Messages error:", messagesResult.error)
|
||||||
return `Error: Failed to get messages: ${messagesResult.error}`
|
return `Error: Failed to get messages: ${messagesResult.error}`
|
||||||
|
}
|
||||||
|
messages = messagesResult.data
|
||||||
}
|
}
|
||||||
|
|
||||||
const messages = messagesResult.data
|
|
||||||
log(`[look_at] Got ${messages.length} messages`)
|
log(`[look_at] Got ${messages.length} messages`)
|
||||||
|
|
||||||
const responseText = extractLatestAssistantText(messages)
|
const responseText = observedText ?? extractLatestAssistantText(messages)
|
||||||
if (!responseText) {
|
if (!responseText) {
|
||||||
log("[look_at] No assistant message found")
|
log("[look_at] No assistant message found")
|
||||||
return "Error: No response from multimodal-looker agent"
|
return "Error: No response from multimodal-looker agent"
|
||||||
|
|||||||
Reference in New Issue
Block a user