feat(canvas): cut over design agent to living form v2

This commit is contained in:
2026-08-30 17:00:31 +08:00
parent f245603923
commit b0b5a602b5
35 changed files with 5729 additions and 13986 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,33 +1,17 @@
import type {
DesignAsset,
DesignAssetUploadInput,
DesignCapabilities,
DesignConversation,
DesignCreateConversationInput,
DesignConfirmGenerationInput,
DesignCommandInput,
DesignCommandResult,
DesignCreateWorkspaceInput,
DesignDeleteWorkspaceResult,
DesignGenerationQuote,
DesignGenerationQuoteUpdateInput,
DesignGenerationTask,
DesignRenameWorkspaceInput,
DesignSubmitMessageInput,
DesignWorkspace,
DesignWorkspaceBootstrap,
DesignWorkspaceEvent,
DesignWorkspaceEventSubscription,
DesignWorkspaceEventSubscriptionInput,
} from '../../shared/image-workspace';
export type DesignWorkspaceEventSubscription = {
events: AsyncIterable<DesignWorkspaceEvent>;
close(): void;
};
export type DesignWorkspaceEventSubscriptionInput = {
workspaceId: string;
conversationId: string;
afterEventId?: string;
};
export type CloseEventSessionsOptions = {
accessToken?: string;
tolerateRemoteFailure?: boolean;
@@ -45,28 +29,18 @@ export class DesignWorkspaceModuleError extends Error {
}
}
/** Main-owned deep boundary for one canonical V2 Living Form workspace. */
export interface DesignWorkspaceModule {
bootstrap(): Promise<DesignWorkspaceBootstrap>;
getCapabilities(): Promise<DesignCapabilities>;
createWorkspace(input: DesignCreateWorkspaceInput): Promise<DesignWorkspace>;
deleteWorkspace(workspaceId: string): Promise<DesignDeleteWorkspaceResult>;
renameWorkspace(input: DesignRenameWorkspaceInput): Promise<DesignWorkspace>;
getWorkspace(workspaceId: string): Promise<DesignWorkspace>;
createConversation(input: DesignCreateConversationInput): Promise<DesignConversation>;
getConversation(
workspaceId: string,
conversationId: string,
before?: string,
): Promise<DesignConversation>;
submitMessage(input: DesignSubmitMessageInput): Promise<DesignConversation>;
updateGenerationQuote(input: DesignGenerationQuoteUpdateInput): Promise<DesignGenerationQuote>;
confirmGeneration(input: DesignConfirmGenerationInput): Promise<DesignConversation>;
listTasks(workspaceId: string): Promise<DesignGenerationTask[]>;
uploadAsset?(input: DesignAssetUploadInput): Promise<DesignAsset>;
openWorkspaceEvents?(
submitCommand(input: DesignCommandInput): Promise<DesignCommandResult>;
uploadAsset(input: DesignAssetUploadInput): Promise<DesignAsset>;
openWorkspaceEvents(
input: DesignWorkspaceEventSubscriptionInput,
): Promise<DesignWorkspaceEventSubscription>;
closeEventSessions?(options?: CloseEventSessionsOptions): Promise<void>;
closeEventSessions(options?: CloseEventSessionsOptions): Promise<void>;
openAssetContent(workspaceId: string, assetId: string, range?: string): Promise<Response>;
reset?(): Promise<DesignWorkspaceBootstrap>;
}

File diff suppressed because it is too large Load Diff