feat: add attachment support for Codex and Gemini agents

close #84
This commit is contained in:
weishu
2026-01-18 20:30:09 +08:00
parent 662ed952a3
commit ccdcb3d75d
2 changed files with 6 additions and 2 deletions
+3 -1
View File
@@ -10,6 +10,7 @@ import { startHappyServer } from '@/claude/utils/startHappyServer';
import { getHappyCliCommand } from '@/utils/spawnHappyCLI';
import { registerKillSessionHandler } from '@/claude/registerKillSessionHandler';
import { bootstrapSession } from '@/agent/sessionFactory';
import { formatMessageWithAttachments } from '@/utils/attachmentFormatter';
function emitReadyIfIdle(props: {
queueSize: () => number;
@@ -45,7 +46,8 @@ export async function runAgentSession(opts: {
const messageQueue = new MessageQueue2<Record<string, never>>(() => hashObject({}));
session.onUserMessage((message) => {
messageQueue.push(message.content.text, {});
const formattedText = formatMessageWithAttachments(message.content.text, message.content.attachments);
messageQueue.push(formattedText, {});
});
const backend: AgentBackend = AgentRegistry.create(opts.agentType);
+3 -1
View File
@@ -10,6 +10,7 @@ import { bootstrapSession } from '@/agent/sessionFactory';
import { createModeChangeHandler, createRunnerLifecycle, setControlledByUser } from '@/agent/runnerLifecycle';
import { isPermissionModeAllowedForFlavor } from '@hapi/protocol';
import { PermissionModeSchema } from '@hapi/protocol/schemas';
import { formatMessageWithAttachments } from '@/utils/attachmentFormatter';
export { emitReadyIfIdle } from './utils/emitReadyIfIdle';
@@ -73,7 +74,8 @@ export async function runCodex(opts: {
const enhancedMode: EnhancedMode = {
permissionMode: messagePermissionMode ?? 'default'
};
messageQueue.push(message.content.text, enhancedMode);
const formattedText = formatMessageWithAttachments(message.content.text, message.content.attachments);
messageQueue.push(formattedText, enhancedMode);
});
const formatFailureReason = (message: string): string => {