feat: 对接设计 Agent Gateway WebSocket
需求:服务端统一 Agent Gateway 将设计任务状态流切换为 WebSocket,客户端需要实时展示生成任务并支持断线恢复。 实现:Electron Main 管理 Session、一次性 Ticket、WebSocket 心跳与游标续传,按关闭码回收会话;Renderer 继续通过本机 Host API 的 SSE 投影接收任务事件,并保留 REST 降级同步。 验证:typecheck、变更文件 ESLint、37 个聚焦测试及 build:vite 通过。
This commit is contained in:
@@ -7,8 +7,19 @@ import type {
|
||||
DesignSubmitMessageInput,
|
||||
DesignWorkspace,
|
||||
DesignWorkspaceBootstrap,
|
||||
DesignWorkspaceEvent,
|
||||
} from '../../shared/image-workspace';
|
||||
|
||||
export type DesignWorkspaceEventSubscription = {
|
||||
events: AsyncIterable<DesignWorkspaceEvent>;
|
||||
close(): void;
|
||||
};
|
||||
|
||||
export type DesignWorkspaceEventSubscriptionInput = {
|
||||
workspaceId: string;
|
||||
afterEventId?: string;
|
||||
};
|
||||
|
||||
export class DesignWorkspaceModuleError extends Error {
|
||||
readonly status: number;
|
||||
readonly code: string;
|
||||
@@ -30,6 +41,10 @@ export interface DesignWorkspaceModule {
|
||||
submitMessage(input: DesignSubmitMessageInput): Promise<DesignWorkspace>;
|
||||
confirmGeneration(input: DesignConfirmGenerationInput): Promise<DesignWorkspace>;
|
||||
listTasks(workspaceId: string): Promise<DesignGenerationTask[]>;
|
||||
openWorkspaceEvents?(
|
||||
input: DesignWorkspaceEventSubscriptionInput,
|
||||
): Promise<DesignWorkspaceEventSubscription>;
|
||||
closeEventSessions?(): Promise<void>;
|
||||
openAssetContent(workspaceId: string, assetId: string, range?: string): Promise<Response>;
|
||||
reset?(): Promise<DesignWorkspaceBootstrap>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user