Merge remote-tracking branch 'origin/codex/wooden-fish-template'

This commit is contained in:
kdletters
2026-05-22 08:09:58 +08:00
617 changed files with 31612 additions and 237 deletions

View File

@@ -39,7 +39,12 @@ export interface PublishGeneratedAudioAssetRequest {
slot: string;
assetKind: string;
profileId?: string | null;
storagePrefix?: 'puzzle_assets' | 'match3d_assets' | 'custom_world_scenes' | null;
storagePrefix?:
| 'puzzle_assets'
| 'match3d_assets'
| 'wooden_fish_assets'
| 'custom_world_scenes'
| null;
}
export interface GeneratedAudioAssetResponse {

View File

@@ -5,3 +5,4 @@ export type * from './jumpHop';
export type * from './puzzleCreativeTemplate';
export type * from './visualNovel';
export type * from './barkBattle';
export type * from './woodenFish';

View File

@@ -0,0 +1,199 @@
export type WoodenFishGenerationStatus =
| 'draft'
| 'generating'
| 'ready'
| 'failed';
export type WoodenFishActionType =
| 'compile-draft'
| 'regenerate-hit-object'
| 'generate-hit-sound'
| 'replace-hit-sound'
| 'update-work-meta'
| 'update-floating-words';
export type WoodenFishRunStatus = 'playing' | 'finished';
export interface WoodenFishImageAsset {
assetId: string;
imageSrc: string;
imageObjectKey: string;
assetObjectId: string;
generationProvider: string;
prompt: string;
width: number;
height: number;
}
export interface WoodenFishAudioAsset {
assetId: string;
audioSrc: string;
audioObjectKey: string;
assetObjectId: string;
source: string;
prompt?: string | null;
durationMs?: number | null;
}
export interface WoodenFishWorkspaceCreateRequest {
templateId: string;
workTitle: string;
workDescription: string;
themeTags: string[];
hitObjectPrompt: string;
hitObjectReferenceImageSrc?: string | null;
hitSoundPrompt?: string | null;
hitSoundAsset?: WoodenFishAudioAsset | null;
floatingWords: string[];
}
export interface WoodenFishActionRequest {
actionType: WoodenFishActionType;
profileId?: string | null;
workTitle?: string | null;
workDescription?: string | null;
themeTags?: string[] | null;
hitObjectPrompt?: string | null;
hitObjectReferenceImageSrc?: string | null;
hitObjectAsset?: WoodenFishImageAsset | null;
backgroundAsset?: WoodenFishImageAsset | null;
hitSoundPrompt?: string | null;
hitSoundAsset?: WoodenFishAudioAsset | null;
floatingWords?: string[] | null;
}
export interface WoodenFishWordCounter {
text: string;
count: number;
}
export interface WoodenFishDraftResponse {
templateId: string;
templateName: string;
profileId: string | null;
workTitle: string;
workDescription: string;
themeTags: string[];
hitObjectPrompt: string;
hitObjectReferenceImageSrc: string | null;
hitSoundPrompt: string | null;
floatingWords: string[];
hitObjectAsset: WoodenFishImageAsset | null;
backgroundAsset: WoodenFishImageAsset | null;
hitSoundAsset: WoodenFishAudioAsset | null;
coverImageSrc: string | null;
generationStatus: WoodenFishGenerationStatus;
}
export interface WoodenFishSessionSnapshotResponse {
sessionId: string;
ownerUserId: string;
status: WoodenFishGenerationStatus;
draft: WoodenFishDraftResponse | null;
createdAt: string;
updatedAt: string;
}
export interface WoodenFishSessionResponse {
session: WoodenFishSessionSnapshotResponse;
}
export interface WoodenFishActionResponse {
actionType: WoodenFishActionType;
session: WoodenFishSessionSnapshotResponse;
work: WoodenFishWorkProfileResponse | null;
}
export interface WoodenFishWorkSummaryResponse {
runtimeKind: 'wooden-fish';
workId: string;
profileId: string;
ownerUserId: string;
sourceSessionId: string | null;
workTitle: string;
workDescription: string;
themeTags: string[];
coverImageSrc: string | null;
publicationStatus: string;
playCount: number;
updatedAt: string;
publishedAt: string | null;
publishReady: boolean;
generationStatus: WoodenFishGenerationStatus;
}
export interface WoodenFishWorkProfileResponse {
summary: WoodenFishWorkSummaryResponse;
draft: WoodenFishDraftResponse;
hitObjectAsset: WoodenFishImageAsset;
backgroundAsset: WoodenFishImageAsset | null;
hitSoundAsset: WoodenFishAudioAsset;
floatingWords: string[];
}
export interface WoodenFishWorkDetailResponse {
item: WoodenFishWorkProfileResponse;
}
export interface WoodenFishWorkMutationResponse {
item: WoodenFishWorkProfileResponse;
}
export interface WoodenFishGalleryCardResponse {
publicWorkCode: string;
workId: string;
profileId: string;
ownerUserId: string;
authorDisplayName: string;
workTitle: string;
workDescription: string;
coverImageSrc: string | null;
themeTags: string[];
publicationStatus: string;
playCount: number;
updatedAt: string;
publishedAt: string | null;
generationStatus: WoodenFishGenerationStatus;
}
export interface WoodenFishGalleryResponse {
items: WoodenFishGalleryCardResponse[];
hasMore: boolean;
nextCursor: string | null;
}
export interface WoodenFishGalleryDetailResponse {
item: WoodenFishWorkProfileResponse;
}
export interface WoodenFishRuntimeRunSnapshotResponse {
runId: string;
profileId: string;
ownerUserId: string;
status: WoodenFishRunStatus;
totalTapCount: number;
wordCounters: WoodenFishWordCounter[];
startedAtMs: number;
updatedAtMs: number;
finishedAtMs: number | null;
}
export interface WoodenFishRunResponse {
run: WoodenFishRuntimeRunSnapshotResponse;
}
export interface WoodenFishStartRunRequest {
profileId: string;
}
export interface WoodenFishCheckpointRunRequest {
totalTapCount: number;
wordCounters: WoodenFishWordCounter[];
clientEventId: string;
}
export interface WoodenFishFinishRunRequest {
totalTapCount: number;
wordCounters: WoodenFishWordCounter[];
clientEventId: string;
}