Extend square-hole creation flow with visual asset timeout guard

This commit is contained in:
kdletters
2026-05-05 15:27:09 +08:00
parent 2252afb080
commit 60b667a9d1
30 changed files with 2838 additions and 215 deletions

View File

@@ -35,6 +35,21 @@ export interface ExecuteSquareHoleActionRequest {
coverImageSrc?: string | null;
}
export interface SquareHoleShapeOption {
optionId: string;
shapeKind: string;
label: string;
imagePrompt: string;
imageSrc?: string | null;
}
export interface SquareHoleHoleOption {
holeId: string;
holeKind: string;
label: string;
bonus: boolean;
}
export interface SquareHoleAnchorItemResponse {
key: string;
label: string;
@@ -54,6 +69,11 @@ export interface SquareHoleCreatorConfig {
twistRule: string;
shapeCount: number;
difficulty: number;
shapeOptions: SquareHoleShapeOption[];
holeOptions: SquareHoleHoleOption[];
backgroundPrompt: string;
coverImageSrc?: string | null;
backgroundImageSrc?: string | null;
}
export interface SquareHoleResultDraft {
@@ -63,6 +83,11 @@ export interface SquareHoleResultDraft {
twistRule: string;
summary: string;
tags: string[];
coverImageSrc?: string | null;
backgroundPrompt: string;
backgroundImageSrc?: string | null;
shapeOptions: SquareHoleShapeOption[];
holeOptions: SquareHoleHoleOption[];
shapeCount: number;
difficulty: number;
publishReady: boolean;

View File

@@ -37,6 +37,7 @@ export interface SquareHoleShapeSnapshot {
shapeKind: SquareHoleShapeKind;
label: string;
color: string;
imageSrc?: string | null;
}
export interface SquareHoleHoleSnapshot {
@@ -45,6 +46,7 @@ export interface SquareHoleHoleSnapshot {
label: string;
x: number;
y: number;
bonus: boolean;
}
export interface SquareHoleRunSnapshot {
@@ -62,6 +64,7 @@ export interface SquareHoleRunSnapshot {
bestCombo: number;
score: number;
ruleLabel: string;
backgroundImageSrc?: string | null;
currentShape?: SquareHoleShapeSnapshot | null;
holes: SquareHoleHoleSnapshot[];
lastFeedback?: SquareHoleDropFeedback | null;

View File

@@ -4,6 +4,21 @@
*/
export type SquareHoleWorkPublicationStatus = 'draft' | 'published' | string;
export interface SquareHoleShapeOption {
optionId: string;
shapeKind: string;
label: string;
imagePrompt: string;
imageSrc?: string | null;
}
export interface SquareHoleHoleOption {
holeId: string;
holeKind: string;
label: string;
bonus: boolean;
}
export interface PutSquareHoleWorkRequest {
gameName: string;
themeText?: string;
@@ -11,6 +26,10 @@ export interface PutSquareHoleWorkRequest {
summary: string;
tags: string[];
coverImageSrc?: string | null;
backgroundPrompt?: string;
backgroundImageSrc?: string | null;
shapeOptions?: SquareHoleShapeOption[];
holeOptions?: SquareHoleHoleOption[];
shapeCount: number;
difficulty: number;
}
@@ -26,6 +45,10 @@ export interface SquareHoleWorkSummary {
summary: string;
tags: string[];
coverImageSrc?: string | null;
backgroundPrompt: string;
backgroundImageSrc?: string | null;
shapeOptions: SquareHoleShapeOption[];
holeOptions: SquareHoleHoleOption[];
shapeCount: number;
difficulty: number;
publicationStatus: SquareHoleWorkPublicationStatus;

View File

@@ -13,9 +13,6 @@ export * from './contracts/puzzleAgentSession';
export * from './contracts/puzzleResultPreview';
export * from './contracts/puzzleRuntimeSession';
export * from './contracts/puzzleWorkSummary';
export * from './contracts/squareHoleAgent';
export * from './contracts/squareHoleRuntime';
export * from './contracts/squareHoleWorks';
export * from './contracts/rpgAgentActions';
export * from './contracts/rpgAgentAnchors';
export * from './contracts/rpgAgentDraft';
@@ -29,6 +26,19 @@ export * from './contracts/rpgRuntimeQuestAssist';
export * from './contracts/rpgRuntimeStoryAction';
export * from './contracts/rpgRuntimeStoryState';
export * from './contracts/runtime';
export * from './contracts/squareHoleAgent';
export * from './contracts/squareHoleRuntime';
export type {
PutSquareHoleWorkRequest,
SquareHoleWorkDetailResponse,
SquareHoleHoleOption as SquareHoleWorkHoleOption,
SquareHoleWorkMutationResponse,
SquareHoleWorkProfile,
SquareHoleWorkPublicationStatus,
SquareHoleShapeOption as SquareHoleWorkShapeOption,
SquareHoleWorksResponse,
SquareHoleWorkSummary,
} from './contracts/squareHoleWorks';
export type * from './contracts/story';
export * from './http';
export * from './llm/narrativeLanguage';