This commit is contained in:
+2
-1
@@ -149,6 +149,7 @@ export type SearchRunRequest = {
|
||||
};
|
||||
|
||||
export type CompletionRequestMessage = {
|
||||
id?: string;
|
||||
role: "system" | "user" | "assistant" | "tool";
|
||||
content: string;
|
||||
name?: string;
|
||||
@@ -186,7 +187,7 @@ type CompletionResponse = {
|
||||
};
|
||||
|
||||
type CompletionStreamHandlers = {
|
||||
onMeta?: (payload: { chatId: string | null; callId: string | null; provider: Provider; model: string }) => void;
|
||||
onMeta?: (payload: { chatId: string | null; callId: string | null; provider: Provider; model: string; agentAside?: boolean }) => void;
|
||||
onToolCall?: (payload: ToolCallEvent) => void;
|
||||
onDelta?: (payload: { text: string }) => void;
|
||||
onDone?: (payload: { text: string; usage?: { inputTokens?: number; outputTokens?: number; totalTokens?: number } }) => void;
|
||||
|
||||
@@ -6,6 +6,8 @@ export type StreamingAssistantMetadata = {
|
||||
kind: typeof STREAMING_ASSISTANT_METADATA_KIND;
|
||||
ephemeralTrace: string | null;
|
||||
traceRevision: number;
|
||||
agentAside?: true;
|
||||
status?: "sending" | "complete";
|
||||
};
|
||||
|
||||
export type StreamingAttemptState = {
|
||||
@@ -39,6 +41,8 @@ export function asStreamingAssistantMetadata(value: unknown): StreamingAssistant
|
||||
typeof record.traceRevision === "number" && Number.isFinite(record.traceRevision)
|
||||
? Math.max(0, Math.floor(record.traceRevision))
|
||||
: 0,
|
||||
...(record.agentAside === true ? { agentAside: true as const } : {}),
|
||||
...(record.status === "sending" || record.status === "complete" ? { status: record.status } : {}),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -98,6 +102,7 @@ export function setStreamingAssistantSegment(messages: Message[], assistantMessa
|
||||
metadata: {
|
||||
...metadata,
|
||||
ephemeralTrace: null,
|
||||
...(metadata.agentAside ? { status: "complete" as const } : {}),
|
||||
} satisfies StreamingAssistantMetadata,
|
||||
}));
|
||||
}
|
||||
@@ -128,6 +133,14 @@ export function finalizeStreamingAssistant(messages: Message[], assistantMessage
|
||||
}));
|
||||
}
|
||||
|
||||
export function markStreamingAssistantAsAgentAside(messages: Message[], assistantMessagePrefix: string) {
|
||||
return updateStreamingAssistant(messages, assistantMessagePrefix, (message, metadata) => ({
|
||||
...message,
|
||||
name: "Sybil Agent",
|
||||
metadata: { ...metadata, agentAside: true, status: "sending" },
|
||||
}));
|
||||
}
|
||||
|
||||
export function clearStreamingAssistantTrace(messages: Message[], assistantMessagePrefix: string) {
|
||||
return updateStreamingAssistant(messages, assistantMessagePrefix, (message, metadata) => ({
|
||||
...message,
|
||||
|
||||
Reference in New Issue
Block a user