feat(codex): refine tool activity display

This commit is contained in:
weishu
2026-07-24 09:39:22 +08:00
parent dd42263aaf
commit 74ad25ec57
28 changed files with 1591 additions and 85 deletions
@@ -46,6 +46,7 @@ export type CodexMessage = {
export type CodexConversionResult = {
sessionId?: string;
turnId?: string;
messages?: CodexMessage[];
userMessage?: string;
userActivity?: true;
@@ -99,6 +100,11 @@ function extractCallId(payload: Record<string, unknown>): string | null {
return null;
}
function extractResponseItemTurnId(payload: Record<string, unknown>): string | null {
const metadata = asRecord(payload.internal_chat_message_metadata_passthrough);
return metadata ? asString(metadata.turn_id) ?? asString(metadata.turnId) : null;
}
export function convertCodexEvent(rawEvent: unknown): CodexConversionResult | null {
const parsed = CodexSessionEventSchema.safeParse(rawEvent);
if (!parsed.success) {
@@ -266,7 +272,9 @@ export function convertCodexEvent(rawEvent: unknown): CodexConversionResult | nu
if (!name || !callId) {
return null;
}
const turnId = extractResponseItemTurnId(payloadRecord);
return {
...(turnId ? { turnId } : {}),
messages: [{
type: 'tool-call',
name,
@@ -282,7 +290,9 @@ export function convertCodexEvent(rawEvent: unknown): CodexConversionResult | nu
if (!callId) {
return null;
}
const turnId = extractResponseItemTurnId(payloadRecord);
return {
...(turnId ? { turnId } : {}),
messages: [{
type: 'tool-call-result',
callId,