Preserve partial creation replies on stream failure
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
kdletters
2026-05-05 11:31:50 +08:00
parent 100fee7e7a
commit 995661e7cc
299 changed files with 13805 additions and 1429 deletions

View File

@@ -0,0 +1,8 @@
export {
createSquareHoleCreationSession,
executeSquareHoleCreationAction,
getSquareHoleCreationSession,
sendSquareHoleCreationMessage,
squareHoleCreationClient,
streamSquareHoleCreationMessage,
} from './squareHoleCreationClient';

View File

@@ -0,0 +1,87 @@
import type {
CreateSquareHoleSessionRequest,
ExecuteSquareHoleActionRequest,
SendSquareHoleMessageRequest,
SquareHoleActionResponse,
SquareHoleSessionResponse,
SquareHoleSessionSnapshot,
} from '../../../packages/shared/src/contracts/squareHoleAgent';
import type { TextStreamOptions } from '../aiTypes';
import { createCreationAgentClient } from '../creation-agent';
const SQUARE_HOLE_AGENT_API_BASE = '/api/creation/square-hole/sessions';
const squareHoleAgentHttpClient = createCreationAgentClient<
CreateSquareHoleSessionRequest,
SquareHoleSessionResponse,
SquareHoleSessionResponse,
SquareHoleSessionSnapshot,
SendSquareHoleMessageRequest,
SquareHoleSessionResponse,
ExecuteSquareHoleActionRequest,
SquareHoleActionResponse
>({
apiBase: SQUARE_HOLE_AGENT_API_BASE,
messages: {
createSession: '创建方洞挑战共创会话失败',
getSession: '读取方洞挑战共创会话失败',
sendMessage: '发送方洞挑战共创消息失败',
streamIncomplete: '方洞挑战共创消息流式结果不完整',
executeAction: '执行方洞挑战共创操作失败',
},
});
/**
* 创建方洞挑战 Agent 共创会话。
*/
export function createSquareHoleCreationSession(
payload: CreateSquareHoleSessionRequest = {},
) {
return squareHoleAgentHttpClient.createSession(payload);
}
/**
* 读取方洞挑战 Agent 会话快照。
*/
export function getSquareHoleCreationSession(sessionId: string) {
return squareHoleAgentHttpClient.getSession(sessionId);
}
/**
* 非流式发送方洞挑战 Agent 消息,保留为 SSE 降级入口。
*/
export function sendSquareHoleCreationMessage(
sessionId: string,
payload: SendSquareHoleMessageRequest,
) {
return squareHoleAgentHttpClient.sendMessage(sessionId, payload);
}
/**
* 流式发送方洞挑战 Agent 消息。
*/
export function streamSquareHoleCreationMessage(
sessionId: string,
payload: SendSquareHoleMessageRequest,
options: TextStreamOptions = {},
) {
return squareHoleAgentHttpClient.streamMessage(sessionId, payload, options);
}
/**
* 执行方洞挑战创作操作,例如生成草稿作品。
*/
export function executeSquareHoleCreationAction(
sessionId: string,
payload: ExecuteSquareHoleActionRequest,
) {
return squareHoleAgentHttpClient.executeAction(sessionId, payload);
}
export const squareHoleCreationClient = {
createSession: createSquareHoleCreationSession,
getSession: getSquareHoleCreationSession,
sendMessage: sendSquareHoleCreationMessage,
streamMessage: streamSquareHoleCreationMessage,
executeAction: executeSquareHoleCreationAction,
};