feat: add support for user message events from Codex

Add sendUserMessage() method to ApiSessionClient and CodexSession to handle
user_message events from Codex. Updates CodexConversionResult type and
convertCodexEvent() to process user_message payloads, with test coverage.
This commit is contained in:
weishu
2025-12-24 17:24:16 +08:00
parent 7f2a36117c
commit 2a10ce9675
5 changed files with 50 additions and 2 deletions
@@ -23,6 +23,15 @@ describe('convertCodexEvent', () => {
});
});
it('converts user_message events', () => {
const result = convertCodexEvent({
type: 'event_msg',
payload: { type: 'user_message', message: 'hello user' }
});
expect(result?.userMessage).toBe('hello user');
});
it('converts reasoning events', () => {
const result = convertCodexEvent({
type: 'event_msg',
+10 -1
View File
@@ -41,6 +41,7 @@ export type CodexMessage = {
export type CodexConversionResult = {
sessionId?: string;
message?: CodexMessage;
userMessage?: string;
};
function asRecord(value: unknown): Record<string, unknown> | null {
@@ -118,7 +119,15 @@ export function convertCodexEvent(rawEvent: unknown): CodexConversionResult | nu
}
if (eventType === 'user_message') {
return null;
const message = asString(payloadRecord.message)
?? asString(payloadRecord.text)
?? asString(payloadRecord.content);
if (!message) {
return null;
}
return {
userMessage: message
};
}
if (eventType === 'agent_message') {