diff --git a/apps/ai-game-creator-shell/src/features/project-workspace/resourceReferences.ts b/apps/ai-game-creator-shell/src/features/project-workspace/resourceReferences.ts index 966f67a7a..bab8718ff 100644 --- a/apps/ai-game-creator-shell/src/features/project-workspace/resourceReferences.ts +++ b/apps/ai-game-creator-shell/src/features/project-workspace/resourceReferences.ts @@ -559,7 +559,7 @@ export function legacyContentDtoToContent(dto: { ]); } -export function chatComposerDraftToDirectCodexUserItem( +export function chatComposerDraftToUserItem( draft: ChatComposerDraft, id: string, ): UserItem { @@ -571,11 +571,11 @@ export function chatComposerDraftToDirectCodexUserItem( } satisfies UserItem; } -export function directCodexUserItemFromContent( +export function userItemFromContent( content: readonly UserContentPart[], id: string, ): UserItem { - return chatComposerDraftToDirectCodexUserItem({ content: [...content] }, id); + return chatComposerDraftToUserItem({ content: [...content] }, id); } /** diff --git a/apps/ai-game-creator-shell/src/view/project-development/chat/DirectProjectChatView.tsx b/apps/ai-game-creator-shell/src/view/project-development/chat/DirectProjectChatView.tsx index 8a0387795..67c42d514 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/chat/DirectProjectChatView.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/chat/DirectProjectChatView.tsx @@ -13,7 +13,7 @@ import { AGENT_CHAT_SCROLL_BOTTOM_THRESHOLD } from '../../../app/constants'; import { claimInitialTurnForPage } from '../../../app/initialTurnClaims'; import type { PendingUiConfirmation } from '../../../app/types'; import { projectNameFromPath } from '../../../features/agent-runtime'; -import { directCodexUserItemFromContent } from '../../../features/project-workspace/resourceReferences'; +import { userItemFromContent } from '../../../features/project-workspace/resourceReferences'; import { type ApprovalMode, approvalModeLabel } from '../approvalMode'; import { ApprovalModeDialog } from '../ApprovalModeDialog'; import { DirectProjectChatHeader } from './components/DirectProjectChatHeader/DirectProjectChatHeader'; @@ -193,7 +193,7 @@ export function DirectProjectChatView({ return; } const clientTurnId = createDirectProjectTurnId(); - const userItem = directCodexUserItemFromContent( + const userItem = userItemFromContent( initialTurn.content, directCodexConversationMessageId(clientTurnId, 'user'), ); diff --git a/apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts b/apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts index 622268e8b..ab0fdd4fb 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts +++ b/apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts @@ -13,8 +13,8 @@ import type { import { projectRuntimeVisibleError } from '../../../../features/agent-runtime'; import { uploadLocalFilesAsAttachments } from '../../../../features/app-shell/useHomeProjectCreation'; import { - directCodexUserItemFromContent, hasMeaningfulDirectCodexContent, + userItemFromContent, } from '../../../../features/project-workspace/resourceReferences'; import { captureAgentRuntimeError } from '../../../../services/errorReporting'; import { @@ -388,7 +388,7 @@ export function useDirectProjectChatController({ async function submit(content: UserContentPart[]): Promise { if (!hasMeaningfulDirectCodexContent(content)) return false; const clientTurnId = createDirectProjectTurnId(); - const userItem = directCodexUserItemFromContent( + const userItem = userItemFromContent( content, directCodexConversationMessageId(clientTurnId, 'user'), ); diff --git a/apps/ai-game-creator-shell/tests/appSurface/chat-composer.suite.ts b/apps/ai-game-creator-shell/tests/appSurface/chat-composer.suite.ts index 078dc0547..d5b119a1c 100644 --- a/apps/ai-game-creator-shell/tests/appSurface/chat-composer.suite.ts +++ b/apps/ai-game-creator-shell/tests/appSurface/chat-composer.suite.ts @@ -1,4 +1,4 @@ -import { directCodexUserItemFromContent } from '../../src/features/project-workspace/resourceReferences'; +import { userItemFromContent } from '../../src/features/project-workspace/resourceReferences'; import * as platformSession from '../../src/services/platformSession'; import { appendDictationText, @@ -222,7 +222,7 @@ function pendingTurn( ): DirectPendingTurn { return { clientTurnId, - userItem: directCodexUserItemFromContent( + userItem: userItemFromContent( [{ type: 'input_text', text }], `direct-codex:${clientTurnId}:user`, ), @@ -314,7 +314,7 @@ export function registerChatComposerControlTests() { it('待发消息 chip 的 @ 引用按 manifest 显示名展开,不露出内部 resourceId', () => { const turn: DirectPendingTurn = { clientTurnId: 'client-ref', - userItem: directCodexUserItemFromContent( + userItem: userItemFromContent( [ { type: 'input_text', text: '用这张图改一下' }, { type: 'agc_resource_reference', resourceId: 'asset:hero' }, diff --git a/apps/ai-game-creator-shell/tests/appSurface/project-conversation.suite.ts b/apps/ai-game-creator-shell/tests/appSurface/project-conversation.suite.ts index 0b0c0e024..5e471747e 100644 --- a/apps/ai-game-creator-shell/tests/appSurface/project-conversation.suite.ts +++ b/apps/ai-game-creator-shell/tests/appSurface/project-conversation.suite.ts @@ -1,4 +1,4 @@ -import { directCodexUserItemFromContent } from '../../src/features/project-workspace/resourceReferences'; +import { userItemFromContent } from '../../src/features/project-workspace/resourceReferences'; import { directCodexPolicyRetryInput } from '../../src/view/project-development/chat/conversation/directCodexConversation'; import { enqueueFailureNotice, @@ -103,7 +103,7 @@ export function registerProjectConversationTests() { const firstTurn = { clientTurnId: 'direct-turn-1', creationType: 'game' as const, - userItem: directCodexUserItemFromContent( + userItem: userItemFromContent( [ { type: 'input_text' as const, text: '用这张图改一下' }, { diff --git a/apps/ai-game-creator-shell/tests/resourceReferences.test.ts b/apps/ai-game-creator-shell/tests/resourceReferences.test.ts index 6b133521d..71fb85546 100644 --- a/apps/ai-game-creator-shell/tests/resourceReferences.test.ts +++ b/apps/ai-game-creator-shell/tests/resourceReferences.test.ts @@ -4,7 +4,7 @@ import type { GameCreationAppAssetManifestEntry } from '../../../packages/shared import { buildContentFromPastedText, type ChatComposerDraft, - chatComposerDraftToDirectCodexUserItem, + chatComposerDraftToUserItem, type ChatReference, chatReferenceMentionToken, contentPartText, @@ -39,9 +39,7 @@ describe('DirectProject user Response item', () => { ], }; - expect( - chatComposerDraftToDirectCodexUserItem(draft, 'turn-1:user'), - ).toEqual({ + expect(chatComposerDraftToUserItem(draft, 'turn-1:user')).toEqual({ type: 'message', role: 'user', id: 'turn-1:user', @@ -57,9 +55,7 @@ describe('DirectProject user Response item', () => { ], }; - expect( - chatComposerDraftToDirectCodexUserItem(draft, 'turn-2:user'), - ).toEqual({ + expect(chatComposerDraftToUserItem(draft, 'turn-2:user')).toEqual({ type: 'message', role: 'user', id: 'turn-2:user', @@ -80,9 +76,9 @@ describe('DirectProject user Response item', () => { ], }; - expect( - chatComposerDraftToDirectCodexUserItem(draft, 'turn-3:user').content, - ).toEqual(draft.content); + expect(chatComposerDraftToUserItem(draft, 'turn-3:user').content).toEqual( + draft.content, + ); }); it('只有最终 content 全为空白时才判定为空输入', () => {