From 0167c66cb711aa3d2cf1ae2dc884c4979b448c4f Mon Sep 17 00:00:00 2001 From: wsq Date: Wed, 13 May 2026 21:58:19 +0800 Subject: [PATCH] first commit --- .gitignore | 1 + CHANGELOG.md | 37 + Dockerfile | 60 + LICENSE | 14 + README.md | 161 + README_en.md | 149 + caddyfile | 20 + debug-request.json | 9 + docker-compose.test.yml | 32 + docker-compose.yml | 152 + docs/ARCHITECTURE.md | 161 + eslint.config.mjs | 52 + extract_chinese.py | 91 + images/cta-banner.png | Bin 0 -> 359833 bytes images/dab6b4105e3260f37ba2d5f536dce259.jpg | Bin 0 -> 147211 bytes .../character_image_to_description.en.txt | 31 + .../character_image_to_description.zh.txt | 36 + .../character_reference_to_sheet.en.txt | 22 + .../character_reference_to_sheet.zh.txt | 26 + .../agent_acting_direction.en.txt | 39 + .../agent_acting_direction.zh.txt | 91 + .../agent_character_profile.en.txt | 87 + .../agent_character_profile.zh.txt | 252 + .../agent_character_visual.en.txt | 45 + .../agent_character_visual.zh.txt | 209 + .../agent_cinematographer.en.txt | 37 + .../agent_cinematographer.zh.txt | 139 + lib/prompts/novel-promotion/agent_clip.en.txt | 37 + lib/prompts/novel-promotion/agent_clip.zh.txt | 94 + .../agent_shot_variant_analysis.en.txt | 40 + .../agent_shot_variant_analysis.zh.txt | 148 + .../agent_shot_variant_generate.en.txt | 37 + .../agent_shot_variant_generate.zh.txt | 82 + .../agent_storyboard_detail.en.txt | 56 + .../agent_storyboard_detail.zh.txt | 188 + .../agent_storyboard_insert.en.txt | 44 + .../agent_storyboard_insert.zh.txt | 100 + .../agent_storyboard_plan.en.txt | 61 + .../agent_storyboard_plan.zh.txt | 329 + .../novel-promotion/ai_story_expand.en.txt | 39 + .../novel-promotion/ai_story_expand.zh.txt | 39 + .../novel-promotion/character_create.en.txt | 19 + .../novel-promotion/character_create.zh.txt | 56 + .../character_description_update.en.txt | 24 + .../character_description_update.zh.txt | 30 + .../novel-promotion/character_modify.en.txt | 22 + .../novel-promotion/character_modify.zh.txt | 52 + .../character_regenerate.en.txt | 32 + .../character_regenerate.zh.txt | 60 + .../novel-promotion/episode_split.en.txt | 41 + .../novel-promotion/episode_split.zh.txt | 96 + .../image_prompt_modify.en.txt | 24 + .../image_prompt_modify.zh.txt | 38 + .../novel-promotion/location_create.en.txt | 29 + .../novel-promotion/location_create.zh.txt | 45 + .../location_description_update.en.txt | 35 + .../location_description_update.zh.txt | 46 + .../novel-promotion/location_modify.en.txt | 34 + .../novel-promotion/location_modify.zh.txt | 78 + .../location_regenerate.en.txt | 33 + .../location_regenerate.zh.txt | 55 + .../prop_description_update.en.txt | 31 + .../prop_description_update.zh.txt | 30 + .../screenplay_conversion.en.txt | 60 + .../screenplay_conversion.zh.txt | 254 + .../novel-promotion/select_location.en.txt | 62 + .../novel-promotion/select_location.zh.txt | 157 + .../novel-promotion/select_prop.en.txt | 86 + .../novel-promotion/select_prop.zh.txt | 86 + .../novel-promotion/single_panel_image.en.txt | 30 + .../novel-promotion/single_panel_image.zh.txt | 69 + .../novel-promotion/storyboard_edit.en.txt | 12 + .../novel-promotion/storyboard_edit.zh.txt | 12 + .../novel-promotion/voice_analysis.en.txt | 39 + .../novel-promotion/voice_analysis.zh.txt | 122 + lib/prompts/proxy.ts | 8 + .../skills/api-config-template.system.txt | 85 + lib/prompts/skills/tutorial.system.txt | 4 + logs/Internal_幻境计划.log | 1 + logs/admin_幻境计划.log | 1 + logs/app.log | 2643 +++ messages/en/actions.json | 18 + messages/en/apiConfig.json | 202 + messages/en/apiTypes.json | 9 + messages/en/assetHub.json | 114 + messages/en/assetLibrary.json | 17 + messages/en/assetModal.json | 99 + messages/en/assetPicker.json | 19 + messages/en/assets.json | 366 + messages/en/auth.json | 36 + messages/en/billing.json | 15 + messages/en/common.json | 148 + messages/en/configModal.json | 36 + messages/en/errors.json | 23 + messages/en/home.json | 26 + messages/en/landing.json | 27 + messages/en/layout.json | 4 + messages/en/modelSection.json | 27 + messages/en/nav.json | 9 + messages/en/novel-promotion.json | 176 + messages/en/profile.json | 109 + messages/en/progress.json | 142 + messages/en/providerSection.json | 7 + messages/en/scriptView.json | 70 + messages/en/smartImport.json | 168 + messages/en/stages.json | 7 + messages/en/storyboard.json | 390 + messages/en/video.json | 210 + messages/en/voice.json | 257 + messages/en/workspace.json | 42 + messages/en/workspaceDetail.json | 37 + messages/en/workspaceRedesign.json | 77 + messages/en/worldContextModal.json | 6 + messages/zh/actions.json | 18 + messages/zh/apiConfig.json | 202 + messages/zh/apiTypes.json | 9 + messages/zh/assetHub.json | 114 + messages/zh/assetLibrary.json | 17 + messages/zh/assetModal.json | 99 + messages/zh/assetPicker.json | 19 + messages/zh/assets.json | 366 + messages/zh/auth.json | 36 + messages/zh/billing.json | 15 + messages/zh/common.json | 148 + messages/zh/configModal.json | 36 + messages/zh/errors.json | 23 + messages/zh/home.json | 26 + messages/zh/landing.json | 27 + messages/zh/layout.json | 4 + messages/zh/modelSection.json | 27 + messages/zh/nav.json | 9 + messages/zh/novel-promotion.json | 176 + messages/zh/profile.json | 109 + messages/zh/progress.json | 142 + messages/zh/providerSection.json | 7 + messages/zh/scriptView.json | 70 + messages/zh/smartImport.json | 168 + messages/zh/stages.json | 7 + messages/zh/storyboard.json | 390 + messages/zh/video.json | 210 + messages/zh/voice.json | 257 + messages/zh/workspace.json | 42 + messages/zh/workspaceDetail.json | 37 + messages/zh/workspaceRedesign.json | 77 + messages/zh/worldContextModal.json | 6 + middleware.ts | 12 + next-env.d.ts | 7 + next.config.ts | 15 + nginx.conf | 93 + package-lock.json | 18064 ++++++++++++++++ package.json | 182 + postcss.config.mjs | 5 + .../migration.sql | 11 + .../migration.sql | 2 + .../migration.sql | 5 + prisma/schema.prisma | 1001 + prisma/schema.sqlit.prisma | 838 + public/banner.png | Bin 0 -> 277965 bytes public/file.svg | 1 + public/globe.svg | 1 + public/icon.png | Bin 0 -> 440124 bytes public/images/grid-template-9x16.png | Bin 0 -> 37953 bytes public/logo-small.png | Bin 0 -> 51846 bytes public/logo.ico | Bin 0 -> 51090 bytes public/logo.png | Bin 0 -> 286841 bytes public/next.svg | 1 + public/window.svg | 1 + scripts/billing-cleanup-pending-freezes.ts | 140 + scripts/billing-reconcile-ledger.ts | 125 + scripts/bull-board.ts | 105 + scripts/check-api-handler.ts | 38 + scripts/check-capability-catalog.mjs | 334 + scripts/check-image-urls-contract.ts | 118 + scripts/check-log-semantic.ts | 110 + scripts/check-media-normalization.ts | 110 + scripts/check-model-config-contract.mjs | 462 + scripts/check-no-console.ts | 52 + .../check-outbound-image-runtime-sample.ts | 323 + scripts/check-outbound-image-success-rate.ts | 224 + scripts/check-outbound-image-unification.ts | 167 + scripts/check-pricing-catalog.mjs | 293 + scripts/cleanup-remove-legacy-voice-data.ts | 197 + scripts/diagnose-project.ts | 188 + scripts/guards/api-route-contract-guard.mjs | 116 + .../guards/changed-file-test-impact-guard.mjs | 106 + scripts/guards/file-line-count-guard.mjs | 89 + .../image-reference-normalization-guard.mjs | 102 + scripts/guards/locale-navigation-guard.mjs | 101 + scripts/guards/no-api-direct-llm-call.mjs | 77 + .../guards/no-duplicate-endpoint-entry.mjs | 45 + .../no-hardcoded-model-capabilities.mjs | 73 + .../guards/no-internal-task-sync-fallback.mjs | 77 + scripts/guards/no-media-provider-bypass.mjs | 88 + scripts/guards/no-model-key-downgrade.mjs | 93 + .../guards/no-multiple-sources-of-truth.mjs | 109 + scripts/guards/no-provider-guessing.mjs | 95 + scripts/guards/no-server-mirror-state.mjs | 81 + scripts/guards/prompt-ab-regression.mjs | 143 + scripts/guards/prompt-i18n-guard.mjs | 160 + scripts/guards/prompt-json-canary-guard.mjs | 250 + scripts/guards/prompt-semantic-regression.mjs | 108 + scripts/guards/task-loading-baseline.json | 9 + scripts/guards/task-loading-guard.mjs | 132 + .../guards/task-state-unification-guard.sh | 42 + scripts/guards/task-status-cutover-audit.sh | 100 + .../guards/task-submit-compensation-guard.mjs | 84 + .../task-target-states-no-polling-guard.mjs | 96 + .../guards/test-behavior-quality-guard.mjs | 85 + .../test-behavior-route-coverage-guard.mjs | 54 + .../test-behavior-tasktype-coverage-guard.mjs | 49 + scripts/guards/test-route-coverage-guard.mjs | 57 + .../guards/test-tasktype-coverage-guard.mjs | 46 + scripts/media-archive-legacy-refs.ts | 127 + scripts/media-backfill-refs.ts | 122 + scripts/media-build-unreferenced-index.ts | 202 + scripts/media-mapping.ts | 90 + scripts/media-restore-dry-run.ts | 111 + scripts/media-safety-backup.ts | 247 + scripts/migrate-cancelled-to-failed.ts | 72 + scripts/migrate-image-urls-contract.ts | 231 + scripts/migrate-local-to-minio.ts | 217 + scripts/migrate-to-minio.sh | 100 + scripts/migrate-to-minio.ts | 343 + .../migrate-capability-selections.ts | 310 + .../migrations/migrate-custom-pricing-v2.ts | 152 + .../migrate-gateway-route-openai-compat.ts | 80 + .../migrate-graph-artifacts-unique-index.ts | 145 + .../migrate-model-config-contract.ts | 498 + scripts/migrations/migrate-qwen-to-bailian.ts | 351 + .../migrations/migrate-release-blockers.ts | 868 + .../model-config-migration-report.apply.json | 1187 + ...fig-migration-report.post-alias-apply.json | 16 + ...ig-migration-report.post-alias-dryrun.json | 16 + ...del-config-migration-report.pre-apply.json | 1187 + scripts/task-error-stats.ts | 53 + scripts/test-full-image-flow.ts | 161 + scripts/test-image-url-flow.ts | 125 + scripts/test-minio.ts | 119 + scripts/test-regression-runner.sh | 41 + scripts/test-sign-api.ts | 95 + scripts/tmp-cleanup-project-models.mjs | 41 + scripts/tmp-find-old-model.mjs | 43 + scripts/watchdog.ts | 225 + src/app/[locale]/auth/signin/page.tsx | 127 + src/app/[locale]/auth/signup/page.tsx | 173 + .../dev/segmented-control-test/page.tsx | 1091 + .../dev/workspace-redesign/InlineSelector.tsx | 72 + .../dev/workspace-redesign/ProjectLayouts.tsx | 239 + .../workspace-redesign/VariantClearBreath.tsx | 147 + .../[locale]/dev/workspace-redesign/page.tsx | 106 + .../[locale]/dev/workspace-redesign/shared.ts | 108 + src/app/[locale]/home/page.tsx | 406 + src/app/[locale]/layout.tsx | 77 + src/app/[locale]/page.tsx | 105 + .../profile/components/ApiConfigTab.tsx | 7 + .../api-config-tab/ApiConfigProviderList.tsx | 269 + .../api-config-tab/ApiConfigTabContainer.tsx | 512 + .../api-config-tab/ApiConfigToolbar.tsx | 49 + .../api-config-tab/DefaultModelCards.tsx | 464 + .../hooks/useApiConfigFilters.ts | 136 + .../api-config/DefaultModelSection.tsx | 76 + .../components/api-config/ProviderCard.tsx | 67 + .../components/api-config/ProviderSection.tsx | 196 + .../profile/components/api-config/hooks.ts | 794 + .../profile/components/api-config/index.ts | 6 + .../ModelTemplateAssistantModal.tsx | 47 + .../provider-card/ProviderAdvancedFields.tsx | 471 + .../provider-card/ProviderBaseFields.tsx | 285 + .../provider-card/ProviderCardShell.tsx | 212 + .../hooks/useProviderCardState.ts | 832 + .../api-config/provider-card/types.ts | 62 + .../profile/components/api-config/types.ts | 414 + src/app/[locale]/profile/page.tsx | 112 + src/app/[locale]/providers.tsx | 20 + .../[projectId]/components/Sidebar.tsx | 359 + .../[projectId]/episode-selection.ts | 14 + .../workspace/[projectId]/hooks/useProject.ts | 148 + .../NovelPromotionWorkspace.tsx | 180 + .../modes/novel-promotion/StageNavigation.tsx | 98 + .../novel-promotion/WorkspaceProvider.tsx | 101 + .../WorkspaceStageRuntimeContext.tsx | 82 + .../components/AssetLibrary.tsx | 171 + .../components/AssetsStage.tsx | 537 + .../components/ConfigStage.tsx | 68 + .../components/NovelInputStage.tsx | 314 + .../components/PanelEditForm.tsx | 189 + .../components/PromptsStage.tsx | 9 + .../components/ScriptStage.tsx | 26 + .../novel-promotion/components/ScriptView.tsx | 1 + .../components/SmartImportWizard.tsx | 94 + .../components/StoryboardStage.tsx | 27 + .../novel-promotion/components/VideoStage.tsx | 9 + .../components/VideoStageRoute.tsx | 44 + .../novel-promotion/components/VoiceStage.tsx | 9 + .../components/VoiceStageRoute.tsx | 25 + .../components/WorkspaceAssetLibraryModal.tsx | 78 + .../components/WorkspaceHeaderShell.tsx | 214 + .../components/WorkspaceRunStreamConsoles.tsx | 247 + .../components/WorkspaceStageContent.tsx | 29 + .../components/WorkspaceTopActions.tsx | 73 + .../components/assets/AddLocationModal.tsx | 269 + .../components/assets/AssetFilterBar.tsx | 52 + .../components/assets/AssetToolbar.tsx | 298 + .../components/assets/AssetsStageModals.tsx | 273 + .../assets/AssetsStageStatusOverlays.tsx | 80 + .../components/assets/CharacterCard.tsx | 491 + .../components/assets/CharacterEditModal.tsx | 64 + .../assets/CharacterProfileCard.tsx | 203 + .../assets/CharacterProfileDialog.tsx | 284 + .../components/assets/CharacterSection.tsx | 386 + .../components/assets/ImageEditModal.tsx | 176 + .../components/assets/LocationCard.tsx | 413 + .../components/assets/LocationEditModal.tsx | 42 + .../components/assets/LocationSection.tsx | 158 + .../components/assets/VoiceSettings.tsx | 225 + .../character-card/CharacterCardActions.tsx | 98 + .../character-card/CharacterCardGallery.tsx | 148 + .../character-card/CharacterCardHeader.tsx | 60 + .../components/assets/hooks/index.ts | 10 + .../components/assets/hooks/useAssetModals.ts | 232 + .../assets/hooks/useAssetsCopyFromHub.ts | 91 + .../assets/hooks/useAssetsGlobalActions.ts | 215 + .../assets/hooks/useAssetsImageEdit.ts | 211 + .../hooks/useBatchGeneration.helpers.ts | 130 + .../assets/hooks/useBatchGeneration.ts | 376 + .../assets/hooks/useCharacterActions.ts | 195 + .../assets/hooks/useLocationActions.ts | 184 + .../assets/hooks/useProfileManagement.ts | 176 + .../assets/hooks/useTTSGeneration.ts | 114 + .../assets/location-backed-asset.ts | 20 + .../location-card/LocationCardActions.tsx | 77 + .../location-card/LocationCardHeader.tsx | 65 + .../location-card/LocationImageList.tsx | 204 + .../prompts-stage/PromptEditorPanel.tsx | 65 + .../prompts-stage/PromptListCardView.tsx | 291 + .../prompts-stage/PromptListPanel.tsx | 85 + .../prompts-stage/PromptListTableView.tsx | 93 + .../prompts-stage/PromptsStageLayout.tsx | 26 + .../prompts-stage/PromptsStageShell.tsx | 9 + .../hooks/usePromptStageActions.tsx | 10 + .../runtime/hooks/usePromptAiModifyFlow.ts | 102 + .../runtime/hooks/usePromptAppendFlow.ts | 57 + .../runtime/hooks/usePromptAssetMention.ts | 101 + .../runtime/hooks/usePromptDraftByShot.ts | 73 + .../runtime/hooks/usePromptEditorRuntime.ts | 97 + .../runtime/promptStageRuntime.types.ts | 49 + .../runtime/promptStageRuntime.utils.ts | 12 + .../runtime/promptStageRuntimeCore.tsx | 139 + .../script-view/ScriptViewAssetsPanel.tsx | 887 + .../script-view/ScriptViewContainer.tsx | 1 + .../components/script-view/ScriptViewCore.tsx | 1 + .../script-view/ScriptViewRuntime.tsx | 458 + .../script-view/ScriptViewScriptPanel.tsx | 313 + .../components/script-view/SpotlightCards.tsx | 272 + .../script-view/asset-state-utils.ts | 222 + .../script-view/clip-asset-utils.ts | 121 + .../components/script-view/selection-sync.ts | 27 + .../smart-import/hooks/useWizardState.ts | 296 + .../smart-import/steps/StepConfirm.tsx | 67 + .../smart-import/steps/StepMapping.tsx | 204 + .../smart-import/steps/StepParse.tsx | 36 + .../smart-import/steps/StepSource.tsx | 174 + .../components/smart-import/types.ts | 15 + .../components/storyboard/AIDataModal.tsx | 178 + .../storyboard/AIDataModal.types.ts | 62 + .../storyboard/AIDataModalFormPane.tsx | 405 + .../storyboard/AIDataModalPreviewPane.tsx | 89 + .../storyboard/CandidateSelector.tsx | 174 + .../components/storyboard/ImageEditModal.tsx | 200 + .../storyboard/ImageEditModalAssetPicker.tsx | 195 + .../ImageEditModalSelectedAssets.tsx | 82 + .../components/storyboard/ImageSection.css | 17 + .../components/storyboard/ImageSection.tsx | 200 + .../storyboard/ImageSectionActionButtons.tsx | 107 + .../storyboard/ImageSectionCandidateMode.tsx | 144 + .../storyboard/InsertPanelButton.tsx | 49 + .../storyboard/InsertPanelModal.tsx | 214 + .../storyboard/PanelActionButtons.tsx | 94 + .../components/storyboard/PanelCard.tsx | 162 + .../storyboard/PanelVariantModal.tsx | 251 + .../storyboard/PanelVariantModal.types.ts | 17 + .../PanelVariantModalCustomOptions.tsx | 60 + .../PanelVariantModalSuggestionList.tsx | 103 + .../storyboard/ScreenplayDisplay.tsx | 150 + .../storyboard/StoryboardCanvas.tsx | 220 + .../components/storyboard/StoryboardGroup.tsx | 257 + .../storyboard/StoryboardGroup.types.ts | 67 + .../storyboard/StoryboardGroupActions.tsx | 115 + .../storyboard/StoryboardGroupDialogs.tsx | 70 + .../storyboard/StoryboardGroupFailedAlert.tsx | 36 + .../storyboard/StoryboardGroupHeader.tsx | 67 + .../storyboard/StoryboardHeader.tsx | 90 + .../storyboard/StoryboardPanelList.tsx | 150 + .../storyboard/StoryboardStageShell.tsx | 41 + .../storyboard/StoryboardToolbar.tsx | 74 + .../components/storyboard/hooks/contracts.ts | 8 + .../hooks/image-generation-runtime.ts | 97 + .../hooks/panel-candidate-runtime.ts | 135 + .../hooks/panel-operations-shared.ts | 22 + .../hooks/panel-save-coordinator.ts | 137 + .../hooks/storyboard-panel-asset-utils.ts | 87 + .../hooks/storyboard-state-utils.ts | 85 + .../storyboard/hooks/useAIDataModalState.ts | 298 + .../storyboard/hooks/useImageGeneration.ts | 202 + .../storyboard/hooks/usePanelCandidates.ts | 156 + .../storyboard/hooks/usePanelCrudActions.ts | 345 + .../hooks/usePanelEpisodeCachePatch.ts | 60 + .../storyboard/hooks/usePanelImageDownload.ts | 56 + .../hooks/usePanelImageModification.ts | 128 + .../hooks/usePanelImageRegeneration.ts | 110 + .../storyboard/hooks/usePanelInsertActions.ts | 77 + .../storyboard/hooks/usePanelOperations.ts | 64 + .../storyboard/hooks/usePanelVariant.ts | 212 + .../hooks/useStoryboardAiDataRuntime.ts | 155 + .../useStoryboardBatchPanelGeneration.ts | 122 + .../hooks/useStoryboardGroupActions.ts | 130 + .../hooks/useStoryboardGroupTaskErrors.ts | 54 + .../useStoryboardInsertVariantRuntime.ts | 120 + .../hooks/useStoryboardModalRuntime.ts | 143 + .../hooks/useStoryboardPanelAssetActions.ts | 190 + .../hooks/useStoryboardStageController.ts | 209 + .../hooks/useStoryboardStageStatus.ts | 39 + .../hooks/useStoryboardStageUiState.ts | 26 + .../storyboard/hooks/useStoryboardState.ts | 226 + .../useStoryboardTaskAwareStoryboards.ts | 161 + .../components/storyboard/index.tsx | 272 + .../storyboard/modal-scroll-lock.ts | 23 + .../video-stage/VideoRenderPanel.tsx | 198 + .../video-stage/VideoStageLayout.tsx | 9 + .../video-stage/VideoStageShell.tsx | 9 + .../video-stage/VideoTimelinePanel.tsx | 75 + .../hooks/useVideoStageRuntime.tsx | 6 + .../components/video/FirstLastFramePanel.tsx | 195 + .../components/video/VideoPanelCard.tsx | 12 + .../components/video/VideoPromptModal.tsx | 102 + .../components/video/VideoToolbar.tsx | 123 + .../novel-promotion/components/video/index.ts | 5 + .../video/panel-card/VideoPanelCardBody.tsx | 290 + .../video/panel-card/VideoPanelCardFooter.tsx | 61 + .../video/panel-card/VideoPanelCardHeader.tsx | 176 + .../video/panel-card/VideoPanelCardLayout.tsx | 23 + .../video/panel-card/VideoPanelCardShell.tsx | 3 + .../panel-card/hooks/useVideoPanelActions.tsx | 8 + .../runtime/hooks/usePanelLipSync.ts | 57 + .../runtime/hooks/usePanelPlayer.ts | 57 + .../runtime/hooks/usePanelPromptEditor.ts | 41 + .../runtime/hooks/usePanelTaskStatus.ts | 93 + .../runtime/hooks/usePanelVideoModel.ts | 202 + .../runtime/hooks/usePanelVoiceManager.ts | 162 + .../video/panel-card/runtime/shared.ts | 10 + .../runtime/videoPanelRuntimeCore.tsx | 164 + .../components/video/panel-card/types.ts | 64 + .../novel-promotion/components/video/types.ts | 127 + .../voice-stage/VoiceControlPanel.tsx | 230 + .../components/voice-stage/VoiceLineList.tsx | 67 + .../voice-stage/VoiceStageLayout.tsx | 9 + .../voice-stage/VoiceStageShell.tsx | 9 + .../hooks/useVoiceStageRuntime.tsx | 6 + .../components/voice/EmbeddedVoiceToolbar.tsx | 131 + .../components/voice/EmotionSettingsPanel.tsx | 97 + .../components/voice/EmptyVoiceState.tsx | 52 + .../voice/SpeakerVoiceBindingDialog.tsx | 194 + .../components/voice/SpeakerVoiceStatus.tsx | 134 + .../components/voice/VoiceDesignDialog.tsx | 44 + .../components/voice/VoiceLineCard.tsx | 233 + .../components/voice/VoiceToolbar.tsx | 108 + .../useNovelPromotionWorkspaceController.ts | 252 + .../hooks/useRebuildConfirm.ts | 172 + .../hooks/useWorkspaceAssetLibraryShell.ts | 97 + .../hooks/useWorkspaceAutoRun.ts | 68 + .../hooks/useWorkspaceConfigActions.ts | 61 + .../hooks/useWorkspaceEpisodeStageData.ts | 25 + .../hooks/useWorkspaceExecution.ts | 357 + .../hooks/useWorkspaceModalEscape.ts | 40 + .../hooks/useWorkspaceProjectSnapshot.ts | 51 + .../hooks/useWorkspaceStageNavigation.ts | 59 + .../hooks/useWorkspaceStageRuntime.ts | 144 + .../hooks/useWorkspaceUserModels.ts | 46 + .../hooks/useWorkspaceVideoActions.ts | 147 + .../hooks/workspace-controller-view-model.ts | 161 + .../modes/novel-promotion/types.ts | 36 + .../[locale]/workspace/[projectId]/page.tsx | 538 + .../asset-hub/components/AddLocationModal.tsx | 228 + .../asset-hub/components/AssetGrid.tsx | 459 + .../asset-hub/components/CharacterCard.tsx | 520 + .../components/CharacterEditModal.tsx | 306 + .../asset-hub/components/FolderModal.tsx | 87 + .../asset-hub/components/FolderSidebar.tsx | 126 + .../asset-hub/components/LocationCard.tsx | 489 + .../components/LocationEditModal.tsx | 292 + .../asset-hub/components/VoiceCard.tsx | 152 + .../components/VoiceCreationModal.tsx | 9 + .../components/VoiceDesignDialog.tsx | 42 + .../components/VoicePickerDialog.tsx | 223 + .../asset-hub/components/VoiceSettings.tsx | 192 + .../voice-creation/VoiceCreationForm.tsx | 66 + .../VoiceCreationModalLayout.tsx | 25 + .../VoiceCreationModalShell.tsx | 9 + .../voice-creation/VoicePreviewSection.tsx | 170 + .../voice-creation/hooks/useVoiceCreation.tsx | 339 + src/app/[locale]/workspace/asset-hub/page.tsx | 661 + src/app/[locale]/workspace/page.tsx | 766 + src/app/api/admin/download-logs/route.ts | 28 + .../asset-hub/ai-design-character/route.ts | 51 + .../api/asset-hub/ai-design-location/route.ts | 51 + .../asset-hub/ai-modify-character/route.ts | 45 + .../api/asset-hub/ai-modify-location/route.ts | 50 + src/app/api/asset-hub/ai-modify-prop/route.ts | 58 + src/app/api/asset-hub/appearances/route.ts | 206 + .../api/asset-hub/character-voice/route.ts | 165 + .../appearances/[appearanceIndex]/route.ts | 185 + .../characters/[characterId]/route.ts | 126 + src/app/api/asset-hub/characters/route.ts | 164 + .../api/asset-hub/folders/[folderId]/route.ts | 80 + src/app/api/asset-hub/folders/route.ts | 43 + src/app/api/asset-hub/generate-image/route.ts | 32 + .../asset-hub/locations/[locationId]/route.ts | 102 + src/app/api/asset-hub/locations/route.ts | 106 + src/app/api/asset-hub/modify-image/route.ts | 32 + src/app/api/asset-hub/picker/route.ts | 130 + .../asset-hub/reference-to-character/route.ts | 53 + src/app/api/asset-hub/select-image/route.ts | 31 + src/app/api/asset-hub/undo-image/route.ts | 31 + .../api/asset-hub/update-asset-label/route.ts | 31 + src/app/api/asset-hub/upload-image/route.ts | 189 + src/app/api/asset-hub/upload-temp/route.ts | 55 + src/app/api/asset-hub/voice-design/route.ts | 63 + src/app/api/asset-hub/voices/[id]/route.ts | 72 + src/app/api/asset-hub/voices/route.ts | 89 + src/app/api/asset-hub/voices/upload/route.ts | 83 + src/app/api/assets/[assetId]/copy/route.ts | 34 + .../api/assets/[assetId]/generate/route.ts | 52 + .../assets/[assetId]/modify-render/route.ts | 52 + .../assets/[assetId]/revert-render/route.ts | 50 + src/app/api/assets/[assetId]/route.ts | 109 + .../assets/[assetId]/select-render/route.ts | 50 + .../assets/[assetId]/update-label/route.ts | 49 + .../[assetId]/variants/[variantId]/route.ts | 54 + src/app/api/assets/route.ts | 100 + src/app/api/auth/[...nextauth]/route.ts | 50 + src/app/api/auth/register/route.ts | 87 + src/app/api/cos/image/route.ts | 15 + src/app/api/files/[...path]/route.ts | 82 + .../[projectId]/ai-create-character/route.ts | 52 + .../[projectId]/ai-create-location/route.ts | 52 + .../[projectId]/ai-modify-appearance/route.ts | 39 + .../[projectId]/ai-modify-location/route.ts | 42 + .../[projectId]/ai-modify-prop/route.ts | 70 + .../ai-modify-shot-prompt/route.ts | 39 + .../[projectId]/analyze-global/route.ts | 33 + .../analyze-shot-variants/route.ts | 37 + .../[projectId]/analyze/route.ts | 40 + .../[projectId]/assets/route.ts | 62 + .../character-profile/batch-confirm/route.ts | 34 + .../character-profile/confirm/route.ts | 40 + .../[projectId]/character-voice/route.ts | 156 + .../[projectId]/character/appearance/route.ts | 258 + .../character/confirm-selection/route.ts | 115 + .../[projectId]/character/route.ts | 228 + .../cleanup-unselected-images/route.ts | 109 + .../[projectId]/clips/[clipId]/route.ts | 50 + .../[projectId]/clips/route.ts | 48 + .../[projectId]/copy-from-global/route.ts | 42 + .../[projectId]/download-images/route.ts | 218 + .../[projectId]/download-videos/route.ts | 250 + .../[projectId]/download-voices/route.ts | 123 + .../[projectId]/editor/route.ts | 123 + .../[projectId]/episodes/[episodeId]/route.ts | 134 + .../[projectId]/episodes/batch/route.ts | 104 + .../[projectId]/episodes/route.ts | 79 + .../episodes/split-by-markers/route.ts | 83 + .../[projectId]/episodes/split/route.ts | 42 + .../generate-character-image/route.ts | 89 + .../[projectId]/generate-image/route.ts | 37 + .../[projectId]/generate-video/route.ts | 282 + .../[projectId]/insert-panel/route.ts | 53 + .../[projectId]/lip-sync/route.ts | 85 + .../location/confirm-selection/route.ts | 112 + .../[projectId]/location/route.ts | 161 + .../[projectId]/modify-asset-image/route.ts | 43 + .../modify-storyboard-image/route.ts | 132 + .../[projectId]/panel-link/route.ts | 38 + .../[projectId]/panel-variant/route.ts | 217 + .../[projectId]/panel/route.ts | 452 + .../panel/select-candidate/route.ts | 135 + .../[projectId]/photography-plan/route.ts | 48 + .../reference-to-character/route.ts | 58 + .../[projectId]/regenerate-group/route.ts | 108 + .../regenerate-panel-image/route.ts | 78 + .../regenerate-single-image/route.ts | 93 + .../regenerate-storyboard-text/route.ts | 45 + .../api/novel-promotion/[projectId]/route.ts | 345 + .../screenplay-conversion/route.ts | 46 + .../script-to-storyboard-stream/route.ts | 46 + .../select-character-image/route.ts | 40 + .../select-location-image/route.ts | 38 + .../[projectId]/speaker-voice/route.ts | 169 + .../story-to-script-stream/route.ts | 50 + .../[projectId]/storyboard-group/route.ts | 252 + .../[projectId]/storyboards/route.ts | 69 + .../[projectId]/undo-regenerate/route.ts | 36 + .../[projectId]/update-appearance/route.ts | 60 + .../[projectId]/update-asset-label/route.ts | 40 + .../[projectId]/update-location/route.ts | 42 + .../[projectId]/update-prompt/route.ts | 30 + .../[projectId]/upload-asset-image/route.ts | 231 + .../[projectId]/video-proxy/route.ts | 56 + .../[projectId]/video-urls/route.ts | 188 + .../[projectId]/voice-analyze/route.ts | 46 + .../[projectId]/voice-design/route.ts | 68 + .../[projectId]/voice-generate/route.ts | 292 + .../[projectId]/voice-lines/route.ts | 404 + .../api/projects/[projectId]/assets/route.ts | 70 + .../api/projects/[projectId]/costs/route.ts | 46 + .../api/projects/[projectId]/data/route.ts | 92 + src/app/api/projects/[projectId]/route.ts | 262 + src/app/api/projects/route.ts | 244 + src/app/api/runs/[runId]/cancel/route.ts | 55 + src/app/api/runs/[runId]/events/route.ts | 31 + src/app/api/runs/[runId]/route.ts | 22 + .../[runId]/steps/[stepKey]/retry/route.ts | 131 + src/app/api/runs/route.ts | 122 + src/app/api/sse/route.ts | 206 + src/app/api/storage/sign/route.ts | 21 + src/app/api/system/boot-id/route.ts | 10 + src/app/api/task-target-states/route.ts | 71 + src/app/api/tasks/[taskId]/route.ts | 88 + src/app/api/tasks/dismiss/route.ts | 25 + src/app/api/tasks/route.ts | 42 + src/app/api/user-preference/route.ts | 93 + src/app/api/user/ai-story-expand/route.ts | 48 + .../assistant/probe-media-template/route.ts | 73 + .../validate-media-template/route.ts | 51 + .../probe-model-llm-protocol/route.ts | 53 + src/app/api/user/api-config/route.ts | 1908 ++ .../user/api-config/test-connection/route.ts | 18 + .../user/api-config/test-provider/route.ts | 17 + src/app/api/user/assistant/chat/route.ts | 85 + src/app/api/user/balance/route.ts | 26 + src/app/api/user/costs/details/route.ts | 28 + src/app/api/user/costs/route.ts | 46 + src/app/api/user/models/route.ts | 242 + src/app/api/user/transactions/route.ts | 131 + src/app/globals.css | 522 + src/app/m/[publicId]/route.ts | 96 + src/assets/fonts/NotoSansSC-Regular.ttf | Bin 0 -> 10540400 bytes src/components/ConfirmDialog.tsx | 107 + src/components/LanguageSwitcher.tsx | 139 + src/components/Navbar.tsx | 174 + src/components/ProgressToast.tsx | 71 + src/components/UpdateNoticeModal.tsx | 114 + src/components/ai-elements/conversation.tsx | 153 + src/components/ai-elements/message.tsx | 53 + src/components/ai-elements/reasoning.tsx | 121 + src/components/ai-elements/tool.tsx | 153 + .../assistant/AssistantChatModal.tsx | 527 + src/components/assistant/useAssistantChat.ts | 222 + .../auth/PasswordStrengthIndicator.tsx | 127 + src/components/home/AiWriteModal.tsx | 126 + src/components/home/TypewriterHero.tsx | 106 + .../ImageGenerationInlineCountButton.tsx | 161 + .../ImageGenerationSlotOverlay.tsx | 16 + .../llm-console/LLMStageStreamCard.tsx | 511 + src/components/llm-console/index.ts | 2 + src/components/media/MediaImage.tsx | 84 + .../media/MediaImageWithLoading.tsx | 91 + src/components/providers/QueryProvider.tsx | 16 + .../selectors/RatioStyleSelectors.tsx | 377 + .../assets/AiModifyDescriptionField.tsx | 138 + .../shared/assets/CharacterCreationModal.tsx | 278 + .../shared/assets/CharacterEditModal.tsx | 372 + .../shared/assets/GlobalAssetPicker.tsx | 558 + .../shared/assets/LocationCreationModal.tsx | 413 + .../shared/assets/LocationEditModal.tsx | 320 + .../shared/assets/PropCreationModal.tsx | 179 + .../shared/assets/PropEditModal.tsx | 233 + .../CharacterCreationForm.tsx | 291 + .../CharacterCreationPreview.tsx | 81 + .../hooks/useCharacterCreationSubmit.ts | 377 + src/components/shared/assets/index.ts | 12 + .../story-input/LongTextDetectionPrompt.tsx | 124 + .../story-input/StoryInputComposer.tsx | 172 + src/components/task/TaskStatusInline.tsx | 30 + src/components/task/TaskStatusOverlay.tsx | 34 + src/components/ui/CapsuleNav.tsx | 387 + src/components/ui/ConfigModals.tsx | 3 + src/components/ui/ImagePreviewModal.tsx | 77 + src/components/ui/SegmentedControl.tsx | 85 + src/components/ui/SharedComponents.tsx | 75 + src/components/ui/ai-edit-style.ts | 3 + .../ui/config-modals/ConfigConfirmModal.tsx | 61 + .../ui/config-modals/ConfigDeleteModal.tsx | 41 + .../ui/config-modals/ConfigEditModal.tsx | 513 + .../config-modals/ModelCapabilityDropdown.tsx | 453 + .../ui/config-modals/WorldContextModal.tsx | 107 + .../config-modals/config-modal-selectors.tsx | 164 + src/components/ui/icons/AISparklesIcon.tsx | 22 + src/components/ui/icons/AppIcon.tsx | 14 + src/components/ui/icons/RatioPreviewIcon.tsx | 54 + src/components/ui/icons/custom.tsx | 732 + src/components/ui/icons/index.ts | 5 + src/components/ui/icons/registry.ts | 191 + .../ui/model-dropdown-innovative.tsx | 587 + src/components/ui/model-dropdown-ios.tsx | 366 + src/components/ui/model-dropdown-variants.tsx | 542 + src/components/ui/patterns/PanelCardV2.tsx | 183 + .../ui/patterns/PanelEditFormV2.tsx | 168 + .../ui/patterns/StoryboardHeaderV2.tsx | 79 + src/components/ui/patterns/index.ts | 10 + src/components/ui/patterns/types.ts | 1 + src/components/ui/primitives/GlassButton.tsx | 66 + src/components/ui/primitives/GlassChip.tsx | 42 + src/components/ui/primitives/GlassField.tsx | 49 + src/components/ui/primitives/GlassInput.tsx | 28 + .../ui/primitives/GlassModalShell.tsx | 101 + src/components/ui/primitives/GlassSurface.tsx | 46 + .../ui/primitives/GlassTextarea.tsx | 28 + src/components/ui/primitives/index.ts | 20 + src/components/ui/select-variants.tsx | 449 + .../voice/VoiceDesignDialogBase.tsx | 244 + .../voice/VoiceDesignGeneratorSection.tsx | 225 + src/components/voice/voice-design-shared.ts | 83 + src/contexts/ToastContext.tsx | 226 + .../components/Preview/RemotionPreview.tsx | 160 + .../video-editor/components/Preview/index.ts | 1 + .../components/Timeline/Timeline.tsx | 378 + .../video-editor/components/Timeline/index.ts | 1 + .../components/TransitionPicker.tsx | 124 + .../components/VideoEditorStage.tsx | 295 + .../video-editor/hooks/useEditorActions.ts | 156 + .../video-editor/hooks/useEditorState.ts | 175 + src/features/video-editor/index.ts | 42 + .../remotion/VideoComposition.tsx | 236 + .../remotion/transitions/index.tsx | 115 + .../video-editor/types/editor.types.ts | 140 + src/features/video-editor/utils/migration.ts | 47 + src/features/video-editor/utils/time-utils.ts | 94 + src/hooks/common/useCandidateSystem.ts | 151 + src/hooks/common/useGithubReleaseUpdate.ts | 147 + src/i18n.ts | 124 + src/i18n/navigation.ts | 4 + src/i18n/routing.ts | 17 + src/instrumentation.ts | 213 + src/lib/ai-runtime/client.ts | 112 + src/lib/ai-runtime/errors.ts | 86 + src/lib/ai-runtime/index.ts | 10 + src/lib/ai-runtime/types.ts | 77 + src/lib/api-auth.ts | 354 + src/lib/api-config.ts | 508 + src/lib/api-errors.ts | 570 + src/lib/api-fetch.ts | 52 + src/lib/api/read-error-message.ts | 22 + src/lib/app-meta.ts | 16 + src/lib/ark-api.ts | 597 + src/lib/ark-llm.ts | 339 + src/lib/asset-utils/ai-design.ts | 139 + src/lib/asset-utils/index.ts | 6 + src/lib/assets/contracts.ts | 144 + src/lib/assets/description-fields.ts | 42 + src/lib/assets/grouping.ts | 49 + src/lib/assets/kinds/registry.ts | 88 + src/lib/assets/mappers.ts | 457 + src/lib/assets/prop-description.ts | 27 + src/lib/assets/services/asset-actions.ts | 1201 + src/lib/assets/services/asset-label.ts | 113 + .../assets/services/asset-prompt-context.ts | 174 + .../assets/services/location-backed-assets.ts | 339 + .../project-location-backed-selection.ts | 75 + src/lib/assets/services/read-assets.ts | 131 + src/lib/assistant-platform/errors.ts | 17 + src/lib/assistant-platform/index.ts | 10 + src/lib/assistant-platform/registry.ts | 16 + src/lib/assistant-platform/runtime.ts | 130 + .../skills/api-config-template.ts | 249 + src/lib/assistant-platform/skills/tutorial.ts | 13 + src/lib/assistant-platform/system-prompts.ts | 46 + src/lib/assistant-platform/types.ts | 58 + src/lib/async-poll.ts | 982 + src/lib/async-submit.ts | 335 + src/lib/async-task-utils.ts | 354 + src/lib/async/map-with-concurrency.ts | 26 + src/lib/auth.ts | 78 + src/lib/billing/cost.ts | 741 + src/lib/billing/currency.ts | 4 + src/lib/billing/errors.ts | 48 + src/lib/billing/index.ts | 19 + src/lib/billing/ledger.ts | 528 + src/lib/billing/mode.ts | 22 + src/lib/billing/money.ts | 32 + src/lib/billing/reporting.ts | 257 + src/lib/billing/runtime-usage.ts | 36 + src/lib/billing/service.ts | 1080 + src/lib/billing/task-policy.ts | 310 + src/lib/billing/types.ts | 32 + src/lib/config-service.ts | 345 + src/lib/constants.ts | 273 + src/lib/contracts/image-urls-contract.test.ts | 34 + src/lib/contracts/image-urls-contract.ts | 40 + src/lib/crypto-utils.ts | 194 + src/lib/env.ts | 37 + src/lib/episode-marker-detector.ts | 342 + src/lib/error-handler.ts | 97 + src/lib/error-utils.ts | 85 + src/lib/errors/codes.ts | 204 + src/lib/errors/display.ts | 62 + src/lib/errors/extract.ts | 18 + src/lib/errors/normalize.ts | 339 + src/lib/errors/types.ts | 16 + src/lib/errors/user-messages.ts | 32 + src/lib/fonts.ts | 147 + src/lib/gemini-batch-utils.ts | 262 + src/lib/generator-api.ts | 338 + src/lib/generators/ark.ts | 564 + src/lib/generators/audio/bailian.ts | 50 + src/lib/generators/audio/index.ts | 5 + src/lib/generators/base.ts | 171 + src/lib/generators/factory.ts | 117 + src/lib/generators/fal.ts | 314 + src/lib/generators/image/gemini-compatible.ts | 146 + src/lib/generators/image/google.ts | 285 + src/lib/generators/image/index.ts | 17 + src/lib/generators/image/openai-compatible.ts | 26 + src/lib/generators/minimax.ts | 319 + src/lib/generators/official.ts | 127 + src/lib/generators/resolution-adapter.ts | 164 + src/lib/generators/video/google.ts | 136 + src/lib/generators/video/index.ts | 13 + src/lib/generators/video/openai-compatible.ts | 24 + src/lib/generators/vidu.ts | 680 + src/lib/home/ai-story-expand.ts | 41 + src/lib/home/create-project-launch.ts | 137 + src/lib/home/default-route.ts | 11 + src/lib/image-cache.ts | 253 + src/lib/image-generation/count-preference.ts | 34 + src/lib/image-generation/count.ts | 83 + src/lib/image-generation/location-slots.ts | 55 + src/lib/image-generation/slot-state.ts | 78 + .../use-image-generation-count.ts | 23 + src/lib/image-label.ts | 157 + src/lib/json-repair.ts | 119 + src/lib/lipsync/index.ts | 83 + src/lib/lipsync/preprocess.ts | 407 + src/lib/lipsync/providers/bailian.ts | 332 + src/lib/lipsync/providers/fal.ts | 33 + src/lib/lipsync/providers/vidu.ts | 111 + src/lib/lipsync/types.ts | 20 + src/lib/llm-client.ts | 9 + src/lib/llm-observe/config.ts | 43 + .../llm-observe/internal-stream-context.ts | 41 + src/lib/llm-observe/internal-task.ts | 18 + src/lib/llm-observe/route-task.ts | 156 + src/lib/llm-observe/stage-pipeline.ts | 158 + src/lib/llm-observe/task-policy.ts | 74 + src/lib/llm-observe/types.ts | 34 + src/lib/llm/chat-completion.ts | 522 + src/lib/llm/chat-stream.ts | 874 + src/lib/llm/completion-parts.ts | 32 + src/lib/llm/index.ts | 23 + src/lib/llm/providers/ark.ts | 1 + src/lib/llm/providers/google.ts | 109 + src/lib/llm/providers/openai-compat.ts | 32 + src/lib/llm/reasoning-capability.ts | 32 + src/lib/llm/runtime-shared.ts | 158 + src/lib/llm/runtime.ts | 10 + src/lib/llm/stream-helpers.ts | 73 + src/lib/llm/stream-timeout.ts | 44 + src/lib/llm/types.ts | 39 + src/lib/llm/utils.ts | 148 + src/lib/llm/vision.ts | 334 + src/lib/location-available-slots.ts | 45 + src/lib/location-image-prompt.ts | 32 + src/lib/logging/config.ts | 41 + src/lib/logging/context.ts | 72 + src/lib/logging/core.ts | 302 + src/lib/logging/file-writer.ts | 393 + src/lib/logging/redact.ts | 35 + src/lib/logging/semantic.ts | 236 + src/lib/logging/types.ts | 45 + src/lib/media-process.ts | 57 + src/lib/media/attach.ts | 243 + src/lib/media/hash.ts | 9 + src/lib/media/image-url.test.ts | 23 + src/lib/media/image-url.ts | 89 + src/lib/media/outbound-image.test.ts | 203 + src/lib/media/outbound-image.ts | 528 + src/lib/media/service.ts | 223 + src/lib/media/types.ts | 13 + .../migrations/gateway-route-openai-compat.ts | 170 + src/lib/model-capabilities/catalog.ts | 223 + src/lib/model-capabilities/lookup.ts | 351 + src/lib/model-capabilities/video-effective.ts | 261 + .../model-capabilities/video-model-options.ts | 25 + src/lib/model-config-contract.ts | 515 + src/lib/model-gateway/index.ts | 20 + src/lib/model-gateway/llm.ts | 39 + src/lib/model-gateway/openai-compat/chat.ts | 87 + src/lib/model-gateway/openai-compat/common.ts | 73 + src/lib/model-gateway/openai-compat/image.ts | 233 + src/lib/model-gateway/openai-compat/index.ts | 6 + .../model-gateway/openai-compat/responses.ts | 136 + .../openai-compat/template-image.ts | 137 + .../openai-compat/template-video.ts | 124 + src/lib/model-gateway/openai-compat/video.ts | 190 + src/lib/model-gateway/router.ts | 21 + src/lib/model-gateway/types.ts | 45 + src/lib/model-pricing/catalog.ts | 267 + src/lib/model-pricing/lookup.ts | 142 + src/lib/model-pricing/version.ts | 5 + src/lib/model-pricing/video-tier.ts | 45 + .../insert-panel-prompt-context.ts | 46 + src/lib/novel-promotion/insert-panel.ts | 24 + src/lib/novel-promotion/panel-ai-data-sync.ts | 154 + src/lib/novel-promotion/run-stream/types.ts | 38 + .../script-to-storyboard/orchestrator.ts | 508 + src/lib/novel-promotion/stage-readiness.ts | 74 + .../stages/contracts/video-stage-contract.ts | 3 + .../stages/contracts/voice-stage-contract.ts | 3 + .../stages/video-stage-runtime-core.tsx | 641 + .../immediate-video-submission.ts | 42 + .../video-stage-runtime/task-targets.ts | 71 + .../stages/video-stage-runtime/types.ts | 65 + .../useVideoDownloadAll.ts | 115 + .../useVideoFirstLastFrameFlow.ts | 266 + .../useVideoPanelLinking.ts | 106 + .../useVideoPanelViewport.ts | 30 + .../useVideoPanelsProjection.ts | 112 + .../useVideoPromptState.ts | 154 + .../useVideoStageUiState.ts | 31 + .../video-stage-runtime/useVideoTaskStates.ts | 31 + .../video-stage-runtime/useVideoVoiceLines.ts | 92 + .../stages/video-stage-runtime/utils.ts | 7 + .../stages/voice-stage-runtime-core.tsx | 331 + .../stages/voice-stage-runtime/types.ts | 75 + .../useBindablePanelOptions.ts | 54 + .../useSpeakerAssetNavigation.ts | 58 + .../useVoiceGenerationActions.ts | 315 + .../useVoiceLineBindings.ts | 58 + .../useVoiceLineCrudActions.ts | 197 + .../useVoiceLineEditorState.ts | 79 + .../voice-stage-runtime/useVoicePlayback.ts | 55 + .../useVoiceRuntimeSync.ts | 201 + .../useVoiceSpeakerState.ts | 96 + .../useVoiceStageDataLoader.ts | 67 + .../voice-stage-runtime/useVoiceTaskState.ts | 75 + .../stages/voice-stage-runtime/utils.ts | 11 + .../story-to-script/clip-matching.ts | 444 + .../story-to-script/orchestrator.ts | 596 + .../novel-promotion/story-to-script/types.ts | 13 + src/lib/openai-compat-media-template.ts | 65 + src/lib/openai-compat-template-runtime.ts | 484 + src/lib/prisma-error.ts | 53 + src/lib/prisma-retry.ts | 50 + src/lib/prisma.ts | 8 + src/lib/projects/default-name.ts | 11 + src/lib/projects/validation.ts | 82 + src/lib/prompt-i18n/build-prompt.ts | 98 + src/lib/prompt-i18n/catalog.ts | 156 + src/lib/prompt-i18n/errors.ts | 28 + src/lib/prompt-i18n/index.ts | 11 + src/lib/prompt-i18n/prompt-ids.ts | 34 + src/lib/prompt-i18n/template-store.ts | 43 + src/lib/prompt-i18n/types.ts | 17 + src/lib/prop-image-prompt.ts | 5 + src/lib/providers/bailian/audio.ts | 60 + src/lib/providers/bailian/catalog.ts | 39 + src/lib/providers/bailian/image.ts | 27 + src/lib/providers/bailian/index.ts | 37 + src/lib/providers/bailian/llm.ts | 44 + src/lib/providers/bailian/probe.ts | 59 + src/lib/providers/bailian/tts.ts | 370 + src/lib/providers/bailian/types.ts | 25 + src/lib/providers/bailian/video.ts | 226 + src/lib/providers/bailian/voice-cleanup.ts | 249 + src/lib/providers/bailian/voice-design.ts | 127 + src/lib/providers/bailian/voice-manage.ts | 66 + src/lib/providers/fal/base-url.ts | 16 + src/lib/providers/official/model-registry.ts | 47 + src/lib/providers/siliconflow/audio.ts | 28 + src/lib/providers/siliconflow/catalog.ts | 26 + src/lib/providers/siliconflow/image.ts | 27 + src/lib/providers/siliconflow/index.ts | 12 + src/lib/providers/siliconflow/llm.ts | 31 + src/lib/providers/siliconflow/probe.ts | 95 + src/lib/providers/siliconflow/types.ts | 25 + src/lib/providers/siliconflow/video.ts | 27 + src/lib/query/client.ts | 36 + src/lib/query/hooks/index.ts | 233 + .../query/hooks/run-stream/event-parser.ts | 347 + .../run-stream/recovered-run-subscription.ts | 211 + .../query/hooks/run-stream/recovery-probe.ts | 90 + .../hooks/run-stream/run-event-adapter.ts | 295 + .../hooks/run-stream/run-request-executor.ts | 255 + .../hooks/run-stream/run-stream-sse-body.ts | 79 + .../run-stream/run-stream-state-runtime.ts | 293 + .../query/hooks/run-stream/run-stream-view.ts | 124 + .../query/hooks/run-stream/state-machine.ts | 586 + src/lib/query/hooks/run-stream/types.ts | 92 + src/lib/query/hooks/useAssets.ts | 495 + src/lib/query/hooks/useGlobalAssets.ts | 338 + src/lib/query/hooks/useProjectAssets.ts | 177 + src/lib/query/hooks/useProjectData.ts | 146 + src/lib/query/hooks/useRunStreamState.ts | 1 + src/lib/query/hooks/useSSE.ts | 229 + .../hooks/useScriptToStoryboardRunStream.ts | 86 + .../query/hooks/useStoryToScriptRunStream.ts | 91 + src/lib/query/hooks/useStoryboards.ts | 381 + src/lib/query/hooks/useTaskPresentation.ts | 144 + src/lib/query/hooks/useTaskStatus.ts | 210 + src/lib/query/hooks/useTaskTargetStateMap.ts | 440 + src/lib/query/hooks/useUserModels.ts | 44 + src/lib/query/hooks/useVoiceLines.ts | 188 + src/lib/query/keys.ts | 118 + .../asset-hub-character-mutations.ts | 376 + .../mutations/asset-hub-creation-mutations.ts | 127 + .../mutations/asset-hub-location-mutations.ts | 314 + .../mutations/asset-hub-mutations-runtime.ts | 5 + .../mutations/asset-hub-mutations-shared.ts | 17 + .../mutations/asset-hub-update-mutations.ts | 218 + .../mutations/asset-hub-voice-mutations.ts | 119 + .../mutations/character-base-mutations.ts | 405 + .../character-image-ops-mutations.ts | 243 + .../mutations/character-profile-mutations.ts | 281 + .../mutations/character-voice-mutations.ts | 91 + src/lib/query/mutations/index.ts | 46 + .../mutations/location-image-mutations.ts | 400 + .../location-management-mutations.ts | 372 + src/lib/query/mutations/mutation-shared.ts | 89 + .../mutations/storyboard-panel-mutations.ts | 326 + .../mutations/storyboard-prompt-mutations.ts | 154 + src/lib/query/mutations/task-mutations.ts | 26 + .../query/mutations/useAssetHubMutations.ts | 1 + .../mutations/useCharacterMutations.core.ts | 4 + .../query/mutations/useCharacterMutations.ts | 1 + .../query/mutations/useEpisodeMutations.ts | 257 + .../mutations/useLocationMutations.core.ts | 2 + .../query/mutations/useLocationMutations.ts | 1 + .../mutations/useProjectConfigMutations.ts | 183 + .../query/mutations/useProjectMutations.ts | 7 + .../mutations/useStoryboardMutations.core.ts | 2 + .../query/mutations/useStoryboardMutations.ts | 1 + src/lib/query/mutations/useVideoMutations.ts | 85 + src/lib/query/mutations/useVoiceMutations.ts | 245 + src/lib/query/task-target-overlay.ts | 196 + src/lib/rate-limit.ts | 145 + src/lib/redis.ts | 75 + src/lib/run-runtime/publisher.ts | 30 + src/lib/run-runtime/reconcile.ts | 305 + src/lib/run-runtime/recovery.ts | 85 + src/lib/run-runtime/service.ts | 1199 + src/lib/run-runtime/task-bridge.ts | 184 + src/lib/run-runtime/types.ts | 100 + src/lib/run-runtime/workflow-lease.ts | 72 + src/lib/run-runtime/workflow.ts | 12 + src/lib/server-boot.ts | 6 + src/lib/srt.ts | 123 + src/lib/sse/shared-subscriber.ts | 81 + src/lib/storage/bootstrap.ts | 74 + src/lib/storage/errors.ts | 13 + src/lib/storage/factory.ts | 26 + src/lib/storage/index.ts | 141 + src/lib/storage/init.ts | 24 + src/lib/storage/providers/cos.ts | 42 + src/lib/storage/providers/local.ts | 86 + src/lib/storage/providers/minio.ts | 170 + src/lib/storage/signed-urls.ts | 217 + src/lib/storage/types.ts | 37 + src/lib/storage/utils.ts | 82 + src/lib/storyboard-phases.ts | 704 + src/lib/style-presets.ts | 25 + src/lib/task/client.ts | 86 + src/lib/task/error-message.ts | 106 + src/lib/task/errors.ts | 9 + src/lib/task/has-output.ts | 261 + src/lib/task/intent.ts | 82 + src/lib/task/presentation.ts | 65 + src/lib/task/progress-message.ts | 120 + src/lib/task/publisher.ts | 390 + src/lib/task/queues.ts | 111 + src/lib/task/reconcile.ts | 279 + src/lib/task/resolve-locale.ts | 61 + src/lib/task/service.ts | 636 + src/lib/task/state-service.ts | 287 + src/lib/task/submitter.ts | 410 + src/lib/task/types.ts | 158 + src/lib/task/ui-payload.ts | 19 + src/lib/ui/textarea-height.ts | 15 + src/lib/update-check.ts | 206 + src/lib/user-api/llm-test-connection.ts | 226 + src/lib/user-api/model-llm-protocol-probe.ts | 301 + src/lib/user-api/model-template/index.ts | 6 + src/lib/user-api/model-template/probe.ts | 174 + src/lib/user-api/model-template/save.ts | 166 + src/lib/user-api/model-template/schema.ts | 512 + src/lib/user-api/model-template/validator.ts | 69 + src/lib/user-api/provider-test.ts | 898 + src/lib/voice/generate-voice-line.ts | 293 + src/lib/voice/provider-voice-binding.ts | 231 + src/lib/word-count.ts | 55 + src/lib/workers/handlers/ai-story-expand.ts | 79 + .../workers/handlers/analyze-global-parse.ts | 108 + .../handlers/analyze-global-persist.ts | 239 + .../workers/handlers/analyze-global-prompt.ts | 40 + src/lib/workers/handlers/analyze-global.ts | 231 + src/lib/workers/handlers/analyze-novel.ts | 392 + .../workers/handlers/asset-hub-ai-design.ts | 73 + .../workers/handlers/asset-hub-ai-modify.ts | 140 + .../handlers/asset-hub-image-task-handler.ts | 183 + .../handlers/asset-hub-modify-task-handler.ts | 277 + .../handlers/character-image-task-handler.ts | 195 + .../handlers/character-profile-helpers.ts | 39 + src/lib/workers/handlers/character-profile.ts | 265 + src/lib/workers/handlers/clips-build.ts | 283 + src/lib/workers/handlers/episode-split.ts | 256 + .../handlers/image-task-handler-shared.ts | 264 + .../handlers/image-task-handlers-core.ts | 370 + .../workers/handlers/image-task-handlers.ts | 7 + src/lib/workers/handlers/llm-proxy.ts | 118 + src/lib/workers/handlers/llm-stream.ts | 274 + .../handlers/location-image-task-handler.ts | 190 + .../modify-asset-image-task-handler.ts | 1 + .../handlers/modify-description-sync.ts | 132 + .../handlers/panel-image-task-handler.ts | 289 + .../handlers/panel-variant-task-handler.ts | 294 + .../reference-to-character-helpers.ts | 25 + .../handlers/reference-to-character.ts | 303 + .../handlers/resolve-analysis-model.ts | 34 + .../handlers/screenplay-convert-helpers.ts | 16 + .../workers/handlers/screenplay-convert.ts | 257 + .../script-to-storyboard-atomic-retry.ts | 538 + .../handlers/script-to-storyboard-helpers.ts | 441 + .../workers/handlers/script-to-storyboard.ts | 564 + src/lib/workers/handlers/shot-ai-persist.ts | 83 + .../handlers/shot-ai-prompt-appearance.ts | 61 + .../handlers/shot-ai-prompt-location.ts | 80 + .../workers/handlers/shot-ai-prompt-prop.ts | 65 + .../handlers/shot-ai-prompt-runtime.ts | 43 + .../workers/handlers/shot-ai-prompt-shot.ts | 78 + .../workers/handlers/shot-ai-prompt-utils.ts | 43 + src/lib/workers/handlers/shot-ai-prompt.ts | 5 + src/lib/workers/handlers/shot-ai-tasks.ts | 28 + src/lib/workers/handlers/shot-ai-variants.ts | 145 + .../handlers/story-to-script-helpers.ts | 277 + src/lib/workers/handlers/story-to-script.ts | 609 + .../workers/handlers/voice-analyze-helpers.ts | 94 + src/lib/workers/handlers/voice-analyze.ts | 345 + src/lib/workers/handlers/voice-design.ts | 78 + src/lib/workers/image.worker.ts | 67 + src/lib/workers/index.ts | 38 + src/lib/workers/shared.ts | 730 + src/lib/workers/text.worker.ts | 714 + src/lib/workers/user-concurrency-gate.ts | 69 + src/lib/workers/utils.ts | 707 + src/lib/workers/video.worker.ts | 323 + src/lib/workers/voice.worker.ts | 63 + src/lib/workflow-concurrency.ts | 42 + src/lib/workflow-engine/dependencies.ts | 9 + src/lib/workflow-engine/registry.ts | 214 + src/lib/workspace/model-setup.ts | 35 + src/middleware.ts | 27 + src/pages/_document.tsx | 13 + src/styles/animations.css | 168 + src/styles/ui-semantic-glass.css | 464 + src/styles/ui-tokens-glass.css | 95 + src/types/character-profile.ts | 88 + src/types/next-auth.d.ts | 21 + src/types/project.ts | 287 + src/types/storyboard-types.ts | 48 + standards/capabilities/catalog.example.json | 49 + .../capabilities/image-video.catalog.json | 1140 + standards/pricing/image-video.pricing.json | 6067 ++++++ .../screenplay_conversion.canary.json | 33 + .../story_to_script_clips.canary.json | 16 + .../storyboard_panels.canary.json | 31 + .../prompt-canary/voice_analysis.canary.json | 22 + .../billing/ledger.concurrency.test.ts | 125 + tests/contracts/behavior-test-standard.md | 29 + tests/contracts/requirements-matrix.test.ts | 24 + tests/contracts/requirements-matrix.ts | 159 + tests/contracts/route-behavior-matrix.ts | 51 + tests/contracts/route-catalog.ts | 250 + tests/contracts/task-type-catalog.ts | 61 + tests/contracts/tasktype-behavior-matrix.ts | 105 + tests/fixtures/billing/cases.json | 6 + tests/helpers/assertions.ts | 23 + tests/helpers/auth.ts | 132 + tests/helpers/billing-fixtures.ts | 68 + tests/helpers/db-reset.ts | 60 + tests/helpers/fakes/llm.ts | 26 + tests/helpers/fakes/media.ts | 37 + tests/helpers/fakes/providers.ts | 35 + tests/helpers/fakes/scenario-server.ts | 193 + tests/helpers/fixtures.ts | 98 + tests/helpers/mock-query-client.ts | 72 + tests/helpers/prisma.ts | 6 + tests/helpers/request.ts | 62 + tests/hidden/README.md | 8 + .../api/contract/crud-routes.test.ts | 469 + .../api/contract/direct-submit-routes.test.ts | 606 + .../api/contract/infra-routes.test.ts | 207 + .../api/contract/llm-observe-routes.test.ts | 417 + ...ovel-promotion-episode-create-text.test.ts | 67 + .../api/contract/run-cancel.route.test.ts | 96 + .../api/contract/run-step-retry.route.test.ts | 134 + .../api/contract/runs-list.route.test.ts | 84 + .../api/contract/task-infra-routes.test.ts | 466 + tests/integration/api/helpers/call-route.ts | 36 + .../asset-hub-appearances-route.test.ts | 108 + ...asset-hub-generate-image-art-style.test.ts | 163 + ...b-location-create-no-auto-generate.test.ts | 59 + .../api/specific/assets-route.test.ts | 440 + ...aracters-post-reference-forwarding.test.ts | 122 + .../api/specific/characters-post.test.ts | 61 + ...omotion-character-style-forwarding.test.ts | 89 + ...promotion-generate-image-art-style.test.ts | 129 + ...romotion-location-style-forwarding.test.ts | 118 + ...otion-project-art-style-validation.test.ts | 122 + .../api/specific/panel-variant-route.test.ts | 298 + ...project-create-default-audio-model.test.ts | 110 + .../reference-to-character-api.test.ts | 47 + .../speaker-voice-provider-contract.test.ts | 134 + ...pi-config-probe-model-llm-protocol.test.ts | 94 + .../api/specific/user-api-config-put.test.ts | 1298 ++ .../user-assistant-chat-api-config.test.ts | 123 + .../specific/user-models-audio-filter.test.ts | 71 + ...er-preference-art-style-validation.test.ts | 61 + ...voice-generate-default-audio-model.test.ts | 181 + .../billing/api-contract.integration.test.ts | 86 + .../billing/ledger.integration.test.ts | 183 + .../billing/service.integration.test.ts | 137 + .../billing/submitter.integration.test.ts | 326 + .../worker-lifecycle.integration.test.ts | 136 + tests/integration/chain/image.chain.test.ts | 182 + tests/integration/chain/text.chain.test.ts | 208 + tests/integration/chain/video.chain.test.ts | 203 + tests/integration/chain/voice.chain.test.ts | 172 + .../provider/ark-provider.contract.test.ts | 105 + .../provider/fal-provider.contract.test.ts | 154 + .../openai-compat-provider.contract.test.ts | 207 + .../reconcile-active-runs.integration.test.ts | 195 + .../retry-failed-step.integration.test.ts | 343 + .../create-task-dedupe.integration.test.ts | 150 + .../panel-variant-cross-storyboard.test.ts | 50 + tests/regression/task-dedupe-recovery.test.ts | 108 + .../task-enqueue-billing-rollback.test.ts | 68 + .../task-reusable-run-reattach.test.ts | 93 + tests/setup/env.ts | 72 + tests/setup/global-setup.ts | 99 + tests/setup/global-teardown.ts | 15 + tests/system/generate-image.system.test.ts | 142 + tests/system/generate-video.system.test.ts | 121 + tests/system/helpers/seed.ts | 184 + tests/system/helpers/tasks.ts | 53 + tests/system/helpers/workers.ts | 40 + tests/system/text-workflow.system.test.ts | 352 + tests/system/voice-generate.system.test.ts | 108 + tests/unit/ai-runtime/errors.test.ts | 34 + .../assistant-chat-modal-content.test.ts | 71 + tests/unit/api-config/minimax-preset.test.ts | 22 + .../api-config/preset-coming-soon.test.ts | 62 + ...rovider-card-assistant-saved-label.test.ts | 49 + .../provider-card-pricing-form.test.ts | 173 + .../provider-card-protocol-probe.test.ts | 83 + .../api-config/provider-card-shell.test.ts | 25 + .../provider-card-tutorial-modal.test.ts | 182 + .../api-config/use-api-config-filters.test.ts | 119 + .../use-assistant-chat-saved-events.test.ts | 100 + .../api-config/use-providers-order.test.ts | 65 + .../assets/location-backed-assets.test.ts | 99 + .../assets/location-backed-generation.test.ts | 37 + tests/unit/assets/mappers.test.ts | 131 + .../project-location-backed-selection.test.ts | 127 + tests/unit/assets/prompt-context.test.ts | 53 + tests/unit/assets/registry.test.ts | 44 + .../unit/assistant-platform/registry.test.ts | 15 + tests/unit/assistant-platform/runtime.test.ts | 46 + .../skills-api-config-template.test.ts | 230 + .../assistant-platform/system-prompts.test.ts | 21 + tests/unit/async-poll-ocompat.test.ts | 166 + .../unit/billing/cost-error-branches.test.ts | 65 + tests/unit/billing/cost.test.ts | 240 + tests/unit/billing/ledger-extra.test.ts | 135 + tests/unit/billing/mode.test.ts | 22 + tests/unit/billing/runtime-usage.test.ts | 79 + tests/unit/billing/service.test.ts | 565 + tests/unit/billing/task-policy.test.ts | 82 + .../ai-data-modal-preview-pane.test.ts | 34 + tests/unit/components/ai-data-modal.test.ts | 48 + .../asset-edit-modal-ai-layout.test.ts | 155 + tests/unit/components/asset-grid.test.ts | 158 + .../asset-hub-card-aspect-ratio.test.ts | 243 + tests/unit/components/asset-toolbar.test.ts | 80 + .../components/capsule-nav-layering.test.ts | 46 + ...haracter-card-gallery-aspect-ratio.test.ts | 70 + .../character-creation-modal.test.ts | 116 + .../character-section-actions.test.ts | 143 + .../global-asset-picker-preview.test.ts | 150 + ...age-generation-inline-count-button.test.ts | 77 + .../llm-stage-stream-card-error.test.ts | 98 + .../components/location-card-ai-edit.test.ts | 187 + .../location-creation-modal.test.ts | 81 + .../location-section-prop-confirm.test.ts | 115 + .../long-text-detection-prompt.test.ts | 72 + .../unit/components/modal-scroll-lock.test.ts | 29 + .../components/navbar-download-logs.test.ts | 116 + .../components/ratio-style-selectors.test.ts | 107 + .../unit/components/segmented-control.test.ts | 29 + .../components/story-input-composer.test.ts | 78 + .../components/voice-design-shared.test.ts | 68 + .../workspace-run-stream-consoles.test.ts | 64 + ...rator-api-openai-template-required.test.ts | 105 + tests/unit/generator-api.test.ts | 301 + tests/unit/generators/factory.test.ts | 22 + .../fal-video-kling-presets.test.ts | 94 + .../generators/image-provider-smoke.test.ts | 264 + .../openai-compatible-image.test.ts | 122 + .../openai-compatible-video.test.ts | 166 + .../guards/api-route-contract-guard.test.ts | 53 + .../changed-file-test-impact-guard.test.ts | 29 + ...mage-reference-normalization-guard.test.ts | 53 + .../task-submit-compensation-guard.test.ts | 43 + tests/unit/helpers/api-fetch.test.ts | 58 + tests/unit/helpers/json-repair.test.ts | 185 + .../llm-stage-stream-card-output.test.ts | 25 + tests/unit/helpers/logging-core.test.ts | 63 + ...igrate-gateway-route-openai-compat.test.ts | 89 + .../helpers/prompt-suffix-regression.test.ts | 55 + .../prop-modify-task-registration.test.ts | 22 + tests/unit/helpers/read-error-message.test.ts | 29 + .../recovered-run-subscription.test.ts | 278 + tests/unit/helpers/recovery-probe.test.ts | 49 + .../reference-to-character-helpers.test.ts | 54 + tests/unit/helpers/route-task-helpers.test.ts | 56 + .../run-request-executor.run-events.test.ts | 278 + .../helpers/run-stream-state-machine.test.ts | 370 + tests/unit/helpers/run-stream-view.test.ts | 174 + tests/unit/helpers/task-state-service.test.ts | 105 + .../helpers/task-submitter-helpers.test.ts | 69 + tests/unit/helpers/update-check.test.ts | 122 + .../helpers/workspace-model-setup.test.ts | 36 + tests/unit/home/ai-story-expand.test.ts | 50 + tests/unit/home/create-project-launch.test.ts | 113 + tests/unit/home/default-route.test.ts | 14 + tests/unit/home/quick-start-textarea.test.ts | 113 + tests/unit/image-generation/count.test.ts | 48 + .../unit/image-generation/slot-state.test.ts | 101 + tests/unit/lipsync-bailian.test.ts | 224 + tests/unit/lipsync-preprocess.test.ts | 199 + tests/unit/llm/ark-llm-thinking.test.ts | 22 + .../chat-completion-official-provider.test.ts | 124 + ...pletion-openai-compatible-protocol.test.ts | 158 + .../llm/chat-stream-official-provider.test.ts | 129 + ...-stream-openai-compatible-protocol.test.ts | 156 + .../llm/completion-parts-think-tag.test.ts | 50 + tests/unit/llm/reasoning-capability.test.ts | 41 + tests/unit/location-available-slots.test.ts | 14 + .../bailian-video-capabilities.test.ts | 38 + .../image-resolution-default.test.ts | 57 + .../video-effective.test.ts | 66 + tests/unit/model-gateway/llm.test.ts | 58 + .../openai-compat-responses.test.ts | 67 + ...-compat-template-image-output-urls.test.ts | 98 + .../openai-compat-template-renderer.test.ts | 189 + ...-compat-template-video-external-id.test.ts | 70 + tests/unit/model-gateway/router.test.ts | 27 + .../assets-global-actions.test.ts | 60 + .../character-voice-mutations.test.ts | 76 + .../immediate-video-submission.test.ts | 52 + .../insert-panel-prompt-context.test.ts | 33 + .../insert-panel-user-input.test.ts | 26 + .../location-confirm-mutations.test.ts | 64 + .../novel-promotion/novel-input-stage.test.ts | 91 + .../panel-task-status-error-code.test.ts | 36 + .../project-global-analyze-mutation.test.ts | 80 + .../novel-promotion/stage-readiness.test.ts | 81 + .../use-tts-generation.test.ts | 112 + .../video-model-options.test.ts | 67 + .../video-panel-card-body.test.ts | 167 + ...video-panels-projection-error-code.test.ts | 44 + .../voice-generation-actions.test.ts | 92 + .../voice-runtime-sync.test.ts | 256 + .../voice-stage-data-loader.test.ts | 88 + .../workspace-auto-run.test.ts | 81 + .../workspace-video-actions.test.ts | 71 + .../optimistic/ai-data-modal-state.test.ts | 103 + .../optimistic/asset-actions-generate.test.ts | 107 + .../optimistic/asset-hub-mutations.test.ts | 171 + .../optimistic/panel-ai-data-sync.test.ts | 103 + .../optimistic/panel-save-coordinator.test.ts | 89 + .../project-asset-mutations.test.ts | 159 + .../unit/optimistic/sse-invalidation.test.ts | 167 + .../optimistic/task-target-overlay.test.ts | 105 + .../optimistic/task-target-state-map.test.ts | 286 + tests/unit/projects/default-name.test.ts | 8 + tests/unit/projects/validation.test.ts | 28 + .../prompt-i18n/select-prop-template.test.ts | 32 + tests/unit/providers/bailian-llm.test.ts | 78 + tests/unit/providers/bailian-tts.test.ts | 145 + tests/unit/providers/bailian-video.test.ts | 271 + .../providers/bailian-voice-cleanup.test.ts | 118 + .../providers/bailian-voice-design.test.ts | 53 + tests/unit/providers/model-registry.test.ts | 39 + .../project-location-generate-body.test.ts | 20 + tests/unit/query/use-project-assets.test.ts | 55 + tests/unit/run-runtime/recovery.test.ts | 76 + tests/unit/run-runtime/task-bridge.test.ts | 133 + .../unit/script-view/clip-asset-utils.test.ts | 23 + .../script-view-assets-panel.test.ts | 136 + tests/unit/script-view/selection-sync.test.ts | 43 + tests/unit/storage/bootstrap.test.ts | 97 + tests/unit/storage/factory.test.ts | 30 + tests/unit/task/async-poll-ark.test.ts | 53 + tests/unit/task/async-poll-bailian.test.ts | 121 + .../unit/task/async-poll-external-id.test.ts | 53 + tests/unit/task/async-poll-openai.test.ts | 85 + .../unit/task/error-catalog.contract.test.ts | 27 + tests/unit/task/error-message.test.ts | 83 + tests/unit/task/intent.test.ts | 24 + tests/unit/task/llm-observe-contract.test.ts | 65 + tests/unit/task/normalize-error.test.ts | 65 + tests/unit/task/presentation.test.ts | 38 + .../task/publisher.direct-run-events.test.ts | 128 + tests/unit/task/publisher.replay.test.ts | 231 + .../unit/user-api/llm-test-connection.test.ts | 97 + .../user-api/model-llm-protocol-probe.test.ts | 198 + .../unit/user-api/model-template-save.test.ts | 88 + .../user-api/model-template-schema.test.ts | 231 + .../user-api/provider-test-compatible.test.ts | 100 + tests/unit/user-api/provider-test.test.ts | 135 + tests/unit/voice/generate-voice-line.test.ts | 186 + .../unit/voice/provider-voice-binding.test.ts | 110 + tests/unit/worker/ai-story-expand.test.ts | 84 + tests/unit/worker/analyze-global.test.ts | 155 + tests/unit/worker/analyze-novel.test.ts | 234 + tests/unit/worker/asset-hub-ai-design.test.ts | 99 + tests/unit/worker/asset-hub-ai-modify.test.ts | 147 + .../worker/asset-hub-image-suffix.test.ts | 171 + .../character-image-task-handler.test.ts | 178 + tests/unit/worker/character-profile.test.ts | 199 + tests/unit/worker/clips-build.test.ts | 161 + tests/unit/worker/episode-split.test.ts | 127 + .../worker/image-task-handlers-core.test.ts | 210 + tests/unit/worker/image-worker.test.ts | 105 + tests/unit/worker/llm-proxy.test.ts | 32 + tests/unit/worker/llm-stream.test.ts | 167 + .../location-image-task-handler.test.ts | 189 + ...modify-image-reference-description.test.ts | 335 + .../worker/panel-image-task-handler.test.ts | 217 + .../worker/panel-variant-task-handler.test.ts | 225 + .../worker/reference-to-character.test.ts | 260 + .../worker/resolve-analysis-model.test.ts | 77 + tests/unit/worker/screenplay-convert.test.ts | 140 + .../script-to-storyboard-atomic-retry.test.ts | 225 + ...t-to-storyboard-orchestrator.retry.test.ts | 370 + .../unit/worker/script-to-storyboard.test.ts | 463 + .../worker/shared.direct-run-events.test.ts | 175 + .../worker/shot-ai-prompt-appearance.test.ts | 86 + .../worker/shot-ai-prompt-location.test.ts | 97 + tests/unit/worker/shot-ai-prompt-shot.test.ts | 84 + tests/unit/worker/shot-ai-tasks.test.ts | 80 + tests/unit/worker/shot-ai-variants.test.ts | 147 + ...story-to-script-orchestrator.retry.test.ts | 302 + tests/unit/worker/story-to-script.test.ts | 224 + .../unit/worker/user-concurrency-gate.test.ts | 51 + .../worker/video-generation-resume.test.ts | 117 + tests/unit/worker/video-worker.test.ts | 290 + tests/unit/worker/voice-analyze.test.ts | 229 + tests/unit/worker/voice-design.test.ts | 104 + .../worker/voice-line-parse-helpers.test.ts | 21 + tests/unit/worker/voice-worker.test.ts | 172 + tests/unit/workflow-engine/registry.test.ts | 57 + .../unit/workspace/episode-selection.test.ts | 24 + tests/unit/workspace/rebuild-confirm.test.ts | 125 + tsconfig.json | 27 + vitest.config.ts | 50 + vitest.core-coverage.config.ts | 49 + 1475 files changed, 233414 insertions(+) create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 README_en.md create mode 100644 caddyfile create mode 100644 debug-request.json create mode 100644 docker-compose.test.yml create mode 100644 docker-compose.yml create mode 100644 docs/ARCHITECTURE.md create mode 100644 eslint.config.mjs create mode 100644 extract_chinese.py create mode 100644 images/cta-banner.png create mode 100644 images/dab6b4105e3260f37ba2d5f536dce259.jpg create mode 100644 lib/prompts/character-reference/character_image_to_description.en.txt create mode 100644 lib/prompts/character-reference/character_image_to_description.zh.txt create mode 100644 lib/prompts/character-reference/character_reference_to_sheet.en.txt create mode 100644 lib/prompts/character-reference/character_reference_to_sheet.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_acting_direction.en.txt create mode 100644 lib/prompts/novel-promotion/agent_acting_direction.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_character_profile.en.txt create mode 100644 lib/prompts/novel-promotion/agent_character_profile.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_character_visual.en.txt create mode 100644 lib/prompts/novel-promotion/agent_character_visual.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_cinematographer.en.txt create mode 100644 lib/prompts/novel-promotion/agent_cinematographer.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_clip.en.txt create mode 100644 lib/prompts/novel-promotion/agent_clip.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_shot_variant_analysis.en.txt create mode 100644 lib/prompts/novel-promotion/agent_shot_variant_analysis.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_shot_variant_generate.en.txt create mode 100644 lib/prompts/novel-promotion/agent_shot_variant_generate.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_storyboard_detail.en.txt create mode 100644 lib/prompts/novel-promotion/agent_storyboard_detail.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_storyboard_insert.en.txt create mode 100644 lib/prompts/novel-promotion/agent_storyboard_insert.zh.txt create mode 100644 lib/prompts/novel-promotion/agent_storyboard_plan.en.txt create mode 100644 lib/prompts/novel-promotion/agent_storyboard_plan.zh.txt create mode 100644 lib/prompts/novel-promotion/ai_story_expand.en.txt create mode 100644 lib/prompts/novel-promotion/ai_story_expand.zh.txt create mode 100644 lib/prompts/novel-promotion/character_create.en.txt create mode 100644 lib/prompts/novel-promotion/character_create.zh.txt create mode 100644 lib/prompts/novel-promotion/character_description_update.en.txt create mode 100644 lib/prompts/novel-promotion/character_description_update.zh.txt create mode 100644 lib/prompts/novel-promotion/character_modify.en.txt create mode 100644 lib/prompts/novel-promotion/character_modify.zh.txt create mode 100644 lib/prompts/novel-promotion/character_regenerate.en.txt create mode 100644 lib/prompts/novel-promotion/character_regenerate.zh.txt create mode 100644 lib/prompts/novel-promotion/episode_split.en.txt create mode 100644 lib/prompts/novel-promotion/episode_split.zh.txt create mode 100644 lib/prompts/novel-promotion/image_prompt_modify.en.txt create mode 100644 lib/prompts/novel-promotion/image_prompt_modify.zh.txt create mode 100644 lib/prompts/novel-promotion/location_create.en.txt create mode 100644 lib/prompts/novel-promotion/location_create.zh.txt create mode 100644 lib/prompts/novel-promotion/location_description_update.en.txt create mode 100644 lib/prompts/novel-promotion/location_description_update.zh.txt create mode 100644 lib/prompts/novel-promotion/location_modify.en.txt create mode 100644 lib/prompts/novel-promotion/location_modify.zh.txt create mode 100644 lib/prompts/novel-promotion/location_regenerate.en.txt create mode 100644 lib/prompts/novel-promotion/location_regenerate.zh.txt create mode 100644 lib/prompts/novel-promotion/prop_description_update.en.txt create mode 100644 lib/prompts/novel-promotion/prop_description_update.zh.txt create mode 100644 lib/prompts/novel-promotion/screenplay_conversion.en.txt create mode 100644 lib/prompts/novel-promotion/screenplay_conversion.zh.txt create mode 100644 lib/prompts/novel-promotion/select_location.en.txt create mode 100644 lib/prompts/novel-promotion/select_location.zh.txt create mode 100644 lib/prompts/novel-promotion/select_prop.en.txt create mode 100644 lib/prompts/novel-promotion/select_prop.zh.txt create mode 100644 lib/prompts/novel-promotion/single_panel_image.en.txt create mode 100644 lib/prompts/novel-promotion/single_panel_image.zh.txt create mode 100644 lib/prompts/novel-promotion/storyboard_edit.en.txt create mode 100644 lib/prompts/novel-promotion/storyboard_edit.zh.txt create mode 100644 lib/prompts/novel-promotion/voice_analysis.en.txt create mode 100644 lib/prompts/novel-promotion/voice_analysis.zh.txt create mode 100644 lib/prompts/proxy.ts create mode 100644 lib/prompts/skills/api-config-template.system.txt create mode 100644 lib/prompts/skills/tutorial.system.txt create mode 100644 logs/Internal_幻境计划.log create mode 100644 logs/admin_幻境计划.log create mode 100644 logs/app.log create mode 100644 messages/en/actions.json create mode 100644 messages/en/apiConfig.json create mode 100644 messages/en/apiTypes.json create mode 100644 messages/en/assetHub.json create mode 100644 messages/en/assetLibrary.json create mode 100644 messages/en/assetModal.json create mode 100644 messages/en/assetPicker.json create mode 100644 messages/en/assets.json create mode 100644 messages/en/auth.json create mode 100644 messages/en/billing.json create mode 100644 messages/en/common.json create mode 100644 messages/en/configModal.json create mode 100644 messages/en/errors.json create mode 100644 messages/en/home.json create mode 100644 messages/en/landing.json create mode 100644 messages/en/layout.json create mode 100644 messages/en/modelSection.json create mode 100644 messages/en/nav.json create mode 100644 messages/en/novel-promotion.json create mode 100644 messages/en/profile.json create mode 100644 messages/en/progress.json create mode 100644 messages/en/providerSection.json create mode 100644 messages/en/scriptView.json create mode 100644 messages/en/smartImport.json create mode 100644 messages/en/stages.json create mode 100644 messages/en/storyboard.json create mode 100644 messages/en/video.json create mode 100644 messages/en/voice.json create mode 100644 messages/en/workspace.json create mode 100644 messages/en/workspaceDetail.json create mode 100644 messages/en/workspaceRedesign.json create mode 100644 messages/en/worldContextModal.json create mode 100644 messages/zh/actions.json create mode 100644 messages/zh/apiConfig.json create mode 100644 messages/zh/apiTypes.json create mode 100644 messages/zh/assetHub.json create mode 100644 messages/zh/assetLibrary.json create mode 100644 messages/zh/assetModal.json create mode 100644 messages/zh/assetPicker.json create mode 100644 messages/zh/assets.json create mode 100644 messages/zh/auth.json create mode 100644 messages/zh/billing.json create mode 100644 messages/zh/common.json create mode 100644 messages/zh/configModal.json create mode 100644 messages/zh/errors.json create mode 100644 messages/zh/home.json create mode 100644 messages/zh/landing.json create mode 100644 messages/zh/layout.json create mode 100644 messages/zh/modelSection.json create mode 100644 messages/zh/nav.json create mode 100644 messages/zh/novel-promotion.json create mode 100644 messages/zh/profile.json create mode 100644 messages/zh/progress.json create mode 100644 messages/zh/providerSection.json create mode 100644 messages/zh/scriptView.json create mode 100644 messages/zh/smartImport.json create mode 100644 messages/zh/stages.json create mode 100644 messages/zh/storyboard.json create mode 100644 messages/zh/video.json create mode 100644 messages/zh/voice.json create mode 100644 messages/zh/workspace.json create mode 100644 messages/zh/workspaceDetail.json create mode 100644 messages/zh/workspaceRedesign.json create mode 100644 messages/zh/worldContextModal.json create mode 100644 middleware.ts create mode 100644 next-env.d.ts create mode 100644 next.config.ts create mode 100644 nginx.conf create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 prisma/migrations/20260317120000_add_asset_kind_to_locations/migration.sql create mode 100644 prisma/migrations/20260324120000_drop_project_mode/migration.sql create mode 100644 prisma/migrations/20260328110000_add_location_available_slots/migration.sql create mode 100644 prisma/schema.prisma create mode 100644 prisma/schema.sqlit.prisma create mode 100644 public/banner.png create mode 100644 public/file.svg create mode 100644 public/globe.svg create mode 100644 public/icon.png create mode 100644 public/images/grid-template-9x16.png create mode 100644 public/logo-small.png create mode 100644 public/logo.ico create mode 100644 public/logo.png create mode 100644 public/next.svg create mode 100644 public/window.svg create mode 100644 scripts/billing-cleanup-pending-freezes.ts create mode 100644 scripts/billing-reconcile-ledger.ts create mode 100644 scripts/bull-board.ts create mode 100644 scripts/check-api-handler.ts create mode 100644 scripts/check-capability-catalog.mjs create mode 100644 scripts/check-image-urls-contract.ts create mode 100644 scripts/check-log-semantic.ts create mode 100644 scripts/check-media-normalization.ts create mode 100644 scripts/check-model-config-contract.mjs create mode 100644 scripts/check-no-console.ts create mode 100644 scripts/check-outbound-image-runtime-sample.ts create mode 100644 scripts/check-outbound-image-success-rate.ts create mode 100644 scripts/check-outbound-image-unification.ts create mode 100644 scripts/check-pricing-catalog.mjs create mode 100644 scripts/cleanup-remove-legacy-voice-data.ts create mode 100644 scripts/diagnose-project.ts create mode 100644 scripts/guards/api-route-contract-guard.mjs create mode 100644 scripts/guards/changed-file-test-impact-guard.mjs create mode 100644 scripts/guards/file-line-count-guard.mjs create mode 100644 scripts/guards/image-reference-normalization-guard.mjs create mode 100644 scripts/guards/locale-navigation-guard.mjs create mode 100644 scripts/guards/no-api-direct-llm-call.mjs create mode 100644 scripts/guards/no-duplicate-endpoint-entry.mjs create mode 100644 scripts/guards/no-hardcoded-model-capabilities.mjs create mode 100644 scripts/guards/no-internal-task-sync-fallback.mjs create mode 100644 scripts/guards/no-media-provider-bypass.mjs create mode 100644 scripts/guards/no-model-key-downgrade.mjs create mode 100644 scripts/guards/no-multiple-sources-of-truth.mjs create mode 100644 scripts/guards/no-provider-guessing.mjs create mode 100644 scripts/guards/no-server-mirror-state.mjs create mode 100644 scripts/guards/prompt-ab-regression.mjs create mode 100644 scripts/guards/prompt-i18n-guard.mjs create mode 100644 scripts/guards/prompt-json-canary-guard.mjs create mode 100644 scripts/guards/prompt-semantic-regression.mjs create mode 100644 scripts/guards/task-loading-baseline.json create mode 100644 scripts/guards/task-loading-guard.mjs create mode 100644 scripts/guards/task-state-unification-guard.sh create mode 100644 scripts/guards/task-status-cutover-audit.sh create mode 100644 scripts/guards/task-submit-compensation-guard.mjs create mode 100644 scripts/guards/task-target-states-no-polling-guard.mjs create mode 100644 scripts/guards/test-behavior-quality-guard.mjs create mode 100644 scripts/guards/test-behavior-route-coverage-guard.mjs create mode 100644 scripts/guards/test-behavior-tasktype-coverage-guard.mjs create mode 100644 scripts/guards/test-route-coverage-guard.mjs create mode 100644 scripts/guards/test-tasktype-coverage-guard.mjs create mode 100644 scripts/media-archive-legacy-refs.ts create mode 100644 scripts/media-backfill-refs.ts create mode 100644 scripts/media-build-unreferenced-index.ts create mode 100644 scripts/media-mapping.ts create mode 100644 scripts/media-restore-dry-run.ts create mode 100644 scripts/media-safety-backup.ts create mode 100644 scripts/migrate-cancelled-to-failed.ts create mode 100644 scripts/migrate-image-urls-contract.ts create mode 100644 scripts/migrate-local-to-minio.ts create mode 100755 scripts/migrate-to-minio.sh create mode 100644 scripts/migrate-to-minio.ts create mode 100644 scripts/migrations/migrate-capability-selections.ts create mode 100644 scripts/migrations/migrate-custom-pricing-v2.ts create mode 100644 scripts/migrations/migrate-gateway-route-openai-compat.ts create mode 100644 scripts/migrations/migrate-graph-artifacts-unique-index.ts create mode 100644 scripts/migrations/migrate-model-config-contract.ts create mode 100644 scripts/migrations/migrate-qwen-to-bailian.ts create mode 100644 scripts/migrations/migrate-release-blockers.ts create mode 100644 scripts/migrations/reports/model-config-migration-report.apply.json create mode 100644 scripts/migrations/reports/model-config-migration-report.post-alias-apply.json create mode 100644 scripts/migrations/reports/model-config-migration-report.post-alias-dryrun.json create mode 100644 scripts/migrations/reports/model-config-migration-report.pre-apply.json create mode 100644 scripts/task-error-stats.ts create mode 100644 scripts/test-full-image-flow.ts create mode 100644 scripts/test-image-url-flow.ts create mode 100644 scripts/test-minio.ts create mode 100644 scripts/test-regression-runner.sh create mode 100644 scripts/test-sign-api.ts create mode 100644 scripts/tmp-cleanup-project-models.mjs create mode 100644 scripts/tmp-find-old-model.mjs create mode 100644 scripts/watchdog.ts create mode 100644 src/app/[locale]/auth/signin/page.tsx create mode 100644 src/app/[locale]/auth/signup/page.tsx create mode 100644 src/app/[locale]/dev/segmented-control-test/page.tsx create mode 100644 src/app/[locale]/dev/workspace-redesign/InlineSelector.tsx create mode 100644 src/app/[locale]/dev/workspace-redesign/ProjectLayouts.tsx create mode 100644 src/app/[locale]/dev/workspace-redesign/VariantClearBreath.tsx create mode 100644 src/app/[locale]/dev/workspace-redesign/page.tsx create mode 100644 src/app/[locale]/dev/workspace-redesign/shared.ts create mode 100644 src/app/[locale]/home/page.tsx create mode 100644 src/app/[locale]/layout.tsx create mode 100644 src/app/[locale]/page.tsx create mode 100644 src/app/[locale]/profile/components/ApiConfigTab.tsx create mode 100644 src/app/[locale]/profile/components/api-config-tab/ApiConfigProviderList.tsx create mode 100644 src/app/[locale]/profile/components/api-config-tab/ApiConfigTabContainer.tsx create mode 100644 src/app/[locale]/profile/components/api-config-tab/ApiConfigToolbar.tsx create mode 100644 src/app/[locale]/profile/components/api-config-tab/DefaultModelCards.tsx create mode 100644 src/app/[locale]/profile/components/api-config-tab/hooks/useApiConfigFilters.ts create mode 100644 src/app/[locale]/profile/components/api-config/DefaultModelSection.tsx create mode 100644 src/app/[locale]/profile/components/api-config/ProviderCard.tsx create mode 100644 src/app/[locale]/profile/components/api-config/ProviderSection.tsx create mode 100644 src/app/[locale]/profile/components/api-config/hooks.ts create mode 100644 src/app/[locale]/profile/components/api-config/index.ts create mode 100644 src/app/[locale]/profile/components/api-config/provider-card/ModelTemplateAssistantModal.tsx create mode 100644 src/app/[locale]/profile/components/api-config/provider-card/ProviderAdvancedFields.tsx create mode 100644 src/app/[locale]/profile/components/api-config/provider-card/ProviderBaseFields.tsx create mode 100644 src/app/[locale]/profile/components/api-config/provider-card/ProviderCardShell.tsx create mode 100644 src/app/[locale]/profile/components/api-config/provider-card/hooks/useProviderCardState.ts create mode 100644 src/app/[locale]/profile/components/api-config/provider-card/types.ts create mode 100644 src/app/[locale]/profile/components/api-config/types.ts create mode 100644 src/app/[locale]/profile/page.tsx create mode 100644 src/app/[locale]/providers.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/components/Sidebar.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/episode-selection.ts create mode 100644 src/app/[locale]/workspace/[projectId]/hooks/useProject.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/NovelPromotionWorkspace.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/StageNavigation.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/WorkspaceProvider.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/WorkspaceStageRuntimeContext.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/AssetLibrary.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/AssetsStage.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/ConfigStage.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/NovelInputStage.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/PanelEditForm.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/PromptsStage.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/ScriptStage.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/ScriptView.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/SmartImportWizard.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/StoryboardStage.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/VideoStage.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/VideoStageRoute.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/VoiceStage.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/VoiceStageRoute.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/WorkspaceAssetLibraryModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/WorkspaceHeaderShell.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/WorkspaceRunStreamConsoles.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/WorkspaceStageContent.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/WorkspaceTopActions.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/AddLocationModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/AssetFilterBar.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/AssetToolbar.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/AssetsStageModals.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/AssetsStageStatusOverlays.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/CharacterCard.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/CharacterEditModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/CharacterProfileCard.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/CharacterProfileDialog.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/CharacterSection.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/ImageEditModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/LocationCard.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/LocationEditModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/LocationSection.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/VoiceSettings.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/character-card/CharacterCardActions.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/character-card/CharacterCardGallery.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/character-card/CharacterCardHeader.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/index.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useAssetModals.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useAssetsCopyFromHub.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useAssetsGlobalActions.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useAssetsImageEdit.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useBatchGeneration.helpers.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useBatchGeneration.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useCharacterActions.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useLocationActions.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useProfileManagement.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/hooks/useTTSGeneration.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/location-backed-asset.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/location-card/LocationCardActions.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/location-card/LocationCardHeader.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/assets/location-card/LocationImageList.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/PromptEditorPanel.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/PromptListCardView.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/PromptListPanel.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/PromptListTableView.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/PromptsStageLayout.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/PromptsStageShell.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/hooks/usePromptStageActions.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/runtime/hooks/usePromptAiModifyFlow.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/runtime/hooks/usePromptAppendFlow.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/runtime/hooks/usePromptAssetMention.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/runtime/hooks/usePromptDraftByShot.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/runtime/hooks/usePromptEditorRuntime.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/runtime/promptStageRuntime.types.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/runtime/promptStageRuntime.utils.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/prompts-stage/runtime/promptStageRuntimeCore.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/script-view/ScriptViewAssetsPanel.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/script-view/ScriptViewContainer.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/script-view/ScriptViewCore.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/script-view/ScriptViewRuntime.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/script-view/ScriptViewScriptPanel.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/script-view/SpotlightCards.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/script-view/asset-state-utils.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/script-view/clip-asset-utils.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/script-view/selection-sync.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/smart-import/hooks/useWizardState.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/smart-import/steps/StepConfirm.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/smart-import/steps/StepMapping.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/smart-import/steps/StepParse.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/smart-import/steps/StepSource.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/smart-import/types.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/AIDataModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/AIDataModal.types.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/AIDataModalFormPane.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/AIDataModalPreviewPane.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/CandidateSelector.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/ImageEditModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/ImageEditModalAssetPicker.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/ImageEditModalSelectedAssets.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/ImageSection.css create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/ImageSection.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/ImageSectionActionButtons.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/ImageSectionCandidateMode.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/InsertPanelButton.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/InsertPanelModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/PanelActionButtons.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/PanelCard.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/PanelVariantModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/PanelVariantModal.types.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/PanelVariantModalCustomOptions.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/PanelVariantModalSuggestionList.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/ScreenplayDisplay.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardCanvas.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardGroup.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardGroup.types.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardGroupActions.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardGroupDialogs.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardGroupFailedAlert.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardGroupHeader.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardHeader.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardPanelList.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardStageShell.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/StoryboardToolbar.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/contracts.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/image-generation-runtime.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/panel-candidate-runtime.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/panel-operations-shared.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/panel-save-coordinator.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/storyboard-panel-asset-utils.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/storyboard-state-utils.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useAIDataModalState.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useImageGeneration.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/usePanelCandidates.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/usePanelCrudActions.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/usePanelEpisodeCachePatch.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/usePanelImageDownload.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/usePanelImageModification.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/usePanelImageRegeneration.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/usePanelInsertActions.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/usePanelOperations.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/usePanelVariant.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardAiDataRuntime.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardBatchPanelGeneration.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardGroupActions.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardGroupTaskErrors.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardInsertVariantRuntime.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardModalRuntime.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardPanelAssetActions.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardStageController.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardStageStatus.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardStageUiState.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardState.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/hooks/useStoryboardTaskAwareStoryboards.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/index.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/storyboard/modal-scroll-lock.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video-stage/VideoRenderPanel.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video-stage/VideoStageLayout.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video-stage/VideoStageShell.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video-stage/VideoTimelinePanel.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video-stage/hooks/useVideoStageRuntime.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/FirstLastFramePanel.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/VideoPanelCard.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/VideoPromptModal.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/VideoToolbar.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/index.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/VideoPanelCardBody.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/VideoPanelCardFooter.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/VideoPanelCardHeader.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/VideoPanelCardLayout.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/VideoPanelCardShell.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/hooks/useVideoPanelActions.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/runtime/hooks/usePanelLipSync.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/runtime/hooks/usePanelPlayer.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/runtime/hooks/usePanelPromptEditor.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/runtime/hooks/usePanelTaskStatus.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/runtime/hooks/usePanelVideoModel.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/runtime/hooks/usePanelVoiceManager.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/runtime/shared.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/runtime/videoPanelRuntimeCore.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/types.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/types.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice-stage/VoiceControlPanel.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice-stage/VoiceLineList.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice-stage/VoiceStageLayout.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice-stage/VoiceStageShell.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice-stage/hooks/useVoiceStageRuntime.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice/EmbeddedVoiceToolbar.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice/EmotionSettingsPanel.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice/EmptyVoiceState.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice/SpeakerVoiceBindingDialog.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice/SpeakerVoiceStatus.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice/VoiceDesignDialog.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice/VoiceLineCard.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/voice/VoiceToolbar.tsx create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useNovelPromotionWorkspaceController.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useRebuildConfirm.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceAssetLibraryShell.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceAutoRun.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceConfigActions.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceEpisodeStageData.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceExecution.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceModalEscape.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceProjectSnapshot.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceStageNavigation.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceStageRuntime.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceUserModels.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/useWorkspaceVideoActions.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/hooks/workspace-controller-view-model.ts create mode 100644 src/app/[locale]/workspace/[projectId]/modes/novel-promotion/types.ts create mode 100644 src/app/[locale]/workspace/[projectId]/page.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/AddLocationModal.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/AssetGrid.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/CharacterCard.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/CharacterEditModal.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/FolderModal.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/FolderSidebar.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/LocationCard.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/LocationEditModal.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/VoiceCard.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/VoiceCreationModal.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/VoiceDesignDialog.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/VoicePickerDialog.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/VoiceSettings.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/voice-creation/VoiceCreationForm.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/voice-creation/VoiceCreationModalLayout.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/voice-creation/VoiceCreationModalShell.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/voice-creation/VoicePreviewSection.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/components/voice-creation/hooks/useVoiceCreation.tsx create mode 100644 src/app/[locale]/workspace/asset-hub/page.tsx create mode 100644 src/app/[locale]/workspace/page.tsx create mode 100644 src/app/api/admin/download-logs/route.ts create mode 100644 src/app/api/asset-hub/ai-design-character/route.ts create mode 100644 src/app/api/asset-hub/ai-design-location/route.ts create mode 100644 src/app/api/asset-hub/ai-modify-character/route.ts create mode 100644 src/app/api/asset-hub/ai-modify-location/route.ts create mode 100644 src/app/api/asset-hub/ai-modify-prop/route.ts create mode 100644 src/app/api/asset-hub/appearances/route.ts create mode 100644 src/app/api/asset-hub/character-voice/route.ts create mode 100644 src/app/api/asset-hub/characters/[characterId]/appearances/[appearanceIndex]/route.ts create mode 100644 src/app/api/asset-hub/characters/[characterId]/route.ts create mode 100644 src/app/api/asset-hub/characters/route.ts create mode 100644 src/app/api/asset-hub/folders/[folderId]/route.ts create mode 100644 src/app/api/asset-hub/folders/route.ts create mode 100644 src/app/api/asset-hub/generate-image/route.ts create mode 100644 src/app/api/asset-hub/locations/[locationId]/route.ts create mode 100644 src/app/api/asset-hub/locations/route.ts create mode 100644 src/app/api/asset-hub/modify-image/route.ts create mode 100644 src/app/api/asset-hub/picker/route.ts create mode 100644 src/app/api/asset-hub/reference-to-character/route.ts create mode 100644 src/app/api/asset-hub/select-image/route.ts create mode 100644 src/app/api/asset-hub/undo-image/route.ts create mode 100644 src/app/api/asset-hub/update-asset-label/route.ts create mode 100644 src/app/api/asset-hub/upload-image/route.ts create mode 100644 src/app/api/asset-hub/upload-temp/route.ts create mode 100644 src/app/api/asset-hub/voice-design/route.ts create mode 100644 src/app/api/asset-hub/voices/[id]/route.ts create mode 100644 src/app/api/asset-hub/voices/route.ts create mode 100644 src/app/api/asset-hub/voices/upload/route.ts create mode 100644 src/app/api/assets/[assetId]/copy/route.ts create mode 100644 src/app/api/assets/[assetId]/generate/route.ts create mode 100644 src/app/api/assets/[assetId]/modify-render/route.ts create mode 100644 src/app/api/assets/[assetId]/revert-render/route.ts create mode 100644 src/app/api/assets/[assetId]/route.ts create mode 100644 src/app/api/assets/[assetId]/select-render/route.ts create mode 100644 src/app/api/assets/[assetId]/update-label/route.ts create mode 100644 src/app/api/assets/[assetId]/variants/[variantId]/route.ts create mode 100644 src/app/api/assets/route.ts create mode 100644 src/app/api/auth/[...nextauth]/route.ts create mode 100644 src/app/api/auth/register/route.ts create mode 100644 src/app/api/cos/image/route.ts create mode 100644 src/app/api/files/[...path]/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/ai-create-character/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/ai-create-location/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/ai-modify-appearance/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/ai-modify-location/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/ai-modify-prop/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/ai-modify-shot-prompt/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/analyze-global/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/analyze-shot-variants/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/analyze/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/assets/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/character-profile/batch-confirm/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/character-profile/confirm/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/character-voice/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/character/appearance/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/character/confirm-selection/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/character/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/cleanup-unselected-images/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/clips/[clipId]/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/clips/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/copy-from-global/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/download-images/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/download-videos/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/download-voices/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/editor/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/episodes/[episodeId]/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/episodes/batch/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/episodes/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/episodes/split-by-markers/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/episodes/split/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/generate-character-image/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/generate-image/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/generate-video/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/insert-panel/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/lip-sync/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/location/confirm-selection/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/location/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/modify-asset-image/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/modify-storyboard-image/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/panel-link/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/panel-variant/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/panel/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/panel/select-candidate/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/photography-plan/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/reference-to-character/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/regenerate-group/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/regenerate-panel-image/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/regenerate-single-image/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/regenerate-storyboard-text/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/screenplay-conversion/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/script-to-storyboard-stream/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/select-character-image/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/select-location-image/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/speaker-voice/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/story-to-script-stream/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/storyboard-group/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/storyboards/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/undo-regenerate/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/update-appearance/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/update-asset-label/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/update-location/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/update-prompt/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/upload-asset-image/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/video-proxy/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/video-urls/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/voice-analyze/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/voice-design/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/voice-generate/route.ts create mode 100644 src/app/api/novel-promotion/[projectId]/voice-lines/route.ts create mode 100644 src/app/api/projects/[projectId]/assets/route.ts create mode 100644 src/app/api/projects/[projectId]/costs/route.ts create mode 100644 src/app/api/projects/[projectId]/data/route.ts create mode 100644 src/app/api/projects/[projectId]/route.ts create mode 100644 src/app/api/projects/route.ts create mode 100644 src/app/api/runs/[runId]/cancel/route.ts create mode 100644 src/app/api/runs/[runId]/events/route.ts create mode 100644 src/app/api/runs/[runId]/route.ts create mode 100644 src/app/api/runs/[runId]/steps/[stepKey]/retry/route.ts create mode 100644 src/app/api/runs/route.ts create mode 100644 src/app/api/sse/route.ts create mode 100644 src/app/api/storage/sign/route.ts create mode 100644 src/app/api/system/boot-id/route.ts create mode 100644 src/app/api/task-target-states/route.ts create mode 100644 src/app/api/tasks/[taskId]/route.ts create mode 100644 src/app/api/tasks/dismiss/route.ts create mode 100644 src/app/api/tasks/route.ts create mode 100644 src/app/api/user-preference/route.ts create mode 100644 src/app/api/user/ai-story-expand/route.ts create mode 100644 src/app/api/user/api-config/assistant/probe-media-template/route.ts create mode 100644 src/app/api/user/api-config/assistant/validate-media-template/route.ts create mode 100644 src/app/api/user/api-config/probe-model-llm-protocol/route.ts create mode 100644 src/app/api/user/api-config/route.ts create mode 100644 src/app/api/user/api-config/test-connection/route.ts create mode 100644 src/app/api/user/api-config/test-provider/route.ts create mode 100644 src/app/api/user/assistant/chat/route.ts create mode 100644 src/app/api/user/balance/route.ts create mode 100644 src/app/api/user/costs/details/route.ts create mode 100644 src/app/api/user/costs/route.ts create mode 100644 src/app/api/user/models/route.ts create mode 100644 src/app/api/user/transactions/route.ts create mode 100644 src/app/globals.css create mode 100644 src/app/m/[publicId]/route.ts create mode 100644 src/assets/fonts/NotoSansSC-Regular.ttf create mode 100644 src/components/ConfirmDialog.tsx create mode 100644 src/components/LanguageSwitcher.tsx create mode 100644 src/components/Navbar.tsx create mode 100644 src/components/ProgressToast.tsx create mode 100644 src/components/UpdateNoticeModal.tsx create mode 100644 src/components/ai-elements/conversation.tsx create mode 100644 src/components/ai-elements/message.tsx create mode 100644 src/components/ai-elements/reasoning.tsx create mode 100644 src/components/ai-elements/tool.tsx create mode 100644 src/components/assistant/AssistantChatModal.tsx create mode 100644 src/components/assistant/useAssistantChat.ts create mode 100644 src/components/auth/PasswordStrengthIndicator.tsx create mode 100644 src/components/home/AiWriteModal.tsx create mode 100644 src/components/home/TypewriterHero.tsx create mode 100644 src/components/image-generation/ImageGenerationInlineCountButton.tsx create mode 100644 src/components/image-generation/ImageGenerationSlotOverlay.tsx create mode 100644 src/components/llm-console/LLMStageStreamCard.tsx create mode 100644 src/components/llm-console/index.ts create mode 100644 src/components/media/MediaImage.tsx create mode 100644 src/components/media/MediaImageWithLoading.tsx create mode 100644 src/components/providers/QueryProvider.tsx create mode 100644 src/components/selectors/RatioStyleSelectors.tsx create mode 100644 src/components/shared/assets/AiModifyDescriptionField.tsx create mode 100644 src/components/shared/assets/CharacterCreationModal.tsx create mode 100644 src/components/shared/assets/CharacterEditModal.tsx create mode 100644 src/components/shared/assets/GlobalAssetPicker.tsx create mode 100644 src/components/shared/assets/LocationCreationModal.tsx create mode 100644 src/components/shared/assets/LocationEditModal.tsx create mode 100644 src/components/shared/assets/PropCreationModal.tsx create mode 100644 src/components/shared/assets/PropEditModal.tsx create mode 100644 src/components/shared/assets/character-creation/CharacterCreationForm.tsx create mode 100644 src/components/shared/assets/character-creation/CharacterCreationPreview.tsx create mode 100644 src/components/shared/assets/character-creation/hooks/useCharacterCreationSubmit.ts create mode 100644 src/components/shared/assets/index.ts create mode 100644 src/components/story-input/LongTextDetectionPrompt.tsx create mode 100644 src/components/story-input/StoryInputComposer.tsx create mode 100644 src/components/task/TaskStatusInline.tsx create mode 100644 src/components/task/TaskStatusOverlay.tsx create mode 100644 src/components/ui/CapsuleNav.tsx create mode 100644 src/components/ui/ConfigModals.tsx create mode 100644 src/components/ui/ImagePreviewModal.tsx create mode 100644 src/components/ui/SegmentedControl.tsx create mode 100644 src/components/ui/SharedComponents.tsx create mode 100644 src/components/ui/ai-edit-style.ts create mode 100644 src/components/ui/config-modals/ConfigConfirmModal.tsx create mode 100644 src/components/ui/config-modals/ConfigDeleteModal.tsx create mode 100644 src/components/ui/config-modals/ConfigEditModal.tsx create mode 100644 src/components/ui/config-modals/ModelCapabilityDropdown.tsx create mode 100644 src/components/ui/config-modals/WorldContextModal.tsx create mode 100644 src/components/ui/config-modals/config-modal-selectors.tsx create mode 100644 src/components/ui/icons/AISparklesIcon.tsx create mode 100644 src/components/ui/icons/AppIcon.tsx create mode 100644 src/components/ui/icons/RatioPreviewIcon.tsx create mode 100644 src/components/ui/icons/custom.tsx create mode 100644 src/components/ui/icons/index.ts create mode 100644 src/components/ui/icons/registry.ts create mode 100644 src/components/ui/model-dropdown-innovative.tsx create mode 100644 src/components/ui/model-dropdown-ios.tsx create mode 100644 src/components/ui/model-dropdown-variants.tsx create mode 100644 src/components/ui/patterns/PanelCardV2.tsx create mode 100644 src/components/ui/patterns/PanelEditFormV2.tsx create mode 100644 src/components/ui/patterns/StoryboardHeaderV2.tsx create mode 100644 src/components/ui/patterns/index.ts create mode 100644 src/components/ui/patterns/types.ts create mode 100644 src/components/ui/primitives/GlassButton.tsx create mode 100644 src/components/ui/primitives/GlassChip.tsx create mode 100644 src/components/ui/primitives/GlassField.tsx create mode 100644 src/components/ui/primitives/GlassInput.tsx create mode 100644 src/components/ui/primitives/GlassModalShell.tsx create mode 100644 src/components/ui/primitives/GlassSurface.tsx create mode 100644 src/components/ui/primitives/GlassTextarea.tsx create mode 100644 src/components/ui/primitives/index.ts create mode 100644 src/components/ui/select-variants.tsx create mode 100644 src/components/voice/VoiceDesignDialogBase.tsx create mode 100644 src/components/voice/VoiceDesignGeneratorSection.tsx create mode 100644 src/components/voice/voice-design-shared.ts create mode 100644 src/contexts/ToastContext.tsx create mode 100644 src/features/video-editor/components/Preview/RemotionPreview.tsx create mode 100644 src/features/video-editor/components/Preview/index.ts create mode 100644 src/features/video-editor/components/Timeline/Timeline.tsx create mode 100644 src/features/video-editor/components/Timeline/index.ts create mode 100644 src/features/video-editor/components/TransitionPicker.tsx create mode 100644 src/features/video-editor/components/VideoEditorStage.tsx create mode 100644 src/features/video-editor/hooks/useEditorActions.ts create mode 100644 src/features/video-editor/hooks/useEditorState.ts create mode 100644 src/features/video-editor/index.ts create mode 100644 src/features/video-editor/remotion/VideoComposition.tsx create mode 100644 src/features/video-editor/remotion/transitions/index.tsx create mode 100644 src/features/video-editor/types/editor.types.ts create mode 100644 src/features/video-editor/utils/migration.ts create mode 100644 src/features/video-editor/utils/time-utils.ts create mode 100644 src/hooks/common/useCandidateSystem.ts create mode 100644 src/hooks/common/useGithubReleaseUpdate.ts create mode 100644 src/i18n.ts create mode 100644 src/i18n/navigation.ts create mode 100644 src/i18n/routing.ts create mode 100644 src/instrumentation.ts create mode 100644 src/lib/ai-runtime/client.ts create mode 100644 src/lib/ai-runtime/errors.ts create mode 100644 src/lib/ai-runtime/index.ts create mode 100644 src/lib/ai-runtime/types.ts create mode 100644 src/lib/api-auth.ts create mode 100644 src/lib/api-config.ts create mode 100644 src/lib/api-errors.ts create mode 100644 src/lib/api-fetch.ts create mode 100644 src/lib/api/read-error-message.ts create mode 100644 src/lib/app-meta.ts create mode 100644 src/lib/ark-api.ts create mode 100644 src/lib/ark-llm.ts create mode 100644 src/lib/asset-utils/ai-design.ts create mode 100644 src/lib/asset-utils/index.ts create mode 100644 src/lib/assets/contracts.ts create mode 100644 src/lib/assets/description-fields.ts create mode 100644 src/lib/assets/grouping.ts create mode 100644 src/lib/assets/kinds/registry.ts create mode 100644 src/lib/assets/mappers.ts create mode 100644 src/lib/assets/prop-description.ts create mode 100644 src/lib/assets/services/asset-actions.ts create mode 100644 src/lib/assets/services/asset-label.ts create mode 100644 src/lib/assets/services/asset-prompt-context.ts create mode 100644 src/lib/assets/services/location-backed-assets.ts create mode 100644 src/lib/assets/services/project-location-backed-selection.ts create mode 100644 src/lib/assets/services/read-assets.ts create mode 100644 src/lib/assistant-platform/errors.ts create mode 100644 src/lib/assistant-platform/index.ts create mode 100644 src/lib/assistant-platform/registry.ts create mode 100644 src/lib/assistant-platform/runtime.ts create mode 100644 src/lib/assistant-platform/skills/api-config-template.ts create mode 100644 src/lib/assistant-platform/skills/tutorial.ts create mode 100644 src/lib/assistant-platform/system-prompts.ts create mode 100644 src/lib/assistant-platform/types.ts create mode 100644 src/lib/async-poll.ts create mode 100644 src/lib/async-submit.ts create mode 100644 src/lib/async-task-utils.ts create mode 100644 src/lib/async/map-with-concurrency.ts create mode 100644 src/lib/auth.ts create mode 100644 src/lib/billing/cost.ts create mode 100644 src/lib/billing/currency.ts create mode 100644 src/lib/billing/errors.ts create mode 100644 src/lib/billing/index.ts create mode 100644 src/lib/billing/ledger.ts create mode 100644 src/lib/billing/mode.ts create mode 100644 src/lib/billing/money.ts create mode 100644 src/lib/billing/reporting.ts create mode 100644 src/lib/billing/runtime-usage.ts create mode 100644 src/lib/billing/service.ts create mode 100644 src/lib/billing/task-policy.ts create mode 100644 src/lib/billing/types.ts create mode 100644 src/lib/config-service.ts create mode 100644 src/lib/constants.ts create mode 100644 src/lib/contracts/image-urls-contract.test.ts create mode 100644 src/lib/contracts/image-urls-contract.ts create mode 100644 src/lib/crypto-utils.ts create mode 100644 src/lib/env.ts create mode 100644 src/lib/episode-marker-detector.ts create mode 100644 src/lib/error-handler.ts create mode 100644 src/lib/error-utils.ts create mode 100644 src/lib/errors/codes.ts create mode 100644 src/lib/errors/display.ts create mode 100644 src/lib/errors/extract.ts create mode 100644 src/lib/errors/normalize.ts create mode 100644 src/lib/errors/types.ts create mode 100644 src/lib/errors/user-messages.ts create mode 100644 src/lib/fonts.ts create mode 100644 src/lib/gemini-batch-utils.ts create mode 100644 src/lib/generator-api.ts create mode 100644 src/lib/generators/ark.ts create mode 100644 src/lib/generators/audio/bailian.ts create mode 100644 src/lib/generators/audio/index.ts create mode 100644 src/lib/generators/base.ts create mode 100644 src/lib/generators/factory.ts create mode 100644 src/lib/generators/fal.ts create mode 100644 src/lib/generators/image/gemini-compatible.ts create mode 100644 src/lib/generators/image/google.ts create mode 100644 src/lib/generators/image/index.ts create mode 100644 src/lib/generators/image/openai-compatible.ts create mode 100644 src/lib/generators/minimax.ts create mode 100644 src/lib/generators/official.ts create mode 100644 src/lib/generators/resolution-adapter.ts create mode 100644 src/lib/generators/video/google.ts create mode 100644 src/lib/generators/video/index.ts create mode 100644 src/lib/generators/video/openai-compatible.ts create mode 100644 src/lib/generators/vidu.ts create mode 100644 src/lib/home/ai-story-expand.ts create mode 100644 src/lib/home/create-project-launch.ts create mode 100644 src/lib/home/default-route.ts create mode 100644 src/lib/image-cache.ts create mode 100644 src/lib/image-generation/count-preference.ts create mode 100644 src/lib/image-generation/count.ts create mode 100644 src/lib/image-generation/location-slots.ts create mode 100644 src/lib/image-generation/slot-state.ts create mode 100644 src/lib/image-generation/use-image-generation-count.ts create mode 100644 src/lib/image-label.ts create mode 100644 src/lib/json-repair.ts create mode 100644 src/lib/lipsync/index.ts create mode 100644 src/lib/lipsync/preprocess.ts create mode 100644 src/lib/lipsync/providers/bailian.ts create mode 100644 src/lib/lipsync/providers/fal.ts create mode 100644 src/lib/lipsync/providers/vidu.ts create mode 100644 src/lib/lipsync/types.ts create mode 100644 src/lib/llm-client.ts create mode 100644 src/lib/llm-observe/config.ts create mode 100644 src/lib/llm-observe/internal-stream-context.ts create mode 100644 src/lib/llm-observe/internal-task.ts create mode 100644 src/lib/llm-observe/route-task.ts create mode 100644 src/lib/llm-observe/stage-pipeline.ts create mode 100644 src/lib/llm-observe/task-policy.ts create mode 100644 src/lib/llm-observe/types.ts create mode 100644 src/lib/llm/chat-completion.ts create mode 100644 src/lib/llm/chat-stream.ts create mode 100644 src/lib/llm/completion-parts.ts create mode 100644 src/lib/llm/index.ts create mode 100644 src/lib/llm/providers/ark.ts create mode 100644 src/lib/llm/providers/google.ts create mode 100644 src/lib/llm/providers/openai-compat.ts create mode 100644 src/lib/llm/reasoning-capability.ts create mode 100644 src/lib/llm/runtime-shared.ts create mode 100644 src/lib/llm/runtime.ts create mode 100644 src/lib/llm/stream-helpers.ts create mode 100644 src/lib/llm/stream-timeout.ts create mode 100644 src/lib/llm/types.ts create mode 100644 src/lib/llm/utils.ts create mode 100644 src/lib/llm/vision.ts create mode 100644 src/lib/location-available-slots.ts create mode 100644 src/lib/location-image-prompt.ts create mode 100644 src/lib/logging/config.ts create mode 100644 src/lib/logging/context.ts create mode 100644 src/lib/logging/core.ts create mode 100644 src/lib/logging/file-writer.ts create mode 100644 src/lib/logging/redact.ts create mode 100644 src/lib/logging/semantic.ts create mode 100644 src/lib/logging/types.ts create mode 100644 src/lib/media-process.ts create mode 100644 src/lib/media/attach.ts create mode 100644 src/lib/media/hash.ts create mode 100644 src/lib/media/image-url.test.ts create mode 100644 src/lib/media/image-url.ts create mode 100644 src/lib/media/outbound-image.test.ts create mode 100644 src/lib/media/outbound-image.ts create mode 100644 src/lib/media/service.ts create mode 100644 src/lib/media/types.ts create mode 100644 src/lib/migrations/gateway-route-openai-compat.ts create mode 100644 src/lib/model-capabilities/catalog.ts create mode 100644 src/lib/model-capabilities/lookup.ts create mode 100644 src/lib/model-capabilities/video-effective.ts create mode 100644 src/lib/model-capabilities/video-model-options.ts create mode 100644 src/lib/model-config-contract.ts create mode 100644 src/lib/model-gateway/index.ts create mode 100644 src/lib/model-gateway/llm.ts create mode 100644 src/lib/model-gateway/openai-compat/chat.ts create mode 100644 src/lib/model-gateway/openai-compat/common.ts create mode 100644 src/lib/model-gateway/openai-compat/image.ts create mode 100644 src/lib/model-gateway/openai-compat/index.ts create mode 100644 src/lib/model-gateway/openai-compat/responses.ts create mode 100644 src/lib/model-gateway/openai-compat/template-image.ts create mode 100644 src/lib/model-gateway/openai-compat/template-video.ts create mode 100644 src/lib/model-gateway/openai-compat/video.ts create mode 100644 src/lib/model-gateway/router.ts create mode 100644 src/lib/model-gateway/types.ts create mode 100644 src/lib/model-pricing/catalog.ts create mode 100644 src/lib/model-pricing/lookup.ts create mode 100644 src/lib/model-pricing/version.ts create mode 100644 src/lib/model-pricing/video-tier.ts create mode 100644 src/lib/novel-promotion/insert-panel-prompt-context.ts create mode 100644 src/lib/novel-promotion/insert-panel.ts create mode 100644 src/lib/novel-promotion/panel-ai-data-sync.ts create mode 100644 src/lib/novel-promotion/run-stream/types.ts create mode 100644 src/lib/novel-promotion/script-to-storyboard/orchestrator.ts create mode 100644 src/lib/novel-promotion/stage-readiness.ts create mode 100644 src/lib/novel-promotion/stages/contracts/video-stage-contract.ts create mode 100644 src/lib/novel-promotion/stages/contracts/voice-stage-contract.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime-core.tsx create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/immediate-video-submission.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/task-targets.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/types.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/useVideoDownloadAll.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/useVideoFirstLastFrameFlow.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/useVideoPanelLinking.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/useVideoPanelViewport.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/useVideoPanelsProjection.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/useVideoPromptState.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/useVideoStageUiState.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/useVideoTaskStates.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/useVideoVoiceLines.ts create mode 100644 src/lib/novel-promotion/stages/video-stage-runtime/utils.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime-core.tsx create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/types.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useBindablePanelOptions.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useSpeakerAssetNavigation.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useVoiceGenerationActions.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useVoiceLineBindings.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useVoiceLineCrudActions.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useVoiceLineEditorState.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useVoicePlayback.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useVoiceRuntimeSync.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useVoiceSpeakerState.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useVoiceStageDataLoader.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/useVoiceTaskState.ts create mode 100644 src/lib/novel-promotion/stages/voice-stage-runtime/utils.ts create mode 100644 src/lib/novel-promotion/story-to-script/clip-matching.ts create mode 100644 src/lib/novel-promotion/story-to-script/orchestrator.ts create mode 100644 src/lib/novel-promotion/story-to-script/types.ts create mode 100644 src/lib/openai-compat-media-template.ts create mode 100644 src/lib/openai-compat-template-runtime.ts create mode 100644 src/lib/prisma-error.ts create mode 100644 src/lib/prisma-retry.ts create mode 100644 src/lib/prisma.ts create mode 100644 src/lib/projects/default-name.ts create mode 100644 src/lib/projects/validation.ts create mode 100644 src/lib/prompt-i18n/build-prompt.ts create mode 100644 src/lib/prompt-i18n/catalog.ts create mode 100644 src/lib/prompt-i18n/errors.ts create mode 100644 src/lib/prompt-i18n/index.ts create mode 100644 src/lib/prompt-i18n/prompt-ids.ts create mode 100644 src/lib/prompt-i18n/template-store.ts create mode 100644 src/lib/prompt-i18n/types.ts create mode 100644 src/lib/prop-image-prompt.ts create mode 100644 src/lib/providers/bailian/audio.ts create mode 100644 src/lib/providers/bailian/catalog.ts create mode 100644 src/lib/providers/bailian/image.ts create mode 100644 src/lib/providers/bailian/index.ts create mode 100644 src/lib/providers/bailian/llm.ts create mode 100644 src/lib/providers/bailian/probe.ts create mode 100644 src/lib/providers/bailian/tts.ts create mode 100644 src/lib/providers/bailian/types.ts create mode 100644 src/lib/providers/bailian/video.ts create mode 100644 src/lib/providers/bailian/voice-cleanup.ts create mode 100644 src/lib/providers/bailian/voice-design.ts create mode 100644 src/lib/providers/bailian/voice-manage.ts create mode 100644 src/lib/providers/fal/base-url.ts create mode 100644 src/lib/providers/official/model-registry.ts create mode 100644 src/lib/providers/siliconflow/audio.ts create mode 100644 src/lib/providers/siliconflow/catalog.ts create mode 100644 src/lib/providers/siliconflow/image.ts create mode 100644 src/lib/providers/siliconflow/index.ts create mode 100644 src/lib/providers/siliconflow/llm.ts create mode 100644 src/lib/providers/siliconflow/probe.ts create mode 100644 src/lib/providers/siliconflow/types.ts create mode 100644 src/lib/providers/siliconflow/video.ts create mode 100644 src/lib/query/client.ts create mode 100644 src/lib/query/hooks/index.ts create mode 100644 src/lib/query/hooks/run-stream/event-parser.ts create mode 100644 src/lib/query/hooks/run-stream/recovered-run-subscription.ts create mode 100644 src/lib/query/hooks/run-stream/recovery-probe.ts create mode 100644 src/lib/query/hooks/run-stream/run-event-adapter.ts create mode 100644 src/lib/query/hooks/run-stream/run-request-executor.ts create mode 100644 src/lib/query/hooks/run-stream/run-stream-sse-body.ts create mode 100644 src/lib/query/hooks/run-stream/run-stream-state-runtime.ts create mode 100644 src/lib/query/hooks/run-stream/run-stream-view.ts create mode 100644 src/lib/query/hooks/run-stream/state-machine.ts create mode 100644 src/lib/query/hooks/run-stream/types.ts create mode 100644 src/lib/query/hooks/useAssets.ts create mode 100644 src/lib/query/hooks/useGlobalAssets.ts create mode 100644 src/lib/query/hooks/useProjectAssets.ts create mode 100644 src/lib/query/hooks/useProjectData.ts create mode 100644 src/lib/query/hooks/useRunStreamState.ts create mode 100644 src/lib/query/hooks/useSSE.ts create mode 100644 src/lib/query/hooks/useScriptToStoryboardRunStream.ts create mode 100644 src/lib/query/hooks/useStoryToScriptRunStream.ts create mode 100644 src/lib/query/hooks/useStoryboards.ts create mode 100644 src/lib/query/hooks/useTaskPresentation.ts create mode 100644 src/lib/query/hooks/useTaskStatus.ts create mode 100644 src/lib/query/hooks/useTaskTargetStateMap.ts create mode 100644 src/lib/query/hooks/useUserModels.ts create mode 100644 src/lib/query/hooks/useVoiceLines.ts create mode 100644 src/lib/query/keys.ts create mode 100644 src/lib/query/mutations/asset-hub-character-mutations.ts create mode 100644 src/lib/query/mutations/asset-hub-creation-mutations.ts create mode 100644 src/lib/query/mutations/asset-hub-location-mutations.ts create mode 100644 src/lib/query/mutations/asset-hub-mutations-runtime.ts create mode 100644 src/lib/query/mutations/asset-hub-mutations-shared.ts create mode 100644 src/lib/query/mutations/asset-hub-update-mutations.ts create mode 100644 src/lib/query/mutations/asset-hub-voice-mutations.ts create mode 100644 src/lib/query/mutations/character-base-mutations.ts create mode 100644 src/lib/query/mutations/character-image-ops-mutations.ts create mode 100644 src/lib/query/mutations/character-profile-mutations.ts create mode 100644 src/lib/query/mutations/character-voice-mutations.ts create mode 100644 src/lib/query/mutations/index.ts create mode 100644 src/lib/query/mutations/location-image-mutations.ts create mode 100644 src/lib/query/mutations/location-management-mutations.ts create mode 100644 src/lib/query/mutations/mutation-shared.ts create mode 100644 src/lib/query/mutations/storyboard-panel-mutations.ts create mode 100644 src/lib/query/mutations/storyboard-prompt-mutations.ts create mode 100644 src/lib/query/mutations/task-mutations.ts create mode 100644 src/lib/query/mutations/useAssetHubMutations.ts create mode 100644 src/lib/query/mutations/useCharacterMutations.core.ts create mode 100644 src/lib/query/mutations/useCharacterMutations.ts create mode 100644 src/lib/query/mutations/useEpisodeMutations.ts create mode 100644 src/lib/query/mutations/useLocationMutations.core.ts create mode 100644 src/lib/query/mutations/useLocationMutations.ts create mode 100644 src/lib/query/mutations/useProjectConfigMutations.ts create mode 100644 src/lib/query/mutations/useProjectMutations.ts create mode 100644 src/lib/query/mutations/useStoryboardMutations.core.ts create mode 100644 src/lib/query/mutations/useStoryboardMutations.ts create mode 100644 src/lib/query/mutations/useVideoMutations.ts create mode 100644 src/lib/query/mutations/useVoiceMutations.ts create mode 100644 src/lib/query/task-target-overlay.ts create mode 100644 src/lib/rate-limit.ts create mode 100644 src/lib/redis.ts create mode 100644 src/lib/run-runtime/publisher.ts create mode 100644 src/lib/run-runtime/reconcile.ts create mode 100644 src/lib/run-runtime/recovery.ts create mode 100644 src/lib/run-runtime/service.ts create mode 100644 src/lib/run-runtime/task-bridge.ts create mode 100644 src/lib/run-runtime/types.ts create mode 100644 src/lib/run-runtime/workflow-lease.ts create mode 100644 src/lib/run-runtime/workflow.ts create mode 100644 src/lib/server-boot.ts create mode 100644 src/lib/srt.ts create mode 100644 src/lib/sse/shared-subscriber.ts create mode 100644 src/lib/storage/bootstrap.ts create mode 100644 src/lib/storage/errors.ts create mode 100644 src/lib/storage/factory.ts create mode 100644 src/lib/storage/index.ts create mode 100644 src/lib/storage/init.ts create mode 100644 src/lib/storage/providers/cos.ts create mode 100644 src/lib/storage/providers/local.ts create mode 100644 src/lib/storage/providers/minio.ts create mode 100644 src/lib/storage/signed-urls.ts create mode 100644 src/lib/storage/types.ts create mode 100644 src/lib/storage/utils.ts create mode 100644 src/lib/storyboard-phases.ts create mode 100644 src/lib/style-presets.ts create mode 100644 src/lib/task/client.ts create mode 100644 src/lib/task/error-message.ts create mode 100644 src/lib/task/errors.ts create mode 100644 src/lib/task/has-output.ts create mode 100644 src/lib/task/intent.ts create mode 100644 src/lib/task/presentation.ts create mode 100644 src/lib/task/progress-message.ts create mode 100644 src/lib/task/publisher.ts create mode 100644 src/lib/task/queues.ts create mode 100644 src/lib/task/reconcile.ts create mode 100644 src/lib/task/resolve-locale.ts create mode 100644 src/lib/task/service.ts create mode 100644 src/lib/task/state-service.ts create mode 100644 src/lib/task/submitter.ts create mode 100644 src/lib/task/types.ts create mode 100644 src/lib/task/ui-payload.ts create mode 100644 src/lib/ui/textarea-height.ts create mode 100644 src/lib/update-check.ts create mode 100644 src/lib/user-api/llm-test-connection.ts create mode 100644 src/lib/user-api/model-llm-protocol-probe.ts create mode 100644 src/lib/user-api/model-template/index.ts create mode 100644 src/lib/user-api/model-template/probe.ts create mode 100644 src/lib/user-api/model-template/save.ts create mode 100644 src/lib/user-api/model-template/schema.ts create mode 100644 src/lib/user-api/model-template/validator.ts create mode 100644 src/lib/user-api/provider-test.ts create mode 100644 src/lib/voice/generate-voice-line.ts create mode 100644 src/lib/voice/provider-voice-binding.ts create mode 100644 src/lib/word-count.ts create mode 100644 src/lib/workers/handlers/ai-story-expand.ts create mode 100644 src/lib/workers/handlers/analyze-global-parse.ts create mode 100644 src/lib/workers/handlers/analyze-global-persist.ts create mode 100644 src/lib/workers/handlers/analyze-global-prompt.ts create mode 100644 src/lib/workers/handlers/analyze-global.ts create mode 100644 src/lib/workers/handlers/analyze-novel.ts create mode 100644 src/lib/workers/handlers/asset-hub-ai-design.ts create mode 100644 src/lib/workers/handlers/asset-hub-ai-modify.ts create mode 100644 src/lib/workers/handlers/asset-hub-image-task-handler.ts create mode 100644 src/lib/workers/handlers/asset-hub-modify-task-handler.ts create mode 100644 src/lib/workers/handlers/character-image-task-handler.ts create mode 100644 src/lib/workers/handlers/character-profile-helpers.ts create mode 100644 src/lib/workers/handlers/character-profile.ts create mode 100644 src/lib/workers/handlers/clips-build.ts create mode 100644 src/lib/workers/handlers/episode-split.ts create mode 100644 src/lib/workers/handlers/image-task-handler-shared.ts create mode 100644 src/lib/workers/handlers/image-task-handlers-core.ts create mode 100644 src/lib/workers/handlers/image-task-handlers.ts create mode 100644 src/lib/workers/handlers/llm-proxy.ts create mode 100644 src/lib/workers/handlers/llm-stream.ts create mode 100644 src/lib/workers/handlers/location-image-task-handler.ts create mode 100644 src/lib/workers/handlers/modify-asset-image-task-handler.ts create mode 100644 src/lib/workers/handlers/modify-description-sync.ts create mode 100644 src/lib/workers/handlers/panel-image-task-handler.ts create mode 100644 src/lib/workers/handlers/panel-variant-task-handler.ts create mode 100644 src/lib/workers/handlers/reference-to-character-helpers.ts create mode 100644 src/lib/workers/handlers/reference-to-character.ts create mode 100644 src/lib/workers/handlers/resolve-analysis-model.ts create mode 100644 src/lib/workers/handlers/screenplay-convert-helpers.ts create mode 100644 src/lib/workers/handlers/screenplay-convert.ts create mode 100644 src/lib/workers/handlers/script-to-storyboard-atomic-retry.ts create mode 100644 src/lib/workers/handlers/script-to-storyboard-helpers.ts create mode 100644 src/lib/workers/handlers/script-to-storyboard.ts create mode 100644 src/lib/workers/handlers/shot-ai-persist.ts create mode 100644 src/lib/workers/handlers/shot-ai-prompt-appearance.ts create mode 100644 src/lib/workers/handlers/shot-ai-prompt-location.ts create mode 100644 src/lib/workers/handlers/shot-ai-prompt-prop.ts create mode 100644 src/lib/workers/handlers/shot-ai-prompt-runtime.ts create mode 100644 src/lib/workers/handlers/shot-ai-prompt-shot.ts create mode 100644 src/lib/workers/handlers/shot-ai-prompt-utils.ts create mode 100644 src/lib/workers/handlers/shot-ai-prompt.ts create mode 100644 src/lib/workers/handlers/shot-ai-tasks.ts create mode 100644 src/lib/workers/handlers/shot-ai-variants.ts create mode 100644 src/lib/workers/handlers/story-to-script-helpers.ts create mode 100644 src/lib/workers/handlers/story-to-script.ts create mode 100644 src/lib/workers/handlers/voice-analyze-helpers.ts create mode 100644 src/lib/workers/handlers/voice-analyze.ts create mode 100644 src/lib/workers/handlers/voice-design.ts create mode 100644 src/lib/workers/image.worker.ts create mode 100644 src/lib/workers/index.ts create mode 100644 src/lib/workers/shared.ts create mode 100644 src/lib/workers/text.worker.ts create mode 100644 src/lib/workers/user-concurrency-gate.ts create mode 100644 src/lib/workers/utils.ts create mode 100644 src/lib/workers/video.worker.ts create mode 100644 src/lib/workers/voice.worker.ts create mode 100644 src/lib/workflow-concurrency.ts create mode 100644 src/lib/workflow-engine/dependencies.ts create mode 100644 src/lib/workflow-engine/registry.ts create mode 100644 src/lib/workspace/model-setup.ts create mode 100644 src/middleware.ts create mode 100644 src/pages/_document.tsx create mode 100644 src/styles/animations.css create mode 100644 src/styles/ui-semantic-glass.css create mode 100644 src/styles/ui-tokens-glass.css create mode 100644 src/types/character-profile.ts create mode 100644 src/types/next-auth.d.ts create mode 100644 src/types/project.ts create mode 100644 src/types/storyboard-types.ts create mode 100644 standards/capabilities/catalog.example.json create mode 100644 standards/capabilities/image-video.catalog.json create mode 100644 standards/pricing/image-video.pricing.json create mode 100644 standards/prompt-canary/screenplay_conversion.canary.json create mode 100644 standards/prompt-canary/story_to_script_clips.canary.json create mode 100644 standards/prompt-canary/storyboard_panels.canary.json create mode 100644 standards/prompt-canary/voice_analysis.canary.json create mode 100644 tests/concurrency/billing/ledger.concurrency.test.ts create mode 100644 tests/contracts/behavior-test-standard.md create mode 100644 tests/contracts/requirements-matrix.test.ts create mode 100644 tests/contracts/requirements-matrix.ts create mode 100644 tests/contracts/route-behavior-matrix.ts create mode 100644 tests/contracts/route-catalog.ts create mode 100644 tests/contracts/task-type-catalog.ts create mode 100644 tests/contracts/tasktype-behavior-matrix.ts create mode 100644 tests/fixtures/billing/cases.json create mode 100644 tests/helpers/assertions.ts create mode 100644 tests/helpers/auth.ts create mode 100644 tests/helpers/billing-fixtures.ts create mode 100644 tests/helpers/db-reset.ts create mode 100644 tests/helpers/fakes/llm.ts create mode 100644 tests/helpers/fakes/media.ts create mode 100644 tests/helpers/fakes/providers.ts create mode 100644 tests/helpers/fakes/scenario-server.ts create mode 100644 tests/helpers/fixtures.ts create mode 100644 tests/helpers/mock-query-client.ts create mode 100644 tests/helpers/prisma.ts create mode 100644 tests/helpers/request.ts create mode 100644 tests/hidden/README.md create mode 100644 tests/integration/api/contract/crud-routes.test.ts create mode 100644 tests/integration/api/contract/direct-submit-routes.test.ts create mode 100644 tests/integration/api/contract/infra-routes.test.ts create mode 100644 tests/integration/api/contract/llm-observe-routes.test.ts create mode 100644 tests/integration/api/contract/novel-promotion-episode-create-text.test.ts create mode 100644 tests/integration/api/contract/run-cancel.route.test.ts create mode 100644 tests/integration/api/contract/run-step-retry.route.test.ts create mode 100644 tests/integration/api/contract/runs-list.route.test.ts create mode 100644 tests/integration/api/contract/task-infra-routes.test.ts create mode 100644 tests/integration/api/helpers/call-route.ts create mode 100644 tests/integration/api/specific/asset-hub-appearances-route.test.ts create mode 100644 tests/integration/api/specific/asset-hub-generate-image-art-style.test.ts create mode 100644 tests/integration/api/specific/asset-hub-location-create-no-auto-generate.test.ts create mode 100644 tests/integration/api/specific/assets-route.test.ts create mode 100644 tests/integration/api/specific/characters-post-reference-forwarding.test.ts create mode 100644 tests/integration/api/specific/characters-post.test.ts create mode 100644 tests/integration/api/specific/novel-promotion-character-style-forwarding.test.ts create mode 100644 tests/integration/api/specific/novel-promotion-generate-image-art-style.test.ts create mode 100644 tests/integration/api/specific/novel-promotion-location-style-forwarding.test.ts create mode 100644 tests/integration/api/specific/novel-promotion-project-art-style-validation.test.ts create mode 100644 tests/integration/api/specific/panel-variant-route.test.ts create mode 100644 tests/integration/api/specific/project-create-default-audio-model.test.ts create mode 100644 tests/integration/api/specific/reference-to-character-api.test.ts create mode 100644 tests/integration/api/specific/speaker-voice-provider-contract.test.ts create mode 100644 tests/integration/api/specific/user-api-config-probe-model-llm-protocol.test.ts create mode 100644 tests/integration/api/specific/user-api-config-put.test.ts create mode 100644 tests/integration/api/specific/user-assistant-chat-api-config.test.ts create mode 100644 tests/integration/api/specific/user-models-audio-filter.test.ts create mode 100644 tests/integration/api/specific/user-preference-art-style-validation.test.ts create mode 100644 tests/integration/api/specific/voice-generate-default-audio-model.test.ts create mode 100644 tests/integration/billing/api-contract.integration.test.ts create mode 100644 tests/integration/billing/ledger.integration.test.ts create mode 100644 tests/integration/billing/service.integration.test.ts create mode 100644 tests/integration/billing/submitter.integration.test.ts create mode 100644 tests/integration/billing/worker-lifecycle.integration.test.ts create mode 100644 tests/integration/chain/image.chain.test.ts create mode 100644 tests/integration/chain/text.chain.test.ts create mode 100644 tests/integration/chain/video.chain.test.ts create mode 100644 tests/integration/chain/voice.chain.test.ts create mode 100644 tests/integration/provider/ark-provider.contract.test.ts create mode 100644 tests/integration/provider/fal-provider.contract.test.ts create mode 100644 tests/integration/provider/openai-compat-provider.contract.test.ts create mode 100644 tests/integration/run-runtime/reconcile-active-runs.integration.test.ts create mode 100644 tests/integration/run-runtime/retry-failed-step.integration.test.ts create mode 100644 tests/integration/task/create-task-dedupe.integration.test.ts create mode 100644 tests/regression/panel-variant-cross-storyboard.test.ts create mode 100644 tests/regression/task-dedupe-recovery.test.ts create mode 100644 tests/regression/task-enqueue-billing-rollback.test.ts create mode 100644 tests/regression/task-reusable-run-reattach.test.ts create mode 100644 tests/setup/env.ts create mode 100644 tests/setup/global-setup.ts create mode 100644 tests/setup/global-teardown.ts create mode 100644 tests/system/generate-image.system.test.ts create mode 100644 tests/system/generate-video.system.test.ts create mode 100644 tests/system/helpers/seed.ts create mode 100644 tests/system/helpers/tasks.ts create mode 100644 tests/system/helpers/workers.ts create mode 100644 tests/system/text-workflow.system.test.ts create mode 100644 tests/system/voice-generate.system.test.ts create mode 100644 tests/unit/ai-runtime/errors.test.ts create mode 100644 tests/unit/api-config/assistant-chat-modal-content.test.ts create mode 100644 tests/unit/api-config/minimax-preset.test.ts create mode 100644 tests/unit/api-config/preset-coming-soon.test.ts create mode 100644 tests/unit/api-config/provider-card-assistant-saved-label.test.ts create mode 100644 tests/unit/api-config/provider-card-pricing-form.test.ts create mode 100644 tests/unit/api-config/provider-card-protocol-probe.test.ts create mode 100644 tests/unit/api-config/provider-card-shell.test.ts create mode 100644 tests/unit/api-config/provider-card-tutorial-modal.test.ts create mode 100644 tests/unit/api-config/use-api-config-filters.test.ts create mode 100644 tests/unit/api-config/use-assistant-chat-saved-events.test.ts create mode 100644 tests/unit/api-config/use-providers-order.test.ts create mode 100644 tests/unit/assets/location-backed-assets.test.ts create mode 100644 tests/unit/assets/location-backed-generation.test.ts create mode 100644 tests/unit/assets/mappers.test.ts create mode 100644 tests/unit/assets/project-location-backed-selection.test.ts create mode 100644 tests/unit/assets/prompt-context.test.ts create mode 100644 tests/unit/assets/registry.test.ts create mode 100644 tests/unit/assistant-platform/registry.test.ts create mode 100644 tests/unit/assistant-platform/runtime.test.ts create mode 100644 tests/unit/assistant-platform/skills-api-config-template.test.ts create mode 100644 tests/unit/assistant-platform/system-prompts.test.ts create mode 100644 tests/unit/async-poll-ocompat.test.ts create mode 100644 tests/unit/billing/cost-error-branches.test.ts create mode 100644 tests/unit/billing/cost.test.ts create mode 100644 tests/unit/billing/ledger-extra.test.ts create mode 100644 tests/unit/billing/mode.test.ts create mode 100644 tests/unit/billing/runtime-usage.test.ts create mode 100644 tests/unit/billing/service.test.ts create mode 100644 tests/unit/billing/task-policy.test.ts create mode 100644 tests/unit/components/ai-data-modal-preview-pane.test.ts create mode 100644 tests/unit/components/ai-data-modal.test.ts create mode 100644 tests/unit/components/asset-edit-modal-ai-layout.test.ts create mode 100644 tests/unit/components/asset-grid.test.ts create mode 100644 tests/unit/components/asset-hub-card-aspect-ratio.test.ts create mode 100644 tests/unit/components/asset-toolbar.test.ts create mode 100644 tests/unit/components/capsule-nav-layering.test.ts create mode 100644 tests/unit/components/character-card-gallery-aspect-ratio.test.ts create mode 100644 tests/unit/components/character-creation-modal.test.ts create mode 100644 tests/unit/components/character-section-actions.test.ts create mode 100644 tests/unit/components/global-asset-picker-preview.test.ts create mode 100644 tests/unit/components/image-generation-inline-count-button.test.ts create mode 100644 tests/unit/components/llm-stage-stream-card-error.test.ts create mode 100644 tests/unit/components/location-card-ai-edit.test.ts create mode 100644 tests/unit/components/location-creation-modal.test.ts create mode 100644 tests/unit/components/location-section-prop-confirm.test.ts create mode 100644 tests/unit/components/long-text-detection-prompt.test.ts create mode 100644 tests/unit/components/modal-scroll-lock.test.ts create mode 100644 tests/unit/components/navbar-download-logs.test.ts create mode 100644 tests/unit/components/ratio-style-selectors.test.ts create mode 100644 tests/unit/components/segmented-control.test.ts create mode 100644 tests/unit/components/story-input-composer.test.ts create mode 100644 tests/unit/components/voice-design-shared.test.ts create mode 100644 tests/unit/components/workspace-run-stream-consoles.test.ts create mode 100644 tests/unit/generator-api-openai-template-required.test.ts create mode 100644 tests/unit/generator-api.test.ts create mode 100644 tests/unit/generators/factory.test.ts create mode 100644 tests/unit/generators/fal-video-kling-presets.test.ts create mode 100644 tests/unit/generators/image-provider-smoke.test.ts create mode 100644 tests/unit/generators/openai-compatible-image.test.ts create mode 100644 tests/unit/generators/openai-compatible-video.test.ts create mode 100644 tests/unit/guards/api-route-contract-guard.test.ts create mode 100644 tests/unit/guards/changed-file-test-impact-guard.test.ts create mode 100644 tests/unit/guards/image-reference-normalization-guard.test.ts create mode 100644 tests/unit/guards/task-submit-compensation-guard.test.ts create mode 100644 tests/unit/helpers/api-fetch.test.ts create mode 100644 tests/unit/helpers/json-repair.test.ts create mode 100644 tests/unit/helpers/llm-stage-stream-card-output.test.ts create mode 100644 tests/unit/helpers/logging-core.test.ts create mode 100644 tests/unit/helpers/migrate-gateway-route-openai-compat.test.ts create mode 100644 tests/unit/helpers/prompt-suffix-regression.test.ts create mode 100644 tests/unit/helpers/prop-modify-task-registration.test.ts create mode 100644 tests/unit/helpers/read-error-message.test.ts create mode 100644 tests/unit/helpers/recovered-run-subscription.test.ts create mode 100644 tests/unit/helpers/recovery-probe.test.ts create mode 100644 tests/unit/helpers/reference-to-character-helpers.test.ts create mode 100644 tests/unit/helpers/route-task-helpers.test.ts create mode 100644 tests/unit/helpers/run-request-executor.run-events.test.ts create mode 100644 tests/unit/helpers/run-stream-state-machine.test.ts create mode 100644 tests/unit/helpers/run-stream-view.test.ts create mode 100644 tests/unit/helpers/task-state-service.test.ts create mode 100644 tests/unit/helpers/task-submitter-helpers.test.ts create mode 100644 tests/unit/helpers/update-check.test.ts create mode 100644 tests/unit/helpers/workspace-model-setup.test.ts create mode 100644 tests/unit/home/ai-story-expand.test.ts create mode 100644 tests/unit/home/create-project-launch.test.ts create mode 100644 tests/unit/home/default-route.test.ts create mode 100644 tests/unit/home/quick-start-textarea.test.ts create mode 100644 tests/unit/image-generation/count.test.ts create mode 100644 tests/unit/image-generation/slot-state.test.ts create mode 100644 tests/unit/lipsync-bailian.test.ts create mode 100644 tests/unit/lipsync-preprocess.test.ts create mode 100644 tests/unit/llm/ark-llm-thinking.test.ts create mode 100644 tests/unit/llm/chat-completion-official-provider.test.ts create mode 100644 tests/unit/llm/chat-completion-openai-compatible-protocol.test.ts create mode 100644 tests/unit/llm/chat-stream-official-provider.test.ts create mode 100644 tests/unit/llm/chat-stream-openai-compatible-protocol.test.ts create mode 100644 tests/unit/llm/completion-parts-think-tag.test.ts create mode 100644 tests/unit/llm/reasoning-capability.test.ts create mode 100644 tests/unit/location-available-slots.test.ts create mode 100644 tests/unit/model-capabilities/bailian-video-capabilities.test.ts create mode 100644 tests/unit/model-capabilities/image-resolution-default.test.ts create mode 100644 tests/unit/model-capabilities/video-effective.test.ts create mode 100644 tests/unit/model-gateway/llm.test.ts create mode 100644 tests/unit/model-gateway/openai-compat-responses.test.ts create mode 100644 tests/unit/model-gateway/openai-compat-template-image-output-urls.test.ts create mode 100644 tests/unit/model-gateway/openai-compat-template-renderer.test.ts create mode 100644 tests/unit/model-gateway/openai-compat-template-video-external-id.test.ts create mode 100644 tests/unit/model-gateway/router.test.ts create mode 100644 tests/unit/novel-promotion/assets-global-actions.test.ts create mode 100644 tests/unit/novel-promotion/character-voice-mutations.test.ts create mode 100644 tests/unit/novel-promotion/immediate-video-submission.test.ts create mode 100644 tests/unit/novel-promotion/insert-panel-prompt-context.test.ts create mode 100644 tests/unit/novel-promotion/insert-panel-user-input.test.ts create mode 100644 tests/unit/novel-promotion/location-confirm-mutations.test.ts create mode 100644 tests/unit/novel-promotion/novel-input-stage.test.ts create mode 100644 tests/unit/novel-promotion/panel-task-status-error-code.test.ts create mode 100644 tests/unit/novel-promotion/project-global-analyze-mutation.test.ts create mode 100644 tests/unit/novel-promotion/stage-readiness.test.ts create mode 100644 tests/unit/novel-promotion/use-tts-generation.test.ts create mode 100644 tests/unit/novel-promotion/video-model-options.test.ts create mode 100644 tests/unit/novel-promotion/video-panel-card-body.test.ts create mode 100644 tests/unit/novel-promotion/video-panels-projection-error-code.test.ts create mode 100644 tests/unit/novel-promotion/voice-generation-actions.test.ts create mode 100644 tests/unit/novel-promotion/voice-runtime-sync.test.ts create mode 100644 tests/unit/novel-promotion/voice-stage-data-loader.test.ts create mode 100644 tests/unit/novel-promotion/workspace-auto-run.test.ts create mode 100644 tests/unit/novel-promotion/workspace-video-actions.test.ts create mode 100644 tests/unit/optimistic/ai-data-modal-state.test.ts create mode 100644 tests/unit/optimistic/asset-actions-generate.test.ts create mode 100644 tests/unit/optimistic/asset-hub-mutations.test.ts create mode 100644 tests/unit/optimistic/panel-ai-data-sync.test.ts create mode 100644 tests/unit/optimistic/panel-save-coordinator.test.ts create mode 100644 tests/unit/optimistic/project-asset-mutations.test.ts create mode 100644 tests/unit/optimistic/sse-invalidation.test.ts create mode 100644 tests/unit/optimistic/task-target-overlay.test.ts create mode 100644 tests/unit/optimistic/task-target-state-map.test.ts create mode 100644 tests/unit/projects/default-name.test.ts create mode 100644 tests/unit/projects/validation.test.ts create mode 100644 tests/unit/prompt-i18n/select-prop-template.test.ts create mode 100644 tests/unit/providers/bailian-llm.test.ts create mode 100644 tests/unit/providers/bailian-tts.test.ts create mode 100644 tests/unit/providers/bailian-video.test.ts create mode 100644 tests/unit/providers/bailian-voice-cleanup.test.ts create mode 100644 tests/unit/providers/bailian-voice-design.test.ts create mode 100644 tests/unit/providers/model-registry.test.ts create mode 100644 tests/unit/query/project-location-generate-body.test.ts create mode 100644 tests/unit/query/use-project-assets.test.ts create mode 100644 tests/unit/run-runtime/recovery.test.ts create mode 100644 tests/unit/run-runtime/task-bridge.test.ts create mode 100644 tests/unit/script-view/clip-asset-utils.test.ts create mode 100644 tests/unit/script-view/script-view-assets-panel.test.ts create mode 100644 tests/unit/script-view/selection-sync.test.ts create mode 100644 tests/unit/storage/bootstrap.test.ts create mode 100644 tests/unit/storage/factory.test.ts create mode 100644 tests/unit/task/async-poll-ark.test.ts create mode 100644 tests/unit/task/async-poll-bailian.test.ts create mode 100644 tests/unit/task/async-poll-external-id.test.ts create mode 100644 tests/unit/task/async-poll-openai.test.ts create mode 100644 tests/unit/task/error-catalog.contract.test.ts create mode 100644 tests/unit/task/error-message.test.ts create mode 100644 tests/unit/task/intent.test.ts create mode 100644 tests/unit/task/llm-observe-contract.test.ts create mode 100644 tests/unit/task/normalize-error.test.ts create mode 100644 tests/unit/task/presentation.test.ts create mode 100644 tests/unit/task/publisher.direct-run-events.test.ts create mode 100644 tests/unit/task/publisher.replay.test.ts create mode 100644 tests/unit/user-api/llm-test-connection.test.ts create mode 100644 tests/unit/user-api/model-llm-protocol-probe.test.ts create mode 100644 tests/unit/user-api/model-template-save.test.ts create mode 100644 tests/unit/user-api/model-template-schema.test.ts create mode 100644 tests/unit/user-api/provider-test-compatible.test.ts create mode 100644 tests/unit/user-api/provider-test.test.ts create mode 100644 tests/unit/voice/generate-voice-line.test.ts create mode 100644 tests/unit/voice/provider-voice-binding.test.ts create mode 100644 tests/unit/worker/ai-story-expand.test.ts create mode 100644 tests/unit/worker/analyze-global.test.ts create mode 100644 tests/unit/worker/analyze-novel.test.ts create mode 100644 tests/unit/worker/asset-hub-ai-design.test.ts create mode 100644 tests/unit/worker/asset-hub-ai-modify.test.ts create mode 100644 tests/unit/worker/asset-hub-image-suffix.test.ts create mode 100644 tests/unit/worker/character-image-task-handler.test.ts create mode 100644 tests/unit/worker/character-profile.test.ts create mode 100644 tests/unit/worker/clips-build.test.ts create mode 100644 tests/unit/worker/episode-split.test.ts create mode 100644 tests/unit/worker/image-task-handlers-core.test.ts create mode 100644 tests/unit/worker/image-worker.test.ts create mode 100644 tests/unit/worker/llm-proxy.test.ts create mode 100644 tests/unit/worker/llm-stream.test.ts create mode 100644 tests/unit/worker/location-image-task-handler.test.ts create mode 100644 tests/unit/worker/modify-image-reference-description.test.ts create mode 100644 tests/unit/worker/panel-image-task-handler.test.ts create mode 100644 tests/unit/worker/panel-variant-task-handler.test.ts create mode 100644 tests/unit/worker/reference-to-character.test.ts create mode 100644 tests/unit/worker/resolve-analysis-model.test.ts create mode 100644 tests/unit/worker/screenplay-convert.test.ts create mode 100644 tests/unit/worker/script-to-storyboard-atomic-retry.test.ts create mode 100644 tests/unit/worker/script-to-storyboard-orchestrator.retry.test.ts create mode 100644 tests/unit/worker/script-to-storyboard.test.ts create mode 100644 tests/unit/worker/shared.direct-run-events.test.ts create mode 100644 tests/unit/worker/shot-ai-prompt-appearance.test.ts create mode 100644 tests/unit/worker/shot-ai-prompt-location.test.ts create mode 100644 tests/unit/worker/shot-ai-prompt-shot.test.ts create mode 100644 tests/unit/worker/shot-ai-tasks.test.ts create mode 100644 tests/unit/worker/shot-ai-variants.test.ts create mode 100644 tests/unit/worker/story-to-script-orchestrator.retry.test.ts create mode 100644 tests/unit/worker/story-to-script.test.ts create mode 100644 tests/unit/worker/user-concurrency-gate.test.ts create mode 100644 tests/unit/worker/video-generation-resume.test.ts create mode 100644 tests/unit/worker/video-worker.test.ts create mode 100644 tests/unit/worker/voice-analyze.test.ts create mode 100644 tests/unit/worker/voice-design.test.ts create mode 100644 tests/unit/worker/voice-line-parse-helpers.test.ts create mode 100644 tests/unit/worker/voice-worker.test.ts create mode 100644 tests/unit/workflow-engine/registry.test.ts create mode 100644 tests/unit/workspace/episode-selection.test.ts create mode 100644 tests/unit/workspace/rebuild-confirm.test.ts create mode 100644 tsconfig.json create mode 100644 vitest.config.ts create mode 100644 vitest.core-coverage.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e1535cf --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changelog / 更新日志 + +All notable changes to this project will be documented in this file. + +--- + +## [v0.2] - 2026-02-28 + +### ✨ 新功能 +- 增加 OpenAI 兼容图片、视频格式支持 + +### 🐛 修复 +- 修复默认模型配置后项目模型需要二次选择的问题 +- 修复部分情况 resolution 无法读取的问题 +- 修复模型链路为 LangGraph +- 修复默认参数无选择问题 +- 修复关闭计费依然触发计费问题 +- 修复 openai-compatible 被误判为原生 OpenAI 推理问题 +- 修复 JSON 解析失败问题 + +### ⚙️ 优化 +- 修改为默认计费 off +- 增强提示词 JSON 格式限制 + +--- + +## [v0.2.1] - 2026-02-28 + +### 🐛 修复 +- 修复 AI 生成内容语言不跟随网站语言设置的问题 +- 修复前端 API 请求未携带 Accept-Language header 导致 locale 回退到浏览器默认语言 +--- + +## [v0.1] - 2026-02-27 + +### 🎉 首次发布 +- 项目初始开源版本 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f743763 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,60 @@ +# ==================== Stage 1: Dependencies ==================== +FROM node:20-alpine AS deps +WORKDIR /app + +COPY package.json package-lock.json ./ +COPY prisma ./prisma +RUN npm ci + +# ==================== Stage 2: Build ==================== +FROM node:20-alpine AS builder +WORKDIR /app + +COPY --from=deps /app/node_modules ./node_modules +COPY . . + +# Prisma generate + Next.js build +RUN npm run build + +# ==================== Stage 3: Production ==================== +FROM node:20-alpine AS runner +WORKDIR /app + +ENV NODE_ENV=production + +# Install tini for proper signal handling +RUN apk add --no-cache tini + +# node_modules(含 devDeps,因为 npm run start 需要 concurrently + tsx) +COPY --from=builder /app/node_modules ./node_modules +COPY --from=builder /app/package.json ./package.json + +# Next.js 构建产物 +COPY --from=builder /app/.next ./.next +COPY --from=builder /app/public ./public + +# Prisma schema(db push 需要) +COPY --from=builder /app/prisma ./prisma + +# Worker 和 Watchdog 源码(tsx 运行 TypeScript) +COPY --from=builder /app/src ./src +COPY --from=builder /app/scripts ./scripts +COPY --from=builder /app/lib ./lib + +# 定价和配置标准 +COPY --from=builder /app/standards ./standards + +# 国际化 + 配置文件 +COPY --from=builder /app/messages ./messages +COPY --from=builder /app/tsconfig.json ./tsconfig.json +COPY --from=builder /app/next.config.ts ./next.config.ts +COPY --from=builder /app/middleware.ts ./middleware.ts +COPY --from=builder /app/postcss.config.mjs ./postcss.config.mjs + +# 运行日志目录 + 空 .env(tsx --env-file=.env 需要文件存在,实际 env 由 docker-compose 注入) +RUN mkdir -p /app/logs && touch /app/.env + +EXPOSE 3000 3010 + +ENTRYPOINT ["/sbin/tini", "--"] +CMD ["npm", "run", "start"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..06d3d8c --- /dev/null +++ b/LICENSE @@ -0,0 +1,14 @@ +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + +This is a human-readable summary of (and not a substitute for) the license. +Disclaimer: This license is not a software license in the strict Open Source sense, +but it is used here to protect the commercial rights of the project. + +You are free to: +- Share — copy and redistribute the material in any medium or format +- Adapt — remix, transform, and build upon the material + +Under the following terms: +- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. +- NonCommercial — You may not use the material for commercial purposes. +- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. diff --git a/README.md b/README.md new file mode 100644 index 0000000..b08e8a1 --- /dev/null +++ b/README.md @@ -0,0 +1,161 @@ +

+ + 🚀 探索 AI 影视的下一代创作流 | 立即加入 waoowaoo 在线网页版内测候补 + +

+ +

+ waoowaoo +

+ +

waoowaoo AI 影视 Studio

+ +

+ 一款基于 AI 技术的短剧/漫画视频制作工具,支持从小说文本自动生成分镜、角色、场景,并制作成完整视频。 +

+ +

+ English · 加入内测候补 · 反馈问题 +

+ +> [!IMPORTANT] +> ⚠️ **测试版声明**:本项目目前处于测试初期阶段,由于暂时只有我一个人开发,存在部分 bug 和不完善之处。我们正在快速迭代更新中,**欢迎进群反馈问题和需求,及时关注项目更新!目前更新会非常频繁,后续会增加大量新功能以及优化效果,我们的目标是成为行业最强AI工具!** + + + +--- +## ✨ 功能特性 + +- 🎬 **AI 剧本分析** — 自动解析小说,提取角色、场景、剧情 +- 🎨 **角色 & 场景生成** — AI 生成一致性人物和场景图片 +- 📽️ **分镜视频制作** — 自动生成分镜头并合成视频 +- 🎙️ **AI 配音** — 多角色语音合成 +- 🌐 **多语言支持** — 中文 / 英文界面,右上角一键切换 + +--- + +## 🚀 快速开始 + +**前提条件**:安装 [Docker Desktop](https://docs.docker.com/get-docker/) + +### 方式一:拉取预构建镜像(最简单) + +无需克隆仓库,下载即用: + +```bash +# 下载 docker-compose.yml +curl -O https://raw.githubusercontent.com/saturndec/waoowaoo/main/docker-compose.yml + +# 启动所有服务 +docker compose up -d +``` + +> ⚠️ 当前为测试版,版本间数据库不兼容。升级请先清除旧数据: + +```bash +docker compose down -v +docker rmi ghcr.io/saturndec/waoowaoo:latest +curl -O https://raw.githubusercontent.com/saturndec/waoowaoo/main/docker-compose.yml +docker compose up -d +``` + +> 启动后请**清空浏览器缓存**并重新登录,避免旧版本缓存导致异常。 + +### 方式二:克隆仓库 + Docker 构建(完全控制) + +```bash +git clone https://github.com/saturndec/waoowaoo.git +cd waoowaoo +docker compose up -d +``` + +更新版本: +```bash +git pull +docker compose down && docker compose up -d --build +``` + +### 方式三:本地开发模式(开发者) + +```bash +git clone https://github.com/saturndec/waoowaoo.git +cd waoowaoo + +# 复制环境变量配置文件(必须在 npm install 之前完成) +cp .env.example .env +# ⚠️ 编辑 .env,填入你的 AI API Key(NEXTAUTH_URL 默认已是 http://localhost:3000,无需修改) + +npm install + +# 只启动基础设施 +# 注意:docker-compose.yml 将服务映射到非标准端口,.env.example 已按此预设 +mysql:13306 redis:16379 minio:19000 +docker compose up mysql redis minio -d + +# 初始化数据库表结构(首次必须执行,跳过会导致启动后报错) +npx prisma db push + +# 启动开发服务器 +npm run dev +``` + +> [!WARNING] +> 跳过 `npx prisma db push` 会导致所有数据库表不存在,启动后报错 `The table 'tasks' does not exist`。请务必先运行此命令再启动开发服务器。 + +--- + +访问 [http://localhost:13000](http://localhost:13000)(方式一、二)或 [http://localhost:3000](http://localhost:3000)(方式三)开始使用! + +> 首次启动会自动完成数据库初始化,无需任何额外配置。 + +> [!TIP] +> **如果遇到网页卡顿**:HTTP 模式下浏览器可能限制并发连接。可安装 [Caddy](https://caddyserver.com/docs/install) 启用 HTTPS: +> ```bash +> caddy run --config Caddyfile +> ``` +> 然后访问 [https://localhost:1443](https://localhost:1443) + +--- + +## 🔧 API 配置 + +启动后进入**设置中心**配置 AI 服务的 API Key,内置配置教程。 + +> 💡 **注意**:目前仅推荐使用各服务商官方 API,第三方兼容格式(OpenAI Compatible)尚不完善,后续版本会持续优化。 + +--- + +## 📦 技术栈 + +- **框架**: Next.js 15 + React 19 +- **数据库**: MySQL + Prisma ORM +- **队列**: Redis + BullMQ +- **样式**: Tailwind CSS v4 +- **认证**: NextAuth.js + +--- + +## 📦 页面功能预览 + +![4f7b913264f7f26438c12560340e958c67fa833a](https://github.com/user-attachments/assets/fa0e9c57-9ea0-4df3-893e-b76c4c9d304b) +![67509361cbe6809d2496a550de5733b9f99a9702](https://github.com/user-attachments/assets/f2fb6a64-5ba8-4896-a064-be0ded213e42) +![466e13c8fd1fc799d8f588c367ebfa24e1e99bf7](https://github.com/user-attachments/assets/09bbff39-e535-4c67-80a9-69421c3b05ee) +![c067c197c20b0f1de456357c49cdf0b0973c9b31](https://github.com/user-attachments/assets/688e3147-6e95-43b0-b9e7-dd9af40db8a0) + +--- + +## 🤝 参与方式 + +本项目由核心团队独立维护。欢迎你通过以下方式参与: + +- 🐛 提交 [Issue](https://github.com/saturndec/waoowaoo/issues) 反馈 Bug +- 💡 提交 [Issue](https://github.com/saturndec/waoowaoo/issues) 提出功能建议 +- 🔧 提交 Pull Request 供参考 — 我们会认真审阅每一个 PR 的思路,但最终由团队自行实现修复,不会直接合并外部 PR + +--- + +**Made with ❤️ by waoowaoo team** + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=saturndec/waoowaoo&type=date&legend=top-left)](https://www.star-history.com/#saturndec/waoowaoo&type=date&legend=top-left) diff --git a/README_en.md b/README_en.md new file mode 100644 index 0000000..555306e --- /dev/null +++ b/README_en.md @@ -0,0 +1,149 @@ +

+ waoowaoo +

+ +

waoowaoo AI Video Studio

+ +

+ An AI-powered tool for creating short drama / comic videos — automatically generates storyboards, characters, and scenes from novel text, then assembles them into complete videos. +

+ +

+ 中文文档 · Join Waitlist · Report Bug +

+ +> [!IMPORTANT] +> **Beta Notice**: This project is currently in its early beta stage. As it is currently a solo-developed project, some bugs and imperfections are to be expected. We are iterating rapidly — please stay tuned for frequent updates! We are committed to rolling out a massive roadmap of new features and optimizations, with the ultimate goal of becoming the top-tier solution in the industry. Your feedback and feature requests are highly welcome! + +--- + +## ✨ Features + +- 🎬 **AI Script Analysis** — Parse novels, extract characters, scenes & plot automatically +- 🎨 **Character & Scene Generation** — Consistent AI-generated character and scene images +- 📽️ **Storyboard Video** — Auto-generate shots and compose into complete videos +- 🎙️ **AI Voiceover** — Multi-character voice synthesis +- 🌐 **Bilingual UI** — Chinese / English, switch in the top-right corner + +--- + +## 🚀 Quick Start + +**Prerequisites**: Install [Docker Desktop](https://docs.docker.com/get-docker/) + +### Method 1: Pull Pre-built Image (Easiest) + +No need to clone the repository. Just download and run: + +```bash +# Download docker-compose.yml +curl -O https://raw.githubusercontent.com/saturndec/waoowaoo/main/docker-compose.yml + +# Start all services +docker compose up -d +``` + +> ⚠️ This is a beta version. Database is not compatible between versions. To upgrade, clear old data first: + +```bash +docker compose down -v +docker rmi ghcr.io/saturndec/waoowaoo:latest +curl -O https://raw.githubusercontent.com/saturndec/waoowaoo/main/docker-compose.yml +docker compose up -d +``` + +> After starting, please **clear your browser cache** and log in again to avoid issues caused by stale cache. + +### Method 2: Clone & Docker Build (Full Control) + +```bash +git clone https://github.com/saturndec/waoowaoo.git +cd waoowaoo +docker compose up -d +``` + +To update: +```bash +git pull +docker compose down && docker compose up -d --build +``` + +### Method 3: Local Development (For Developers) + +```bash +git clone https://github.com/saturndec/waoowaoo.git +cd waoowaoo + +# Copy environment config (must be done before npm install) +cp .env.example .env +# ⚠️ Edit .env to fill in your AI API Keys (NEXTAUTH_URL defaults to http://localhost:3000, no change needed) + +npm install + +# Start infrastructure only +docker compose up mysql redis minio -d + +# Run database migration +npx prisma db push + +# Start development server +npm run dev +``` + +--- + +Visit [http://localhost:13000](http://localhost:13000) (Method 1 & 2) or [http://localhost:3000](http://localhost:3000) (Method 3) to get started! + +> The database is initialized automatically on first launch — no extra configuration needed. + +> [!TIP] +> **If you experience lag**: HTTP mode may limit browser connections. Install [Caddy](https://caddyserver.com/docs/install) for HTTPS: +> ```bash +> caddy run --config Caddyfile +> ``` +> Then visit [https://localhost:1443](https://localhost:1443) + +--- + +## 🔧 API Configuration + +After launching, go to **Settings** to configure your AI service API keys. A built-in guide is provided. + +> 💡 **Note**: Currently only official provider APIs are recommended. Third-party compatible formats (OpenAI Compatible) are not yet fully supported and will be improved in future releases. + +--- + +## 📦 Tech Stack + +- **Framework**: Next.js 15 + React 19 +- **Database**: MySQL + Prisma ORM +- **Queue**: Redis + BullMQ +- **Styling**: Tailwind CSS v4 +- **Auth**: NextAuth.js + +--- + +## 📦 Preview + +![4f7b913264f7f26438c12560340e958c67fa833a](https://github.com/user-attachments/assets/fa0e9c57-9ea0-4df3-893e-b76c4c9d304b) +![67509361cbe6809d2496a550de5733b9f99a9702](https://github.com/user-attachments/assets/f2fb6a64-5ba8-4896-a064-be0ded213e42) +![466e13c8fd1fc799d8f588c367ebfa24e1e99bf7](https://github.com/user-attachments/assets/09bbff39-e535-4c67-80a9-69421c3b05ee) +![c067c197c20b0f1de456357c49cdf0b0973c9b31](https://github.com/user-attachments/assets/688e3147-6e95-43b0-b9e7-dd9af40db8a0) + +--- + +## 🤝 Contributing + +This project is maintained by the core team. You're welcome to contribute by: + +- 🐛 Filing [Issues](https://github.com/saturndec/waoowaoo/issues) — report bugs +- 💡 Filing [Issues](https://github.com/saturndec/waoowaoo/issues) — propose features +- 🔧 Submitting Pull Requests as references — we review every PR carefully for ideas, but the team implements fixes internally rather than merging external PRs directly + +--- + +**Made with ❤️ by waoowaoo team** + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=saturndec/waoowaoo&type=date&legend=top-left)](https://www.star-history.com/#saturndec/waoowaoo&type=date&legend=top-left) diff --git a/caddyfile b/caddyfile new file mode 100644 index 0000000..8215d07 --- /dev/null +++ b/caddyfile @@ -0,0 +1,20 @@ +# HTTPS 反向代理(在主机上运行,非 Docker 内) +# 启动方式: caddy run --config Caddyfile +# +# 用法: +# 1. docker compose up -d (启动 App + MySQL + Redis) +# 2. caddy run --config Caddyfile (启动 HTTPS 代理) +# 3. 打开 https://localhost:4443 或 https://your-ip:4443 +# +# 修改下方 IP 为你的局域网 IP(ifconfig en0 查看) +# 例如: localhost:1443, https://192.168.x.x:1443 { + +localhost:1443 { + handle /admin/queues* { + reverse_proxy localhost:13010 + } + handle { + reverse_proxy localhost:13000 + } + tls internal +} \ No newline at end of file diff --git a/debug-request.json b/debug-request.json new file mode 100644 index 0000000..9dff864 --- /dev/null +++ b/debug-request.json @@ -0,0 +1,9 @@ +{ + "model": "doubao-seedream-4-0-250828", + "prompt": "Lily and Olivia in 医院病房_日夜, medium shot, dramatic lighting, American comic style", + "sequential_image_generation": "disabled", + "response_format": "url", + "size": "1080x1920", + "stream": false, + "watermark": false +} \ No newline at end of file diff --git a/docker-compose.test.yml b/docker-compose.test.yml new file mode 100644 index 0000000..debe046 --- /dev/null +++ b/docker-compose.test.yml @@ -0,0 +1,32 @@ +services: + mysql: + image: mysql:8.0 + container_name: waoowaoo-test-mysql + environment: + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: waoowaoo_test + MYSQL_ROOT_HOST: "%" + ports: + - "3307:3306" + command: + - "--default-authentication-plugin=mysql_native_password" + - "--sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" + healthcheck: + test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -proot"] + interval: 5s + timeout: 5s + retries: 30 + start_period: 15s + + redis: + image: redis:7-alpine + container_name: waoowaoo-test-redis + ports: + - "6380:6379" + command: ["redis-server", "--appendonly", "no"] + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 5s + retries: 30 + start_period: 5s diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d6f0f4e --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,152 @@ +services: + # ==================== MySQL ==================== + mysql: + image: mysql:8.0 + container_name: waoowaoo-mysql + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: waoowaoo123 + MYSQL_DATABASE: waoowaoo + MYSQL_ROOT_HOST: "%" + ports: + - "13306:3306" + volumes: + - mysql_data:/var/lib/mysql + command: + - "--default-authentication-plugin=mysql_native_password" + - "--sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" + healthcheck: + test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -pwaoowaoo123"] + interval: 5s + timeout: 5s + retries: 30 + start_period: 15s + + # ==================== Redis ==================== + redis: + image: redis:7-alpine + container_name: waoowaoo-redis + restart: unless-stopped + ports: + - "16379:6379" + volumes: + - redis_data:/data + command: ["redis-server", "--appendonly", "yes"] + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 5s + retries: 30 + start_period: 5s + + # ==================== MinIO ==================== + minio: + image: minio/minio:RELEASE.2025-02-28T09-55-16Z + container_name: waoowaoo-minio + restart: unless-stopped + environment: + MINIO_ROOT_USER: minioadmin + MINIO_ROOT_PASSWORD: minioadmin + command: server /data --console-address ":9001" + ports: + - "19000:9000" + - "19001:9001" + volumes: + - minio_data:/data + healthcheck: + test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/minio/health/live"] + interval: 5s + timeout: 5s + retries: 30 + start_period: 10s + + # ==================== App (Next.js + Workers) ==================== + app: + image: ghcr.io/saturndec/waoowaoo:latest + container_name: waoowaoo-app + restart: unless-stopped + environment: + # 数据库(指向容器内部 MySQL,用服务名 mysql 而非 localhost) + DATABASE_URL: "mysql://root:waoowaoo123@mysql:3306/waoowaoo" + # Redis(指向容器内部 Redis,用服务名 redis) + REDIS_HOST: redis + REDIS_PORT: "6379" + REDIS_USERNAME: "" + REDIS_PASSWORD: "" + REDIS_TLS: "" + # 存储:默认 MinIO(S3 兼容) + STORAGE_TYPE: minio + MINIO_ENDPOINT: "http://minio:9000" + MINIO_REGION: "us-east-1" + MINIO_BUCKET: "waoowaoo" + MINIO_ACCESS_KEY: "minioadmin" + MINIO_SECRET_KEY: "minioadmin" + MINIO_FORCE_PATH_STYLE: "true" + # 外部访问地址(浏览器实际访问) + NEXTAUTH_URL: "http://localhost:13000" + # 容器内自调用地址(服务端 fetch 自己的 API / 文件) + INTERNAL_APP_URL: "http://127.0.0.1:3000" + NEXTAUTH_SECRET: "waoowaoo-default-secret-2026" + # 内部密钥 + CRON_SECRET: "waoowaoo-docker-cron-secret" + INTERNAL_TASK_TOKEN: "waoowaoo-docker-task-token" + API_ENCRYPTION_KEY: "waoowaoo-opensource-fixed-key-2026" + # Worker 配置 + WATCHDOG_INTERVAL_MS: "30000" + TASK_HEARTBEAT_TIMEOUT_MS: "90000" + QUEUE_CONCURRENCY_IMAGE: "50" + QUEUE_CONCURRENCY_VIDEO: "50" + QUEUE_CONCURRENCY_VOICE: "20" + QUEUE_CONCURRENCY_TEXT: "50" + # Bull Board + BULL_BOARD_HOST: "0.0.0.0" + BULL_BOARD_PORT: "3010" + BULL_BOARD_BASE_PATH: "/admin/queues" + BULL_BOARD_USER: "" + BULL_BOARD_PASSWORD: "" + # 日志 + LOG_UNIFIED_ENABLED: "true" + LOG_LEVEL: "INFO" + LOG_FORMAT: "json" + LOG_DEBUG_ENABLED: "false" + LOG_AUDIT_ENABLED: "true" + LOG_SERVICE: "waoowaoo" + LOG_REDACT_KEYS: "password,token,apiKey,apikey,authorization,cookie,secret,access_token,refresh_token" + # 计费 + BILLING_MODE: "OFF" + # 流式 + LLM_STREAM_EPHEMERAL_ENABLED: "true" + ports: + - "13000:3000" + - "13010:3010" + volumes: + - ./data:/app/data + - ./docker-logs:/app/logs + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_healthy + minio: + condition: service_healthy + command: > + sh -c " + npx prisma db push --skip-generate && + (sleep 5 && echo '' && + echo '╔══════════════════════════════════════════════════╗' && + echo '║ waoowaoo is ready! ║' && + echo '║ ║' && + echo '║ HTTP: http://localhost:13000 ║' && + echo '║ ║' && + echo '║ For HTTPS, run Caddy on host: ║' && + echo '║ caddy run --config Caddyfile ║' && + echo '║ Then open: https://localhost:1443 ║' && + echo '╚══════════════════════════════════════════════════╝' && + echo '') & + npm run start + " + +volumes: + mysql_data: + redis_data: + minio_data: diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000..ab518e7 --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,161 @@ +# waoowaoo 技术架构说明 + +本文档描述仓库当前的整体技术架构、运行时拓扑与主要模块职责,便于新成员理解与运维部署对照。 + +--- + +## 1. 产品定位 + +**waoowaoo** 是一款面向「小说 / 剧本 → 分镜、角色、场景 → 配音 → 成片」的 **AI 影视创作 Web 应用**。用户在浏览器中管理项目与创作流程;**长耗时生成与第三方 AI 调用**主要在服务端与独立 Worker 进程中异步完成。 + +--- + +## 2. 运行时拓扑(多进程) + +生产与本地开发均采用 **Next.js Web 进程 + 多个常驻 Node 进程**(见根目录 `package.json` 中 `dev` / `start` 脚本,由 `concurrently` 编排): + +| 进程 | 说明 | +|------|------| +| **Next.js** | `next dev` / `next start`:App Router 页面、`src/app/api/**` 的 HTTP API、SSR | +| **BullMQ Workers** | `src/lib/workers/index.ts`:消费 Redis 队列,处理图片 / 视频 / 语音 / 文本等任务 | +| **Watchdog** | `scripts/watchdog.ts`:队列与健康类辅助脚本 | +| **Bull Board** | `scripts/bull-board.ts`:队列可视化(Express) | + +**基础设施**(`docker-compose.yml` 与典型自建环境): + +- **MySQL 8**:业务与任务相关持久化(Prisma) +- **Redis 7**:BullMQ 队列与部分运行时状态 +- **对象存储**:默认 **MinIO(S3 兼容)**;亦可对接 AWS S3、腾讯云 COS 等(见依赖与 `STORAGE_TYPE`) + +--- + +## 3. 逻辑分层示意 + +```mermaid +flowchart TB + subgraph client [浏览器] + UI[Next App Router + React] + RQ[TanStack Query] + end + + subgraph next [Next.js 进程] + API[src/app/api] + Auth[NextAuth] + Prisma[Prisma Client] + end + + subgraph infra [基础设施] + MySQL[(MySQL)] + Redis[(Redis)] + S3[(对象存储 S3 兼容)] + end + + subgraph workers [Worker 进程] + W[BullMQ Workers] + Gen[Generators / Providers] + end + + UI --> RQ --> API + API --> Auth + API --> Prisma --> MySQL + API --> Redis + API --> S3 + W --> Redis + W --> Gen + W --> Prisma + W --> S3 + Gen --> Ext[外部 AI / 媒体 API] +``` + +--- + +## 4. 前端技术栈 + +| 领域 | 技术 | +|------|------| +| 框架 | **Next.js 15**(App Router)、**React 19** | +| 构建 / 开发 | **Turbopack**(`next dev --turbopack`)、TypeScript | +| 国际化 | **next-intl**;`src/middleware.ts` 与 `src/i18n.ts` 配置 **`localePrefix: 'always'`**(路径如 `/zh/...`、`/en/...`) | +| 服务端状态 | **TanStack React Query**(`@tanstack/react-query`) | +| 交互 | **@dnd-kit**(拖拽排序等) | +| 视频 / 时间线 | **Remotion**(`remotion`、`@remotion/player`、`@remotion/cli`) | +| 样式 | **Tailwind CSS v4**、**Geist** 字体、**lucide-react** | + +**页面与业务模块**主要位于 `src/app/[locale]/...`,其中 **novel-promotion**(小说推广 / 分镜工作流)与 **asset-hub**(资产库)等为核心业务区。 + +--- + +## 5. 后端与数据层 + +| 领域 | 技术 | +|------|------| +| API | **Route Handlers**:`src/app/api/**`(与前端同仓部署) | +| ORM / 数据库 | **Prisma 6** + **MySQL**(`prisma/schema.prisma`) | +| 认证 | **NextAuth v4** + **`@next-auth/prisma-adapter`** | + +数据模型围绕用户、项目、分集、分镜、角色、场景、媒体对象、异步任务与计费等展开,体量较大,属于典型创作类 SaaS 模型。 + +--- + +## 6. 异步任务与媒体管线 + +- **队列**:**BullMQ** + **ioredis**。 +- **Worker 拆分**:`src/lib/workers/` 下按领域划分(如 `image.worker`、`video.worker`、`voice.worker`、`text.worker`),具体任务逻辑在 `src/lib/workers/handlers/**`。 +- **设计意图**:HTTP 请求负责校验、落库、入队;长耗时生成在 Worker 中执行,避免 Next 请求超时,并便于重试与监控。 + +--- + +## 7. AI 与多厂商集成 + +- **抽象方式**:`src/lib/generators/**` 以工厂(如 `factory.ts`)按 `provider` 选择图片 / 视频 / 音频生成器;与用户或系统级 **`api-config`**、模型网关等配合。 +- **依赖生态(节选)**:Vercel **AI SDK**(`ai`、`@ai-sdk/*`)、**OpenAI**、**Google GenAI**、**OpenRouter**、**FAL** 等;另有 `src/lib/providers/**` 等官方或兼容网关封装。 +- **治理**:`package.json` 中大量 **`scripts/guards/*`** 与 **`check:*`**,用于约束 API 层不直连 LLM、模型能力不落硬编码、路由与计费契约等,体现「配置中心 + 契约 / 静态检查」的工程策略。 + +--- + +## 8. 存储与文件 + +- **初始化**:`npm run storage:init` → `src/lib/storage/init.ts`。 +- **后端**:`src/lib/storage` 抽象多后端;支持 MinIO / S3 / COS 等,与 Docker 环境变量(如 `STORAGE_TYPE`、`MINIO_*`)对齐。 +- **媒体引用**:数据库中记录存储键或媒体对象关联,Worker 上传后回写。 + +--- + +## 9. 工程化与质量 + +| 类型 | 说明 | +|------|------| +| 类型检查 | `npm run typecheck`(`tsc --noEmit`) | +| Lint | ESLint(`eslint-config-next`) | +| 测试 | **Vitest**:`tests/unit`、`tests/integration`(api / provider / chain / task)、`tests/system`、`tests/regression`;计费有专项单测与并发测 | +| Git 钩子 | **Husky**(`prepare` 脚本) | +| 脚本门禁 | 大量 `check:*`、`test:guards` 聚合,与 CI / 本地校验流程配合 | + +--- + +## 10. 目录与模块速查(开发向) + +| 路径 | 职责 | +|------|------| +| `src/app/[locale]/` | 国际化下的页面与布局 | +| `src/app/api/` | HTTP API | +| `src/lib/workers/` | 队列 Worker 入口与任务处理器 | +| `src/lib/generators/` | 各厂商图片 / 视频 / 音频生成器与工厂 | +| `src/lib/prisma.ts` | Prisma 客户端单例等 | +| `src/lib/query/` | React Query 封装、mutation、keys | +| `prisma/` | Schema 与迁移 | +| `messages/` | next-intl 文案(如 `zh`、`en`) | +| `scripts/` | 运维脚本、守卫脚本、迁移脚本 | +| `tests/` | 各类自动化测试 | + +--- + +## 11. 一句话总结 + +本项目采用 **「Next 全栈单体 + Prisma/MySQL + Redis/BullMQ 异步 Worker + S3 兼容对象存储 + 多厂商生成器工厂」** 架构:Web 负责交互与编排,**队列 Worker** 承载重任务与多模型调用,并通过 **守卫脚本与测试** 将模型与路由约束在可维护的配置与契约之内。 + +--- + +## 12. 文档维护 + +架构随版本迭代会变化;若重大变更(如队列方案、数据库、部署拓扑),请同步更新本文件并在 PR 中说明变更要点。 diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..f4d2259 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,52 @@ +import { dirname } from "path"; +import { fileURLToPath } from "url"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +const eslintConfig = [ + ...compat.extends("next/core-web-vitals", "next/typescript"), + { + ignores: [ + "node_modules/**", + ".agent/**", + ".next/**", + "out/**", + "build/**", + "coverage/**", + "next-env.d.ts", + ], + }, + { + files: ["src/**/*.{ts,tsx}"], + ignores: ["src/components/ui/icons/**"], + rules: { + "no-restricted-imports": [ + "error", + { + paths: [ + { + name: "lucide-react", + message: "Import icons through '@/components/ui/icons' only.", + }, + ], + }, + ], + "no-restricted-syntax": [ + "error", + { + selector: "JSXOpeningElement[name.name='svg']", + message: + "Use AppIcon or icons module components instead of inline .", + }, + ], + }, + }, +]; + +export default eslintConfig; diff --git a/extract_chinese.py b/extract_chinese.py new file mode 100644 index 0000000..27fda37 --- /dev/null +++ b/extract_chinese.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python3 +""" +提取React/TypeScript代码中的硬编码中文字符串 +""" +import re +import os +from pathlib import Path +import json + +def extract_chinese_strings(file_path): + """提取文件中的中文字符串""" + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + except: + return [] + + results = [] + + # 匹配JSX/TSX中的中文字符串 + # 1. {' 中文 '} 或 {"中文"} + pattern1 = r'\{\s*[\'"]([^\'"\{\}]*[\u4e00-\u9fff]+[^\'"\{\}]*)[\'\"]\s*\}' + # 2. >中文< + pattern2 = r'\>([^<\>]*[\u4e00-\u9fff]+[^<\>]*)\<' + # 3. placeholder="中文" 等属性 + pattern3 = r'(?:placeholder|title|alt|value|defaultValue|confirmText|cancelText|message)\s*=\s*[\'"]([^\'\"]*[\u4e00-\u9fff]+[^\'\"]*)[\'"]' + # 4. 字符串默认值 = '中文' + pattern4 = r'=\s*[\'"]([^\'\"]*[\u4e00-\u9fff]+[^\'\"]*)[\'"]' + + for pattern in [pattern1, pattern2, pattern3, pattern4]: + matches = re.finditer(pattern, content) + for match in matches: + chinese_text = match.group(1).strip() + if chinese_text and len(chinese_text) > 0: + # 跳过注释 + line_num = content[:match.start()].count('\n') + 1 + line = content.split('\n')[line_num - 1] + if '//' in line and line.index('//') < line.find(chinese_text): + continue + results.append({ + 'text': chinese_text, + 'line': line_num, + 'category': 'unknown' + }) + + # 去重 + seen = set() + unique_results = [] + for r in results: + key = f"{r['text']}_{r['line']}" + if key not in seen: + seen.add(key) + unique_results.append(r) + + return unique_results + +def scan_directory(base_path,exclude_patterns=['test-ui']): + """扫描目录中的所有TSX/TS文件""" + all_findings = {} + + for root, dirs, files in os.walk(base_path): + # 排除特定目录 + dirs[:] = [d for d in dirs if d not in exclude_patterns and not d.startswith('.')] + + for file in files: + if file.endswith(('.tsx', '.ts')): + file_path = os.path.join(root, file) + relative_path = os.path.relpath(file_path, base_path) + + findings = extract_chinese_strings(file_path) + if findings: + all_findings[relative_path] = findings + + return all_findings + +if __name__ == '__main__': + base_dir = 'src' + results = scan_directory(base_dir) + + # 输出结果 + total = 0 + for file_path, findings in sorted(results.items()): + if findings: + print(f"\n## {file_path} ({len(findings)} strings)") + for finding in findings[:10]: # 只显示前10个 + print(f" Line {finding['line']}: {finding['text'][:60]}") + total += len(findings) + if len(findings) > 10: + print(f" ... and {len(findings) - 10} more") + + print(f"\n\n总计: {len(results)} 个文件, {total} 处硬编码中文") diff --git a/images/cta-banner.png b/images/cta-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..6d827db27907a36f4054ff49e7ea8eda0fca11f4 GIT binary patch literal 359833 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

CU35A1GjCQQss-FfHj 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 TFJ%=3^HkMd

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

Gy1lu(9u~_oW7d8i;jB>-uqshRx)gx} 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 \ No newline at end of file diff --git a/public/globe.svg b/public/globe.svg new file mode 100644 index 0000000..567f17b --- /dev/null +++ b/public/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icon.png b/public/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3563a9eaa1a8b500f50cd81a8b34cc29620d26 GIT binary patch literal 440124 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�d4a2y&_tkv8CcWpm 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�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

w&!DErKpnd10z1guo8kR%fJ1FutRy%2zD@DQ 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∨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

)OYrPXi<` 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%0A8;UHf!cIAA|WKL9RAwzRF6MM{{~h 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

Zw+sa|}rt$JG>|7JB2J4}&0F-~roX zZNs!@+blAs<<*U4064r=5 zDOfKi!lja&2gQx5CV-Z;N)L1kX)%?r5yE*|O;;58iX>f<=qdcZLA^qX5&_jKrvPf6 z$5a<#HH(zCJPFMUtO6ND;OY4`EF^{N+|nvkM)WmGHT=YsDxo5*C+RV{R;se~N*7D_ zHp$cfM&sM9^D3VnqP^?**fO9x7VP@s!&jDhNIa0;@w_4^Yr9?_kfrq6d4{*3THc3!#BD%&I9=t)J!jIEpnMN$e?g>0Xl`C0 zPzXs?(ArV8`SF1_cXvC&?=f{xZ1r#SzE~WMPw{(H*-$!<9q-xa=os<@)IK-R z#KpGvXqEcB47j1fk9}^cTrKW)4Te;{UiOG#ms0=iMg`Y;lyZiJ3< z)(cJf>LzWjrkl4v#20__i+c{{fhtj$D1cT2QAN} zB=Mx0guc%+132tBpWmRZLX%VLeomr5aLTHif2C2U%xjfuOukTi6>y{D<}}DEqZ~Pm zKx@~oLt1?>Mtv8?V~W?_Qr_zF^)9)q+*>!o*mu6xMp*ECHJ*kMthfA4_JJH2-n!bZ zI~vs-vu@;hnt44W7*JbJay)G$g}9a7Sx(RE;YOf!u6ebP11#*hqsxiyJ>B-|xtoR@ zb~?Tv=F0H0?+HRKZyXe&f~-;!jTX0$Op144e$5tg2l|%M0pR!u^t1oS zFDWV@QHpW(8X_-lbn{H+^lXN{ybgRkZC0nUUL&toh#H_2N@i-=?d!1oZV5izN93|L z2&3QxIQ+J5HnJtW^ew=)^I4+m?S{ zQteh#FeAiJUj^id%rQ|oMWja>@R&s&N#4BGoUTRn=H3@N5Ws;+buDpvq^tG!5$Pvl z<|iS~XB>Dc_1p+xb7d~4wQvyElvF{o2(P9XnI~BnT69F}2UrxUvRftpghZHqxiLKXu*BQiF*$ZgzWR%KdKfKLhBDS2bT%b*n?4lR)#|Bp zS9{ww$wK=F&-OQeRvAm$;)Cx?*7kk&+kJPiB=aV0K*OS|gW|aO-4f&iJuzxj)G(Cg zb^6n9+kgs0xdCwks({$ep4KDARM9PW4fQzu077QQDn{gKqCBmmBA#3)eLM@k7eN2f zCT)HY()=IYJwgZa6sMJBU?Si`6;Da%vk=nNL~=UC$RSQ(4j`(zH(=qrT{*O5-ZrgF z-e5J)JZ+QFKrQo-Vid(y8tlBoDfxDM64Czhl~RWCu=X8| zyv?4e0Z3M{t$1z7SRNJ&PZ|(JrG}>nau%d4nv-bCdJWN6f$4c*`f_6W62Pkj-P{Ju zAL!Gk1HkbSNthKxH%j`3RbNB&bryY_MK&TyBnzmzf^X$W(Bf)k8;h8d;e-jG?Ll3M zP{6WH8{*2eoqwWP)^{K!&4bt-uSBIfLPh%xwKep;SrIJ<#13oKPQ}Il?xZ+-Z%DN% z1|8WS$H8d7M~GdspWEZ5O|fEtwB19yzGJ1$;%L|2ogiTNW|w<0*9W%CrC*_?Y@3=j zpgcPh9!xMX4-4y~s&l>eTc(S}Pkx@%F;3+YU{a)dOROESXXR26g~rM&Cgx`J_}Q5h z>w2|P*`ZI`F7Vrcbigc|0$V3^C`knnL#QtXg+QdV3Sl}2<4W_JOL@0>mfybMoaVz$ z^#GDNBg8m?`5ZAm<%vIIrbooweI+M!D=g1MvDyrxtyb&TLWSQYjuxvWwOloMXr_h-!UVG20&RntYD#DOPAdRX4`h|n z2Qo)&YCJb+&+Raj1_g$8OP?IiZ0B{}*St&WIv3ZDW#ZXpp<*`2?`EIWsro$ie z@Z<_2O1sWt;Hb`(%A-q;kFr(@4=yvQ$GI1fgX*)0+H-Yr1x{@46b02nGz*AHl`oX> z<{E2Xcy|sFAx>CNE1F4cNxm|)|%&{@afW)l7Xd#$J%`I0EdBRg|{gJ6F3w@M^RF{60GQa zy{yL`HsH2=0H`_KO89H4{J43mVX44cTjiX}kw7YL{6Wku+2GPdY+8m`;EX6EGegAG@ z$)wfG%pIXU&l_6@LfOZI0ijeqGg0>|=T&HXyT5!3<0Q1>MqQ>nTT3RIYTk|PhEZ#n zoXOwK=%PT%fR@k{%{i-P$;h}?rPokA2k=}N&zbOw1ey-<`*l3Kqu3t1>ZmXp5?2;FiJh zA(pOhjy^0e+wbyT9qDhooKg+hShTnEoUTABOrTgkjN5I6y5(83TWQ-xMR_VQous84 zmqLm~P`mY~_7pP;<0*E*((B@msZDwCJyCdfFhw0B#jLKXjI``{plNQUM;9ZoYfyJy_8$%Nk1! z$>9EL%`I01{5!7W-K2->)Msvh@K&B81u~?A6Az>&nBVbxIc5-%Z)vr=DFYRR*s}p` zC)&FoExj`CnkRPo4=RW?G-w%CG+wjI3GcV>ZSDWVFWRm}?HZQPp@Ntk5n@D~Cdjnb z6(eR17b^U8TAzK!tCK68R;PdG&-}*lxBm3Ma7gy|0AkRTA*ZbQGC(dO@o|i6UaunJ zv;soJOeN8z2q3wGfaRG<133)%G9ooVR>}@;z%wg2FenfxlrK$*y^Sm^tpIW~@@wZE zc;B^T%!#%*zwA-y-Fm;zLf>)BFg{KpC-l)dBhCP>T zdqq2o+%^44T^I5F?A{s*W6s{A1ktx7lx|7GeV}gv9RQAxNg~i?Z;;ar zomS}VvI`GdQDtptZ)tW65!pt&cTrCyW!A>hu~3ywuSAsgT_230lZzD|Z`5UoUkaq2 zmfzox5t@~u#faW|^sZ~$8T&@5a_OBd%edj_;_q@ZswlfUF>@J8>Mf7n@+mfUDzM~l zO^`K|nhfruCTyFRhXDz`d!lx3E1?n9;#!3j+qkrb0%Y=gR;g5wm;kAH2;9ZO z-mSKiRp$|OFAy_kSkhXm$w`avD}$#1TCD)^idM%LS@fym%@dmQ59c>;j?%l=J}=dQ z?jS8$MoSDg(Px?Y=?Z+o93~2Zc$yGua#0gd4O9RCvl5%fO?HZKRdoP#C5zbHoC!gx z=i@;4?l7y42N+D)?$#S0e~TX0gvBCzAbGD56I6{a-X(ae;~f@8Q^GKIlL35pCMwpE zz4%-Qr5$b0heevjb|_Ix23GgaTVkt|(%Jn|5~c3mU8JsiQ?r-1vR}qsKBwLMdIUHM z=(*jFZ^M_#?f}Q$z37&)-+C@u!C433@q_2u9?fgd^|p>-zXs~wpdD0Hl=-GqLR8Yw zOqVGLWuK9@>8snb6asG5)w-99@6>i8UvWp+8ZUgDFmXhVE98|RCQLE&*&Ol{3aig) zI(jPW)62X*IsW{=^pC#%!JqsCpO!u36Qy7C&;Pp_j2$rPs$*T%C85I!_MzMzoa>RsX4vcFs@Z8$pPW`R@3_! zq7L+d=+FMce~)J7EOB)m;`EZI>A8mZGAZ89Da~n~k<*M+y*NS@G*A^kpPiiR%aR@e zJzRsF!A*In(ck0tb{KbJlRIxzUwQyJqmmtb~r`SaJSzb|fL z_qgitq8f%{?xTKOnl*KCZ{}`j^T+@uQj59t`4rH?50nCONk@j}|Dg;h7tlnhDXmlm zgrI(W%-=*I3Kt6Hz+Pn|YnD-yV3~9rUYy-=AquKC7&= z=F_C|D2qG}phq0|6p<#xKolaFLw)uFfnX*@u89hJjDHo-coc#CROZxe7BP(s-4D5|;3@l+nDO{IbjqvP}xlM}U#nc79N4!FY^;BFD08J^`*Hz^Rh>k*+{C;_M7p0-8tTX2i3N250zcH@fous z*?E4x_qnVs{=9=nZVy^K*AYC~?w5}@9~1?y$^r{O^(Yc#D#^s7S11}-wTl!$E_1Jr zUE%S5FZHrS84ot8qU|wd{xcXs8G!;qh**V)RS2|VngZzwK^_U=sd9WAr{nXuzBt0s zW%&HR_S+B2#vSx)|Hc21!MqmL(==}`=9}w_&F1EeMUGb?#MLw*PAh~s0nAR4sX(<5 zRDdic5o308p2=cMo<>aI#Vgp$WE7x?N^U_I=%E-D(0<*@ua;}DwKXP|^io;#_@pjd z+4X$Bk>%Pma8KNn_WO+Ye%l2a0DXLJ+g(Orb$g#^NxQe&A7xd)Ujz>(EU&kCZoNGj zc%`a9$&I8+1!?-rMBehOxxGp`U<+{^Wxsa6s}(-E20&T zjODBEGffVtudD*i8Im)SLX|k{w7TJG{T3Wvisa{;`OS;@&GR>qJpcLs;jh#A&5MUA zI0yQq=-|Qekx7Z5A#8~FHLE;Vl^03U8~eG?FV~F~Ztb2Pz9VQ%wORD*&#c>J$l7UCl&5xH54mo? zTfPvjmZqh!O4tsM8A)q$H2~yd3|*|Y_1vE`-kbk8?tJEwzNH4Z+#Eg+LAyddp;#}> z3Se3KEsnqTto6BW(suqZrdl^H``+wmPAGTQ0`GazAD0uXtHLQDpb9{(EU5Z+$&F7} z@JeiUDgLS`7RA^PYxiT;U*aO@wAfk{i)>L`2@?mbr-_88HLZ@$rj#!!ghz?^9FXHk z6adUP&|Z?tOn&+A{?~)jbP5gUkaPjbk05%^fsX^n*m9mQ73HP!01FK%D_i?W_{9ixjG~^T@EqM=UxMqFU+Mg@KhmFbL(Uhqt61E{> za&v@=f>iiPBuX1_-mEp>TuhQ4F^4NzpIxftQ_ATrnC0{T#{X1)@Q442gVM2wl!%4t z1d`74=K4HeU!P4eoKnP^`IN&nAx;x0Ojy+M0Kj!mHE)h8duiXf)#|*qrEmEaYBFfv zrAU`&-uSonH&&6wKnd@~(a-I~s$E`n-f+v~%D#jlM2>)F?YGYYY~^(7ZP**MaR3S! zRC0i6`useBO@V0HG@<%a7e=OI#7I_Fu#)P`IWwV`zGByzxjXs&i{%6z|Z~8fAGL-zQuF^ zI6g9^!n|(4^a6?>k?4;AeU?RDZ}ObiIfX0u!5XJE>KJ~R<+%kOv5 zt#)K}zx9k&TjxHs2C9;|67Ngkch~vU1)W8QAL7+xVtuG;l!ZrmA;>OcF(z#G87;YK z5E!(Y5WsYdI9)TJCe|wn;jvDu%hl1zSx(mzO6jiy?V%i$f7$=~Pby+K)<9Pw;Hf~L z1d&UKoRWr#0uxUW2m!)ffGe5HzluMn&(BdPq6kdp$>GV|d-n#FsVTd__UiJV?>ASs z;+`KY_SkCMf1-tdjn}1;Xu5eE?6U0Lvj;Z3@BfhSU`9~|()(VrC97-zZU<5BM+8%x z+UI3bPJc8R;70on`I@NA;NS)M4@4fQ=-(Bu5wQ(LJ5XW0;rjjUQiJd42nZ5(%wMM_ z5lX@ymHvE*N+qlq7;948=u9Es9I2+uJn<7gI(?c$cnrz!h=MZF28U3?E&6-^_kWX0 zt{qxQmPa|Ir)l0?rTO|IYB*6{tzw8g#WhxO1r1^Fc-STx3?@JgMMVXssv;>U)l!P( z9f(|%fAbEq3MyN?%`4QyRXa#tLSVl#!`eZ+=kUYnL-*@8@=yQ`xs^INIh9x|bksA4LNxnn$QGRC5bW$?9`)Q1uW*tEkd% zQ;<`d|qAj?lqv`y-Rg8>M+Ohk1U%DgS_S z`T<0~fat3%dQ%hV=;)$bGD~j@{i7ST4_g??JH3AWOqzDNXM6zi+4esrGTr|^cg^m# z%e&A#H+GTteEBL1*|HzpmwXO{uST@vg#nT8YHZo6xZbmBbv$PRVnkT2Fs)WpvR}%n z=J^qT$GTo!#Yayr`1EoO0KecL`=`H2spMNjzx4P2X;K2qDjwnV=#o#*KGWlq?{Ns9 zk?JEBJq`c|jud%?$Pq-<>Mgwj1F&0YHo#$<6wAV+JiOj7N#&CE3-aGBDm>v9$aG;q z`xUbib#BP~NazIq?-qWg2R=9xkx|9uEquvD{jW81p=A;{+$Fylw-^Wr^mUvv9% z!|c6|?gIR%gdLiPN454g3#=API1wXqM4ToHk%>tVkz$~HE+IU5b9DSYIXeF=9ba7L zz zXEuMR;*n#aVLg;&`F@{VGk6Vna+Y`to0dT%|5WJ1fiFG$XCF`bx{z0ou-XGDukDIs zi!+zcbnwC$LsTqOX$-~OJzqRE>Cbq^;HiPZQ*-p(9OsTep(4mRA*C6cJZDvTtArPU z!xu#K1$k$78Q?cc`kV+a6XZ1qdK*A zuUfO3RinBhQ@=*5m}bJX8VF&RDDQnv4n;XZoB8f`q@TCy|2nXw0!K`MC^b}G(OpDK zKdOCPOI`paMM4R=p}OhFV7={g#WH(K-PEM|Au8^* zUUtcRZ7n-DReQ9SBgQ8kE!01luw}wCx&KFtCpx>gScQ?ANlAwLnee=dQIB z<}5L1dGGJD3)03HEU~g57;0fBo+tOdG#*-oLGzFj>S;h}VOs6(-!7GB+hclJ#la?8 z1Tx*rJWr5(|(1XLy4_@HaQC*A8~;)h==&mwUt{HP={wDN`4rhyCo%AE_39ri$S z>5sYZ7m$xC&s8`7%CVi#X7zl%xb*w`9Qye3qRTR#cSZU7Oz2u)-cohkZXtn2+cc%i6J$&k^)H8TpXxY3Il@z zBM>7JP(Th13LM`sUr3CXEP5)Do~QTpUiz*RzndAL6%&qB<&=_~k>UazPkEYF99LY* z!v=r}A)~nX>&PFOs>}$W@UN0#32sey-_H@;DBc>>N`r>R!^^z#-b%U22ju2+UC#?ym>!13}i|k8{zYAk1 z4?859MFBZ1REF(Z1LM?oPdNRu6g2G#qmTD?P(os-*042wZLUM-YoM+D0 ztoaRq*M#(%B;BaY8FZ^MaG-Ay9RQAxOhH63&-pL>rk_c_>VNyEUgQ{_Gt-L{RRVEeE8eh&W(-BYv8MlZX-z@^KRS|G;>#&92`_Tc1$_!DMb#W)vl5`0Rq28S@ zTkN*e5YO(fOQRSDjHOdup69}@-H*QV2hbHGJJZu3TziE8I$Q&AfCP=PntRPgg92ao z%KC*FM#|sbg2gI=y91`W7MhA;&qUpGqhdALb%Ruuexco#Qno%U`g|J=c|p*(PfIo% zEH1xZ*Azpwjt?YIHN}IF$>&ul0Vs-+mqFcq^o-(0;{y$WAyeIu=S*~SgM9sV1<5Bk zTA%UJXQ$Jn$0wvZ2_S#ZANX_n|NcjR&0!N8hyiFoT%WE^&aUX__(>LdqSx1#G;fYr zY!)+!B8UQ@QWd;j#fP-7_gsY_sJ3G)vU{q65LZE{C!np}sX{VUB?#1~lYxV^^}4>a zTX!nRX<67UKM2Y8BOe81Yq4Hr&nnqzttRRj`fa|}fb!0N+$yK8tOGUA!T?6}c3XE) zcyi(6<%l6~NaKNI_yd+=unFu^!RlSW?ts^B-)bWVA-Eqpm+)}G?#58(%#!=r;dLCy z!w}^D?tVV(=TSY@-=#FxN|hhk#kWJD_R&zK!6|6=eSZqQBW@dP-}|sq%crHlVw|aM z5>3Q+L+f)VdA=Wp_PFdfHA#lI+WR?X{F^|Hw~u>dxhDnHJ(%hmqjt^abx7Ql+di(n zqFP4vQ*TM48G#uqCfYECcg!bA!eeH7npuAk0)0t=UgAJor0;G5fFlJi7<7f4uL6fl z4&jv7M-#2qKwJS_M1EC3vjDlP!Ud?axnzL~f|C5ZE0>)+m1MOBp6#>9+Z<3T)lEhV ze18GdcuK(umbr9B$<7{M?M2jn~*h@5gwMfI#EGSv&2LC3i|A%YZ!`>+-5_&-G!l9Myg)o8I9P zj1o#pd8*+`)BzBNS`*_4RP^3^Za}T#j`1|(ES4ZukrWlQs~%%&w^YGZWXw4s&1u#^ zuQhC55aCNwc?sZJiL%mtcYyU01&J~I7<-}vhqC&_8^ju4+CPS2w9Ga`Nk&?&O4 zG^L3+RGU)($daNh*?uJ=aIFiMwOCBPYmQetQc`>pbl)5t2R8b?q@e06phN&O0tl-l z$b19U898lMkbEAd=_0I79>*9jmGA`%HYm9`4giOzER-Q35S=1UPib0xpF}>_lrLHG zDsWLgID}GSu=-)JNVD{)6A6LJZ?srf%+Ivr234xLH`Mk(q9OnVa^Mwk1FKPaXNcuyH^g|8!(Ff`H zcZ||JGYO7J^)dyz%FxHm@d8sgj_YHdR>z2;WHo{oV}RDG69$zA7*JKvv_4A&+>Wc? zwzA$`X=Mfim%q#fIG%t8q;Ac41HCRbf91W__a%e8{gyyTbsm>o9fFh-a>_{ataF;*Ce`Qb5Ple$ zf5^};G)!-Jbt0dlPH~|3qXWS42~hxvs=fi}r4qf&pjV=JH0K;{Qkp14#4usv;^dW~ zMOdg7QUhvb!I-$(!p6*8%TNxF5cinrijS6wGWgor)~8$FeI4<{w^4T+-llDDv(Y?x zYfs&ea*G`7#qHwxvI}rB@t~vWJ~v78QZTE8>-Vzk>-*61nGBvXwD`UX9{w)OvXU3K zrgg(=9zPggCYS_lXNI#)%d5qNT`s5UV&1iFvSpl#^(ck_jS&(<`3#BgfKvr7BKT1T zUn%H}NMGTQY;=n_&wwgvN=KWN9!*J}1mF=9ore&n5F(i_;``MZQh5x_tkAQ zc%*g1)<6o&*U;4sch)@=hVF4isMgbZk?krncE<95=i1$lH~v*WFUD_Qw*-o?$UZoF z6Yk=r09R?dc)~1?*|!^XD*M`EbQk;E@I3amV-*XQ{8hV0Tm8-WZNM(O4}<`OK1%k zfkVxubWBHcnl>31NBQRSccR}H*8d+7oeLdg)?JhUQpg&rXF=!@kzU3aPN!+LT2Ct~ zWnpU_3*D6ur|iTnS!|U7%qz|+SO8ur9dj!5UBB+=mC5W2|80tEy++nimg@bw5A6bx zZO)kwSK+8S9I?OsGAnm)61%)b?$h6GZ`6IqZ_CyDu6Qqt+Tsw)Ww!j;DolCr7^?gN z=EY&FyX_l&4zw^hIPRdO;iZ>P316W$&J5{&lHzISy_c7FUY=-4I-2WT_40^~c7|fk z87U>*%(HIhd2=&wUbE;k4&g^Mg}m+STMn=BXe{b9EQed=`BEIuKk5EO(Qm^R9M z9Vy&U){U?nBV|w&Z~%xH%r&M}6p~GuD4DK{(pggkQDN{|OIb~05Hbj$E~>4zQ#P?G zh!BuMvDpe~i|J!!kV*|<;gWC)UX|IVb|o$BXNYYk!Qd;mU^BypOy&Sg4OwQ}z=+z> z=8ot~B^s6Z<%Mv)gP98T-}|?H16<-hK0incH6ic5tRR)1pMr|oVhxb5^#?$m>kYa8 zb@=2-w?}`WB%06y^bN}9kVzfEZGvX>BL!GWt_|A^Goi*#*3c%Bmczq`5-`df%swbU zi(hSMV^p3=rV`Iv{+9lg+Vl#dVtuyqiA-Gj83+?Irofm2(`L?5Q#ww-SxV^)zzM5f z?;NrpbIOtd5z?ERiQiryE5&09;V7tvDMXs$R6I9o0!uA9JBp%HCrJQR5KAp+7Fnd` zXaPXw7*+x?cQ@wRhoX4(gry}HPzT0prhqo@03ZHU7E?)LSO8xG&`e>I%AJg_EfIvJ zLc34OX)gV~UoM`l-H&?3pGxSJ^N;p9Hx}w~12U*GpG?M8jVJZQjYb7vTnOTXcHf<9 zJ`N=ajc(Zk08|bglmJ_E<1?`nD*&|!?-BRO!i9{2YqMN$Q~^AX>fsX@LL_&&U=O$8 za)s0rP&KdNJFoBy(E!>AYWT(2NO{ND%6lO#k&-)(sBu11?Ckj7zi~e)%3t3z+YVrS zxz2eD|FU}}H3J2;>xrB2jDBCn*L!GTY1_6Ts%x$#4Q*?wpXbL#l`DTh-Ir}6&>CV@ ztf~MNzJt0UF(bqYyj~;BbD)hJA0eM-$iK#?N?am`gw*L}_9Vj*u0@GyQ<6-Jc~Kn!zVfxwF3LJ>ek7KkKepWwou*un+S z`D)3RRzqE3bGIs~WS~SPwfR2s&SA-`wh*s!N}cC!T>%(nHH^R{DXI+HkEPmHF*2!L zY8a43piCb`|E-Sv%;#z9p?-IZCCwn`?@D9KW97+uiBsnvO)f$5H zyt%oe7@lBSU#`}^F->(sMgJlP;%xJg}Wq9XAYQFYe-gXl7`hrj&82!t7*RZEU7*X zipN594B*+V1NCD_!id6pN?9KP`e+Tlh#{ATt~u}v5dDx;e}FVU&Kc*k;$jXP#JC1U?5X9}QR1@4 z*iLdA$T65>^WZVM5z<7{4)Ea)}=elru4 z`}USzz_RogS}MSRfYfaK<*PshX2vQ;Y^F$g!zls?D(RBaN&ShqcC4jL#TMXzb z3Pb^vt70K&RkJ)~!X4XB#1p4>99@Dzd+aHD*STXuF3F#;2qwSpZzCx`l}qPH}&MGnAg)9mh( zEzvzUv)tY7-v)3{6>wTY{!eVCF|ZX%{4t1NAxqp6hnCTIFtT|YI)Edf0~^d`E-vq- zC+_Zsuqu9F7R8MyW&u(zUULEifEhwShG5Pan>k@lS+d{;G`*%k&jZsJ0KQ<+FFD{H z0Q{NX`csE=FW(_L034qX(X>_oY2x@ggTH|2k5u%AVLb41bHk^!5?cfkQ& z0qYt0X|(jXYe2_m?_0L{(o1(1q1)QGt8L|o*qX~r;MZHD7Ui)QzYndD`|D;Mp}Te0 zs+o)Pj8`Zc-*ER$jjy;cmBm=FmT*GPa{=>Y(YCHyc!LduTThlp!uPzjkIo;K-VW-n z2lVl_`&d4+-B;)?*&|rCSiXuLUT44BL)LakJJ)i>pz$KKJ#Dzkz;{NMcyn#%#XWjH z-%A(wezmdG{tWF}VtbgIo3fzAO6lsi|Eu!s zpZ>3YY#r~T(og=Lzs5p1$|~o`^CLhXW#J1V9K{eyd065aQdmJS=bh2=piuv8zZscV zrM>T#_#P@}7Ww|tflo^1b^EE$t7W*v+#- zwrQ;XHy*SNkkaCs_aV1$1%Uc?JRa5fh;ALACX_i4qDy*M$k2;+?683iln-5Q9Lwt( z9~;KQ&TpQYwFMUjDX89YE>ubZBrTp9IV+L~68dk&7)vb_ZcZ6<%E$sG3O78h-UbdY zC*Va0{E7%~{={$oMd_9SKhU?74gkj|L=q!V*7ZA9d7%lRcgLXgK z6}|>C5dbRr3xs?`X*pgN`+!|_U(a^;(?7>9u&7C~TSQf0)&`iEl_1f$r!i{DE|feO zU4X4Ix99?|ZA@jV_NZ4=-~g9EXurrwJta=q?n1j_r>1O`Ia&m@s$!`^RLZj_M&O85 zh{z#Omb_NvGtP1W$O%AG{4i$eZ$16=|1HyWc17|0QOqL8bhEh-dVZNDUF3XoqMDD0 z5Wst+HHfV{eHbbZ#f)>u^Ylo#`hjvF=|S^=>hdQ0?w^j`?0bZTUNCAZrHw3 zuVZ-v2GFGn>t3yBaq3h%APO6ep>IxCApxvvEH$Rp5BEH|?*!w6?Kw%R7tWwm^tia~ z#CdhzQg6pYXzU({KQ+{wT+U7diAxBOHf6z78bSx7mAQb=errNmlY-p6I(Go(U4hm1 zDjYD=Sb-!z+Pn-Ue_);7H5?ftlAtN7umF3|uC`WdP2T0-O3+wmS7= zM8D{N`EOASQ=AmXN%Q%&=JN^pB2zpTrinse4uK*U{+d?J5sjeEv}+^vk0r^sv# z7+hF!dO77Lye=;baezT z+n8s*w}*i2YY;=XcR4l=R#7NC%P)Y+LIH4n+!~P<(8}(9%ud^Tzso)PgU~LmZ%Iyw z-WA{370&LktnOvu04BmVpakRd=`oje);58qqVFgSDpiH7=klNdFjDIA;6#K~V8|48 zo?@UppMGPm=u>Xtv}Pe`8?mec^YMN8Hv_` znVExfC>Fp3Kx^XAyQ};7TnGE1%A)2dthx$UCu0+g_POpWVX!nBxB&Ts^QT?v27j!3_=PK6e2i8Od-$|!f6t|x&eJ} z1Nu7v{UHb{MDwathy1Z61#y;qoF!k9$`gV-6{06#I_JO>hd>k}P?L*i`;s{eK@P+Kw)T))6Mw(pNj zYR3MdtwOYUa}k-m_b}>^N4q!#-EdI=Drs|MI~P;GjqU+lz>N-U5JZ5iRDh2Pj3~;n zSrj>E$ebZ_)>(8G;#Y{_N0IOYLjFQUUQ?P60LOQf4gkj|L}|WJ0JDm`X2lmo^g|;4 zk|@5+!Z%q6*;ct^C>24$O20J=Q-xYhNd#(ady9J8O-jWoIwXU-gR@x)x>0%f=0rsE zEBg>h|2`BAi8dF%H4wl)KXf1eDx_Vhy6qSMt)!-Rv1W8n4z0)d?(=6D+7L?KLwArd$ix8{@~TGkz*2qn8p0CzIj(La0-MN+e?8>kVR3bY$q zHFtW^k;mD(+Sivw8s9A%!@%yEs2^t0QZ;S&grnPGaKlvzP*>h)_q~jxW<18=!~Lz- zbJ-`R{Fv(g?Zk5b{YJUg*jnIg&9Mcyht2GwuS-2Lk2Omm+Q6+HyxS{uR?Wo=`H%|! zlg%@2%I$4yrBgse_W%Jp9G_u;zn{OmX{j)K(h6f5MKBUGR)KLG1Kv$>6;&=s!)GA= z2@w7^2yYPh`MclwGoS7R{Tk^%^FRAJVgfVKN`aFs>EfF7kpx^t;>Q%HQ^YA!jLOW= zP{x-aU7kgogLP@g!d2>~;8EfcNY;8*c|W=fQWfed((J8iR9$GP z2vTO1)&6q}q4CzC5|iIMGFXGn1yODMXkf_FzV~)ipZmmO!(H%*wqjRh9LTI#j)y8B z3F_gH(7Nb9V03c>e z9I&Clj4-iaO<9g1a-xi*Omu_;0RZyL7nA0*)9ZD(42nlWxI~PnBG zz8(s1=%Elj7PtUwBX1ma6LA$I*XP}gwhH7@5t3sosAT5A3R((Z>RjlWu>W!%{@ zNr5-Dksa2@t@1nX(Xs?FEyS)}XJ4#OZ`JkP#%A;&Wc5cbl=6j@k=o&1S<32`kv8U+zDm= zaP6;4^3wzu+$JXb=5kwdNeTsF@UGY0FGF~V}L&g^AiOA;&|f!c>4+c zc+e(oD3q;mrG#TuIR|hVIbKMd&S+XsAx=brp*0Cnd#3KGNadL(Aqc$uQpf{hNRp9r3F)76Le5#T$TbjNa-e6J=s6HxgL#(K!QS;ta8SxCx7?v{n_|ee#@`_u}&=YYyQQ*LHYQ2 z+7QlWT|bV%W0HIkLp)xsj;3jv5T_M51m`(ZUIt(-^g57IRcpF{t96~Todd-LG(eQ7 zJB3Gff>S!(XLa|!+b`p1hA1W@x;)Y$p0?z*rfRGvlb@`04!t<1US>+1e*ypBrA!45!_Nwm*{-R5Mw zWq*T5@`ca+Kn|%fXS574uX3RseleES^h6lg%+U&OoSK$;%dUlyrv93N(omG{u~@W z!xaDHxQa&rUfwpU-&G=+Nr0%TM@n>(fHMW1g}6GMrq$7UT2qJ-2!R^kR%v<88gPIP zCWv+)vM|iE?y2DcP~yI}45047-eR4==9U?qMu5ZQmt6_&ZyyL-73IQ1-VltdrC+Nb zGzL*Dn;!YuUNirK!R@bxMB6;2g;b8KdjLu9JrwRF@zVbG?ak#J?UbiErkdRfdD#)Wf}d;)wFon zR5Jz>0UW>~QYf+90UVEn_*{@LCY4LbdPqlxG^PAiVn1jGp%xG6vea1=doVYvcoUXG;=u!zVJE{S3jc6!`4d*Rs$ zM6C_=7RL^3w2A<5R$|n-)b+0xqirBa>6g<89XLS-22>Jvlg&zH$2w3|=>aT(x)8d} zscf8=zpMMb10SVdqjEr6tY|IiYyIsZEUWX1I_9GcJ&Z#e1B`sK<#D3^`JpuAB5^DK zK4f7)JAYfeVKw= zg=d>0+yDv`Uz(Eexd6}+X8m8z-rAPJ$t1ZcpIi+F93tYhLRhV6%6c4gdVHh#`w)B{ zHD2YwC!hbbe>MEzzw=XfN7{VHh$%r;gQ~7X_!LCv;BX!|o=np!#%V%`6GBbgT5_~G zW{B?Tq}3vBo>#4^P6dLOAcY5}Y2e?eg5W|(fRoX-fQ|m0d4V+E?Hf?t$!myq?>C*L zFDeyP9$(~#1qX572zSzZ$bCMq&2|Hw@tBg|x^-)hJU3k&$NdQ7{lm5H!H<^5`}Wja z04q{ac!oAZT=shazidpjBpA(Zt`r`$xHB!GDzgf579^P$}vUd9(*X@EsJ&#aAklqud z0WjqBP%?{o0m61!_{Tg4fCzwDW?}{;ujJ;<*+y@!LX20;IG+NqR&m1dbOeeKL;;CP+_iAE zo>wKLmxc5pVug0)v@iv!2|CslbTEs}ofTbKwpM^H{N$=2mE(L^!~^+|UCVi9j4D~T zd|OG^;R=f{n(%$cx*EK}b{wnZstoAzKpOv=a?un zZmrC4XQEKW04i_gq1lotFqApA>+j4!X8;TPTykG0Eri;=)OqxNqv5Xe-Olyij90rX zylB%ry4C*Q+6+euRQL3SoNRNW8zenYQT`VcF+)nanENG=B|x%3M35jzP|O5e6E>vz z^)#oKl+yF4ctNUfQY*51pzk7m{pFDs7`F zR+$<)QU%>&K`GW(t5D!whdpZS+cD(T!eH5LQbt3?kID}rH8Xc*&Zdaa@M4hmtQH;F z?+Orr>QSQYWpaLrEhdDTLxgpkc@~YeWAVK@gTHUJ+NnH+@63>+>t2L^TPc39H^h zUQvRqrWlr&EG#NQMMyOx=rVB>4=-vKnB{ThE_UsNeq6PNn)F--#TsB1eTJ1JEB7pe zQfk)=1Vko;7{Jp6jw?)II+}>iN#&8|&12oXyTIn%QBIriQ~&dS_1mk1eH98E1$vS< zH;?f4_2c>7>qj(iPLDvmj+1hnKp|qRQsb4X@@1|s%bjEMZuI;tD>;G@5fF$Gh!F{h zZn7^c`1((|@)(Fh>tD0Pc@mUxux4Sdz}FZGQ8IoQZ!BxSDrV*p($<3R6|P%9)q2aF z*AAf`#aqo@meZpLuVtuaWX*u;;QHM{QfhzlqEG(5n?<&+XHr+`sPPlG7wEWtZ7A&- zTD#KPANl$~jg9zF$7b^dFy_^7rw!xn`E!36Pq1fV^RVwt{`|^|>RtnkeKtPodt#Xf zyf+bs-$!7XoaYd1e`Kzqi>rHJ*@#rjX?>op%%hfkU2uE08CMF>DG0~_l~>jT)uMAy zj95=Atfv*l5T*(F_&D8MhIDiGa)*AP!C_~9(JYT zg;l+12X=YN3>|9Vp~-hN@W9f)YFxwJ(4eBr6=on?hOOB>Z>s1_HS9z}sVL;Goh5&5xp{_XVe1&p*aHDHZ|}J_LY_Yk`vd7XGgRAnZ69xUWn))) zR6CzQ6xuiu^xVBxGlFBNOA@{=`OdZDn;RNEU1f71eTXoBQSxS1Jm zHYzVQ&CkQT>lgg?`t_gqZNK!I-reLs{o8)YF3x(O?*JVDj!&9s&P=bB@P(@UP;&k< zr}TPGDdm)aluNuS%pG)>K($?Fu`B5%VNZ*OB`?^Ri!|*x5AArP&X`@Yu-osgo=5Gx zd&L^60XQDGFqYf0aNMJz?e3J=(7KJ^wsWd(?`-#^mcszpvEh9fD)O#weK*8G+YWsP z-Q}F)!6W}#0v&x0?h;Gt_Nb#WwY-uk$x2)W=TSK-8#X}ItP~<+6#`bP6~bz@(h$x8 zJf+`A67Vsd>m9!xjyddPzRE$)cYPJ4`Ofom3b`q@~&6mFH1n#5 zUJIF`DvxGTP-F-Mi4_zWTtZY3V&up)O~@A{>9doppR4HiMfLHM-}hIJ0K^|BkRt}A z5HNx1bfRz>I9>*hrz?)r#F1hMpqhxg=eAnDmOJ$Alhn=#EDa?rd6TH+PqO?B0D46q z2dw1*IPQQ(f9>WIg)8zNBgxl8qhZef;urOY;aOWC@B21=i$ChPx7lkkp4tJ|yLjf{ zX-%lW=;)nEsP9|8mb-bqqLwRm0FHSEk7!5-hXlpbL!^KkDd$o_MP$B#ycNg`hCXAF zXOz+l5_tmvf9ikotA0GacYjRi5Tf!46UVhE(c27tkyO4ENzX;_nPkc$xd{2t;(Ay4 zg)!sej_0zSYu`Y$F)l*G?WrT%QiZE>PLXDoZps2eG|SZj1i@k(k}50(7YpqZPW2oZ zrrcP3`O+_A=mJ{0N&?8-TtUqe)>yE2b6E28MgP(6xnFgx^fD4J7`4Ci;sMc>m2#zG z>fn|{b(^#a{dSIxSp|ib@hED*c0Wh9o>-p)ep@TgVc#y=EzS0XOtQ878a}q)qei=h)Sfv~O|p4yDwu>*9*-lK0j%>|5}_pw0KbKDNX4mJ06n{k2gU zz*fLw|L+A5)O+f_CgyJpQ8B1FsyeVVpr1 z$N3|ue?z|I@p=Y$Z}b1%WVa;_xHnIzam|$f$bCuJANo=%mi5~)3olUCiQlaJoHfPC zJbKJSrRUzN{eZT_)k4KOnyHpxB%jAcTL>a)S$l;i6b~lb+gSi629xxVH11D^(7_WQ zVpcq$7!m+338N910nl+!Tq)=&YxqorpRSQ#lFV=6S-^LkI53G)49rKu;hYi9BZcEY z94+TY@nS0Sm4cA8R;O{x&JsETwYo`LE%mRKcfv(kFaWS5iX=qz>Ul%X1)zHqR6x2L zvjCyuy^zU;wbp)k$;akc;UT&uztpbw9$OoZzbz{@?WZw$^b(cS#k*ywFyQtZcMtyE zaBmgTqki)P-}Rx6`@p9bDo5BVfjxS2_=oQ6Q>nYA+dsAQT{A7UzO-k&%(2nIjite> z%?~U?f!sdX=7F}k;ysFO4=IP%wDT$sEGwZYl1l}ZS+dTOa~8S2fxaTr7fg5+7_Xo* z?;OwreW&OEaD2)XR}xgON$EKtKT4XPWuZ6e|IgmP$6B^@`$5=mjH)@;e)ZnnySvXh z-@OiC%h(sL!PmwHY%Cl?Lc%{*Bt%e%LSm7`2oWVtz!KPTWJCyd05t459S8!wq>NePk!loD7XBoyYeh*fKr$X$WEsE7cHg~bFsGUc0EiBQd(VMXX` zQ$-jpjIG6NFGa!3utOE9$(>=WHMeELe9zL^ed9w%%5M|^2w1(y*`A}aYsd7fxJJg- z*ODXVZ2Z;(fEIDjyIO^GFJO7r4dt&c%M|T=KW$bwiWJ9@zUJQ)Q z5HJlP1P%u?!Z8p}XU09mgTpYKJg1$x`uWn79nvG92LRolpbwe&F%vx;LOcy|I0zhw zsQ__O+|7{%2r5Cb87m~j;^MBFJ*ODh$rE6?dbkKV=!7DwAyr<`GR4Vz997q3&G!f> z?#|u9aQP*6)&(t;zP5IVELn0dh5`*}s0ugrP4CtTSzoArmNmtfN}tsUel3T=4!DVh z;;{0J>tu;o{r<4zD@DQf?5m<1`9PP(x`f^t|1_XF1Jpj%Gj+q`!z8J$-?bjwita_? zHCp#xXycUsDnUz?Clew<8Dnjaxwt$(lO?ddT3NDpV_pmfX!r;6o>}!-2D)UHGBv`8HVyGy5Bf55L z1g8sWFo4597MBv>L6OT;hX4)%V+ex+XFzx;LO)1Je=zIx>>#}Xa!Bv@f|;ud5p9OR zbgW@G1C6IK#3N#k0VPt_@lRC%sf6NzkV{Z=8T$lFR15&K=K0RLNZiiZfRM|yW1-xZ z3RsL9wxkNM;fSovu)sN^t7dswP%7(ji^h~{T? z@}Y&nv@?nfc~yHvyFA%FpUaR3psn5AVCYOWl&<3oyF4gAapC73SkgQKdoX#Y(f%>~ zvsb=Y_Bkz{mfBA40IqUwUGx4}0ZFT#;O1SACkde3_t43Vot!8NDkWs+0&bL#PLj4s z(yLMBDU&_{({qmDHF8|&9ew6>2XK7E6gVn?3s!x~gddX1*CO+aN$4WYv!rO|`FeaCp$6}HyuRJx|4zxQ z?6;vlM8>wxH7Y{5<~uPdzyuBqL`H~_d5DJ;FAgA7VTiLl_6L zJU|&t(h^aU94|1{xo)q;!^YS*sbVf?S-5F_HO-jC)D&>m0)CY54dhOxP1W~dMp$xl z?Eu71A-CtC_3z&&-6qj*Uk3LBb?BXmcK%}bvw9;_2~UEBiEDrP60KPwcJD76&@{^% zLM33W@ed0}fe=)*CLp!yDi)qHrG$B!Fi(@xJYP^s&!Xzrk?0!^;klB&3EvYS^!rYC z0LRBn90b4xiM&wI6M=lQRXmR(Z?-b0m{QP`z)1k+jF^*!p{!XWbA5ZET%Po5VW}Jw`dopW)A@R9a)b(X)wKc2PzOsGG9w*s%#`YEq$y)+8jh6lXFwjjGoOz2|=mKE0 zlC9ZIoLv}Td)FSaFiUw2Qvqr?qE$9xwDH`vwzplu$Hzy13VdSgc3=C2(2`0M6oCVV zI3SE0#PO0PT^`ON_vh`!mjm=GqV4~O`0|H%e`3l#-^{Kct>c~lxs5z)Bm@_x?Hlj=-SyFZMQ)ug z!3~=W=8=)b1l|o(0o-@?ArQMZz08j?KcUszCu!ziKAEaW|FJn$leLN>%?aCSM%qr2 zWV(RLGXOt|gm0MfB7iRW4&eA+&>g_>5ff)=YZmZ@61`TUH==Z@s@q8*lSp;}6alA# zz?Y3G5kNv!P-{#$$4y%NJW$+kHD_gR6+UtdE?1eb#C1AmwLivtmkg-rfQZ_o;?!Ci zOloelMc6DG({dxJwkWq)c2JfIDjV9nx)mki~4?Oy_*TD3N58F+otFh z&)QG%$!7DMYI!^In+hcdf%g@x)eER?Y5>40IcEWL4JEKsv+!h{AoR1VWHAR32OfBc zhb($bOh+KzFoDCj;`#G&P_eEJq&ODU(*U|R5FKs;#TbZUB!rktPlE}wDrOZIchW~5 ztEOBf0S2rRc;Pl5Xjk*d6&uQ&)a=eqOtnO;EycR>EEX4VNynsyMM+VcsVHzZmreMA z%|kR;we?VIC`PqlF4p8SJG~bI_tB0=oolqZ9y?*(dp*>O8uh60LaI4UET2L>lK`s* z<6%?3R<-bLdq24!Bwp(l)M2}akQxsz{f?Xv>2NUg?WRnII~Cza5{mV1VprIm6u6eU3- z3wOvl6>6@XjnYp#Q9rI+1%xuEN}nk(C`JrJ#3n{1o_Lz4gOs)>Z;(z#o)5<; zf#Qxp^4ZYO`yc#10u=wjZ~O-p0Nz}@4gW;~L(~{zK;#G@ASoe; zWTS#Q@0(nsGVJB9gYu z`kDzZ2j*9!=tY3um4^ME(Dw%M{uJq_|4V<1G7nP>@iK6Dtq3m?=y?))F(=t>Q-Y)! zl4e-KQJ^Tu6{y(#EGrmzx(e3JxfHOQ{ag>#&_6Qa8|cIW7IwC1U@ z6PB}w{BwF2;Wf&DYkEcl>+cp8F%k5E` z)0rsUCkp2=3}>6TIT+$W3}GZK<-LKvdWn>G(T6EtO<9awH{7hQ$qw^)w^yR>znfC_ zR%#zl_4~Gk`J;8tGd#cmC>!5u+JDU*)5+47{8FLf4PtJMRpHF{%O~5u-M;enL^UD1 zc}xZ3y8pGYFu=fUx@6SKrHTmpERWPS=w zPcKt?nx^?>oTlS645U#wyXG?jm86Z*EO>?;>=!EcuXUd@W9=-n$XivA@K$WY{0eSI z%jcoG5xNZ2o!w|RIqCbRYu(0+b+lG;xZ<&wiPvsKio)#Qk3w)8vJDSFwR|+I&Hnzh zDg)QwLsgK9895OlmND{xhb3$@3Pgw;Y2aa;f}F7E`6&7rNgo1oN{|u2_advd5{(MF z58#Ut^n;P;i%kgkh9M4{A%ceh1O^jVt63XN4>-|{zzkme?%iEO`NZ;BQPu&F+oPo=BFm)2-ED9Qt0CGX~2&a)d{^d82mLb^B5a?O#?5}2>#;cbeXS%W+4 zexrS1W$Q1Y0N2FeA!0~}7!M|FFD}Bt<;Bq}O!rx~kCDRTEzyG`3I_n*T>nI$9_bt* zi1@*8{67=x^D)wR4-_A8pa%hT9tkHLm^nrakwF}?hmB@Sw}or0<@3(+Awg8K_eMEj zJlcL|MrR5z{@r<$?h_R4mI??YhqZ}$Vcc{9ejr9c-H&{y(k%v8uYo?-24VNAef0MI zUgn{@DJjGCH&;%~fLB0XSK5i)#Dt(Nl{Hs*0mZv3lNlkHQ4`JDJm^eQ+@EvZyzrDL z&si-hOwP#xh-C0W3&4?(y?;eYh>8G7N)C^tDoMAZ@|u*Msp=DfKAS|}Ky=2pv+LZ^ zcT9Hx$45?o`XBg33IKoS|KUG)vz_pAn&)Sj<$2QS)izES^F{|z9mW!$pwtjmRe(gQ z@M-q8ELb+{o7#7K7`>s{ObvKmV(NmdNcPl(-lZHR#i_iCozzRaCU_d^t3Y#~E@ybg zFU~ESx?SAVseBDBYiZq>)&%6@I_#}v&?`-Kef5N5sat3T<_69S&A-Ak3)Y-n7!_11 z$Ouf}Y|kpL-vnN@Oq=}y1--XTPQWnCjLPHH`~=$GPtNax>b{uj{Q!vd(Y|Z%vakBH ze75$TXmtdIRfJG`erjWC;S5<3W~4AcLn7vF2;jp(aW<)*GxVHE?=$4&7yV2B-ZlXV zQ2mR)?k7Im&5wyTN_47(hl%Jhm>+ToC(JQW2o$)V8&rfmg9md6gw4xhL83R;jgS-< zWY%@wv(v*)S?OCM05eg0j3IjNB-v8=+HL{etjh~2lMv8zfY{O(PA~0$Bi5jB7TtW}1@pabne#@H9 z(wI28uI$;`!VH%covtQbte8D#mB;e|iOZ`j_l##7w)EE5urVsNlj`{F@U3#Z-LiRd z?B~w@n&u6;9~W54xQ%kSXV0sbXJvUm=UL(M%r$((&efi?Shz~(kwHK!xzhIFQ1pdB zsOMfsd2VoZximR0i3d5*s=5_DC`tNqQHNxO~& z)fykmZVXzf)&>G;aShChT#2t-aSQ2OsY$>Elh-0~Xi-vx8=z%x*-C}l2It{#v&In! z5h!_F7#b9kGK>Y4>Kf}y?ivtNbEyDOaiI|_dro0GJV2 z!66V)h(Q6K^>8!GJ*b>fkTWGZQKA>DR#pAh#a=!cBBfD5Ck&i1@oC_2LLrPH24Yt| zWmd`H5IC>tB5frX<4*;6=&8Nm>ZXdewv;j-sy{^BhYHn4`rxk=Q2;__ttK6`-h?`z+4sC zqP$9}s8iRp8}tH_CqpobTwysN@_s;Njw*mq_ap`Z96%ugF%pf;ag2zUadWA|iNf3Ibh-==HVz3AF<9G$d(10 zQo=Qd88Q?k;=o32ysYHoNQ#`8Q3av`3ld^5VlkHG5DlupMlj1f8?R`2lK|BG9TuuV zrr>MN-(}&ZB2AdGHM8WDofnWU!(^!c%@SOie77=&A|{t=&7rIoaOeq)>MrD;f`WU?YfDPVmm5>v1g~c>Yatr-I`ZEERin7pH~4)pwtd3- z?MVq;sjPQz@xzj-DvEUhB9BZ{013LPsH{=5w3okavs=8@YzfpV@Cz+-hvW&7g(ikZ zLWqJG21*nogHHm|IUrvs<}U^ER|4oI2+tY1z3Etd3iLPszCTNU?!Wkp^{4)~f0n^K zlHv@|M*zMcqAxgvvmp)#aTtl?2yiH%lz|3{04ni2Ss=8m=KEe}4Lw+p&pFX~a4ZEp zYX=RyxJkZ^<-Oi7UBx#HSR>rLhkYM!V`{Dn`c2GYw$cR@tFbDLpWhk91-LJ z5j`TtLxr9(^azxKa>~FPGlYRuWh_%t`^lLB>g*K<$pDo?3t*@VOMUsB3F@*-Rvc?V zR#^#Z;e>XiBrq)>0N5Ay_F>2>_>{k{Wa~vaCxTeghZ~R?(bjT;-ROGTTfH~gdl;hL zYj?e0jepxc3&^AWISu4c_j}vdmw#JJS3QOSx(1b0Ph4$PRgzN4zmdH+?E5(h=6Ob% zld38S(^i;X3ehtbJWC1BCc!HJTc+x0c1NE%-2oh*2ocd7IJ_k0CrbK5Rrxx}{N*;K z<7t`^Qvy_=8l3RZvlJ@Evd=da*A3}oMi6d6>VfE@RI)f%`ES2RFpI*z9+)7Vnqgpv zYK4cA>3wn3-D~;N&-bEqQmIW50%C~RhJiQ?8=lgsLLZ3E4~ghJ5q%w)-Y|V;xj01W zZ~nc1h5-bc)6on(faqgVJPsTl4b1n3IEENE8sZ2I5dzKvFUcxiXh6feY#!Aj%z!d# z`RFAnG{@QE!y!(7A^nIe#&!&nIIeyb--pAFbx~J7)NlL zPm8H5al`l^i3wnPo$LqH@BbC(LxD#Dj*_3i6*U(KG`9CtyR0lL(w9;8clE zRpkWW0FIzIAaaCI#EcdSVuD7UsnzAUDM03!8j!6ymhHd>((10*@8$+ut2`}SwamJt zWlq(Eh2aT)Jn1?!}YRlx$yo#E4*^N{#(w%ugYOdcNM96rYK$wDN{zdj^~NFvX<1lW< zVSHVi|4eA03rdI^1x^L@fQilm(*aRnq6nghwR}IB+FYw;m21eK4>vZ&cC89VtEj=P z**+w=G@ak7%gq9x7c0MGCaQBrk!2Jg(W@}v%;w5cZfUR9aueAcZHAE^6iw*oW3Y#) zKdL(3o`>2o0M4+qTUn-t_qnci9<1eeKYmsMwLeF@XH_Q``LJbxYPh*oda=Z$-h+EN zFBr`bWq_mt_1$D~)yAERyw=*S`x9E|HWk&Q%pO=t^0t2ALR#8$S#Ga>U)SC6JmmQ! zXyJca!tgZ-Qc5~YN=an~^i2R>Dbb4%_22h-<@lK$92+&-$0ge@cvoarj%Rs%+ds2T?m|4-Rr7zf(Jza)EIo&DD7#9+VheZ z!b#oex-robm%JRi@~F#%b&1+uocGB64_kXk=yFL_D8qhS<6>z!F9?cMppd0HV-}zQ zslrv%?8QOUKq;Twq3a9UI9u#@6Q;|o6M#soeIhPm&fJlsq144|LVgzD{BI$^b z?#-&F3_2bOL&*6wKO5KPZB7snMfC{4Sp*(1a25iN18~4hG;jd(K+FRY0V;$^rp!Z% z0wbUbT$zw-K$6i~40Qz-iYsd_``CmXo3Kh5D6?=a0qT505s(u#MXIiIYhuB(JXsE% z{BIH3D9<+++KhUj9>03-*EOVh?i={yljmNQ1;0~vD+kaDG?J+-d0%dTC?iqi@BWd^QM?EYQ*3!{=4(aQgl4|>i&DBWyvoWyuxLo$j`gd z+7iTaT1lUzwB6OZ*FcQhY0))~|BC1A_uo7pxZF>Hnt!Hr^h%<-W_%x7QeK6DB7_)F zsuL(Uq3mf5uuD$oYG4P|4!38@2a{NygQDng14BZY!#0j)?Ol5?)!aCfA~1nM0OF8A zjxdC2P6v~ulL2~PQ#cK(haBSbt4HQjBxTTaI18N#=$sJFl!ikN%p5o;7Uit`bp|WP z!vUAeNF;l2XahGusHH-gxa8a*1kS%R1F?c1S)r{{K%G)-a|5X0Mdl_Z&)5b~`dNXD z<>YoVmvAkA^SlZuGQm|NTK{cErn*Kw=-_0xia$7z;bzo0h38H=5033;TG!-qJ@g4# zTYqavS~)7^HokPXV!6J0@;Qxa;#4wYMNT+RC3jYReh32PTrE~oJuncm^NaJ~Kp&D? z@7aDz0eEXD3NkPT^V}%>$M};09XSChkW}(VL`CE>iM|BzVqks&;1v;H{ORBHi@)PI z$vgVC>CWTx6Cs@^p_DF3@r;yy7>RyJs!!&$y_n{UbUAM^%@gL7peltSWh*v0O=2x> z+cqfMJiO)f=Av7sq*M~JQ9)Y!gi5>AqU+oJ+I?>ud%sH#LcRet3&K^`EPF)|H@>_O z*W@NcXxh+~8?u+UsaOxM>SverVDahCS_QSQ?RVa2tZI)v2H=LT%qt&{*^*B!b7%BK zCKbD9Sepw~v2@-A)(0YjMh1oe3=wgN7{`bZhcR$C4bVrd=`kTaP|`yt&@cVHfBNPV z<|C(=5-6pCQ#$1|e?gkQV!~r4++*f}Vjh!Ytg`ttJeQ*LRZYIt@fqzy8gU;yje5%v<6gR%YXbCm7#R!EQuGNtLb(; zt)5>|CF2LXl*hUy1zwK(`nTmSN=Zuco&oZR1DUD@50|ZR^hfWUGF3Gs=4&gK8Ufo(oEzhg3d-R6%e;a(m~J z{2SoH%PC~m{4-}Qss(R(LLO#fX=bAelK4c3pu4Wd{f zl(U74Vg%vma#LjFg~JA*X;oQsplJoHK{x5F-z9KnM{W zIJ>wODS{Irk*-*N-corhmcCr2=Kz^NX21QDe`9y3{ncbiVC_xX*lG9I9eqv|w1fjO zgGDhHg<_Z1zUzIBy0aZHBHdwv`FKsGg)D4drQGf(MOL(x6fr~$alkN)2yx_*!XX6r zC((yvkn<>d0_Gv`=f(;20MJuFA1Lv|InWs*9}F>u5JPdd6HJr<2}ovYe@pU!^le_- z=QirMC6-T*hqjPL1*t3moJuFzHfuBRp@(>s?1f&=+Ww+h~Xt*ay&!XZUgO30j6?}=$gc1j+rcr@Y z01v@5*Zd+VR}US+PG zn&ZHkY^p^PHXWN6M6;ANk{!>IcHEb(Gq>pcj4ctG!aUttwWwt|T<_i1^BbyG(|T{U zvv$?Q8umxzLJ!Kgn1!`|SK4*wbvYioCvE5CJUFOk*ZR)P!q*n@&ih7yp561@gdsZ!BP!r=Vt()b-`s}T2vG1cBKc~1Zw~hWuZBDmbFgC|6&jqxNgef>m_A#DH zH7RITU`oCwrjiI6_2`ToiqJ}bYwbs>`&W@Miso#4fzRdP_i-ij-pl6`F=B`aalksn;vpz8Q6dFv z*5!_%Hd_6&$o5c`5wAHE)koWo1{?CY_M6%TZBG*MBvw^?(9eTzBVq4 z{%HdR^7kf-UnTjrTu45L2$wh^De+@1Sh7^EDGjm$%1cqpa=|r^pY~o`9w^&CcRYCr zou@8f7>V}7tgXMcXJn5JK~hBmW0nkZh?WH7RR*9Eo|*SbRUkp~M+LJaog~Se(xs;P zB~+iQ(rX1SrJ4cn==((9cd+%7p?SK{dAgj_JYB|FUPYCss`^A!pR4GrNm80+!klJk zN?;KXpzq>hEOsD z#|t6t;^cnrb0TjFfYv6c#1Y335Mn@xkwYAg0>uX-$A^*lK?3fn$^kwjzQ{QP-Jud5 z2+J27_=^z3{jiCfuo*$)01Dhd3q^Bpm+W3_F2+=ZlNRQ2^Bs_zf750#Ru1gsQ5lC`?0)c8KSa#ehbA|qaNb94b||uDmL$XrrmIxwR6zm zNe4o42~9KszXiMOl5w>C$FMMt(?^uXZ4mHV1Ux)G;2^jKOVE3`)-xjKB;i>{)20_I_RQ9itHSEHNJa7fk zu3rO-C%V-&jWcNl`F*IJowe^dEWgb%M6W%Qm%&zez}_S8N-N{A6A!sOr+xBXy$D}g z^qc)p>I0)!?^5@U?5&Z#I0Q)qvj}EU%&HY!Eh0$| zmB2JK^c4loN6+TT(B1k?zd`v#dDVk}+PO8!U)jK-ZJLg&^^A||wY3k zue(OE8#mt*)qC3}-djY=cVu_Fnp!fnHiFBlv6zh&u zbtM2$b{nMv6XkwTak1`I9#fiqK8~iS1!hnT7-Gacjsa6Tyc9hfCVe=OJS50j57lYO|Kq zZ1klaQh}7xd8ps1o0}*}Dvej5&V>ect%I!9^9K2z*(EivGes7X8|Tt;Z`9*C_TSIv zmYb$plj?ldBE7pYqH0sB{jdrsaQ&(tZ5_BH&SN9@bIq&eCe*L3U2FVWTjI_KX?O2@ z%q;QE%OQU+<=E01iB2eQxmJt^N}V56pLz9ZT$=(`=Rt;S8D51xsPHW^MT5(`Rj91< z{H2n{?%Cmf)_uV34XGaM6PE(A7>9f%XcY^{^W5z(%VOPH*Mal)*qfZm^$#u~s9&2m zAaZ6_BKM}WJa1XwQaoI8Ip*w9m*0DFHz(_V?OLh&(sFL(W=riGEk&KnAZb~1vCbPC zE87wCo3?VJm4BG*QTl8H5I`7cz)?&{)|L`CAiBF1`|FYlqZxe|5m;JVXTS0t~pr;9X8h}&e97>0A2t357JVcT}ATbal z)%+J;zH50n40Ng-wE%Eg&R`Nm3Jc?yO(%tI1zau#dcGlLhqtu|g>$6x0%8MPfcEZN zyKcWJ=jVHw$AulMPf0BfSN;C1$*8r{MBW(&FwYdhNJcu}1)4sj6m0(#!?g z+@`HP-#@d8*2H$y;1er<8;GER5n{wJ3@l^XM8WALE5jAsS?cuO1SZ? z_&AAys4B;aa7K&=9OypAa6D|rVcd*}B{>}x0hF~L*W{vxloZTb;`pU195t*2S-=TJ zQ3(nR6~X(4P>0kNA%C8da+Q?#0bNOn&GSf%7mb+42gkkP(YtXk6DWAq|= z845CCkm@tM`}FBEWUP0}$d!V;qD9i(YErw`Rn%mKGx)xR)g!xSHqLk56@h(X>=J6J zZ@CmDC$$6$uySQyhN~2ux8H9nUp562ZB6<2uzyQiKKD)gQamPi>JRlccxuh<5%_n%NMIj(GP9c9fHu)X9p zuq2Mm0Ye;cIE-{TZiZnvAerPrB7PiH9`Q6iVB&kf;D7!zZy+)S{qzzeT(Iq?h)Ou2 zr1y|>aGV72VI<~(88Jo*ks&4Dnl2V>1&LsAQ%l+iI3C%7l9?eAp;l7i(3D+c`N|gl z)BwQ>1}@AG?YBh$hU<*SG&0!Y0FI7FBj<|fh?ba0`L;=p?fU+C_gALcg5f(*W$NAhjSOpJLAd9N4vei_JO-)c@8Yaj!O&;oFLCxiY?BxyfBwEZBk}NYy0z?2PR|x{h=VxyZfrvmPA!#b%El>d4neaNWzF6r7s|QAd)tk5|k1G z1%R9FE?dwutFW@Bp3GB29dl%NtmhHh{SeyOSDK)**h({TZ&gLH3=ry7-s+U)A(u;I zvGI5%>#FF*u7A|`EL)P*9dE+nnryvKRF-;C+W_l*_Uw7fIM2O(*5!-vNYu{G?zV>h zSZ5Kq;dq&q+)6_-_NU`C>&{HY>qD%6D*{6SE`l~M4=X#{0W)Oan_@14mTJx+)2xd{ zy(|j5LctdPLWH4saY!6UqDDkHfW&)HelUqXAf)?~&R;9xGJFPcn;PPVQaX#w_my!U zG2Y{0*o1MUFpk7S1VE4kK-4K;1`@RFTov4srmmWG&fa%Kv%uxwvsPEDAdmq8P2gFx zF6Q;#K?tkQXF{eIgiSeGt_ZVM8o)tp7OEnodu7wDGw&_pms1neo6z3`-o}lZSBPuB z92a-)?ka50-OAgxvz7)x^P;l$Sc_Pvr~+$wxY};bkyNhZI`*y2+8%cIjQ$DiIr}GB z%K1Lf#^>Xp`YC-Szxv62`d*lOyr;ak5N2xk_bn9Er0*xS=iRTH@Sd4i=Aj3p(ToZ= zVee~ugN^y3r*=j8m;9ftJ@-7-8xwuv;5w4(_F8MM=$%w}vy^)nugwM&g_6{{7}XS* z+KbXwzQ~@%3!c_50(Ei*xpq{f0`{!g+a`qpVc5_(j)>zJr)hgMNV*S6=h$AJL*&84 z^fHLNQq}G5=ziREnb%Q_ibE*QlyI)ZXMy#2U>*l%a0uYQ2r&S}m_)#mi%#2nYdpO` zQQG(q(B{4E=M{h?MI^;Q*{UDlym&#)%WXkBYsY~pHqScG5j$X=@n7$y<*I73Mejwm zmPN?j&;3o<<e+wFvoNj3Sl{<-9{j${G7qh0eJ(+gqzt)?&ve4JAmU8qd))aevJaatm%T&{EQ?$ zp(Ia|$n#0$UPx&`N;-#ZuNf%|1ZKVQXuhZFh6?Nm`!^wD-7Q(w&6MV==sh`UeD}1j z*MBRw?R1)35EEs~=R5RUsg#xjK+08tHrLqe$n5xS8r-HcR9u|Bvn(M{05c#_F~=Di zI8IC_N^~Ef2cmSJl#c;=4Wb#JV3NAO>G%9u(?`J}oTjjO2u$b1xX&RR#}HzO5i~|n z2$+*%3(3N;X62Aq1dOZ55|WxFHUa=ExFkEyWd^C18r)$Iit0+8^kW(Hb#U-wr-@+*Ga^$xnqs&*p47mlWg+j{h7wgPXMh$IUn|VZhQt?+RI~Xn6w#I$ zy_AIV!S)MOTeTfZ<@^qBCqua%K1{Zi>Z;427wTvs6z#?7osO>Xu6wz`hF}w*3r99} zsJug}tIIxik@D_-)P(m|A%V-kS}(|684FC_J!}(NjWV3XMPe||mY~Q9y{adS>s+z2 zwVWKiJ9~ARcGvB`fu^X~X?0j=8Pb9pN3CFh%h(EvFqTUf+jf=#HjBMC&k%tscW(1k z?~}bg27A0Bv~iioW;+PTR#k%L7+9ukxu=8xM#|$qM8yG=4n@ZU(0o7?;-{wA8u8%? z07Ov?3O!-n-lN3F3Da=^Z3ZwXFaqZUCnN+av8*{}yTrv(v8x(5inh-3d(DfXCWb}( zsjMa0EYPy>`y^%MeHB2(urzT)p8JDl6|eKHwx%G@))(fZRYmv*h^UwN+9IQ0D2!amuQ!J69!-a#2)_!Zm6*z@yt z2h?|AS@%&wR}@X)u2z3)_o!Vj@5X!MtgV@zvlWjnH}sQS3>r{(;5zxoQjjHUs++!i_4y9`)`-)$fmJ{8E6I|DpB(?vSrzFDYTqc zq}fmw%4;=At<7Jvz)PEJ72s%-s^;S;H_v_ayd1W>XW12n@3%Y)b$xWQoXt&>L)Cc8 zZa{JO@MVq$+qWG0qh*cPJX3XHw(GRWu-%$<`!d=7!DefMtB5db$;fc*xwH!gGWHK8R=Y{>_A zuQef~EAo8<7o42aWbNKfISk-pG1bM%)~{xF(8W*R9@`FCBk>ii+N^?3SSL1tsE8XX zFg2$Gn)XmuwisGVM7p6cL7sCgK3n=Kl}L(1MmPxw_acT95O0*|W(fv9GLqv{2CyOJ z6V~~mP8a7o(HSe9L<)f@fGEdoXP`0zKuN?2zeVultbkNdbpJxjo*$xFx!)bm*5wQ$SU<<|=6SaS2C}=gmI1U=!3SYy3!6z$8>5 zRNqy?+8uzrL>xFR%i~m)H=_91!gii zGk+(lfJl`^@-n-6Q`p))?7VrMbz%yXxv*)DX0~e--fA89xDZ#!ugWTfsyt^0@U4SHFY2H)*N9nBRamPi(xhpg(lk$RQktJ7l_!D2H;C~`9O4TG-u#>Y^`Dq-G$eQQ+0h-q@rjZS zqY#BR;P@ngzUGvkq?ukO=JS;1!z6;B1V$)KkijHb_%;TqjVU#yARkO<8zrqUZErbD zFn-jMSJ~!5UE9}Fi|!|gQ=o4fGIQhmIj($r=)*eYS@_$jG0V+Wk*!?2)giQQfFA70 zZp7~1N}Ywn>dpH+8tc!}HBm&&k}z~FxOUH|RUL$!a!anSt5-Dzcv{4IniZ0(MzK#j zUQqBALv=YtdlKLB01*eaAQltdqQ@2OhPIxAYc zZ?Br}r=>NlS>U_8_#J<_dG|JYw23j0*N^A zV>wZF?@+Jpzg^>}i*HQOH${uA`iU-Xwa$w(-@J-nF7D;}=6AQoueCd79$J=1sk0&z zV^RXN=k}rmlB`5~MaritUG?li^ZrpPN-#6V5HRJEu^6_O15ex2S>(}-^kpFY)ilH( zF~z4?*a1Fvq9gz?1mKv1o=4*I82B`XxZz=74h5)I0*Q9Af>Exh0kmD%wXcnLY2gXR zqX)|1mGSoqQk!>Zd38Q#ijsnap*fRt^|q*B<@M9O>zjE8?mMl6Fll8utTx=Aa+P0? z=cCKh7;a5oK|cBQ;`Z;6)?_(d{Oy+7@?i*I;!+Aaf3dost?WI9liSD7l_k}%CHuQ@ z5?l8Pzyvb06B2U%uLS3{Q*b&-f|L@bInk8TB$8gvnx2s2YbJaXn4g9aUr-J+zN7Cc z-2oh*DADF9358c0hNpptua)SVB=T~a=Isz?O)(KR8R|CoX}J~9(4*`?FPxi&jDRYX znyX{SUf)Kk|1X8yxR}|%`TSifux)D#M<0_8gkY%K?#8& zU7X!8_GN39C~ltsU{(}+Z49o$L%!ZZYSxIV&|!D>VKDahbr6st|JIPpB2cVAD?4=k z*$Z+~cT~&rP8IMA*|nLNIYgoZA)KnxIe_~_d`uKRNe>RlL;wzyhxmjm1ROBYX<$0zz({J1`_%Wm>~mSC=CR@TK9dku!Hos>+D1SM$U!BwvT>?JJO&DD@=0ico-N}0l9v7BCs?c%Osf|%9~DKk0S z#yfW^suQq42WOk>jh@`S7lQso&K(3CGUCB$5Dav!t03(091TM^s z+`aQBm3~ImJgy2*@ooY$zzijhtm!BL_Y!cz#0P+WlKk=T!3164Nj@!bZ>v_5DXH~)-lN;b81 zu^c}GfLg2SezzP1+U1Hc;oY9i`=NCFi5kSsN@Z-d#3>?g#oJ)SDPq&tL{-IptpIhKoitkuUs3uO1{lY z<72HacGm{{x!ZNF`0VFQ2^;Z%p8bh3MtN>qhvD|ze701++272buk^Og^<3%^m|;b< zwSwm2?(G#s1GXEOQD#RCacF!#_c;SD=KE*CJ`5B$bb<;&7$A~eX6|^ng{lNJMOjK8 z@>o+2sTd-LVNf1o7`J@9opC<`_b1>qkRC>&NWdpnNre&eN*svjfCC>=h+_Ud)&%TH4-%hv*RE(B_&M14pKv0dZ#5igeLpYLLir$QBJnoMhQv)!+8 z3(q%bDVDZI%CDoX&9V*9@fUAfRGGr zdk0yLj4T{0wMuCy>z^D?tK+8GGegMujnwyVc|lTF8lQYJ|{Cl--vrL}Tl zVuG$Wn`%=ej47?i<}1_yfPHf9+ma<6yJ=7EXqUR!@b~h5ypPWQGk_I;l<(*@dLbP^ zbqpdRXb6ZQVvdnQN}B}SSJlT*eFRBo05;!EuiuTv%Zo4pC-V>f*I z{Q1O)ima3fTk=!NrMpq`hrry?OB?03EcyHjwuO9c9{|*oaK4Y-Sr|Z!7{(DgAL!Av ziD~=hMAH1|wa#CG^b0`G6ZB*ty1>U$py>ugN=%FcCOskIvq0fq4B?1}7`+DvkO2mj zVz|0O9=pnuEFhPIH7|`&K1?NV5;gCR-M*qCfO{Q0SLpWKgba1P$(a>s>%Vk6_TX14_%5v&_%2_;Wwi5T=%7RMfmO z6e$r>D!&6DAt*B}V~>g=rGz=DCc%~{yx_=BnDhyS@Eo8w|Cj&TFT6`E`aP#lFZ0qJ z0RTi|os0Jj1xdDW-;@%1 zao09DmiH*I-BI;y__W4!pLA7zyodd}x;Ueshc+*-oXQGlac$;dz&MOFjGMzSZq8GT zUnc0|w0-knzI=7`OaG-m_Q~-`fsVYrxG$HlAItXjS97{}%%mqY#2CgAF$@q2U?H%) z`}|shNFLDe2}OxAqW-P}`Yoy1H>UOZd}C4XMnn*_qIn*wxgi>GEAo)XO-I@QkZ)Ii zT+2J~d620Uj^4|o=5`wZ+2*Ld>4=sfI52AH!d20x0l5r+V$C|eHHKonZ|L6WV z{oH@5CIh~U8MId9B+0ypFBH4g{cdk-d%l&vKT7uzzpZ~7N?{7B)gMoMB|2G{;U3`pR`|mOZwW0&<@4>u3cG_#? z_wdXU6wK|rTZe>G^VSd{%!2aC;U=0CX(r4`tLKJ!?*dtF10jc|Y-h+cCly>$7@voO z!zaVR@snXZd=ZAD%UgEsjy^-W^WgYYX}eWqAKeR5eNIW9NYZD@^kP=Lo^;-5nxm#E z2%#hyMR6q~%tVVANn>v%@YCI@y4qIWmj#Vfm`;FsTu>F9jJNyP#Z)W{<_c}@X)TTz z-Dd5}nVE~E>s2=#SL5c5b}X;%0@;1gdZw~-?{hgY2mrhD{T87McNir&p-)PAPE-`T z-fih_-90PU`1|(0vPo>WB8}^pn!|9ei~=$%88tw_1X%~m*JOVcXvrs8J`3-Do!$Rw z^(7R~Shw}IQl#ecsy0Zr>(g-Y;!t0|h(Gb`|HSk&|C9gDr=&?8sHWqzm3v#6&yFDXID}2$ zF@zX1uv09hq$nXLo(~kOmr`d-r4mD;f?9skuCOwDK}zKm6P7hc0d=w6Xn7oJSc*6i ztxUg~_Y_tt57nL3hY)0sG`D7m)}~-Sw&wuv2&Ap-V)?WEN-Z8eH@dDUw(3VHVF1pP z2nJ59_b(CZy3Xsfy`3c&G*y^^oeC(6)_1<~-y1J#iJqm-i#5w02sOM(O1MaVaUSF_ zNAcyo8z1zP_X}#LXn*GN{($wN@r0UGxSZ2wLs|RY^Ux)7cFnY~JiF4`CA+beP&UbX zF+OC^(%zPj;m_wn z!v&e7x{>>^rtHO)c?D6+GZKg}s~en3ZoI9Z#sD-wyHX3O6qM5E1`rv8 z1jHe7hy!s5hX*{L&5-*f+xsEuy-C9n&pb=cUHDP*^I!Bo{AnulpT;pB0CED=d$Zys zi5?D$5gcL&ktoD&{$yU>^EjK+TI4k;mh&8LAT{)gYQBzKdNvRtmXHMtN$}wbmYy2g z=B6r2neoylsP4;4{$;Wgnf$Q|plK^xyp+kbTb`X93$(dy^!*P z*nKB(`hAc+PbjBZ-&{mjesrm6BeBFn&xnkURR0=nmlcMCqshzP~{Mq+k4de|jRKS6kKR0GMm%4EICeWvG$~Wd@+g=5y=akCipo)@UQBI-g}V9;@oBR5dZg%#G}^qA`xC0FN^Q?*JZumE9LoN zn}TM^JX{VFbwWML=4|7-+=JocxMk(I?|wVd5-ddL@K-)_~eqIwyEZ0K0 z2<6esy^Chk#hjvPp_yCD~O}6b%5fwd@oWDPwN=drY7TXz!@= z-XMV365w)G!~xX23#quK+Pv{LsQpv~qxyF*RJI=P@)b)i>W?lh*+4H(TM$S`URp&D zR_wF#u>hB@$e0$pNH=hT^9mxBZZ^d{^V}i!B{4E!)XTDW0X~~s3g(-8m?pbsG znSQsczx$3B;?g(I6YWX^YptJz7H1B$WW39LQe8+30UZcZ$HM*I<%H=+6cJR`Q0BK} ziDgQAwyvv^3F`7-k+{UHTKFsjv3P|g+l#fTCH49J8V{~AgQ1lM9O&9d^9L&g_$bAVc>@4 zRtWG$9+Z8$%(Jq8*gUC;OT`p?b?a1XOJpSX+QkrR+Ub4tjFnuF2{Adp0n;H80 zQl>OdTbidC5Xnh|7$6GO;@-%slC^bsC1ACrgzoV0z2pV|t1k)Nz1K;x-skIRU9i3t zUDvgDrsei=`)hq@%lq@!j-aV%Rty->m6#3*@ z&V`c+7$QQ9;2~0o!zM7F0XT=u=Q3~aYq~rk#_$XNyT6^@dcJ%M^s9c~pJMkCavoKWBhfH$;1~kHd3~8j&aBjV7WsEd?iH@hC(jeI2SNUf%{(#t-1Bvvr{3~eLq&;op1A7p)N4e zeZMU*Vo<&?EOz>lJN zU+#JV0tPnZiXCnh@3fuOWcx3lu-tF+Cm}&f*cBBptwK)P-m-mi=wbU$H9<9jR7zL{ zA%uuwh!{2l!Z?O;6Hj8~N5tvJf=)j^r|lQ>b~>3ar;oBa)-U-Te~vH^hkzIYjycdd z2YMWt9)jsUn2(6V5JF%I0nGVhV5{wQ)D*oD!;+jf&_f*$+3k}VN=34_Mk%Ra zk>?TN$%fnovRuMt|i+<-&c=%A$h4p=6+?XMJ=?jcic;;jpWUe7+?xO z6w*ncnmEXO#47hv3}^B1@Lqx(k?KndL5RZj*xYwOzv}n>83GV~#qayG2c&o)B43i? zi%9&4LO9!mxEVNrL$07g#95-S@wnj=t(}{Yy|`i#f;nih{!va^hpWL2qfYqktYgln z<5nZ@1@D^?DQ?IQUAyH+jb6CHCAX#Q{bc}8YwCR&sf>@2Ej9O^JB4@8?R-cgsjIx? zl&p8B>r|uL-=qOLYu8G5$90YP_H%5V$l0{7Z|!z_!V+XyKP3=h26Zp12iOR#SqYw* z08v*VtnXcGVf~#^%_Fny*HX?{8wu&oQ~+9XiUnqHj5)8;IFiV;QIh+j_yHyTaUpy& zL!XG^Ie?EaM&JBRbwi4K0L}q@9GK3*;Vi^>#4+>nzyX07NflucwzQ9w@*c^>X(<%G zO{Mx3hn85>TjLFIV>MpnX??cZMtMD`;Q~BXp20j!1kKwC6~rm$P=?9W;&D7rCgd>K z+V+Roz87P#vl;l=dNaD+8o#dH{l_baQNSVtDgvl@!B}XsR#2k?8aAIyK3tK#{7_`C zu4XW);V5PPiV{Q!NhEvz)V8REvLwu+*rtRjC8U&QP4Y%*el9Y7qjUN?aC$GbVSuYG)Xh5rX-`vq#TzYAuFiC|)^%{F*RU{C0{XeW^S@~W2jWV~( z^*VE{2P_vrBXiHM?t0B-z_Nvu>+Jh7434W;eZT~PdaBxxl~~!9QNoAp_%@pO-2+i( zwNPurP;_q%gvHXgXRYzvr6c*MW~BrTJbP<# z7e>W>HG?QxYT0Xzz4mU};>MF*dq%UCcva-={b6y2DX>12zP>w2kogjrFCvp{!gz2X zr{{;^=;Q#PjRxKl(REtZcS1?G1YnpICoFufpodC$fHI5 z^~aZnN*hx@A)E5Cd#^5MNXNfuv5MNe1r~1LK*wB}dLh)VBp;M**Y0%%??XYBkOOr& zL0tbj?Ymd-+^ea_yC6l%Zev{&)B=(6bEU4$MAX8ulFf2{p$_ z<%6)j*4kMeqRyI`-N)AFgcQEYOu7l=(&!Kp}vK z2u_ih;(?0Z7s4ZocrY*>%|sui2ZyEv03@n|svZM4Bcjv9I0-Qv#WBV(fhun5JqYrG6#IXkX=4!F5ymv;QM`5v+6J;uEEe5eGF z!HLdpQF#`1Jh5`Ta`U!t(GD+fAs!~tSg-m}MON!W8?Ss18w4vw>$q-thT3Y`2LrT* zN2=!VtqS@VWSOKr2QB!2Uw&HQ<=|yFTiuiE6>9&l0w;l&Wn$a-lJ&*jz5BhD3@&_$ zwdxc^o+szMq&f83ey(Nj^pmdN9}|_-+9h0RniJ-EMiP-(byATxoYD(S({tUvc}bF9 zDR4m??f{NEx&t^q3u30gJcq!qIEH5w!!uQVC3D&)Nsy2rDWjsy=1QL9R+Y54it3KQ zT${(P?9~a@>X?5~UZVO9Y4swl| zdjl?Y3XVIFH}wK;u(Ve9byXNSl!UWuq6urJ80H?e5`!kx+V?;ceq!wd3Ru&}rF-j5 zPJkw5lP-B7D9sK(LGQPBif^UOll0CeR~ljhtV`J9qjf(XO` zF${>qfS3jzkq);)=QGlm67&lRd_M&KD9eARc?N)>B8LFZg!z78z8^w3JB;CQj00jE zz`=4{P%SH3=i5%J`I}OK7l2LUB6x6CaG8yN7tapY0vnh>g+H(Ky@nTR%h{4asyqYw zel3K$A~%Tk{cn7v{ast2o(CIvUR%F{*)((4`ZylJng2(NgEQN68 zy;Q%i@In)ym2!gby}NqWGcC>C1VVFJ@AidFGfB2GQ(}h~hP1 z2yBHnOdRnWN&dN`DI?!gdbA9HK)hPFsaoqiKtwZ~%ZQ|?H`mB3ZiF!9$SH}F<-c+X~+to_K zs+LSEKeLnst*qJYv|3tA6fqS6SSUDaOYtNq7L}T4c6D5B9<*e3B%EWonZSXF5jRBR zDL9@B(E|~AE-AeveHV4*!;xeks(}*jrG&?U_$!Y5D1_nkAZ&(V7%`UI8*EOe1&ESW z5iVDoF~wcF_rLz4b0XgCIm4V?*&}JO4mkyzRzgv(q;&<(3!(2rl4-8ctzAz`%VO)> zyHIP3pr zM%I*46ZlPm*r%`UaHJbd$)2A#=IvA)Otmp;AiNrnCI?)i8Z``{^b`OXDr_L2u8v(J zDcW&1SfI)jyULtjlR1+IIA9DTbl4!xa}bfEN%bMAe#M%;RF-pMI=p_AzI~FE^0SMK zO1Q_sIfd|G;BXR$aTv!DAr1&3f|={9qoOSKAw~VH*R{22@(ck?fC!WhJY+IGM$V)Ep1Tav?z>4DTYPo@Gn92&kQF)bn2AdCLzpJ)F z=M~rhRJ0ziyi!ZU$T>UaX~uS*a4}7q<}^XlYf^my)~5{lhDDx&@a7Nv!(ZNk8+QcY zwxM2k^idKWY`{a@g88|q{z&KavuU26Ow;sgJ5AFx&zMu{Toz4)8$cMqh{(!M*t798 z@n4{NmFk?`&IAe}#SCYOl|DBEIYFtF!=vf~yvyjD3bK~aNp{YY+LvXP?b-)5>##eh z3YMJJePF35&YzSP^`6_U01a=7P-&bG6KM-3b&4aR`XRfH01T!)CyEaF2$~!^H6+Dc#dK z4Z59f*{5%nf+~(x^c;eRQTS}6uo*+7F${f_#)}ZWeNLZP~DrmQN`QSQ7!046FY`i`JX-zWNxFa=DdObWa8>_f+ynvXwG_)bXudx^corZJt^k(9cv8<8

4#9H#7s|F&dF1f{$mfk3px;yW;=CNSj^YE)*jmhS_VJREUE zh#O{(2c&d1i#`e>k4Dn_A<*#;{)s>I(HZyt{6G0CRcDbT2$SMSh)x6ZNeuB|2r&#H zVhj<3)!lYrhH93zmLY5X{MN-MCwK+&`n1suWsXqs=5Q@yDfd}&$o1gO{(RpT(ei$~ zP_L`^2<7%M@(DAIyyu`%n_Iija9i>Ue%C)W*|>gFL)Bc5(I?=&S%18&?0H)~ZnBPK zIop~vnT(jhCEtpz9i`%rag~f)z^+j4v19zZ;yO>B>vrEMD&O-0x&bN~JXOphnCFD; zG$T#3ra4V2@*1Qsi10jr=#|`srreREkB-UT(OXaqq)hXm=`~OCG>LvA^YldK^a8|} zGRTOeWGE?6knSQxnu2PIsO9Czlz%2F_0vmfI7@t2OA{JH6O^!*W)-!T5^{(}7rW;k zgBD3oduHebz7~I3ds+J2%5Yi2E^f&70(&+EVkvlp4pX#O)Qs-hHubYX;i4!cH!+Vzad0}(fm%n5*VP6Z-(B?^r{Z_Yf7Xn?LyWFj@7IM|TY3=O-1m+=zVy`0j zHEjxd4}2^q6W4PV?$&}GJjdL|eat+8z+DWSxA)SYdN;q%2pV`$_mHM?wDIaU zC+f<>x{NB;hVjEX?^=Uv^GJ#ZTOE1r$E<%Ys=qZWXM48(sqHbfg?BhNOmc%^b5wNE zN4Ixy;ng`$QVxkQuRpDOc>X>SkVx`AUgn3AL5<6h7u52f#^P;+87*8vk;@im871$- zp?0(IChIE!LX1EWF^q^j5hDf_KA?nqqBy$@baudW5G%zVby5Luk2>YU$CkkJucxby7>y*WNYH z;_PT?9LUJP1J66GDoGFa`t_nvw>LDI7j+aIZ|ry$R=>A>LhIyKzX+l1{gtRbFS~Kd zS5p06sPwTK{2UfN`mbynC6s33(3Dhj zy)^)NQ(+FpHL;Z$Yg7cmw?MrGR@$w3bljwk8qfX~;zolsmZ{g4_Aa+UC~o$6->Udy zrStOV+a_08?UG}YoBkgw~{SYUZ+%IIj@!*srMNAu=3W@Tg4NjmF?}pn>7&`d&kDp zweNA?F~a^E?>V;$(e=Gt)xWjI+jq-^()Ql6M}w~Pix;1s);-gfJSOE2>|?#!4^8(`odd-GDYyJQ|=;D>1 z_FVl(+%-f5iV-0kAjAy~Jm!!?4W|L|;ZYdA44d#68@?~ZhyRJ+@^1u|S2rG;4@n7N zNqU$>&jRRSV16`kxX&RR#Sl1zfDp2WS(|%4d8J~mo*Xvk^5`^qBA4a`DTuA&RRM-I zgNn?AXnSZFguj`To*W>)V4@2Znk30Mr-az$;h>6Wvu5uKDZ5seY_fbGU`TvJscY=5N4^1A zkb#Nb7JKZ4l_i=k@E#Tg(I-Mxs$7?vw}th=Vn%%hgM!l6$1q1sPyMcAo-AfR$dY#M zYpUnCTpH#}SMS#+E?o+$J~?Vn?F&)qx+SD53KWWqZu@R26E}CpjGFuEFy8W;-%H;U z|E?^KR{Cx(EZBaeQLPbXjhRh|a@X3s=Q1}Evey8L1;Qft+Z<^(wgJ6?O6JmB z(oXB~B zK4%V(Vu%ko#^WKzO^CTPEGt)U2~mJF07&i~WDA`Zgi6{X&B*`>wK_=~1TCRVRLjK? zT`kC(#ioxJ&#tplCt_Rs`L8ThiCSX8UU*$vzl&-p{#iS9=rpf%pD51OY4s>^ zk5KJ!-SboFt>e4y`s|G(D+-fe+tfgA%fUg}wOi{bQ1#QwQ^E5dV-9GDD+*7cwzHL~ zTXRhKF(E}a$9fMte=I*~-plMQHZZ`HeS2#v9)4efX8mZ`V=d=|?-yfPt)TVMcxnZ6 z)P}?mB<;@4Ptpd1fXYXK?4i*tty&$6Y^~L*I+i;Gs3kltSByQ2?WLr7Z%Z~;b@zSv z{hw4zd#$aU(7f;!WTOp70>=>)M&$I$;Ru25@vu1$ad=EJJ&?=Sm-^;;O7nICz5`3b zf>b2{bfn-jA$kbrhZ@3t3h{_Sh@pn%WU{2|=FK6}W~04Z1B$ZuUEWgzEKJi3TTNj# zuUrGBZElG3pCFQI^#^Rd0NwdbjZwocg5UJxr{ZLS2^#v#x5KER^B1y!I6OX&dv0l;Oy^Yhx)l*vclGqGo9 z4dAQy?09hhTV;3lUe#I!*1;1mDN`Lo1G_D(g$N}VlruMYPwWDe8SCYGKh54<1>`Xx zGnF~%O#yklsPY0W9^FZRISJ-@#&(*J<}|D7YbAaG(q~|LF3>kynbLN;!#D1z(H+3? z8IVku*v?!1i~rDndj5&u{RdwM9-b36&om4#0DcYdWl~T|b4+O_LIjE+d*!ZPgv=T@ ziCi%u5LIi-$4FE-Y*m6ySbnEAsS0~}v%pdcyPDdbek1A<4(8yVTion=@~zdRPyU`o z7*<-A@wz=(xKb8+xdm#_(dSPOH@lYq>^(EOxXgVRL;cds@ebe9czx=mYpfnRU1MwNa51HtT4fCT-3}jLaOMV2E&i*YEO5l>lW$q=nZ8HD$H}fI#Xl2M_$b?mdC4mwz%%&qP2Vn zpCc(_0bp5JgJQ<*-cB8-vJc4~R4H(tah7l8CX@&*#{_8+sNa=*a8VA|uysKN5un2I zI(>uM-}?Y5T^xU#o~a1bJT%^_6$i?!fQ3RpDE{}UjHeU@EorvintOgIeVTFG-K_rHF#@>H zL=TDhQ6zp8INayJha8x}0b24~S>>30WDk_bH3QRrb`Qu>;F{$Amf#0z| zo*1oq%B`pji%ED1nFq{TJUG;hT7I9;B<_3>#ViT4%n+H8be?ADOJaUTgr@?$nslD$ zB%qI3F}b5}o$dgR&w&2oKlpd*U;n%R00F?|_F^kRUv5HphJdF4KO?0FG;7c~aSAgJ zAb>*^bP`!%;)St)JC0ThRRL{HwJHngMOg%GN4z&)FVrN7(dZwCZZSd;et{-s;w_*?n&BvaO39 zeChLX)%|vo=sDD%_l%c;NB$x&a@m+Gs0y-xWhT$==2XBFD+9~OphTh!tVlto%*wI* z4CP4C*wy`)a|aX`+xptIwyVgN6%@-110ZIkEI@{s(!o4WCo)eDg2)4*aDRxyf!+Tn zfBPRMQo_Ic>;JCrW=EAkiZl@PSb>Mi^d%UNIp91Dd@>Ai2nlTZ78F^b$iQWv zOQ5oVLR4bkeLfm{lT65-U`44Ih-xJoQyR5emz|x-2|UaB)5OGX>BUN9s1kC-0~bs9em)O?%&3Wsp4g7?ESHIuZwjII>VUqT%3Sh~Wpcee;!Ur&sdo*>ipM z^gE4F`FX$TkFco56mW7t^oWSQh(wP9^L-8BSVI^zL?Cd^P2l;>j)!PVq}&eY_fTb+ z5}sg|cOu%&p+xO{cI5a$+v6Qi*VZNO&vb3L+9bvgv>s|4(u*XEaLIkElZwnLWOLfd zlhgpvRyArN(5>8oC<7Zg7g64S+PW-!gW7e{G0`lK%r=jg%#SS3h^;^4C5@w5-V_6a zcy0GA16M;W^Ps_gH19sXg0->=7#W9s|Dk+{n0?r=g z%GJ{>DUgyPB|%DxNffH0s(O(KFCy>+z!N}UBuU!^_q(Gzx&t^q7y9>q?cb{az@)-y zdMy~AYs52vpR3?ylC+uTc@sheQK=L_lvx7hWJCLlqpUOjr3?5jHATR-xf@vq-jTdI zX3EgsF8b@%HuOET&pmyA+uEIf)n#T0^9t1US6xp_%i!9v?zk>2@oz&W-~(M4YW?Xp z$s#ILVV_Y-3>M+0R%yLrILt$VlxtkFhkbl5nC4K9Qdxizm@yLZR+TW%Co1wFAe@Ks z=$utff9iMs(H~B-Rn`5XfgWn0 zM__(L#HY+W3>*+k_@sGnBp@ezFG`|?F%a^+_UlKf0sjC>lJ{H%XCNRJz8#q{P%iO3 zkX2A|YkH5Mr=CgeS=*jX^|Hh+U+L$o0~)U28`Q1gcAwj>WJ^+7$4`yN-jvVYSc1Ir z=$hPBLqirVyp3#TZLMYUAa|@I%^@qX%#A<*my{Pv1EqzHSC3I-S#E}b94+t0tXU5c zEnXX9AuJhHnv+11Ktyx`rY+$ORG$I(T2;R$#Zy2pq>mN4qdU3-I6gmO1#}M33ji-> zq8AZ(LkSa4A{rAALiQCc76G$jQi+!}uZ^W9Y3MkBlIhuL>)PTV1ylvnjCyBx$WR1& zsR9wVY|=on>YHk0nWWuD?VhsM3`g&6A*8T4{)$#aP>VJhQ)QYce6Z z3W|$H>$PqV&q}1%F8khc^#m#Cdfm+3*eERozCKTZk5{dhgnIG1a>L8t-6=b+;7bLg z3P*0kD<@hkwOwRoV(mTxfGI1zgXW}ZbDfWQ4jCBL@}*e5f&M+${49!U!Lhhr8;4M& zWo3qj0AZr236#K0D@0Y*ukN^GO3COWIJl4x; ziqm#`6y|ga&?$fuKo1ETnE;Ie8e;Zn(wyI9mImth`~x*UUd^)wH8XpH2||7Dgl6%} z!cHV0hH|a~sPCjHA4X>Bv)FBWy@FDK0jNnAX%TOo=a98bV5Obpc0R1C&s4KZ48k%D zE9atU0`~PdLc89)h1l$I#^bs?A!U8;EIV?~hiZ+paj(@7U~9VN=2#}uTqfl-i>l9; zW2+@A1KM&YlxwmjG@sck40*+wXF#pCpbbQWYXfK@310o8g)3OjzadWfXHcz<;Lc+O zNN^&uP(AmG_eP>Tn{6!;2!q|b(|e0|p&ymnF6uKTA|M3t5E0V=2oE#GQ&oL9i#!N( zI>s~yOw)J5!;Qvq46~*Kk@+4#XF@m?=!p^?SovzO@r#llNd!sqoVE}ks`E{&K_!n< z@ggYqBO5ES#NI$;)TE-72b3|->z4tNvffIuWhyx})X7eDVo0^l*Q#`N{WzI`3jfUq z04EnLLCz%)?qn-JAxjh0LzwLAJV+ieY@lY_%W9^d@{i?;u$#5KoJ|J3j@nq7oYt=O z{Fc$@nzKAXRL^zmN!vTt`m?P-1EqT-Uv7oEHmwhNzw+K#tN=9UcOxPMG=PK2_U7EU z;att@(p64DG1^h_GJ+*k&N915&!a_iY1kL+&4HlD++$EmKRRtH?ed#!qg(nXP;BmGbEos9I`fT9wuM7~1ptrI%v`Dc)h9 z&EXBXjiqJyM%QZ|B`-Iq@$Vh?&*kq6Wwpo|p>)K`%r42G5rWoCR9%?p@_folUR9Qu z5ylaN3TVb4gp+wr4>7055Ixs0923O=RQ>;3r*Ry|AoE#Dcm(JpVS2!UPl#xs686U& zK+JiplOjoG=v1uWz4CASU;{c7d5i-r%%Sjd6i*JO%D=60N(D46so9!PxFm-;85wwP z3hINaOFmOC7ZjR2YyH{`KB0ojnY=%=SU1G;NQRjBQXopA#r>Vhs~D~`Nv4YkBC(Wm#=R)6z`q>lmGf( zrZA2}Na-FCKUSiz0`v=FoKd7P#0ZWN6eEat>|lG_ZIx@#ay&RI5fd;_7K8%>BN0Yw zB_+99ryB7!GI5Q~z4a(u{VX@9*5ReFZLaj!U3a77D|+re^0`r#+-}*&oe&lG0@lM< zeC`Ug+zf=eCi|Qi>-V)Ye13%YLMk<+F>9&yueYGJ>#SCTF6NxeQE-F%)tmwFJbi_U zF1~Nz$=W@dcDQfu`5Xt!yZC+q&MV8cZ@F>a<$YBzJ9mGvFc)pl7m5{Mk-aIH6wv?+ z&BA9}`{vnKJeJh_@~pM~XMVn1mbN>t3awshgcuky4qzw|&jU|-f_Z)zX8AJ3;SnF7 zopZW80&w}){(b)h{YU@m|L9v+l4u+@oajDCz69h42gHwJ2qz(iA%=hy7>Rq?AsYhr znLj+UX#lY)rDlO2>Ze)dJ^yZF?hGd-M?%43ujgrn|C5`y-Hvn<5c8d=?Po^jLA1=r zbTu_Y)d%Ua_WkTV@or`)*vDBsxYNR1^1dCQHAKzlUGcvgkl{T^GLWpDCy4KaPb@lX zPAF?7jOX&*jO-nglZocPbBIa?H|BZ9JSR-^gh^C{!vzI>8PfcefUil@*ECO0Ao?;8 z&rG_uP2JJ=nC<|M&y1KiO3(>3z80mYBI!vYdN!-Rj!9FJh@=8mK`6EnE1zZJ9e|do z2+h58DG+)_ng|HRf^M<4DA-92K`?9@I~Kub0~->L~h_1SjrE<49e9B$Xqg8MEl zNxj#DS-1eK#>IP~UJ7f!Ss45Z{BEdwAD~harZvTKe~bN5RRagKD*Q%1bR$2bQ-r7` z$;wGTcax*$ydb^6*$bP!;BCTb?*&o>t#W&xD6Vdru+oazt(8^FJoT0;EqV{R*qQ8V z%g{Qn1f`OSl1rjU{d<*?ysMT&V-Q7z5P=v;RX3n;BG7Zy^hkBSFPNXmcUeb>8LB#v z%8}}PraGU4^Z|w8gyR@_7_wV-U}$KdZ0bfq`;2L#8O%Al?~5>og4FF&2>Gc{ju3df$e@> zSkgi_X?(rCLxlq^QTSxnPk&485*hn8@-KT-IBi0?-lQNi^MVs_vOAG=x#Y z3Rd=x=1Ue_)$~5S-Jr#AW?EH)lhohhOkN)) zXBK!W14w1>1N(j5?-LfzRRlY29unqpnR$4dQ#EIcb;a>+YuEbMgo>78vp%FdkEqpw zA#FU+ZeeS*d7HJc>HfAR-p}Jc8t=RRoUGmkgpJfpW z)>6l>Nr?M;Wa&)ve$CWM;iB+T`{b#ob)E#u)scL{>-?b>BCdXCp;9uKa;T{&L~>q@ zR6I zp}QO$chu1x!10+8^C6H$`AdPmfXq)6`aA`^$)1e~t)_QooPAO%a>9^(lW9j-TTm4c zso$Fn@W>m8J6{#8Xl>7`tG9p?X8akd+Wl?bX+anF0N^FyMWlAWVcZ0%FrgkrNHmLv zyJHWG$c~cWItEkgeGY*ppLhu1YTDiSdZ|?XZmy`{NZZu%CftVw?B3VsK3Tpm=V(#F zMS5_|-VxPnGMGYyCio&-m@QK{lhkbb=6;-Al_e`iO4R~Udv5a%F6LjUBra|5TuYL+ z>}pLA1Ly(+VL%KcqRb4|L)GbYPU%6KFV8qlhqHcn)`FapB5fe)m}ELrxqLu@PXiAJ zJPb691410LFDcrz_Ii1!ZRK|q3NOg{HnNyG8!r%xd1pirA`!*{Y!JCzJl457{$6pV zn)J0-h|3JAr+T1(>bfWN0d~%8vGPDJ!2` zdAr?f#)2O$c`_~cmc<)e%!T%9TB{u&r$u?!#oxBSaqUEVGi#wV0&&9nI`6enno;XQ zxpPzICrh5+%|Cm8txs)!GzQj9%jMtb$3bm=Xn%}>5(-$>QPEJAd$I3L{w^yVHG!pC z9+j0bp$snPN;kGHQAfs}%EDxbB(H(R>dNDmJ@j(I($;?lpuFp80N8$G@1@P*K!g++ zLtxBAAek8R<$L9FF%RJ-A1ZXQJ3*jeUH08UP$K;S8WNWwFtt5wuc(Xp;QvPYvJqEf6VL7)-RLG;-Kvv=DX!LWjPn7nq#3QINjl* zdqt`pA#EX4G#*{9U)z?>Y07Jg!TzsX!R`KY>2%Fid7lZ;L(m_?8@WqgPDk~zE%99|O9 z%b@yNWP0<*eoHQ}@W=l9|Ct*I@OSimqC0@&GovA^E;6gWp?Q7+PCq+`@IwMWos=#H z2xdr*N!6wMuM>_*O9H8-=KbwbpV;n>J`7zCpsdj{glWABMkBN8*tTrCT21^}ztjq_ znc(7;C!oc2255mvdRv}JsRF9r0s)McI(ptCzW7gk7_iYb;1QU0Q5@nt^CRF(M+XF-)b-I#>_9?3$q>fPRN z^S2{gGkd1L_jdmEdXoYoz%0Nlntzt>6Xnn~Az-HRx1uDK&t4pJnvv#NlG24TKL_y> z27kkfr>gRjM7HldFn9FX(w*-3nbH6Kzw)CiZ)( zgfe4Fp7-hjlDanYyjExJ-fas|V#E*;vw#@}(2=C+VcKrLqAC3#DL-aDI{S%#{(n6J zz%Tsg|2N-?`lD&0U-7T~B^KzRg3lv`FF1s+V&E^v7|w=qJlu>MJ{U$YM-UN`0+VDf zjH^_jEUXe(TF6yE9&_bv%3~%BOr?}y_T-2q2S*?;;z(<={Pc+djThXd1iLA{n(A#uYv-gKPWfK7s(K6+{dsi=~t5y659N zmqI0@#jvBCZ@Ci8T{kGIJ6iEx%Yq$SmU*{1YH@EhYn5Zj3Ul9X_ftagKv}SAt-&o= zoZN?Wnvm%qi~8$YUH}uxq=5Mj^?>PlytLAh@uz$*=>$z% z&s}y3cen+5HFy4geJvvF>K{I=po^uiu_37MhJck>=X&H&Bzw-KySe|XMZgm*;bwmS zP2%lB0|+G~A^+jIv8}9S5?Onq8a7eqT;Kba7s%eZ<)pCpZfE)t+ef|!ZZJCXf7=|k z?|0+hmtGT%&sjiX>$ee;saIv)kq7-VA7`L=sn~p9xTR~Wn6aGawfrwNg_g+eIkvXk z^P49C07Px;!|q6h7v$^moab^z0*)wf7wqZCsE;P!a^97E+|Jb>9Mn z^7X+QCSWGQfE>raMcyO&FuAtA7zAYkMMfMV!Z?681F_D-gmiSdeRHNVKcE;-LmXd} z&HjVZ-}uk|85UJi)d=WeWWC2h?qlHl1MB?|z z;JK0?BNg7IF!?Np6-H2}v<3?`EcVbeDI>}@2I<6JHk&rk{IyavV1KhFy5tgddL z<$EW%Sp6Kd%ewdML;ftMgOTxk%bmgXR_b_I8L=|2viN5br#(ZSlR>%Wgh3e}3q|So zhDNzrDr=%V3sKE|m!APJuN*24II5ZbRF<#W@!iHRyNxyXrF1daz1g0h-58=?lUa?) zTixcqOG7`@7)tR{5(9ulAd;YImZaDc=(PaP zgUEB1^jcMCisSzN-qH7-?f{O@kp9H4`@01I{?^~|f4pQJUm@^IL3%zDUL?@#9K$bR zR^d@V!cIW|gCR(&NOiNUs%gE4r7QAeY?ieN&~4|+*DIHh04nZ~y}G?4ubc3-n>J3m zpMBnq{W8kiVDz@>E}z%P-_7>>79DHboUUI}np`IJ?C!s~Zx#Nk83k4N^k;R~Xn&*| zb+1Udvn)ws9~`jst0DKZf0zDj>s=K#(1dG37Ov{K)GJagUKpMGZ1ovfxLDiM5PE?r zpKET|RAcwenkXfHA}AnC2!Wx2iDwLy7y)ptib?X`RO=hv=}=yK20`;+TweV1)p zAlSIMeZ$?vu2TTK0Gn!MtHpOHo&*z$a^`_2GXC4LldLD0w7Wad8?E}40iXW53Szd$ z$=A?Q9??2}#Eb!q6asiNfVU&Uyp3^A$J_1Y!^`RNix|g;!ywNOhr_F!OWq4zOcSYU zP|*V>JxdYi1LJ%odO*ylW8lpYqYg1rh!KehNu`1nvcoi8Sz?s6si=G%fXmI$JnrmM z%YK$m&+{_dvXD@#hB9MUV(`4Zt!J&ubK?Qpy*q!jEnOFuR^glLw%6S`R=qNuc;v&) zywp_rv5grlw@5F|wR7`xETzqL{?&M>U$ZSA5-ND2K#ew1h07hZd{+PIpGTGTYWZ$##&r1F|j($3t`9qpkzfa5c!KlR`G&riSncmAJVL>-<4=-0yZwJ@H| zDpBV70L&!BL=?dxGcS>*ko4p-X;<=MtN(qSI%Tr_?7)G-)B}GwuC-=``;g>a^FI_- z3q&_)-hOH)`A#j`SX5P6wzS_5@a>|u8<=50MD8jn72BTHswYk+|FNWGb?>-^nO}09=bMW z?9TDO4``1T+=(jQUg`2OP=l&!LP`|jmRq}!rVx8xx}0fV;gRB{XIb`l$r$F6arVlK zAc538B4hz-EkTdmUbA}pwoQFs+YJdxxEQ7HKk?uF}Y>eP4h4k<};boS2Cxc1HoSo9KQ)etvvg|h~^6t(4e3bW_|>w$4vB?h|j=b)DVCn zP_BfP{c2UR%fDd*{S0gam50#p*lq3yw36Nt1=!#QY?y-)n}=MnF1>61h+C2F{@wuq zwp^$j~1#hvyRG^udMe zJNl&Q4&eCAiBv8G`W%FB0_aBqJW)*>oizv{ij^Vb9DrF%ye<&prAX%)bQMVaed|B& zyMpwRNO5qbeLf6mgN z51FuG&q`zCD9!EK+BD639kMVupaBEB)cCd=hx%6*h}WpP&9`q>&+GjXINwh#G)LXI zwC{KB<>pzo^k)8OW6o~8Z@QEC@IUil+^G^};9=QcplBgvYfnlG5Xue7RcS7=cUA!l zWDgWnUrM&t8$gylG3w^j!i>5L*}ea@j^v%eN`_0y7VWeK(o>tiTE+uJJ*XWRaU2k) zF%0wec;N65qF({}1)zT!kOKhE_K(QB(*~C`hp-88a~fiNFc0BeNzat%(4KhUfFT5M zAaK&1DZC1`Y1q|(%P`>0T^h(S{Acjjt6q{WcduHKa_Wz zV1PviEws36n76onw5;(h6tf7XG~+TQT;wF9mjb*bgr|b=4Rd&+!}y9wr`=ukj_#<@ z9l-I~6D1|SWa5`Z^gO7(fXL|#IZgx(k%3UQLLv}Jc5SC7f*Mc&G{qpGA+U7=%=fFC zU5iU@3Wu1YTR3>zsNFdz4A%i11i`H4Ml8-kSs1UO!DM{iL`#JwOnDW7=M1 zSl@hiLPnM+P%a@RMH=ODpN4qn{3PwJZ6qufx%a5>XXUo5n;?1@a*KUkZa@N8WK7#N z)@ENV$2qw>g(>$o6vd{g8AJx3&??~2?o*V_(%IhPOjR(>z)ewREm>R%Cm~qLyZr8R zD3$f3NnzQ#*OZK!M64*hHb1E-yOQCPJfBR-;o zeTl*1^32U$)oaRGFjNR>I4I{B_xwg(0=INwuRkwp{MDCa^1^@HXSVeTWa&SLwlv_D#Nr z8#8yjj@#-ti+-%Q8aONhp4$_O>$I!)E1W~KTFbY(1MBxPQjBMr*%{($Ty=cCWE>^7Jd5+SXB-N41|NKS~Q1 zYS?5K3gCoQ4}S7@{dxNH|Hw~%FvTf^nTALs4&!kcHm4!PdysSx zkOK8dj`A>33#ar*p(2+yudtnQ(5yZG{r#9#@|Q;PRjGX5^3GMR zxd4FcK16O!F1kwOgK2>(D*T$tvuCixiV-aNsoR#Rg#SUS93mQH9IUn5puJ#_-DR^^hzTS1JE0|Mba^^RTUptg z+?z~rv3{7OzdpIL6*6zS90Di=aJHs}06J#ELt*+NFns~0zd|9r0`MFk*n>kT9Fo$* zG*3Se-u{4y9&(I_<1lh8l~c3`r>a>`u@bl$G%N~;g{7B8F7jvIVr9+9no zzOTmU4G08K4Gly92gWcAIG9J)VdBlSy$8{UMEphI_(&1X0sIgjumpJEIdTXm80k^m z3}1#YJjOhqs_+mwfM}64bxBlVgZ7mhFVzfEgUVjYx!M&ogV}zXM~79($QN6+GRr&B z0p@nI0*s61IpK3Gd1C9VJ7(Xtwbeg|y6@gy<|HQOtQRu z_qNNXZ{A}v5a@Q-W!_H})RH7aI7fZAf+;YvN(S{7vfE~4%O zh;mMTUJwxmph~&I$}E`YnWj1EteOPaD)CE*JWKQT$)NItn4bf<5Y@X1DtB}x-2oh* zJ8cdGz?(TuPs8@&M?&~IF+EPi^Bf3KQVucD9Ba%)twcd|iyZ1=eYKpI8C(kmXds9Q zDrPzMWP)e)@KA*?7qFuTE7pMvyRY>_b5cmqx)RX|1IC;iT@zSQny?L!{nx%b??#LL zg7ke&HeqI-qV`W+2%$l-!<=={GOHo2a3?orkuf)v{JTiK?!-TGMcrTMFB1r ze&xKGYXd!cA-N@DgHm>B4gnzs#1KM~bRdvZp7C%dI!6fi5_6OfoG9Wae%HUkW854? z4d;~PtCXg%W{nRH!gvsdk>W6xcx}q=p<)&ya_*?@VRPky;xA<5SQJBB+W`PEA+Q#K z*eu@E1mP+Wqbke_)WnFk&doDvsq6`yHJMD2Stb|k$y|gp%8)BpjthXi)+ExICx{$OddxvDTkY zIi?@V)qBOpMHXXWkF!ivXrXRW?l;5cOwXr1H;spkQ@B%$IO=A6ersj{3m93=R>BcaR55cCPF@v-GmNj%);aXsQo;kouhm_8j7X z=FQXk*K!@S@2U3DLQ)&R(axRA%4aE8s0%AI{$)G)HRIYpnfsPPu5nCCLz!EYIr<^;R_DK{Iu7>+!efcys}SQC#C#gk zJj56?s7{nUdTdRh%@_3^Y>Ha_iWQw9A%|vW&=O3D%!uWufgQ%b%|oKDc?UW%P{T@u zo7a%4DgW)hb?#8{{?dN^`g4GC)1IUC-f0V7*n!#CO!y`{uE|sR;##T5oscUg?Qh%z zah}&##Gv(d@c{jEE?0I1VmXKLpzNVLW3cENmG9cuS8X79yv@U@fgBCgu)RHd`xIXb z^FFrZp+Myfer}5UBmlDkVFlorh3iT-fTIFvNs(s3yqz)4NdewYaeO19&v|?Kgr?U| z^g^D_kXHoVih}<5Z~l8ejHrA^p9S3k9G^Rl8>q@m)AUO5=E+v&DPnxhahQV+n2ORe zl=Q}VQ_$@F)p63yj4F~}Ho{hNGyk*9cj0qt06lx>J?B*MQ6wv}q~H}1QpB}GrWm(2 z*M!ccvDfFsxLwWhb$Z(tM9HNE>pfmi};9V@d`uF$nXT)>k&&ATFhvwx22hk(Q7ev&>{5ujJIoFiLIOlCTvmPXTZM z2S$hi6a#psIEfsp$URoQH&ZwaL5B|sZ~V&t-Jhb(@%cfRS?qduP_Pnz0`JeB3+dvgzhc^A1xOS%*Gg?OH;a}IKtX}P%5}Xa$--|yUS+l>L+wj(okz)2A$jd) z9oC+4MWSCkXKjs|2N0&-ev5T28|_I8Ehsei~DGo8x z5F@~ruR^jFTy0Cr9*?NI+4_26uQ!o= z?={bj)$38@t37kHyRYLH#u6HDc>hGiWiI;mm-lM3y#+>S!)M-quNM7S>znSJP11l1 zBio-VyEj?6cwk!SX?EXeoG*hNIpsUEBCvqC86^ymF<`^0q=+=0VPJ>JcJ={K0X$Ja zk|2krOweh9CQ+rZ9b$MzO3!%OKBeu&Gr4&AQn#-z|Kz{$UzNY@pZr%ppwx9op99?i z9G^L94lJG_>5a_W7s7ZRfLAH-R-mGaVDWVZaKs!Wmo08e2--Fppz+Q?4IpUlw7nAH zEm78l2O+#Q)dVD^RwAs%=Ton)QxP1sz}&Ikn`;bnjahZ~>kI%y*h%`ivWG5BINjgc z3w2V2t6q6%G5Sq3@$EHK+|KcpOw9h!S<2K|SM0cZKcKU6Vi9D`uG5+~O(mPV zKs1;~)FseGRlY)1BZaXoJ%mHB!-i0*@Hd5dV5P5X(B)s zIR^`h_Xe^%Gh7l;M#;C~@^93Swh#k_X(6ZzSjocyr;M7;XDJVM=ZWP=X_Y&GrHzQy{3)xN zZ0%ER*XFHP)b00Nc_m-OR6+w6imZVo#?=1*?EP7+ZQIr!27RsdG3MI))aAYRFA@_A z5haRDT!q+?!FeDM!V`J0BM{X?f*p)38;Jz*WFheYjv^2skf>f_AV?5`kOB`j5Mw)u zD-2jc3J)L?`@iR$eRjRqnxnVILo0ggW6rtO+UM+B{Qp^PYwk6RG5Y9b>#cpg70hZT z?ZLxbN{zZSS3IF%t!E&ujrnOnzLdKuc-&}*S$D*lf8l*QY28fcWAY8fM`Z+27L>m5 z=T-lFU;ul;(juL19o-t2h+x(uG4EuUJy|T11pfvb7}g|lCFVZYdXhb=7kfl164NxI zGPX3eO7mrn%Joy~lV$8JVRX!`5km%PQB&hQ*s}|-r*TpqykPG(7V$jdcU#vU^NS)A zlO|vh;}X^acy+OqJ~ zvY@qQ7L1|}U=4X{#CRZ(gM;Qe6ui$sp=tpaaW|Io_dG8Tt6Jomj&0oncbB*kI+WI& z1U@*EO9(limv9?94JjOT0QSJ)EKN@CrQ-=kWgYK-t!FTE^qX;AT5=Rwi;BDx7A}DC z_YB0XrHou`yA~FHEI`TL!U>2{xlPKtwfVZQvrd1r%tRe1Eq%iB!Ynu``5b|#J!47% zi!vwJt>734f3k>0Vli>7_M~A+gtQusIilVsdv9*X!AqmsDq7hOdJB7#M_2{#ImM({35VKssV0Vw;&UW~05d>{VfC(4QeLhO`-A>hx?ssO~D z`ox(M-*1C@D{47(o0!%aF~XOBojKW&@0&M4sMzciZcM!FM6k zKXp9uu15yQa513A%!32K61D)eR5c$MFBe#*g|MsxfbQyU?cY|)4l6J_Xt8>$BS%Mv zIaot+B{bz!;ySNbmjkZW1E}lDx_(5<@?|Id8cF}#{djyTH`lLKwE8ibX*Q!bfqu3%a>jH$IH?lT`dc*hZRd(Am9Y5$9kah8vU%fJI+e* z;{COFA2lW{)UYyP$u%CQ_~rHhHS(|RC*9YmDsU_{kf}~n6~^CNm%(?DZ_d-X;LH2p z(}IA;o~X`~W{~9KQ$RA(xZ16EaF^u!yH%~z&$rMX;F#s!SR-?3!@0VWxt^NaDfy;u zDd6X{@9~|@kKwkH_175xv4&4m!iooiXKVy)MCd-ZyZ9les-?8=8;;wC>#bw!x+(KZ z=Jngd(to-UeWiW-RaOzG}JE<^uv8tM+dAPK5eVL0Mjj6SpY3=xbn z^$y}`b1ts#5G~*rJjhwLb!^77B3vaPPe&Q!LpDO4t*qvP^5)k^+?8I0>~O)b(~CGQ zu!#N*;}lXrSfFWvl;+i_^JTni%xKGsb~sSmjti;0r=p*bY@f5r7hAvnbOnF#d;ZK{ zd%+6nQYXZBCwcxH>vDC#qYpn=4(n&i_#6v9gX%}E(bdujw6Fz1MT==8C2~10JsQhA@;0HtkE%G+_?fLO@bY;hEIuv6EQ6eXL0Cb2f$ zGNovinkR~M)^#pH2K7_A04-3msMv)Cm>Odj*-~0asot*Ud^ry6n6^DclGOXFz@nXT6{w%Mi4S8<+^uS-G{<6 zxU=(85A-ETKNH=4wCT;4BG>;v?Kj`t z^vYGg8$J5yGXNk`UBLWUKp(5(Qz(7fj@O?qjo#yh)}^i5mIcJN+r``zU}RmRG3K$O zGQwu1Pui#LqaLTsT~N##&;G6rXl=H*i1}au`E128tT~Fdj&b-w~mh##mQ&@*qp+zUF*64^3qei;rDjOk{bSu{;k|Lx-av*xXe#C?+R9(7r z;g7v7ct^OAB}dg+?iiM2gY00jF0xtH8gXsXsWZQ`xGKR=XHI8p)z)iRAx;)nrJnJe zIzkp>CB|OIOUMBZ%be2H4@uJ+&t5iOf};vH>DZ*B_YUnHT~z^kBiz1)EMF7&iK4#{ z*{=Wc|Mb85^F1?ppx?Cg0C4;kr@#E4{158y{h$9|MH^o$(aTQlIhdb;@N`po)kQuM z5we%1feQ5|&P{@u-|P$55UOlTn0_iu`n-fdyH_dn5`}<5$a>TA_01i^Qv?a34FkKTK9pu^|P>yLF=e$v|VIYS=v%Dk=(D>o1mgtOzO zGK#@GOz4eSZX%?(AZ^0U$eL1@QP7S^0r#&&h zKNoy2XtwMFSPT%65@_{Kx^=uS&7Vv484nyTms!2hAHF!MD_vez>O3oPdrP46l<_nQ ziwNLcra7spRG(4=CnU4BN#2@g;)qExS=*71Z<)T+$+`b!0+a(3JKej6&DpR>+5;T> zy<0}Ja()F6w9o>y17uN1mnP^RlJqaNUw=umeX79USsTC2P@kp4CqDuaH6nfwz{eun z=lbUQbAI#sQ}mnnmm92nwE_%cCV*QW9*_^V5+xuP%6}b8>knI9wl?fXi>=`xuUp-5 z{Yztg)P7djHrUmFJG&lkSxC36&y!1ohd^^&fgx|?5ayb=eE|7`_ofGc;|D-Q zEPv$>{eJmf|I5Glil}`{#9xcjS6%2^>G=4#>AE&q!9vuG5momI+b_q7T$YP^syYib zL}65l9m7}5jJUE~yYN!rCYqj2DGbMNaohgPC6u~z0EX_$1Wtvd;R#yXP(Pj9Hul%) z^vxW9WWK9D`E*NtTd-oTYo6F?>Ccn?veS$`$ZDs$bc|d0=cg;iS>Z;reN?_X!9vuPKPI$=anOY}S!sn})BgCV+b7FWzG&O^mnz#A z3i-N$j-6Tm!T;g^QU2OL{U84BQVf9O%V({Le%K#<^dq^_Ut5TOjh6LuVtw2WOv}{) zyf%nuI6*2az7ok!ek?oDK2m(PI#0sF)nW3O^sxPyK4QUY;uf zaNMO;)L|u{_%#FjnK`ZsV5F|s^TJ>#UGv?}V`!f3!(wCyF1gDHDAEna6YE&$?r*6l z#)Eu@+xY0L2t>S;$&Z?xpHeYDF0U|44@(@M=Ac&m^WmUH)Gd_JsErG?RUu&y9M?lR z^SUU8Wd_sW)g1RlU%^3=((^j4(($Z`yG~X$wzo_%Ichs@rLmvT?%Vhr>8yi4?)R}u z6^N_rKrvfts1&6~$M00;K$H)I*+Oc=gpZm}Jd-WgtUwzex_yZ;S zLXX!!R>7Az9zRjp-UIpqSU~jzt2?lTyXGXYjMVAm4GwF`ut_x~T5?_lKM2dMMxIQD zoNvZoAcI4Wc>!eFaqJI1Dpx9Bg=`UW2IiSjDJ(0hg+j=bCvJQNd5H1M*V-w%;p;^#&JS z5@jGhL){v(xLY~{vH7wGJ4RYqv-b9V5Fw|8>yx?1Zz2wK2)e4M>TB-Xx4hl_6tex4 zKuFDd2kPrgotg7eB-4QMqs@@Rvbiej7ypQn0~Hf`hM zIjRs30tGDq%dXJyXqd)vxAER)(NSvXyg8MCqp!{z&M zO&~I#ZS&oRr;4=#nSr%BZTs9*N9`2Dw0S@GV~r2GkJ5RDsIH^^JkkqubN^*B0_4i~ zODMF0Gf$|B)FqIxf2TF#5k=6N?2pf+ciSvAFW?b>$txFWM#UMwxfEJl zE|V#2UP+rrH0NXRJT+*G1?J9405OBGV1-HT=K-)Iaf^7?!rRDd;^0K2=)2AX+|KxqU#(@`#rOOS81Coeany$J9G( zMW53Q0NP=Jz76OSckgMTsIsm5vHmG7@QBM;k3sPOk+!b8!uC}q%ZSzO;$R6wy$*n> zx)5pk5o7MbdF$D||89ApQq=!83#M@GO_vP-<>)QvwtcVp?)*X;Ky__FW+BOE7I|xO zqd8OTxhBt|3zW&NyJoBxZIur!~LZgfOuRp0p-Z|HC_t=o-u_o z(@z&q3ESarDrPws2YR{F2C$(9ZaBc9T{?;Mt&6_Gc6_G9PaxYj-0>8A^_mYKJy>u& z(7ova;P@d?*PEr|ITk$EM&DA$Q|bC*k^UfszvtiZiwojIn! zsXN2#@?pf(AHNC4DXt_7~x>5H{BJsQtaZZ68wKJ|gB1u=2NUSzn*; zrMDvnSbBeSl;bC?+n0cT$;=-v?Xav@4a<4}w>A$_>9aU#hRCL}M+@_l*-d z1rv``T(veYY-KV72O_uN2n8rL#Vjkv-CJj;^Ev_$k}GGVnlTn^f>o(~Z^JYASt$3( z+ln$2fXUP!UXLhovd|$@YR|JQPs3S$tri|tY2wkr#jWEKxzatg%zvR>U9?_T_7%d( zOv+p4A;FaKw6zuUqKqgnPE3CbPd1>fJ>PPuhH~o?F z;Y)se_>@#X?7&k6wq`a-7k0qgNu)Cg-tU4>b?cuu#Yb3{D_+2DY2en1Wlb>T8paX{ z+*p@*92AE(pqhIad7lPYy)?qohHK%ZbH@aUN2;H!!z^^->7nFCCF0bc+!Zv6sBAE1 z&1w9N!ds_FJ1>w5yhU9Hm{;YQyy8sH@A>H9n$?Ou6b`E=SpyzJncer0%{nyZIPb>u;Gy)Ov{E}Jz*0AOP-#5DuFpb@Z_PWvgr4MJLn z)b9vm4~q`TOetyyqvJ3t7?APYuE33|xuSHnxEovd;OGiKZ<=f`y2$g^!L5E zJ-*RLpMIzH_dq{PdH^_nK(uVw0C~}=Jpt2CJLsoJ=#N?C&^P_CH$h)UB>fb~%6YVs zDedP^AJ1q|5A+MBAI3NgP+}$)Kj{N7^0?V~hNY$);a?Xw>)rR6urbP&fg1)6Y~OW~ zg`n?u=qIZ9oQXeSUcaXG>U&4t2LP_MQDdh`Ni+}*dg$tldfT9$6J3`tnfWQHzF^hk-}~SF>-um1v;Y3LR+&NO ze7Y>_Hl|btXB|_J5K)K6S)3a6pSP}{tFFS1yt1a8Rrnnn-bX`SqruZ$j3u*V= zFDh?7h-;&Zxx_W$r!_@=8@j&;c2Y}-TM1TH2_xt4c z|BwFCYXIL0(@(Y0-`R+MwJAOj(JrEkN=54p{oQYLmrScK1{=Ic^VK1)3w}A3sNY=l zn?mxqK;yJm-K_mCS{<;MPVv-FlA&i#56Q2yj4VuHIWnhz1L9QJK#dWkO|UdxbX`8c zwtl9dFR?72VLAM})DB@*@z$I1@BMH78QP8;(IvlJr8Yf5alaq+SarrsqmJF&R8w&C8gAW&#g@Hq}cCQX_R11uFj0j~N?hZ!# z?kTf9MV;6F@p>k;Q*I$aB3g8+(@ zkmMj8*=q^Fs%ZutT$#W=bD7-&D34|1IisEeLRVlDPx&W`O%&7(>|obs!=-=-*nAlZ zhOj&o1drA5*30Jhpr7AqAvz7^J5ITOGxOEEY0i{z@@uZEoQXuaS9c6Bg{Un=w17xI zWNu$jJN#Id!;hKiYgRe3%6AGL{RjW$-(VJbEZgzZ?byH6Eq$U!C1*t5oqK_ITy8*J`pJorQGf@W=}X+f#5vA7cmQv%D#hWFj*mu)@W zgHzDpgAw%pXIrBYCnG9Al_z8D;g`tPo>|<4>v!%I{(J2E^M2xU$t^G+K>^O>oZ*`(zkSg| zIEGB-@o{n>Ft>o%P}$AtG=B39x1QFRqRDAdXXf#t2qO!a1)~s}=K9AyTr{B(w$!+| zq~K-g6YFo6$ogZPO0l})Tz3NuQ~OA#JMEEq3U4LuV`S7ouTgIcTsTfDlo+5YqVV)C zg1cFN=!qP4%2)qFLuoloHo3tw|JIMs5GrqMI(VSWl%ZketHaK z>c5;RT7vF{0O;3RdQcN2V_vcMTUW(0aF5dlI#|L8A7@5mrsJ|6_zLg!wZE_2-ovsU zOo;q$YW{EgJ-?5B`tSTZt8}?KZt{^5f1=CsF{6LTdOR?MnOVcE8DMOp*i@jRfOL>r zn9)rK=tBS&Vi#i70S-ymiUX0y+^|zwW{=0v2+{~E18k{_5GPl|4b18ulKY9yszKt6AkBSQH~2;VZL4$fv z?k7>7j;`*0>G2rC336DHc*!MxQ>>W?VhkDq_hL;&z3beZz#1-Q;c&j|puyxywP&Lf z5H}V_uB$rPCjWz>h%{g4;xR0Gb;;xCBX>JZH!jWZa}RK{eWKy2WtkBaByk#S&k3uM zy23O56)}`LlK}8;G-`>|Q9|-ef=C-z_VQCG$Ef8*Q zc@=Zl13YVh*fu1Y*-l6MBVZ$-SX_~9WIUXG{aZ#A9Wi(i@(G|4X;vd_Ei%Zb0vS^& z*BXsJhxiptWHqTyOn_Y{S#?`(`D z-ze3a$FaBoMS)bSTAsPPv6MFdO)f>#E;z@<3i;Z9V+^O_u{V@JqG#$Ju6rYZbO0PQ z0Bzc(i!IM3M?SjyB2_RW#yo=2N(A+%mR+H00Qi_kHprraO(GzvN*BG}R9^yk)|j3i zh@Q2^um4Yf;&%%G{DnXHJHC@#^*}#NdH^_nc%+@_=D6^Sw(?VDeoh^)m8eevIZ=cz zV)s#3kFq_o03@1A)n|Q|8$C9!{M9Iw>beC6bCm=ch97wd%Dx?0`GoW}O$EF3?Z99Xb8FF9}aAQJiP~x&4)vY&7f~fIX z6rn&`->qWThY%HtO}p^Aaz(hBsJcq%!dc8I8gr{2{om5Jd#X|0D`b$05kk2uffgra zY|IxBWq;K2=NJS2y_%wy^K`$?ZdGk)<}rHm#;+Q5vgZAvVJ$SAsfzFP?g0t9lyyNE z00p~M#zJ<=&ZIbyV)gG2475gR%~5^yEu(|KY8w<8@K_NkJssd6Q$iWYpm?f4nB<89 zYs9AzOcqyh`p#ZvoG3?YT^~uhc)F}(JxqX;3-ud-$TDR8nz<*S1;p5AT&a6rrc=(k z4Zw>EFkQzgzTsUP0`$3!QB1tFXlk*}&coOP003-ktj<>JP;BjOc~J z1(q5+=LuX6;Raq8@YMkfqON)c!AE@DJ{8EvEBZGJ_2+->kNuvv=IISsI`A0U->1HP z$kIO`tdFJ9qRRqVS123ji2%7o0b;}~tMkb^pa&06UhAJJvZ$~ttr3I4%2GevsMcR0 z$EgSDPOu~TdSHHt*i@QT(cE`yu-%D=(%{{vv;9`)dXeh9Kb^nh`;!2mJNYTzrR<3L z5QzK$q^_450}7Ql?CVkmq_gYHe{~+P2Q1?NEb0Wz2UmpAdubI{zKlIvNk^6ym>kLk zM1)Z)YgywyR3K#LL;LN0AE#TQB18bhdB<$Qk-(gEh;$X{M-h2J&?jJg!;EiRYtPq( zzE>8b2m0aC1Hkb^qqPYw{Az7@B8;y9`bJcrb;WBDeZPyMXX-L4eK-0pXw>8weZpvVwCjqC5u~ zYRVmTf(0y9A~a$sFId{rR?y?E@y8~|Fk)=5nKHKsrpi1{ z``vouHZ$1Y5_Cxh{{>JeiMRE+0T)Q$dH~=CEKSkavRo|e@jKXj@efULVBpXQt%WrQ zJpKyY63+k<>|)qvh6){P^hU!)1s?MT;0_4c3B29U28wpEI18#+Kxu(>bJnfgmA0w1 z_hVeQFT7ayzr;-Nmx|JH#6HG26|lv4s_oZ{UzG8>T%HJPl2GKRlzM+g8SWUjbE1@8 zFc+>9zjye92;c?FdVpLhR#4Nee|XdJBlP~OP5ZwKY+n&?Pk!gW_!qAK>L34oZ^a!{ z^f7Jy6YcUTseGb@kHPeqTU*FnV=PVb-a;XJrq0#7=B#E1aI^Kk?0s{Z@WYR&u-Fx%f$L}=ez1}Z>CbxY*ixvT=2N*E4yWo#Wq#$X!oh{;VI9&oIS~r_LcE5cBR^--IdifTVjs_Gu~Fgl4uZLrcfj57f0kCXr7U zl`ll_WtaXLseUA?PjDJD@lIMFx7J=PA2QKTNaXKcRex=5{3#vi@zr6aWwF$-rhR(7 z#Nr^F12xjJ;KE?V>C8gzvd}QS;&k7lu4{si_n&N3k=}*=(M@?b;Pt zGA`G3?}D|j_x)&`R4L}u01k3DEESBnx&b5VQ_#jP&hJ z?~roP8i6Mjh1cH$p`F#(Up&RQ0y`_fTd4ZF--o`h(off*{Uufr!hx@%SNco z4KY;p;TfHrC!hlwv3F7yXz{vspb3g6z)et_gy!4FT%`fqT_SD`+hqG0mM6_ zy@;h!>v5s9varL7E3DpZ<=DYSY#i0HncPYvEO4h6#+r>6`7>%vj#`bd`i&)hRA5uH zyz9{?>OhEp?*4n;uj+wEJ48CVblG};EywqZ%!8j!;XWVNs!T9b85QE z;kz8dPKnP^3$5=@1P$BrsNA1rl=)NZyQLE8>TGP_?&KXCW-Z_9KE_AEASDxOwZ<8+ zIo@Fi0qFqnmY7;ZZZ2=vb8FDHK$}q8WIc+$w{86c?Z=NG{bLsWQ1y8AJN^fM_Vuwt z{^lS3NAC>>T)z;O>(}ocU%&WN-n{r6+wqfjXpfimz{`3-TMk$}hR6n_TZ-y1K^L%( z{g^Es@CfIcX#m%7Ss}8F0u7UE3Ng}MB*uQYi}@r-fNGw_A#jE7`w(o3(CU+anxiy1 zjpe)j*=C!xSDNo|sVrj$SI%n}XJTp$S`E94V05f5YesFW<5Ogzu zYY4n9$ZlGc86Kzf7L&n*i%ruo9(LO2k^5DlOdbT7K%%2@8o*PXU%p?22|ubkmmN-+hD{3$^1sbamauEpyCD$UNnV=qHR-?4XI)_b;VS92i_U;}VBMm5)}9&(5Zx(Y<3L*z!f zzQm2b5Ym^@_zgrw==Yz}B%K7xTL(4|yO#2+|{hUeXy6*jy z_wR=_f#y3DVdDH#-)i_b+crrgFZ(`f4u{O>a9y_d_%PBuR$=Km}y zfsM4{K%P{D;If_ERYJ$cNwV8lrZoZ>q!t`NV1C**$A-@;24=Iwpy3k*yX+JH?O|ju3!JE-n{ws1^9ApkKVhwdJoH^ z$7stTTXdSWq!@1(!BaxX@K>jC3>iX9Bf<)|2H;`25g9mQrB(|IMJWHSG`ZlLaZ$?O zbCYE#Pf`1~Sz9OK?8PgU_Oo@o=kiVXl8;9e<@2O?dTT~di@5D%KKh}ap6z|Si2|af zqPQ4HkxC2{OlnpfO|cN+(Bft3j+aKDW@$TDXnCeiZUpvh$}UliK#$2cV^3ggl?(U@Xel=@uwTj?41C8%Xxv>b4fl#CLvrp$fX`6a!xGQ< zfGM*h=8Vm?UgHhy_VN0Ct{ELMTyo9$@6~E1*A;oJ5MmG$))nXiX2pA~VA=S`MD(L0 z=+g!K0jqq2c{-h?Lu)L|kFNFReH{DeIQGv$^fA`u{pGM6mi2(8HEL=3RV>|-?aYIc zt^lBteMU1*0;6V1ve-NEcOl>a$`sP9$?+~yDz(YWHBaSZKLy~{a=srF9N?UsMWeVP zQ%y{Fszd!$<-Huwtn3Wt@$}Ozd&9lfi{>2lN6o->*6$1tp@1QB$DQsO7D@n6Odh6n zq`P@*56U=c7=1Iq3|xFEjkUM`jcEWP=TZqr^Ca#N<6UNvK;1md zxU@K|OxF?7$dpjOzxxrlJa=qD=P0c_NI~~P1um9U-k%CG->2lasznUt&+CEjj6zTt z(edqbRmcDt;s-_}?ev#LPe3wN6FT;3iq(}nW;^1dMbVZHq6Q{nRrvtW&xrU7CHf59 zK046yR9Wr>H~v$9;~Bm8!D9lJ!|~?&3tYeXH98)D+XDRhvbN9HM^}%o9zSl&<43@< zLa3n&5ZP~fHX&Si#(ZjCdkg4j-#0ar^G1>OR?)boz%~Ev1BbcuF!PQ_odX8XQVMLi zj6wX8%)J^|_|(4Z=TDQsUVNh&4q`BYiQVMf#*l#osfgV5h%M&E!obx6Ts2^I_oD;b z>GeXAfkGpl%Ts__$`S>^>t7MAhzI}IXPxsxE0~l5^tD8%0 zO7KT#9vm63&JhI|r;M&P2fLD`aNVc&x`T|T+xrN3TCKw_)j=t&9SFpXRg@0BuQyw7 zuNj}WMn67a`4OmnCQ3gAaQp}Uh5rlv-~YrPxLCpU(Sf(?<6|NDbd&ANuKmk}`P0^x z50>??w8H@unNx0^C^pY5;HQFxa=levyg;!6nE{KLGc{~u#S)p6cvu?Tw|4`uw!JZc zqZw>CcL;VL+TU_+%Es7TI+%(&UM%3=HMsre3WlGXOJVJ(JKi(Z?_TxUcjn!Vs+PCa z%5t{QFlzoq^Y?jx;owJr9n(ohp?VP5Vf?>$12#4&jsT7-=)%|p*whYHq9qE&5gj5M zv>$QoH`|RIUyAf^S@E?l%TF7(uN%<|2H%|4;DH|Ke)Irv{D7z`~hR&5pw+a}b0kemj$0adJP~vBdp_;&kJP0a9EFf$kH)-7o z0Bp|Xj0IAdNqywtRG8 z{-6;*T8Lkt_V1uS{8zpv0PE9d+rr>aehdC0sU%Q4__Rvu0DKp^s@r zL8;-W0Jrh;V^@e(u zA6GVX%<~xUFeMMN>_^eNS?zoi^$sC7#%x|6`!9w?)I5_fN#Vm~s?x2#;TPD?IVF5t zTiOkqcY7C=eX+455{yziy$y>ECO1omDfw!+=U1_nDY-GQHlCl9x$nyhiGtva4lop65k-9`}yCF)qMQs8rT zcGcNa-3#MyoGEKwvcFZ!J>FDgYH=OUyt6%uopR@Mi-y~4WZ_|u&!tH99df|=b}7sS z77kcbv?$!-%3kSP#E26S{gRuHxpoj4I@lO^M8X37uoHid#$TZE=Zf{?-}T@7%Qt*= zI0Cq6JHI|A-mdXj&_CX=eQ~7z1vUQYYFXanb>Y?;8gtZS0`~Tw;Xt-nqtdN6t_^E0 zBC>cojj%LxJ4_2b46r&$Ff1;7oYLjDe0P>(h7t_UzBNm$3;Z<~hqbP{;O?(IrE@l` zr`Mh1?x&K%e8qj{?^M{1QXD83)zr7Uowy)>!DDC3lXOwqJvQV=+Fdt5jWHi0#dq-5 zk(F$`7Pw_ky=U5wO2Z598*Xk^O93oJy(%`fboE`;V{#~t8rkxOg{MHViD2tpw|Bw@aPHi`ixh+6vFnlJoAAbDChy;_yN&h_$U5-Gp`W6QPo$Z`ci0n zDWF$fmg`N9SDUQ5=t|J$=4!T!HTT!toD&j;P#>m%ruaz705CQvGsz=24UT^yFb9(! z0EY#rqh!J$btS8)99p8ZQ=DQ){c=aK|8?Ff>qatr$d_xpu)Sb??%KWLA0WgGaE$xH zOs5Few>y9Asm_@41S{f}wb>#fqR57={Z> znB^}BKNIpagf2O7m;y6*#(`RUPY#C<9xdw!S8aLp;p6xA#vl{Dc>at4tlZk8M*JDw z^q+L;KgPnJH@f;@Jv>_0!xh@Pg4zlwfke_YG&+%Jghrj`#T7UST{h_L%9cPM_~38m=h(c>c*fmO0>@Jimq6Fz9%qdXJS3+S2{9R0m$^B=4OHf3}QY;%#E79H)eqG zO1Ib`!WDa<(FU}p;AUgKxP^|fc6H0190{+FWl&Jq9GTmR5fLB3=LRssWU(1E>#ZOX zG&QL;OzJ~HV)j6m9bj}*xM&26RUgdmeO&o+4N4sVM9eMK8kxdP>(d%q{}%=!F-KSl4FXc&NOdovEPLY7j<|RPj$H2% z@5e0FD7$hGT2F;wS@7rxMjd-fKEqohQ&g0xmQycw6xWno(Vlfj0a1Y}XS?kH#ImVCL`Ayv zew5yiZ$$bFMti<2%k##E7u2p^qtP`;Pm>Eh&;#9*9srIXG|>$yo;T>X8}u7h`Br56 za_h(UWZQ7lH(a%bb&2TD3}Rz{TqH7u2{7R+{WGrf_by@b8Gf55pMV>`JQRZ9{H6V& z{BKV``_Z~YVY!jMqnJqj1MgZXpidcdkQAfYtk2e(ny~PCl{%(oyj-uXg zwH<{n8pC$an*&6NrZ?xi5oGqv9VhE20Y4f%KH?9=DR`#g78|FqJ_wNIymdfWZ>TGW zW+enBbKCL4&o|Y0X)6|NAVPNwh?Rk@;Yx%)W#V5|;=ijie?^ej1nmH>&z1V0{x`Aq z4IgRWKJU8ySXh371z)sHt4b|Zaz!P1{7 zwQscXH?&@T3qHJr9Ocjb7yqtb&VhWO-xTx!aQuL&L3<~Dqr@*7>C=VqOjTZQed~QY zYTH&wTY-i=X(12}U~Ie-gL|A5za2jc;pLJNo}j`zk}JQ9LZxKBuRqT{bCRR)^V~Dn zPv(wiTzY;H%H=-TYYS&l;MQPZ4B!CZ2DcrX8HFMRjWop`=!)V*Jt|SR>&rx7gvXT$ z)AoVc0giRWwsmfLyz0P*5cyQKf2Kqq5%D8cy@)}u5E0=Zy?-LmUlGw?Z;CI$%ZGGW zT01P@bpbO&+5OWs;vYnCz=+O1Lb=7sT3Sw(eq=JsjRP|dnL@C>G%Y*K3QKeCpCujZ zw1R+_M)MaAa9pCQu$}me)Yg1=X4Gf^d3UYrv@nA4$cT|a#A#i_C^1rKjA3KN%19+A zz>Py2mK)P6cyKPR5U^*3Ms%F!2TG`*VFUrpSr!V#SFt`LEp5z65)9uWz)v2{Ev@o~ zE~CV1oe*EQQo>|wKxWNg=l$$fZDGGQpTnM=nPdX`FC65kTkm(QO7+?wbo||2^ru(czX9~ybM5@k{v~aF)Ax>Vu0OrGx&ER{ z{}GdZ$&Ej4OM9Q!Wo?UDZ~*%~kFbEJHbo89KLsz2Ux($F1J!P+b=81Fi!4j0!J^gs zw2qI)!g-6N6=6jYWBBf6q~W5*Cy}x4L+?;{d}m}9N(H$~@$7B7ukP&w*ofcAQU^1@ zBsuoMdl@^xIr#rA6;Rk3j$qQZ7r3>CIKTmO4?i^Q2w1N;=PVcYUS1FS)-$N#p#y#Wo z-Xu&jAsu~T!e!~b(y-wof($n1C8bIbSrTa9x3%`6s8O7#&L^*S4VhVJxw*M~(tSg% zL9htqCw#*+InoKnNwfMfL&PJobdz)a1alg=8dQy3YOp|vJbcDMXv|ob1tJF=x@cEv zx*Z?W@#aG%d@RfQu^z78S3O+)k-sYazyCW=k80k3{625}_(+b&PxW~G35ot_A^wOP zExb0;r9p|XxoLjKDN+*Y`-ZF0FhN!Ctfs^CIouU2ogkY++!U=*2BtG`Bj!(-3h#u) zoRTArbA^teq0H~r(=GC5ooiJDpCah1o~-cM?71jCH0~WPH1&7)nbuk0kCWl3?`_~) z&YM_%MOqz-$-bTQ+Kkh+Y=5x3R4T2GLgpgH(MJ_9be)cxnv%v2g0P}3C5S8y5MVrF z@D7Ese4xa>AQxm2VBrv@8Frd)md6HmOYoUgCue0UvS%y=2m{pjmMudSBcjj)k_N^x zQg{qr=rF=egHG&59t}9l?(|Q9Lujk9kHC z>7&Q~qi$s}rGv$YXHfUlVP!NrqZ3BjR2m@0ejim}E9uOM}ki~%N;xU7&tBNWbSuoMofVP+wN^3xCGj^hT@lA5hTH#}c)X616lQe=kROI=*-;1or1C$!z0nWG@5U816Apa5bIxI23TG_} z&wNNZ2w@Sl`>js2=!4utD8JwDJ`*(RKXKkyzgM?<7>6)b5>l^1@T5@C%tC2AMZNyH z4>xvQuFml5tTMhhMy&x5kUgI8#^lzY(WH*?dEJ#BOkvrLgHi zAsA$#Q6rDrPy?h*;@>Tb*UyU1`EIJC??Dm*fX0>kPBh_Xj%~2p<4>X}j!l|$zIU(7 z$>}XNK1G>0BYUT!0F1*llM{BDnNtK$i}aJ~N@s||(N`N2lsJV$DjHc8@NJ%o``p)g zV`iVDQKuAfCD;W?Wd_IvQL-Ri(im-NSagN-j%7P?-;R%|Zy#?*d?q*7pB=9reJawQ zinJpvBKSlfy#H}~{p$IL((y&7{u3qrf*XIp>(Xd3t+X@TFIUmUds=l8$;2ka3wX)jGbgaUu;M)@~vP<`e?ua&vvY zS{oW${|9Jda==J8OTd|wxC$W)g3hHs6Y{0XQ|z~l1Ezo~W7Dt}P!Jmm%m#9-ecL|n zoBUWwegc&**S366oBhxH`PT&EgZ7&bw(HlQ9p7C4NRP)Kk;>=X+Q+=E@2$&WWp3Oe zW6NgiELz1rXG8Jkh`9k<)8d+}fofyUMgZc*aGuUs8e>_E&$niRem$a!{d6S7G4MoH zAtAq)Rs6njZ%E9zRZW%4D zG*5ooJ+{v5J>Z?coQjs^ag~?M`v9mwSHH@zH!A<{!IE&NqY->I4*a^>=YIn5%5;xr8bvEZH;$E1{STZEUE(O9oun3-?lDY z-!R&9YWxgn&z106AjdO3`#=x$*7N{y{D7(3`Sx{FdIr^R2>K1WJ`*{<>P%Z-wneq4 z8Kg1I5pW2o0)1>~RD{onpll~6{uTVP5`Q61oBey=F+;e{6I)dXECARg<>?#=C^zeq z-*!S)Rjj6n^*ig4sw}@1b97w)m;M^I z|Mow)OdZgO4=c4#j*K5E@GBtxQESVGd^jA|!%A&gEOSvgEm0SWEG9shDQmIF4nb6h z((C}(0t-BOAi{xx11VM}%do)~izD40DAxH<0^>w?%!_xf@fF&O&B)W_Q`&udk816K zxtg)!a(%uV?JZIm!@NA^bO^Q0=XspAop{T5dBi$EkPuvf3@{qNRpT+9Dd@(F24Fxs zgi=+)(buF3p~o7fP zKk#S%?e{ld4pZdVOyE~UIe>4_dL#(tb=sTyS7In49jsrFztp}m0f?qc2ysG3iTqP+v}`9Ciwu+A07gR4u#{z1 zpn}jrZry3~(t?u;Rz!sP=+hA=Je4MOKuOtwE?1Y>12-x|wL#YgUK{I8yVBl1P|;8O zwtd;Rnp)h$vLMpQ?t? z7$;yhIjT7}XI&$R7=el1Pn*(8W1$hV!M;~4JQ7JVjWs|zlvY8k|Dj68JPlr8eIMgo z1f`D5Fv0brQRWY4t6ri9jEpqB`lMgI|{i=70oUw4Q7VUJOBZY1dsxH zSo#Q23ar8J>E;Juo2d${3H4rx?pjlLLd&}>%SU#yP0bnE5 zS73TdkS741=)%uL@tT461!$^nbId!Yn3ff{KZbUj=#IDUNH1O#!kYP^e|HMD`^(2g zV^bcdN%r*}9ejc2^nmBexOE`jo@QC${3Gw63x?qc-)b{+CJ+f07oJQ3i&N&Q26hvV zd75USKbixZf;~QyeBNjR9fE(sW%GKD6cPn)~}K{ZokiM7EpPa%``K@e&I? z2k`Bm{C^7l>A#=#pZ@FD2UYo8KtE=tFP7Fm1Jeh~x*nGGfVLcH;|5XSC?SYbaj!X7 zU&>Q|09ajtQU(@Syp5I3f}@eT>w*?HhGD*%3TE`(oxSy&gQ^9>L`A4S&8|Tu&d+yS zH&sa?(Fug96fPv^EI0NPAVq>0x(^~Z%(|oIRGtwvQVGDqeBwJSEprbcwiFObYX?kV z6+o0nfH@hzcZCbvlvW+$U_^id|I)WMO=M#fP+=b-lkX_5Ml{gBz;@ zoCC0ORHO8lxI%n4e?JGw+|~E@E$h)$G(#smF==>g#Q0n>K0`o5DoQulafJjx~1BUw!!{c($Y|d>bbEY`uY0@MK z`$?HKG!jEL;=pgl8oKI1cWL5*bs%jCo;OhYL_nb4vJCKZT7`zu~Sm#`%{I zG#oTyVO+eT%!N|{d^)whTjM%U|V zx#(jU2OU`(7beuffjMIeefV)StP=&e+APnCCal^`>FE2Y)-8X%_LikzLFGek7pUYsI+%Uu-K zKoRIU#&yiK`_5<|+XUJ4;)2;f;bPsg26Y7du42JuJZ#_C%Z;b7-|_KRJ#%>#hUk20 z1dKhSfROgL&X{?P)qu0aF!w*ddCzm=eGE+ol9sUCaEm@wbY%}XN(0nZ!BI7>H#X_I zNvEUArqJgMJZVH#ua(xDE?AD+#zdyb5e+dr0u2GS8Hk>qiUl**ghn(4j2cw5!!u@Rlx9K>!4&}= zWvIrpbTZXGPp7|xuv+%hBKVwA`ifuJv+DP=ukdUl3?NOIPxiAjWsjhuc5iH2d7>5@ zd2M6*f_D?|LRdc8fMfF><6_US+DZAfQp!JXt>4{t!!5$H3&SqAq9FhcQ}Rp+v_PUH zL+rLdb*>n>Fs??+PgIFRS&b69mCZm z#&p97vTMT;%)XAz{D1_tU8x=;8qW%~Iru67^yDoA_`ciz<}L;BWbV5{gfu^&YbQ9} z!zO(-_R6>5-4yN(u@@;ki0s&l?0Y)f+${#U_+8d|E+7vO%MRLMinXM~AnIsLnU3;I zEyr6fdTmZ11E2(iL%DWwjgAO7QUtOM<(#m9pwysk0hR^px;E+fK%4#uB)<*VNNM|+ zSzdC}LnC~AX!QA;)_!ei?MvbI$)PQem$n>MZmlsBv1R^J03_x<(8 z(-Lmm_q|5O%h$%ZYJ`?CHz+Of>bw=_30gF2RhPrm+`_t6&_k2Q2gQ0mVY3tOw0oz+ zqm6B)9y=W>17Q_=z;1eudw@l6B3IP00O zI{$5X^4Se;uJEKlxuRMFkDVh^g{+9&%%U{kNb=fn9}4AHwUkXKCpG6zD|fBh)oo6V z7D7$^Y;$8L7LcO$!&HWYSQU$jXGUff_pZ+Ruqzvkfc@ujuN!{-OQ~S#s3#5JViI{= zJ_m=;H_moI!0J{UeQES~ZB2VS2-^GHwUOdLg2qa%F|Er&pS49_>#;YX?XwNrzh@); zHD>-yz>l~sXcR!==<7^%8WqA^$8mBK3ZJ!!$g&%S&}-55J^qHL6kIr>>{AM$w40vd zLU0v)^W_yI^)U$LC)XS0Se~dS&K%CI!-=TykrP3+-mTN0{Iv>!wcpBM*8ryHPcnyu zIbz%t_oq=+lSjRXs$`?t{7rB->ftpDFoNHdhLj*fUVg0fr}{sH?g= z%1}l&4A+u$G4XX3YcC?`Zvt#RGW$d?ILM*KtKvRYi+i&cuZK*tds)x_xn)Pbt^NO(KngC5#&`y;r-Mw%U2Zep!l!Eem z1<<&mizjw1i!|yr0+U*WW34P+ra(Yij>DsT0?;@EtlE8&*HFkK#5gPqSlN{zQHeYL^Rh{;84S|!+zt4Swwqfwv2IMyAhvj zf2LA{%AXgW_6$H%CP*uh!mH=Phe&8L(zJs|&)J%v?v0-Cj-es3)I$#AZARS-2|1T_ zzk!Vp8Ngg4?eDn6QhE~>@GLudd?vtUd6ZbQ%q`b|U+0LKGiJHEzW|L6bc_PhT(|I!Q9 zFv-j08+s8!O!$7w-a4a10JAH}-86~QdH`K&DdwGZ zsRbLArI8#KR$Z4)`kvnCBT{`2;70;|M9>db(qC(&*Fw^ckdGGNM{DCBE7NDdvT9pF zOM~*=#_mdPO0Ary{?%OpFoE}xTWxS!aF~mVrHB=*j5KKuK?oS*8w%-tyfPR=LH@4e z`2A=PVZ3W966#x0D2p~;3T3yj(4mxFS{EU>lOj*mLoo^gw?Q*Ca8SlCa2Z}?2*)9; zMvRxEUmvkFENC2Miq|9T`rgfYWAl5BhpP+m1a)PyT5udm^H|Q5AWCK99C-2lXc%ax z6<7WFmZ7^}Y>RWY5_i)%P~$f{U2c!={@zZEnEYdXnQldZcxDOhxj$Y6@Xpr~fE}uA z5KC!~5yy*&!NqS)e09YEh!TO?f@NJntOwQpDY!3ye8RH5foz*><;_lE+vY?uJ@gRr_K; zE~H2cNK(&;Lay&`SV?bvt{GFf5ah;iN78WTu!Bx z^K)GfA?;&Lz7u`ei%_H;E1t?qL=zlU4zg)2*mzab*hwO_0D z7XY3Dc*4Lpi|V&Rcm>7wul}>Y`?naEe4t+xJpddJgunjJ|54k@R9{m+J`=^04t%qz zKIh&)?y_Meg0u~bt``)>w4tMZ3J{C=l(QC=Xefr-&UrbM1?vqf2FUlVEdMC>jpcJg!Or+o1`G>@!L zz{-MWT!0FDq~YM0lZn?>(?blRC7K6n537e7OMd$%%D#C8~^-#u5(&2fSCeYonF zplK(RcLh!!r_72PvtXg(wt~?EfSt4@h~S!4n8FA6VeTj;C@3u5>$R!}5Os?UHTQ%~ z6kCrd`UYH3C+Fi~fu&O*(Trh1$l8Sodt_M=f(LxOADDJaPetp$+ik#P`aQm^WzMUT z?t_f%s&kjc-fs@NtB=Q8oGeia8BiRtXUO+DN^2BSb6H!6ab$qIxdP4Q+&$KrO)V@1 zF)ZVnnR7rXVi-}@m54wKqhSHD9JFt3fj$E8iKrg8zR9*7vGBqGmcz2F3ar4|&>Ahw zVS8!&$FA*jFPWW2-*Z`C)Jz6WUp2y`#avUa7T^&RuGrGVHbz=;WY^r)J-+5tP~;2( zd3+tvuoSYuu|F@EV851UsV(~N{<6r~Mg23Q`|pz@KFoP=W5}z)-!I8f!*v(M%1?Lm zZn!blx?YlgrT&fmMCbRhf5aY=drRyWU9ff8MC7%IJcG&;A$+5xUjy{)U;QJ$>mfbt z1HDsv05~3K5UKtIvQ0I(HU>a!DiHl0v9m!z@ORYJsjL7(-Ei@7B!&rWj*Js?ORq|C(lY&@$qqq8q|Hv!u&lI*;<#)O?WBYQMBd-F z4L8T_Jt(>gn9$bN=n<429eFv#1hy5^Wg^(^QD@WUqQPjIXqpJftI^t}IpV%n*N%^E{j5!{{Q2s*mrQ>vcjKO@`q-6}t z3Zir8fpvYtoocOV62xs$_z!IJSbcz@_M42N0Ir)R$J7Q z%5})tFbjs6am|)uARlGm(JUi)v76LH-%$vn3Xj1NmT`&=WZ;Fnpoo&Eg0=L^n<~24 zb*dJmG&KzJ`RW5L3{M;A-RYH+F_jAlGrK?$LJ+q-frM~FZWX9wj*$nni}ew1d|nwi zHyGokgax+ubQ&?CrWBFk$5zIePy-a(+zi(Wb)Gn4c+7i*)%6r~PRqS&8eiIma!uXW zf@<1xOyz4yk2{yU2LY)d$o6g7i{k!q`DlOs5TCWUb~$i>;m$Uyxp!r;zHV@kD}q8} zSS>9|*kbo~{;j?jnCZQhDJ~x{%q=RwJiz8v-8*{%9Jcxz6B^iK(RiE@5s+K23fr#G zv=KuWA~cAu+t&4F+aLt$3RdQ}wB`Xfcr@1Mc87r|>isLZ)7l7+wBJ4w9CFU!;mbm3 zi=`@OCJ?Kq__l!20a|CKJFxAW!Pd%{hbzp)7uEV80+0G0H_eKA!ao9D4<5Fc59}J6 zuBr3ccs%Xy8hjfVv#!S70gx^o1)K5m$No8{a(RZ1AHoHw@^yxu$RVxr0PoXFr0Q}n z&Hcd|)-t{}NYj);iM&0dzWdl7RL0QaIQe)xxS>3aNa4 zCDt+u7%n_q0zF7?2VwJGjky&uIJ&4x*JBsFVUbq^dWlA_wc!EWc%XMq4*Ev1g@XBPz*IkbL85p;L>I?b0&AAB#@o#lnP?`91?s!E`# zUjEB|Lp!}9m6BSWbEH!}$32%Q@~Y2I8-EF>jwe#2_Yjm#F(lN^+6z8sYMR%N0IwnJ z=yX>Ix=O>;l1edEZ3)4#MupL;am3iuxOy#$6F}+L9Rgm~nmj<{vS5u3UOGCINTqGS zdpBFZTCTS)V*Md##BFU1VleaOGtCsok(DC)Z1lMYjU>kE%C6PLpri%EO(jg0!)$qF zwe*1mu*ctM?(z`8q6P4s$3`*Mqr$bIt zb`(_u4K@Wt2uF}*Na=3DA%Yvvn6fDx0CCq9lr*3|Niwzu46HPK(afvDOD-)s%HIlb zP*FUhO(Sa4=-5!6>wLA-OJAqt2KJLl2%o&yeO};`fjH$oz);#mBg;q3yVH?O1tTA^ zk82d)&)Qto&-Ry}+AQiVznwnml?yxz{7?yYonujMRciv5VDXvP6=gJXP+b6glQcQ6DID9DIQT|r<6^vL- z0cr&3f#41MlFqejmT?p4z>pk`UvmQ98|;;!7~Co_fQ?Piw+`9**0=texBiS&p8|NM zs;}Hb@_`=cozerq@j!zPk2)P5y=b6sRJY%_>GEXVj;|Kk`o_GpzERVicYWwNGL+G` zp*XF-%RKuwuV=~o6&w0V>esig)!WhAm>Hk8L2|SD<)KSGT}h`ZU+x3mZSMDN=R9T! zsKtxN+#&T7Cwl-~P8{hm-I`;Af;b|>>$%5ddAadtb@!0QOsiWO5ePzTCnwr*Ljv@T z(6}8{+x50V(9F_<7BDx_pBVpq=6hHpnIO3LCclHciubysHs_*} z;P1k($f2`#Qo!wx2rw#6=Pt#qP`LlJggYQ6E1HO(5dg0Hu6KzsS%chQq?JmNr}t7ao>y>b!hfkL7O!=C00n?@nI&{yhG4Y-ix)68&OV z^4s@cS~~-D1Tfwq zBON%#n%v-)xB~Rvaoo0i_3e10TYoNHzBzRHnuMMz$?HyXTe!XldZ6z_4*W()lIO+?;(zh4r`2|DEWOl_e8awnEIWt^MU-BqS!$oQH-ukSj9IW*mOLcD3ZYhkwmO9SOqW{7zCFZPsOH(BKe2$wZ zWGYw(7B%Kvd>`-gzR}JM1X|X0jlU6!PFLWl=5lfr#f^;Ae%GQn3gH-TDm2!ax{zzn z4v=n)bv5~p?<$83uvR8`u>?*VkGn`{RZD{g`^@p9U? zBhpOAD0=I6eDz#aQb7xA4;pjkE(!~xxozjK+wWYL>ZQBxITw{^@YynlNYh$patkX1 z9BZn&HyFr)X?^9CaVvvxuMw}WS#bC`k&R8$n9;>buPX97tUu{YyD9d({6RrwE)tRP zW{uw%iyF{jZYv!OaR9@>k#LnFG6#Sjh=rH0M3V~=IRjNF8fm)ahGil98e80YWA)d; zLF<)}Jif-_sZ9<35K&VzE{+EOCZt`Xn|+X!EO#M>I1^K(;l>mntFCJx;9L9gy8sUR zY%4X>h?O~8gN~=&HQle>13k}(Zo6+>xlb0R2dosIB&E?cln&q^k014d=F zWmco|vhIn!O>_U4ElbB7ih0nS+3=b6<^B`$lGj*u{~FeInJvpUD3B!2>| zFdKts3@~MOk)fjOx`(U6;wr$(Y*bVa^`|N>Y7o2BgfJ=#%gcg|vl!dKV3BToF|VSCemhV^w- zB2zuw3!5qEm2y1ROG8z3?Z!qJe*9kHBakWW7P2429~OaV7eAR(wdmfnC~vP&$}?r8 z&$&=4!!4$Jzp7eFvgjyV>>c3fLy?6Af&2odFw%h<>? zN>R#~D8t=rhTZeI31AXLyMscC#d$#}N#aW3aJe*4Q@tZcoR>2A35!%L!TH;c8SX)v z{rcdu>uSDM^Fvi%&X*bPaQ^U&9}?8dM@mi6CrT)JirhoY(m|mTa~RpTWA>Mgeh(&P z{RoQ>&e5%&NR79K^M}RD7y#J5omJtl`*Z~M4bTLtP?1RyUx=XGY+gC=5St&XfYAWz z01JrND{U)Wd{33w(7fL$4GlZUm_4WE+VhA>kEj!+#qiNbos6k>mTTWZlMQ&yNU}WWPYyVGH8HvA^6N{(A!cGW?VQ? z0=Sv8$bkjDF}gaS<$!~oc5nhG(T%)&1(`d7D_X>EhOC|%)MIH7VI_DPSi5H>O*a6#+gVif8R2d>$=@n;8Bn}G#UaBC;9p)$0dkaY zii&6yp!!hL;(%gUaDePP_IVN@Vc-apejEjs$5sV*fE-1J$m{GO77&yYfN#oZD#+l- z)S=XU18N{@emF8Lv?_m(HM7VZ4Mej}$kotj0MQnA18B{7_hGTDDOao>C|Z-}GmUok z!h>o*R~|olNg=mFq(pro5uFGWnq{533%D0>mnOb zDrc_H6-$Eo#Qkl^n4Ag53L;Ym7R>xVnD5^2@KSj{H!b`Eh0DYDC;>wq`q^#-F^2C- z>3Y}Hcqla%6qEfFMzEwihfz3nhIIsKQCPh@t9kaNo;~ODt0^c9L6PGWhU|2k!O*rq zl|d@wM9f`Mm_ukUilCnql8!hF05bYL!vlo!5M&p408ug_cVRMN*TIZ1UtY+B<^x+M zq;Oe@wtwG4l(5L^mjt$77|nw4_pMx{k-U%Dby`)p;vN4tgyQyYxKqr*&6~$MD>h+a zkxGgK9Gh3D!vKygKn$@!qg_Ud*i9&di~?rG0Sr@S`_!Q5!@OBX1=GTV-3o`i);cma zWzcEP!_Jw!&y*b~%0Mu~-Eq#06&l_=?%Q1C1KpFt?V~#H;RI*`P zBDWG?cxE2tT)w;xXUm9-SJ4P!&Ut;fEqOW4mzxTjwyYz-P+EWnFf)jnWi#@!8+k3V z699;>MICLd?T+daIatk#wOP!K)+p1&nwtuZz|qdnnZ5ts0Xlu3Var%pQR&juyQur% zMy9iLguLhd=PXTsnJE;mQ|s7a#b;!L_kDO%j9thHY3<<$J|VyCZwj~F`l|7fVz24G zZ-`*B%nmaCFVJm6zd5Sh+}!kSd!gFDA(pQg`n4*acHriL3qR1$f*t^l2TIz$`AS9g z2$9#v#?N`ZdfpyAe#y)F8tdU&8?UNLx^)6=K(iAIf(sw+t6$U6nf0e;{ESP-M*=;` zI$(+knI9{{tda8Cx_>LqpTMcR1Xwnck+ooK+~c8P6=Ei-wQLjOLimXm*oo1+35}Qx z5*66(_3FyNg$VlUzUBz)10Vqo8cz?oz6y7t=u-$-rLRp89Pq`dIpQ!^%orefgi!m) zdo2|2=?rL;*_8Y@Ex(;^Cxmb~d9Slbzs_PIls5KYd9U2MQS2fMAiRutio+>u> zz+xOAhyxpHF*jE7fMNu!Ei5|hB=X>~ILu#rNH`tV2bum&hw>00W=PC?z>YD@ox8uu z^>YSKs7lA=FYWw-&&-oC)@7bdWtO?_(s7J?HR)IAH223E+^tnccHngyqIo`(Xm#@yBbwKOd)Zq(*qM8w}< zZMuO47w!HW6y6m9V{47NvZpx?fI~++VdD|*P!w8fX^lngKh1AtF9j1>rXlip3>4{X zPp`M$;_~fidsV>q+=;-xHjAT6o!4IKKE!441&Q)^bs`$dn|NQSgZVixLq|M=@T8kW z)^n`k{eH4vBcX)QR6fRjafZT`q0-oE$FnUal+`WVMQRKNEt`At@!bI1*8{{S(3BE5 zM#)@Vo&OThe5dKaE=vtY%&6F}lrm;fT-3r^l;{06`jcgp2X{M(y@Sz=*EWEdY#d{6 z0n+_1_@<={RS1d6M!Sh;fCptiMLea|gGDbiEbuI_DB+4MSo9KBE?&2kaguk>C-ccu z$=zSw^vm2@Mo4A@3d7!nv!Yto6QZq^%2@0zWd|=k<)%^Py-Y|HG2Y_9;yjO3Di&ct zTC&A+%9c9GNHYCe?onT}G~!Uz7+-_0dK&v&6Z?GctuJ{wydmaCsRjUpkXGNg8%T{JUOv&l5*r=u@_853w%gsyt!Ie+0nRcM{(=&6vo6RfG+x4XiG$PjLeC|uTWDCiYn3?;+W zCR2b?04;*yUSPkiiG^ZX+t_I;O(9?_2u)^Sr~1(=6q^`06>SkBbkcD`CzdV66dx}0 zWoS}Shpy!FMVH-1g7@Y|vxHdmDf zfR)|t$x<0x8AxlO0I2h{KigV(wp-LGfN5M)K)RPK`QU=0eYQSPAG#Wuh1MndDdt@x9x?OcbPC&ETqQPUF_rUc}B~#2} zeCq+qMGF~qK-=pba$o!y@{#rBIc8R3e-Z6uDPu5IwrVH=qcLWZ{T<`x#aSPo+hE4i zCmuTk>-8XO1pSV(1EfnvShV~$EvC^28SGQ7tv&1L>%}K$NCkmq8fY@=!=*tsMk5*V zkWFm9SZElJ%M$!e;b0uiJV%3nTO7T}l%z8DIIELKAyZ@>E6WH#$htvQrIYk+>)UoM z(qHw3Ui8KistykXy{0){z z-}LqHOo<*z@9%ANY{V9{NHE8Uo@ty=eply;P`cWsN4VfZ^*KdR&x=m#XaE5Zd1bHa zoVn+_la#0IpEHuB3?=D46hT`R=4*LAsN?>gx@K$FT4x^#{muL=^^JY-*WNjz0Dq zfEzJov8x5fy-`4w(P;n!5Q|X|eH5n6Te+_XfEhwBfW^mk0kC-x)d}d%7nScu)`UoH z8NZmVn3Pqn3BrIl$3Q^XifxEp)ygwQzXL=W;bstew^ z=bhvE)l%_YQd&J}^rKFD$~@hNifWazcg?{BB~!@En##cqumf@fL}MN9u`z}n$RM8f zQh21)vor%B6%b`G4J*g60$GW$xXaQ;;69(^(440)z~iR4a@Ul_K@JOKJ+w+& zg$SWZD*-|8r(EAf_w$;a$xMCc4G(uz$u@nxzaoBtY9PU%KaF&g_cig;og8*jqH9S? zv;#Tb9oX}>WCE_e4~ErYSyKi@-grC7>!bi{W`2PvdJ)A|6y+Xao+_a4Gy{PILtx+z zD^lo2&YQ|Hob+6&4C#<;vj$aK8lmjZ9Obre#${~2hDz=#8JFPiIc-}{Co6Y@lQ zPpqc!w6J_ofF!`kVYAjlNm4~*W+u>B)36kQZ2wr*fQ--Qw{PFJ4A=~Bi(UrUPj7@-@CsQ9WF0BPMMwM%tFQAzFra4b z)HPt7L_(^M5&(^kHzjdP?=z-pX9srI9I;Gao0MXX2!OL?- zd#d24qT6TM`$q!BCf!b)9qnakMmz@qsF^rdWPKKDjmF~IU2|VjJjEB zSa3k|d;87fbfgkJV4R~@iWE>8@iz9SH}!MIBT>ITOos_m%!`g#x5(a@QbkYvfzlk9 zVr~>AAg_zD$j`{RdU9>~fB&slKUzPlu(Usro%zK+Ez%`%)v}+s~+Qt^2!_? z(l|ROq$`<@G0ZpuL}-&~!+5J?zT|05k1-#}wUl^r)PFzcEX8+8`RnVyT2rxwZ|M%)jz6&v7<0n{=ka90 zJr`Cmo5fw@vFa3nh>cH`1C&fb6!G{g-bhBcz0lz6?D3N_s3>q~YC%Su#aLRKJv)X? z6lvjQ78>dKX5Oer`e`2*6pLK8eLvh0Gx_0u%~4Lm z{azvY8$6577%eSj##q|e%|gU}e%ED654p^=mEf2|IALwUF4*kqne~ zBCL&TLogx~1!dY@cW8VSWD(nU6|iFSKjVlqr0DYnM!6M|zd*J0y6MO1&a4#1<~=`i zq|7`2ocoIFI$OR?t|(1akURe6;j7@$NVus$`u)xN1z^z z*3IPMoAhbS6Auze3|1{B?V}DgWt)0%0g z{t|tBX8oQS>k&OCO1eO)ca=4Cx!Cy`wb+Y$+deA6xq>i(4ELeBhg2{nmFhDZW4bcr z^=Dd24it-Xn@g6(0TMF|SRz08NZF+R#cbJZ;EBzR z08dqCU?<-wat?R5-slp4W3CLFSBX790qKJ6xS=19xZbvY?ERIBe8YsFGSgSg?I|~IAd5g%umn;L z_nFL3gYwiw%c-I(t<~zl6zC$D5HcWJFk_`5cyieQHUD?vNd0p#f33>IOgmKt=b)LI zDl|5&u_4?oN`*h?{QnTfE0Md0WI#I1!ePYRICq*nwPUB)<*AC!AWFQemJ|EmfC4;( zGNttqBY;`8YS`1>jC5b~2_%Utc7k#3|9U!J%Nz$(_O5w!euldFu9R}j$6hf^Q$zT# zMRR$<=R05)BvF?}AqX3=(PGBaFr`fkkbOTB&>gms@=yyP=O)sPhLr%qKs~<*4Rh%O znF~tzYA40ZGi z>RPP){7heuai1>U9dc3D5vX#G2f!>HWLBW+?=`I`0wA92pu4~O`s}Y8zs=jeySc)I z$k?aHm7|Y=a##>|>#%4H%R`+yZ|ohJ`WOR@@EfNZTDG@wAH|v=0#7gAH{9GD(Qj^g-;S?T^$9cmou##(F0DOd zw4?U@*gVh!y<2(!I3DOMUA_OI>Uy|=$}`-&`g-f@6Bc=KB-xh30Zjy}n!>nH`0|^; z&|N5C*y*61{vy+jg-~olgr^gAUYAxHfCC31fEec|v9D7JKat$xOTsx3r&wm5p-bDe zm6wXGZ))UL9dm^6yO{QzSt13iouHG#94Jp;Vly3XEw*vRMrHjS7B%jbx@%Gh5W|0R zSG%1w%!(9#EK32MUhnO?zkq%!R9wD}%nb@Ce%7-fT|5M)bf;nAp)jGg`PhYU97-~Q zvH16y`J|{p=O~3>4CN<52Qok+00@GOb7n8e@%6G?nIZ+Yrcfq`xH}DvY$$g6ZRW_U zi-s11L$Q)tnpj3!Z8QvkBi3W34Z9K3F(3CC8|p_pk;G+OFXrvZn&#RJcxBhD3shT0Q&k&~pys2Ag>O?sj9Xgr@Bwv_WXMP_a`F4)PP;l zVKtTRcsi_G_-)vBeWu>ECN7h?CUGju_j(@Lea7>QkFVn2sl!&pU>Vu4ECQfr|R5y_k`H* zEBQSJXc$kT81U>Mm%Mz=@FdAydiH$*j`6+heu=-+!CSNibA#qKV9L^`bZQxBO_>i{ zEE`SiV#Yit;88>Ni#vwQ5wCf_KewOMvT8S%$w=_fERxx@)X_P!{EFRZl&xyPMf=uq zb3EdBJa!d%MTD;#(Qoj=UvX zQ*`}Q#(yUb4@3cZpgx@{Oq0t+_%G(?9qJI9+PraK+CwFktk^clHe%XcsP+2j0I#E;niQG5?qjLOyCZ;tx!8mqMr zrgEY$W?{rEdWJQ_zPyP05ayT>FtqO40}SHqC-tf-!m7wlU`*iO3p_f#x9vOtJfH6_ z{F)2MFj;QiUJk&I3&@e-joM~FrKjO2bYmW2F=B6M4-XQvEV&!9>s(rQ}RPk||_k_`(_PYa5#d=_>_N2h? z=VoC5G{BxQwXKr5IXsWpY|z(?GIQpER0@ioX}b`b$9E1FwsJZiwYSRD>zSyR^L z&-C~kttqtlQV9%bX&yb=>Y@o~YyxbXTUK>I(u9@@-^L`@4LPFn!|^e{t!pg$wO(Jx z^5k6w492f%A%%K4Wz1w8`jg`6nEBk2Qu7UX1kZ zUXsC8EOM94sTvIbwElK5gN(tI;D`gsAd_o`B~;}zn*WC@V7QzZAg3NvX;=&oInPcS zMMi9wO*)Q!!_Dysz3IRv*CO(SK|hs--{3}HE9pyt^ndM-{r%?#Yu4tSv--k}Gqk3$8^7GGspHRJPqdvLg zURO>2^t*=c4FW=LwSZ$0@OG!%D5sLn8u2&GzGW-Qdk7$$n|BmozSYfvf>b_T5vTl( z%}klyMFoU~*sV1N;L#{${Ah3nTLh4&P1X#8$yfAape2TU2eh30du z5J1yU8e{DQ?oojbn};KqB2M%apoFvD~e5}b`QV5$Wj;fxW z!tUK@1SPE}oS}4V7;Y^`1&(B8b+K$0VV$z7LWRI>D5~M^vK0lnf(Ym7{^P%4tnX!- zZ?~6WO0pJ!gr?tazx|g_cK>BLFb!}wTrKarFH+%Y!e#|QL|D))YnCgh9Rw|DtcBfl z-?>gxO1`+4G8P124d>^;!eUl)z84(G-2(G>3p5&hmc-{Y!>y(`)43~`EGpKj(JyWh z(i(7B6pt2*w-K?FBCzN}gmqD@i(1NDRu6<}7F3O9-aA}TFhJ0b`zYu)WCL7hx7bT@+mfM^)S$k9u=FVmo%-dMD}fl2pEu zMgI2M=x-};Uw2%;>hku9ejez7-j*H!jt4qRY`AS#>TgK(g($sH;THma-9?XE*JTqy zSFv>EdD3n!1+fXN$@#nALY%9Dk#fG`2N z1VX)YCqCUAB0ETKgL}=sNRDB(Jw^0(yNOzEu`MZO4$W89d(+)}0tn(FRaA4%Gz0hE zGa;s^gH@|8`?4utwmDWbKmQNmhD>;?Cx3e(=iE6;Slv{Uef!H^&XBGY3Zl`O6xx5O zYgA2nob2q~d*H%O2nO?5#C43toTF0Un-ous&kOMcOqkV2J&7MdMGXuwD~{%%Mgkl- z4{(6SylLJ*@#A*0JfbvhZ7y7|hmN8AGQ%peD z{6fe2!fd@`C%A+v_61MK7#|n`?_y%*sZyC50g~3SotNB{d#8-*cy9d6CyJ?c1jT)1 zt~5+@iR|O5IzXLjK@{_4Zo}YZgjnNa?ZomnLDORkO>;_ftm1nsdz`-II*xfn^SY}C zl(jwKOAQIPl;Mi9X;^Hq1ssGzm50R#!s^Q`ow^Pl(@`uu$W8BwK(s)(o7;;JRJyqi zEC6$Zz)rS+aL-2_aZz6bVP*^}9czEnRIfwP+pr^_k zBi-!y&t%!LZt6_0Ru(lMlwt%w2aP#8u7$_{C~;__ywW28jSNCWxemJX)3DY^Fk8dg z%Pm)u_acEhRp8hKn+T4_8_4mf+C?DPNa=+VJ!R4-8_Sahd45#A-sD(^>wzBVXF?AE z#{-?EhE3Uw&#r~^6>)pHDZNmo=Ud0C-euj)iUX~8C~@u#$>4qC+nmEQxf{V5)}|Dv zYh|NFQKZYYo&01?Lx6C4JClMll_&~GDK9p^TGxE!J7LqIv6N>7sG_H?8}F84D~$I5 zE?EOJNs$+b+8PLZf~mAjfIGy1-IVj{pHk?ZhzzrKSdGEbLYs z1T4){!Lpq)u7nBTFbT_qn1UZ=A68&P%FD3;JK2$NN24OKAv!qwEI+#Ns6Yl@OCj%; z;pW|6nO1&%*t?+^kD-nQMIb_>Q$KaxU33+v%yK>kLwW9tTk zkP>8NklIVgviS&xlG^G%kUc##FH2cS=ejRx1Yo{xWNQCV0u}Z}2OOXab``NlZsYmp z?$%v3nRb&)H+*jz{`+r97us=~rN@50o%=nCzOThds!!ECY)ssvC2*yk!^96$ts z#M%%+hXo2t&r7)m_H9WXKm$MtD~{8&-;@?vP3N660dfvN*)mT-2@BZL7(4iq>3M1F zjobvwVkw^=H3K)U7I#Tu!l79p1(rqhTclZ4Kmz!dxcmU3_K^VXC&jhrK zYgtqIHrk;Sw@{6$=)fuOXH+Nz$X7Y0UXWTQx;zv zE17l2IHmCdg;0Z*=P5q4ydN$Ip$PY#kW;$S%5lLc%w2&Y=m9>LVtSn!Y^$POP!*7P z#$=&&E1h5C`#27f)_Po*2+-M5YrKm9%-%+6NQ;bo(fCa8z{}&>ctbR2=b7%i@T^Ip zQ6S>rgnNmqn-)t+59xyJ2rL?L49prM{%){1Oq_K z`mVc#-C=V&10O3csxm>L6z&y@C@(reT-7CKveiZMJ`@Vc6pXX*iQwoPHZ- z7dPhv&(ocrGPSgM3rfmU>MXR}bEfc!`Ej&N|`7JS|6>sCb^761_+!S1n`O!j8a#F~*v8$`1E2 zuDqONaLtM*oDA3Znih55dqL@3mNS)gG7wlz?qJH;S}A*D*GDww;^>L}4m*D@u>E21@Yol8KVX9N!FNP}O$5Dn z12?X3upMvuCjB)aPl)kTC48laHwPyz`N4~{ml-ia zaVTtVr!FHH?})uX^WJxc;`CxU%gA>h-vNu2sm$1r?Tb9^qA+gt^Jpd1&FnN^M^(Y1 z&62J!<8c&MRmU($<(_57`Y|hG9DuppG+5>3-b6~s4Bm;-St#W zVM5#f%Ho^}hQ7M6QRz|W`qVFXm2ieOU;7pjW-;9WefEJe|7oy9(_S;N@3E3mOTe_jip zXGAQI5os*vkh{fF3OV75LT*uF^CMDslLO+1MJ+2!BRpCOR}N}qrWP*ocf37>vA#!K zowDZlyuS2N@cz@Wx)05~dW_?qr=Pp;w%<dv4n+Zliz{>YCT`e~piHyIe(+ zY*ghBO2(lVnHcZxiDzeXXn-4;{p!5$IP0`AQ+*cIq$x#-I2n?@HS9Ko9iJ=mFq( zpgW1%M@PZ&HOb8jpg&X67pnc0$o5!dJ9Oz#ZBQL%{Z(K!Uwn^@p8^VHECah{Y`U?T zMXVe0d*w?|gQA)I=gJxl#i9gDAGc0_E%QvA9L;SVAB5l*9Ah&((FZZcWbXH<4WY)% zKoLIk_k4oA&rMZJhLv)9W`6&Zf#(GN3=5IC0n;=0R8PE5<#fv6h9Jr;83Idd%-(Jj zoYjO~h+AB^pjwnwcJOKh{2J~o>;h0)g81o66+Yq=vCg@eyG?nr;8+NmE|wigSxQ-X zqBIHoNG&E#@WN6jtT;|U4Yl7km=%Dc2+Z()K(Ug@X*2|W*{>ZR(*U_b*ao@-72y#N zACFP?XuxoPnfuB|mO`fVc7+m3qlloEQsIc9;j?3xJ%UEY2cPTts}4Y=`ENuccEQNp zBrY^lmNR3v7t~;lST34lJNn0YOZhL>+N{g~D)sc%nY2^^Hk2aGli*I8u{F{woMKH; zj!PGTcEKhJaer*>mZ_m@2b1jpqzn~{ypK*9j8Syw4^CsCL<6+2u}XIvQdi=28VqxW z*(*mzH?VcGU;uNYKQ(!C%jXR?Q!SWAoCry4f#55-XHDEIcwQ{ZSz#jpw6leeCpZ?J zu73N}s=*fn6pLTOO=4U(zOVCHy#keIO!1xO3L(;$0~M4Vvp7Ki0F{ROKq&aLOIO78 z7>jdmADpKm*Oc8r0(5qF6p>W+T9iUVdE6_(0W<^vLBStf&KRfRgP#uIBR~?5(^F3F zBjyxo0oBO+002W07-uq2gPf1A3>+F`ao3cqg>cm@CHP7sgG;RQh>@TgZUycxpz2l} zkz$!`Evv01^ayln0l1;+b7ACalU#qM)CMoN0F;BzPD5V=4$+x^PSU_M&7C)E07He( zmiR|eX1y;nzs1<@Ck=3#H6`{2UnkR{jgM1i*3-drroAEep0KK;w8l6AwfQ`-e$LvX zc8LKmV{eK*C4mipQ1Bw9hz&yCMzeBaGRq($1*hx=M5OVEn}q_XgD~b#TI89VY8`YE zfW`PxR{?c_h)`D%)&54&Unp(Ql(rYF+Z$22IoI3=dZ3>bJpddJbSE`hI&*sk#<$Qn zUw7(X-_Z8aBF7INZQEnnw$`cPu!d8}Wva@HZKQC2+6Z7cHrAy2R)?^1j`l#uyP8Ag`_|mV8Y@qA$toBYKqnf z4PwDS{l#u+ktcuzPdOOCpr+6g?F!Lq0yuz7H@h@|8q%d?hr@zCb)`;a=>F3;0yEkXs{2udz^ZtjL6=ND9W zm7zdtDS-0Xm)t4>I6U{eU}QKEjZ7yxxgdr4amJ4zSPtqZhw^sVc4 z7tt=NqUfR^B{uzBd4mGovQlg~f~i5!@Q6xV)aq=f?E!Meo^XCJ>pYF~$$5^L;-b6f zRHBK8osyQnE#F&@sZs(~z;H*H?x!7_tcBj~lVfeW$6UVTin1@SS|xpVx(9XO#voFCjtops$l8q8j|ZKJ7rXRQ5*9{Ay-67?vaXn#Yh#K8LZU*La}1R zK?oPa`f6p$8vhp0&_WhFiOH?~)b^8fNwJJrS8RI*hr1&J5QKr1usAxs12>(pIjDH- zgiSP4H^;HL!U1Uks3Wn#%2O$?tbz@lbq5>gGH*GcCo+?s`EhrPj_Z^HT#FrYp6v5- zx?J|;ZiSj*&lhUSqXSw__I!bA8GF$BK9*eP$!64S-REoJ%sQ_YN);H1zNj{}I^9(2 zs<{VCAD0?AJs@GXFs0)5Dw@<2aVdH^^c=uX-I zX|%o}+MX)$Pf6t~k^Y(V?Ta^kQ{DtiJ7-$@wxqk)EF_+~a{O$mZszAaBu{AC$>?Mk zwD=d;Nq66;O|wW6;L+p*et|SMyQ%=jIppnk-z{WIQQZbrp(7ZN6-7DP-={bBW}eft zc6O-E$G`+M&XWku@4QU)lN259Cjm@EmXyW@G_(e^W?4+)#BBjG(@6vyjhB_98Q&vh zaFa9UmM{#GJ~rDRHv}8UXjzKaoWN%wr}nWiYa(WNa10 zc-#8`zCsDQPd9W2H%zEi^sUp)cI;d4$G-KW^!}y`u1O)Px2;VmO?kP zVqsIn8Zp9skAX~6I2pWsPbP6&Ku%R)>y%bny!&l$!||Jq%Ax#3?*`~NrJwy82f*Td zk%yHhRjb5dQ3L2SmliEqi&zaXq2XQ_DPY4&?%+Vj8a$iH-4Ky!W$UgN@pU-ooTrjy z11~JrhQIe`MLeZ7Qo@FHUaWcADWx#J-aDap7`Pz@ZX}N{FEfz5G~(ybx7bqxH0H7| z(AoL)UCAt}s%!Jlb^;M*1!zdHrwnFx>WKA!i4l$O&w&pol2P{IB?;zsj-wPoaDfu* z{{qnj@=o&zGpK#?eeNgfFP~?9Y=fswyvz(r?z@^(Y<9&75Ns28}593qp_{0!ARfxn(FkAeL>a z;g&L=xM{jGcIWuw<%h{}xB?`VG8FTMW6HznZZJoT7?jFGxg|_ohigj&9lLM}5!M*f z9zL7wiq7VkX41=EH!1EN0c^x(RRkBM6UAy+W>7xYoQHH+(Cj1@EfOI)il3iRh1fYz zoTylI`|@SDYSeml^5`GxKFZkdf`UBFrf91IN@f1k^tp5*CPW*;G<&Z!dgs`j#fTWf zu=Jtq$EP90Hloa$VgLtuRCCGHtqUnuFjfXuvX~hQ#%W#idAd-z9(f(f$|oPAG>fiP z#c)S4xqYOn&3=WQYKBWfL`Od=4Uj`EC1{L!^nIM@g)4)ZCC|`ftl!bEsME%UB0Y18 ztYbX=xi%-L^nzchvr0Kmnqm~QM0Z0FAK$sWK3%yRdvz$J$gk%G#9A|}^Oz^d&WN?x z^17%|xGSBP@#0i2+DdBcH3VB{sq^Vw08hSdG)=0F|HL?+c^cw$(Z+JPAxN$RD-JRU`k+pDejr<=-C08athNb#5yp91(&iB}&oi6!6AGR+-5>Wp0B3U> zSqQj-^J)yT`5FN8?wY#6n}wC)G34cTB7)?$$J?Xz;B& zEK{kzp?OajP9$>~)uJ)#5=*VdbOA60#}2t8v%l@8Wt6K~;sCTjMb4Zyu9yo};Nb1X zR|BLN-;VVcDT|X2mhy97i2WwkMlm(vwBWFNy4SzPUaMnVt@Z>KoL*pjs)vhcnSZJs zA|2>mAbO)puZZvrSf3K`60{!Q)5rH?9uM?D?}#1%jt9C2Y4EXYfL;LlTotcwRBsj) zSs_prP}oeSqA<3E=EV$#IFujTJgTrZ^TA}q<(`GePO<$Op*@?X^mCkBGRh7+gG!S* zcA^mbO>)rw>wP}=5VY%tK3`($>wMSFf7O+XJw@QPQ0GEG2{34%VspeOs8C4VfnziG zgkW`3^q=K|5JFVS*BDbS3S4ohUIce8DbIjOK11)HDb9Yy^W796vXQk9@kgdzoKydq0P2)>sTxq8i* zS6;6osZt`M>_H7Rh4RrWK`wsnlrE?VT_Mj&nTtSmk3#lqt&?O$Dbwm^V77R~S%u85 z6(Tf&0}c*trU1%0Z)1$I9x=aDh#ee^GH`_EW%mOhfUD=i)<%e~g(r8cc1BLZ%HE}=16J&}% zp=9wmMtW;^Ra3aDnyXYqnFcv(M>5axoG*1=(f|`Bs+IX8&)L6?zNxW6a=n%wsvxp+ z$-Fq)nC-6$9%k!5tHam>;y0b17r)i#hk9o3E2I}|L-*hLJkPm*a!+tGzu)5+C5L3= zRi@Y3+-O>Y;2JVAxB>yqPb!+PdvZ`=WeePF)*NJ+s)(>KaITrWe!DOdmHyMQI)MG@IYM-@=>3pu5yhnfg$@0w+b7uDV4fUr2JUc;AH8W zGSX<%{PW-v;^T9=`NYOm>g6k05QlPN*`S;!Se&y_$lz^b4P?E&9{+##{x!z7ZCek* zzShT>Rcq~Yj?X>!W#4OK3x(i-<0KFna}78kJF&rr1QL)y$Ur1Vi9nGM7%9IJenbe7 zUx^UOk0j*9Ln2XRu7gN0ST%kk~ z0p@GYRB214C86?~;S%wRTp|S`Tv+5`0&XXoZV1yIV>$?R$<j2yeLXZOJ8cP=svz0O4CDLSZRl#wlR=HUf zA1zl0OqtOOS}k9PGAULnG=|OC^ym|F^YsDqMjPSL4ZXFiwG8YNP?CB%+NA$ z>hTf79pYo-OYr>gi*2CrdI~xz@`>v{^u!uN=>I+jX2r8T)2yt|>E-}Ys07few6xg? zF6!plV+zjELq!NJX1ZE+EuV_C5S5ImvAdv+k-;+|V)#2g{Dg9(ga}ttyN<=adWJ;Knv1a<%J>_5u z-skVrl_>rr3cd2-eW9DHk=A~|-u}{ndSP}aR7F5 zO^VY)c*@yCIGZ&*B>`ut(vL|M7dwKN>P~^!c|a z1-f4qI*SN|1&ik1C^<_mg_z4e315TKr4U{d(M7`i4mH2?2~O~p!b!n#f+t~La|7iC za+fJxGo~v6-X_5fGcQ?V@VFFYX6&}GYk-8x$c{ACtED)JG3yoqNUZl-ZOtEPCbS3s z8kp;7)$SDvYwOIXgKBN+EC?GA85eH82_MFIRED%Zk2OmzasNH31)o5mWK1!uM~9XJ zOzvR;bt#^ydTs0`;GBYj!xF`%q;cEiN$SX}4Ov{ajcw9?rNA7UWwXtPPL2d#Dte&^ zQ!D*x-V0!PP3H3w6mFyu_rl_(?3Z~>}rT-8T&%(nunvRCTU$(JU z*Ppy(93J+v-0$;pSRNMU&xxjA*iF0txJ>C63gj;m=hs{ci|~&_9vzIXN_}B~==hh?`g6lnC=&72h@7MS@2k+BpDvr8C2GDAgAs zt8i-GdR0)RF8@Xmr5yu;H*d|BQ{(Gi=n(>qtKK`uE|l=c#jrwz~R;4kFF^oeARaAnoHdBQ^8e9*}Jr%7UxCsf- z{t=w}I_nSM455VUO%hMXgnoUV3kIX_!8SGS%GQP0`8JwPVDb-@KS}!D2#@_H?cJyl z2rHp;>Z2De$L3`OX{BhgIi1J^Cv+EB$<+3|W`zjjRrmSmx+zj~Mff-9ge^<9ImQQv zaMIe2mOYC(4y+Fms+%y{UKFr0%^@tLF?x0Lw4|WP7>>$$&Z%a+pC-at0$!w=^?o8( zc1-H!Vael6$uWibB52Z6={-6sgVOU^_Fhm!BkbGCtn|XIt&_PmmuA6-D>T|Q(yaU~ zR0W=wqubSD3Kfsr_J7ev#yWo@s5vg82Tj;trkttctpX>Z3g%7u*3MY}tk#tHrSplK&60}g_px&x!*rLEQjS9pda9T z{!i%a{Lj7E?f#sI{PL3b*9Un>;Cx%EtoUO9|2Q*$3&4bh&od$MoFG#IrrE<5gVLtv zQ-}c&(kH+L+I_Z9>bU!m6dP~dd%Oyx=x`S*o)BBxIN_*D5&Lg+Zy3fmhJtu*6jIYA(BIgkCK#nR+JfNC1C>&6-jLmRI*lY zs=qT>GPq2>9W{tH+$+1RoA31;+`Vgg^P;`m5!y`B(l7 zgJc0s55ROo!fzpXmj(BQx#W_kqGbXnDuk4fXle+xhzSDqbM?fK$~0>tLkj$&F())I zIhM&GGLB-*suBxo>W&@^@ke4X`c15axo1KY%H#cM_}#(DxiJH+A2If{T^r|NXkvgZ zl}e(1%pxYdY9g}m3{gVp0vdvpO^p%rO!e!(Q%v#2FX0;3#AH1)zf1uobG>VBL( zds~$-5*QI@8XLg}G;GCf6J`}RW?(`Jall?ZWtVED5+Q(sr^aqdm?y${0$wOXdrqE# z-##}F5bK9{?v{6sV*T5OE+@yjhy6$LH?9C5?l6U5(hF1oG!GT8JcM?( z>>zqx0WATp6H}ENu7pO4IXHkF3C<_NY`K)|cd8*UGjUUV?~>Dr+D27;q=Zl!ypCZ< z?xis|zQ;-;$G(U8G)09}{BD)8EVoi&K~~)FUK@_r3uy?Vtv96M@rIfxwY_7wz0JM% zuJvi;Gg_FWtX6oXr1Sj|`JTF72<_O#gm^Uah4kcqLMKbe21ouSgYC^gck}FR9ZbrKOBmc->{~;{( z2~P0Qa8hub;CV2o0#E_y_6)d`TrMH`5?rp3^G|V_UK~oECN4CCs|rGiKOaGF<{D{L zNTgx$3Qj0RuUDk4AqG|+6X*p6Ah{3;L=x5nTOeAD(4NBR`ylQ5ar%+&UZ21HWgL2roVqara6SIwG{Z zKk#`cRYZ)q$9{`!GvFRk#$X!5YKk>?Nf%do(Dti&q#Zq5euf2JCN{H%B?-0oeOu$s zTg%?-L|Fx$QW(o&!NbE|?jG*%m&4&oiu{l${lzrTe|Fxz_;cs;`7ciM?w5Z4=Wqbd z0sQ#kum4y6{3YX%CgJlW@?%-bPjKOH3#Ff$^7NwQqGbjJoLJ9oJzr~AbXRSRifE#W z2WnzGD|jny4LPjH)M18xB8}z<2K?D3$C3+HJOOyp+v;hOd@jd#HmCY`tc>w7U~@5{ z$JqAf7%pxCt&LAD>CKwIabGW<*}QH&z^m2x*&_AY1gJYDeu~U<%ZQT+X(KJJ^t3*JpibHGG z`1+G#Vntx|2w^vclbxTfWV;Bo53Qn0os9OeUFk`~MSItj$n8v;-+e}f>JUvXJ*KPlx}I-T{7e~rsV=8 zZ!*d$_r?jnHaICbPVg*vu{)DL{(Jrk`ECD~U%02j*G1&=Aap@et`dn`a$w)`A|IYU~dj1}ei#zNM=tf3GIE3O?t&q#jVBcqYa z_=ND~<@R__P^RA!dPb(WCV3+erkX9EwCpR@#Bj}{V-}oE)lKzadji}g= z<{R_n?3Hg8Jnm#WI*G(}ZXQDLQh@Pt?yh;yUWt3v047`zT-0S)$c`l!Z6QjJv|A_` zL|Kqa!E#vSaR0D8JnZjs&X+Vz-=BB8U!?OFzc{^k@k`k4-u$0`u1_XMe9vU`-}KlQZWZ0_Oe>iDLez0ck48aj*NSm1Dxh*96TQ66it@ zN2s_&^h7^B_nhFNpzq%+_*r`DS+seLS@xTY{l=XQpPH;mq0gq^0Ng`w0#Zs^vbB0& zoDtXXLRhE?x3I*sG$f8z<+oK`nNq!PCN$-Vol5)LbzJGuXbdvET@{rzr$$CqV0*3& z^W^aFx==)N&yDvxS*C_EQTy=)kDIVV?QYUET|v?tfxHC{w;BBYbp=jv zf=>h|1;+`V1uv%^0N{L@3xjW|l$!%^orSN6@ixgao%7j_nP<_sbF;W401Ih+pSEW< zG*S~rwXBe0-fC$W96DNjD&Wj_6tM(NeeJ}2AiCT%{>l)O*&L!iTtDmcopH8)^aRAl z6s<|5>KqOh2LZs1qME3<<_bpsUV~T~0Zz@M!A414Kh`}1jI}b?M04A=k;l*=D;8Jh zH&A(rBkbRFE~KG%ZO)=UKHS#9gM8fbu;`pyyt_Taf!cUt14)v*WI~f|+B|3%3aPs= zqDv?>ksYAs(J@JN&YdC7%xc#B-Bgp%nc`zdz$_}nnsNicELB0`)79r@ARQd50Bpw~ zu3pU2;>-vIZwwP)r7Ai^LP&xN!B#48_44qOYM~*|)ex+JB-M)K$>?h5iwO@HKumZK zl2%(sX&xTYC0&MBJCWmtTOFF=!HDzSOA;O5N&p(Zs`u1Bh3m{JXup9v%WLPEq7y;l zeI|16Gmu+1TbWo0NK)sK)&w3Bb#1Q?ia62ER~&6Ig>uo|C2hw6ma9T)m>7T#M@Lr< zf?D%fYVznM%foWW4~N4cFUt)}`r_q$_Dl5Q#FcKahX? z@A=L0bN|AhTtM?%A$bMh6@Uv8yk)^paFLzlf-+Z64iG?T($cZ;NW2;`wGZ67*r@jcp~Ggp%IFhI+a0M@j(OM5-5!DJ2T1;qvN*RnO(Zgv_E|d(^x)4kDUx zIBEIl*1CEuR75W}=Ya;;zBgPbR7)%ywTi1A$6&OgaV9ie(Rio&y@ik2Ua)`T8j0b| z?p|jjQpmYM+E+=nOtaAx(a8>{q&rG6RLniG!r0>|xclS%37g+MjN4~HM=K!C+gitM zPb4TmBDMc1MK2h~4PH7nzAS*q_@6*Mjh1WMf;AstZ5s|@#VrNgy#745k$RwV#n~b( zQ=&tn-EEn1O-$F!`L1w2bW?wV6MV&RQgEE$S@3WE?%yB)@NfOD-;jUDzy23)^OUYq z#_P=TsxZIFh0k)~Zx=2oQcK3pRGId5xN%^N^sNyAfqOlS!pLaZYxkNkvB5R0+03WG zV$t7AfsfujGd?>yM7R73A7=gfT@Td&0Gg*vkxijmXy{{HN>Jm&g>z-5>=4J&9B?VcT8S~y~VJl79giZ0nd-~|i zV?6sKAN*AV!SKrCeJ2yDbpp05-3hfBvkDu&np80sl?lGzq*hH)2DLHcUGpx0qWewS zIcscw7)FhmPRL*{3oE^i(T+kCK$(ETf&+7{!jcOf^1^vp?w6e37UnOA(l5z0{o?sF z|Kcu9zeJ!55bmRL0|0*OzwpQDPyBs9$G`1g{8Kjsd;!o80Q@W%7s&F{naZzP(jt30 zq=^!70%{7U)ZC|IKOchxXmU#e5+N1$PH0mnCWMU12hjwRipRUOn=7!#xPm42^N0mE zCS632cZb%;8;|zmcn6=pq~+Jp=8b;Y-h8axNaLQcqUTlG0j}UkF+5RvZ!V7b--Xt;7W$Q)(Uv6C z!cR)Y?F$nY4Nb{b7S>9|GGT#MyFhQ9NBB(aIKkxp975RE1VrX+4<*riv} zJqq-AFDh=X7j2}tc{a41Ke{H=Pt3F7_*rsn7VSRq`f`DE{~)Xj5c>bQ-;=Eewhi(L;*cxZ>)4M~$Mikdep8J#|~?W-~IS?fD#X*Fe1YZAFy z3U)V}lEdP%NyAsv3W(sj0aublB}^|4jbeZ3M|YKnrqqfkt_(C~MHazcYRqgA!6Lvx z(0g*g6NuLHM<^u7jp;Efzgu}A>U=vg!EIja>Zh=y;wZZu584OYALF>)idG-E^4cNl z?yv0+UKw!f^g3~9tfN#rM_mU)8{NA&wlyRjr;sawTC?P(PazVl{?c9BUfP+~Pto>e zZH10q7VC((qB1H#c-T?RiW&uwr1@M(Jvd56UKZ?^%zNgC1@ew4y`B>NAVGdPG5<0N zU-JF!?a%-A@2=dD|HR+-a{>VW?%(@c^3VNCf9jfuE)vPB0(zZU-qMoK0h)*&(v%X; zQ$k6ai9>wuZ49=DZPF^!F0CYJ^)gZgRG7~;cWtt$Rr*MRiU9*Ym<9o%y^9uK-Oy$& z9fkf8mr|$T=)@Ov(pyKA0v@-s<3s3$7+rG{WX9Y*9g%5Uo_YnB(Z24?Hlp2~0!xe; z2W_~u;&SgmpX9nfQI3y|w1tz$HZ{_nWm9rE?u=D$(9dCe8nt`~MAX6)t1_Faq65@I zOR5m53J~&2DRUysQ&4`8=RPnid?KmgjU$HJLLaN|9Cxu;QpY~W(xCu{B3M{(UX zuyQTU8)m)GI-S8&SS-0`{iRbzwr#dP7vq@Y*R5^iZ3F*=umH0_Ouw_88>2A)zGqW% zTIWiQKtF8HDzDWkFa~--+E(+1Bmkr-q;(zJx_7;-zcddV!yWB{)Xq7J($7*8PA_@E zQWj+9jCsD@P3ekuXP1fQD-^n=JY|yTr*?u9e6?^=aGc;nKmhCken*fi7J6Hl9}2Tn z%`QUL0fnyEHZk;jXa) zO7*J9(QAV%!)u-y2a)z$O-^SCCaGEXy0-MWwkBK4*b8lurFAej7L z_u#V@g*+f8Fnk<(=DhFY$L{|M$r(;^d3kF#+dd#{C^xoXD{sNJ`j=tJWS@sq?TTXS zNp*b+DkFQy2XI~ri`=GZzF?%!A@oBM`5a5W0N>yJ{NMhopNzE@qCG%wfpiJbtHN@@ zWqB#3d}|V!7n*3AC#2nkS$e@pE8n6`fzDNB+ADLO!<-}#BvoN`t(dm+)Cyq&fMN?> zElRzIT8P0jJi-VGV&UI;FCK@-@?wmzrFgDNGjE{Mo6twWMxxfS6NDt5X$4Ko)6VS_0TDcNKx>n6W`oSo(3G!r^5=I#Q zX5^faa|SO3%)C#DZ;9ybZl14cPVZ)(_ngo9!*|vRPVn(?QgEE$y+K9i1EutKp3)^i zS46ns!ppKS%B~MD5GMU`|9dBotmq;j#)&wx`mwQfxzBG8e zQ_+R~*eF|AkzO6w*Hsh2mDRd2Qs=-_MFF~huFr&7zRi*@f>vJBV~;hVT$_IeCAXMF zhM2;`jE69$&XgUI2a_T$Hql*FEI{T`Do{J^<*}9E&fMn-j|&PTpKo3_wSs~)CO%#j=PC+QaaD?lTIn(l z%YsA6_l0mV&GY9-_FA+>tDMQ)U{8;XZv@pb1@t(4YdP(=)zbo zcMF_ExW`ZYHzpcQcJA7%dRvUo=oOH3WVN<&dGtVaJO&+W{Wjt?0S3=JPaK^YSc-XW z*h@>sma6Qq(%=l|pG+?oz42V3(Zv4Nhl*<&VO`Pk$MBGQmpQ(C3V*Fz8NL}1WAg|( zwi(EBMD-)IPnNVk?)d%*8>3D7j>BFzWLe$6`ZG#?_jWhOeHJ|YhDX<`I`vSH<#&S5 zYb86L6Uup!VN^aPb!jEgdZET2`uBbsV!sxybfM&ek_&Pvi?H0#j5jlIF;CMa?atnj zoIUVVp115LIKh_$Ck4j|-WxcfOmn(RvU@{BuM+cXV!B2yw`JM?SYCD{(+n;JWtyGH zlM6`>#t@1kWk;$bbJuxF992xzYaX-erodi&dKg9X<5%I4tIU>ekg$&I7D83BH*RiC z)M9%Tio1BX9`sC>1Occks7Ud;ua0(&78X~`a1fK-9%exh8=QvQjhf zYlRIV6ji(s;+YzDsJb;5+7gDI4=q%SsJYUAcxxC!Pex^gK1+-tJQ9Kyz8cjp)Cs^J z*vIyq+7W4*vJV3Ze+yKxfvUV}2|}amu_9m!ovEcMO~ol*K9&n|VaZFz;gHKA^E(!L zo#y$MW=Ve`v3!5Zd_h@m|KQ*A>k9xpq1*s~Whr<|jL#F}`(XarL(V^0SiVaMa&|bw zk_&dsD9j+LDjp%iL~Rv^(c8M2CDux{ZmD@4x=;^P&!M8v2tqCJ3rZBKE(8k42j3wL+z;V1lako@&4K7uQaVQnv zKXAqK2M!*349(L)8pa|mv2-ydoZ?*u3K8sMbhIKg{ELgJEk%Wg-vobomD@>X)b z$>nf2XXKL4cFbp(q$bc40t!jfDsOoRn5DsDR;!x8*-IAp%&^=F6Op>8y2Zw7fyc%L zfUxJ*h*{=i#_P#6{Ho$^g7i^y0W|SqRJ^1XD_V(_62q4NA}~a)htv^bh9HSs`H3vl zM%z$g+q@*zGp7EpY8&eFTNLv>1iI}1^(I%!5UhHQ6Z0_I;az*0&SzLJb7_pX2{n>l zbEHTR8mlnY(&nSCd9?nR1x>UPjYoGHGY*Xxt>ZEejaIEfslN#{Le7AbnoycmPx~uU zv$C%^GLfpV&;eTP^#lz2A#_pVSo$`Np;`O+>j=aZghjnD77=|}_WYRbyw0DM5UrIn zQVmU!YM~eP;$UTDAf%Qa_kkkRB}q)Gc(L3vaUk7DYkz~Qd&^WWR#B)awrfrlJ6{=0iH81tu90fIXgiPZCgP)!IDs=IhaC~L=ZZP*5n<8WvaLpxLE zAtgl3DsA3rlT_&`3Rcdry0=F>#~@dTi7t!?)GH^xd|wFA=Ae3!P*ZG}qCiAIg|U>( z`<(at!tbUuy`Iwic}mj{rXsII^35OmyMFDn%K*xKl9{nTFs?=96<997<*qREAp;M* z;DzMsCawDtx@L?CXetQzIkt31)%Tgq3W2 z*V=>Atx?FaSovO<-%tsLedy1k?)Qj^6W04I?)|8cXx;*CZ`L2GhZ+qHklrKBt=|Sn z0Vg*>Q1>Er_l15?Kh{xsNP#d|>n&eJ%P|%1H+pK9kf%|MRVaKu1X=O1RceXe7)_vu zwCBZhRs~x@m+Pl8AMUkdYp;me!&8n)-dlWx(@6`?u_jFkT{P@4z77Bmu-r?8gH+GG zQUEE{Go-Y=tbZlUA1b{gr4LC$-UU)R9g^2wvJ05xbG>q=qJiP20PUwWyF0CD{+d0~|QUynDan99LCM@~_-iM4oXDeDy zTPO;G%d&ZAa7`fU9vo`9(`%P-k7Y);?C3?RMTQGn_VjIgrEkgS&DZ+=EpYD`0#U-G zuc(xG%JD{q2$8 zBEc7l_;Y~Y>``tXr0~K8xfDpr;KDV`=Fvsy1%vI`@pI1`_hG=RErfv?rX3_kt$yLM z@Twn07$P-U-!X-FEn`VF>@8^$V+vjlPk<%hHDUfJ4UF2c;oisd+~~D~H9LB>eWQRT zB(0@s96!`Lj=+qk*tc`EHparKN+TEN^Zc8m@kYfo!lw3k`V8A;2* z5)MLm5W-TZg{3Unz4i90q*f}{`dXyo1fvN>YQMt-Lg?749^WJ5FJq3* ztvgfrF+Qw7tF7O5d!-HA}PA8Tb%_AstLFQT^u`p*5xd-GeAeR6x6YypN zuKuO}8g5f%LHJ+(+rDb<`vfO&_{Pz!6MXYQ2tt(dl;*oM@7~PQ^m>Q%ngthB_=ZX; zU|})UF9r&z@Yv>ipN-kP0Zh9b1WqTI-iJq-!}o$}0Zrk*C(FMok$FnZFcMPF7t#}~ zk!d@|$ZcKM-E*v?@tY`Aj?Z{Z0#;$xlr)_+Pu=PHxf+MD;f#I{VZt5g;bw@=_ zbsn zr<8s$&GW02rkg+Xdw&flfPT;Ol^iUBJ%H;8_#D751NdPEUmT=7ETv#yiX6&8eYS!KSL4cLeUo9knr;BBz(4<2xEIs18wZv=S|yMp>cc;M*3=URyuM`{cMXL zzl?RZJ`f)1=7+%Jrh>ZvE4^0_oZ$5t6%KBlmL~Mq@|Vu7u%0DhQpJW}Q>-j&3-=R0 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%0Ax6K7cqGJ6l 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

*1%uXkWQeT#L%W11>hk2L{J>D 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 literal 0 HcmV?d00001 diff --git a/public/images/grid-template-9x16.png b/public/images/grid-template-9x16.png new file mode 100644 index 0000000000000000000000000000000000000000..187b9ed5ee18c470577655d0e7468633bc139f1b GIT binary patch literal 37953 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 z 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 z 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 D{*@fQ literal 0 HcmV?d00001 diff --git a/public/logo.ico b/public/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..fb683f553e066f37150da335aff7af74aa5906d8 GIT binary patch literal 51090 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

921vI=6X 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 literal 0 HcmV?d00001 diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1f13d67b34949f0a4cfd2c88e7e46d485f4a8056 GIT binary patch literal 286841 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 \ No newline at end of file diff --git a/public/window.svg b/public/window.svg new file mode 100644 index 0000000..b2b2a44 --- /dev/null +++ b/public/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/scripts/billing-cleanup-pending-freezes.ts b/scripts/billing-cleanup-pending-freezes.ts new file mode 100644 index 0000000..5e8f02b --- /dev/null +++ b/scripts/billing-cleanup-pending-freezes.ts @@ -0,0 +1,140 @@ +import { prisma } from '@/lib/prisma' +import { toMoneyNumber } from '@/lib/billing/money' + +type CleanupStats = { + scanned: number + stale: number + rolledBack: number + skipped: number + errors: number +} + +function hasApplyFlag() { + return process.argv.includes('--apply') +} + +function parseHoursArg(defaultHours: number) { + const arg = process.argv.find((item) => item.startsWith('--hours=')) + if (!arg) return defaultHours + const value = Number(arg.slice('--hours='.length)) + if (!Number.isFinite(value) || value <= 0) return defaultHours + return Math.floor(value) +} + +function writeJson(payload: unknown) { + process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`) +} + +function writeError(payload: unknown) { + process.stderr.write(`${typeof payload === 'string' ? payload : JSON.stringify(payload, null, 2)}\n`) +} + +async function main() { + const apply = hasApplyFlag() + const hours = parseHoursArg(24) + const cutoff = new Date(Date.now() - hours * 60 * 60 * 1000) + + const pending = await prisma.balanceFreeze.findMany({ + where: { + status: 'pending', + createdAt: { lt: cutoff }, + }, + orderBy: { createdAt: 'asc' }, + }) + + const stats: CleanupStats = { + scanned: pending.length, + stale: pending.length, + rolledBack: 0, + skipped: 0, + errors: 0, + } + + if (!apply) { + writeJson({ + mode: 'dry-run', + hours, + cutoff: cutoff.toISOString(), + stalePendingCount: pending.length, + stalePending: pending.map((f) => ({ + id: f.id, + userId: f.userId, + amount: toMoneyNumber(f.amount), + createdAt: f.createdAt.toISOString(), + })), + }) + return + } + + for (const freeze of pending) { + try { + await prisma.$transaction(async (tx) => { + const current = await tx.balanceFreeze.findUnique({ + where: { id: freeze.id }, + }) + if (!current || current.status !== 'pending') { + stats.skipped += 1 + return + } + + const balance = await tx.userBalance.findUnique({ + where: { userId: current.userId }, + }) + if (!balance) { + stats.skipped += 1 + return + } + + const frozenAmount = toMoneyNumber(balance.frozenAmount) + const freezeAmount = toMoneyNumber(current.amount) + const nextFrozenAmount = Math.max(0, frozenAmount - freezeAmount) + const frozenDelta = frozenAmount - nextFrozenAmount + const balanceIncrement = frozenDelta + + await tx.userBalance.update({ + where: { userId: current.userId }, + data: { + balance: { increment: balanceIncrement }, + frozenAmount: { decrement: frozenDelta }, + }, + }) + + await tx.balanceFreeze.update({ + where: { id: current.id }, + data: { + status: 'rolled_back', + }, + }) + }) + stats.rolledBack += 1 + } catch (error) { + stats.errors += 1 + writeError({ + tag: 'billing-cleanup-pending-freezes.rollback_failed', + freezeId: freeze.id, + userId: freeze.userId, + amount: toMoneyNumber(freeze.amount), + error: error instanceof Error ? error.message : String(error), + }) + } + } + + writeJson({ + mode: 'apply', + hours, + cutoff: cutoff.toISOString(), + stats, + }) +} + +main() + .catch((error) => { + writeError({ + tag: 'billing-cleanup-pending-freezes.fatal', + error: error instanceof Error ? error.message : String(error), + }) + process.exit(1) + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/billing-reconcile-ledger.ts b/scripts/billing-reconcile-ledger.ts new file mode 100644 index 0000000..2032708 --- /dev/null +++ b/scripts/billing-reconcile-ledger.ts @@ -0,0 +1,125 @@ +import { prisma } from '@/lib/prisma' +import { roundMoney, toMoneyNumber } from '@/lib/billing/money' + +type UserLedgerRow = { + userId: string + balance: number + frozenAmount: number + txNetAmount: number + ledgerAmount: number + diff: number +} + +function hasStrictFlag() { + return process.argv.includes('--strict') +} + +function write(payload: unknown) { + process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`) +} + +async function main() { + const strict = hasStrictFlag() + + const [balances, txByUser, pendingFreezes] = await Promise.all([ + prisma.userBalance.findMany({ + select: { + userId: true, + balance: true, + frozenAmount: true, + }, + }), + prisma.balanceTransaction.groupBy({ + by: ['userId'], + _sum: { amount: true }, + }), + prisma.balanceFreeze.findMany({ + where: { status: 'pending' }, + select: { + id: true, + userId: true, + taskId: true, + amount: true, + createdAt: true, + }, + orderBy: { createdAt: 'asc' }, + }), + ]) + + const txNetByUser = new Map() + for (const row of txByUser) { + txNetByUser.set(row.userId, roundMoney(toMoneyNumber(row._sum.amount), 8)) + } + + const ledgerRows: UserLedgerRow[] = balances.map((row) => { + const balance = toMoneyNumber(row.balance) + const frozenAmount = toMoneyNumber(row.frozenAmount) + const txNetAmount = roundMoney(txNetByUser.get(row.userId) || 0, 8) + const ledgerAmount = roundMoney(balance + frozenAmount, 8) + return { + userId: row.userId, + balance, + frozenAmount, + txNetAmount, + ledgerAmount, + diff: roundMoney(ledgerAmount - txNetAmount, 8), + } + }) + + const nonZeroDiffUsers = ledgerRows.filter((row) => Math.abs(row.diff) > 1e-8) + + const pendingTaskIds = pendingFreezes + .map((row) => row.taskId) + .filter((taskId): taskId is string => typeof taskId === 'string' && taskId.length > 0) + const tasks = pendingTaskIds.length > 0 + ? await prisma.task.findMany({ + where: { id: { in: pendingTaskIds } }, + select: { id: true, status: true }, + }) + : [] + const taskStatusById = new Map(tasks.map((row) => [row.id, row.status])) + const activeStatuses = new Set(['queued', 'processing']) + const orphanPendingFreezes = pendingFreezes.filter((freeze) => { + if (!freeze.taskId) return true + const status = taskStatusById.get(freeze.taskId) + if (!status) return true + return !activeStatuses.has(status) + }) + + const result = { + strict, + checkedAt: new Date().toISOString(), + totals: { + users: balances.length, + txUsers: txByUser.length, + pendingFreezes: pendingFreezes.length, + nonZeroDiffUsers: nonZeroDiffUsers.length, + orphanPendingFreezes: orphanPendingFreezes.length, + }, + nonZeroDiffUsers, + orphanPendingFreezes: orphanPendingFreezes.map((row) => ({ + id: row.id, + userId: row.userId, + taskId: row.taskId, + amount: toMoneyNumber(row.amount), + createdAt: row.createdAt.toISOString(), + })), + } + + write(result) + + if (strict && (nonZeroDiffUsers.length > 0 || orphanPendingFreezes.length > 0)) { + process.exitCode = 1 + } +} + +main() + .catch((error) => { + write({ + error: error instanceof Error ? error.message : String(error), + }) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/bull-board.ts b/scripts/bull-board.ts new file mode 100644 index 0000000..cc503f0 --- /dev/null +++ b/scripts/bull-board.ts @@ -0,0 +1,105 @@ +import { createScopedLogger } from '@/lib/logging/core' +import express, { type NextFunction, type Request, type Response } from 'express' +import { createBullBoard } from '@bull-board/api' +import { BullMQAdapter } from '@bull-board/api/bullMQAdapter' +import { ExpressAdapter } from '@bull-board/express' +import { imageQueue, textQueue, videoQueue, voiceQueue } from '@/lib/task/queues' + +const host = process.env.BULL_BOARD_HOST || '127.0.0.1' +const port = Number.parseInt(process.env.BULL_BOARD_PORT || '3010', 10) || 3010 +const basePath = process.env.BULL_BOARD_BASE_PATH || '/admin/queues' +const authUser = process.env.BULL_BOARD_USER +const authPassword = process.env.BULL_BOARD_PASSWORD +const logger = createScopedLogger({ + module: 'ops.bull_board', +}) + +function unauthorized(res: Response) { + res.setHeader('WWW-Authenticate', 'Basic realm="BullMQ Board"') + res.status(401).send('Authentication required') +} + +function basicAuthMiddleware(req: Request, res: Response, next: NextFunction) { + if (!authUser && !authPassword) { + next() + return + } + + const authorization = req.headers.authorization + if (!authorization?.startsWith('Basic ')) { + unauthorized(res) + return + } + + const encoded = authorization.slice(6).trim() + let decoded = '' + + try { + decoded = Buffer.from(encoded, 'base64').toString('utf8') + } catch { + unauthorized(res) + return + } + + const index = decoded.indexOf(':') + if (index === -1) { + unauthorized(res) + return + } + + const username = decoded.slice(0, index) + const password = decoded.slice(index + 1) + if (username !== (authUser || '') || password !== (authPassword || '')) { + unauthorized(res) + return + } + + next() +} + +const serverAdapter = new ExpressAdapter() +serverAdapter.setBasePath(basePath) + +createBullBoard({ + queues: [ + new BullMQAdapter(imageQueue), + new BullMQAdapter(videoQueue), + new BullMQAdapter(voiceQueue), + new BullMQAdapter(textQueue), + ], + serverAdapter, +}) + +const app = express() +app.disable('x-powered-by') +app.use(basePath, basicAuthMiddleware, serverAdapter.getRouter()) + +const server = app.listen(port, host, () => { + const secured = authUser || authPassword ? 'enabled' : 'disabled' + logger.info({ + action: 'bull_board.started', + message: 'bull board listening', + details: { + host, + port, + basePath, + auth: secured, + }, + }) +}) + +async function shutdown(signal: string) { + logger.info({ + action: 'bull_board.shutdown', + message: 'bull board shutting down', + details: { + signal, + }, + }) + await Promise.allSettled([imageQueue.close(), videoQueue.close(), voiceQueue.close(), textQueue.close()]) + await new Promise((resolve) => server.close(() => resolve())) + process.exit(0) +} + +process.on('SIGINT', () => void shutdown('SIGINT')) +process.on('SIGTERM', () => void shutdown('SIGTERM')) diff --git a/scripts/check-api-handler.ts b/scripts/check-api-handler.ts new file mode 100644 index 0000000..bae6097 --- /dev/null +++ b/scripts/check-api-handler.ts @@ -0,0 +1,38 @@ +import { logInfo as _ulogInfo, logError as _ulogError } from '@/lib/logging/core' +import { execSync } from 'node:child_process' + +const ALLOWLIST = new Set([ + 'src/app/api/auth/[...nextauth]/route.ts', + 'src/app/api/files/[...path]/route.ts', + 'src/app/api/system/boot-id/route.ts', +]) + +function main() { + const output = execSync("rg --files src/app/api | rg 'route\\.ts$'", { encoding: 'utf8' }) + const files = output + .split('\n') + .map((line) => line.trim()) + .filter(Boolean) + + const missing: string[] = [] + + for (const file of files) { + if (ALLOWLIST.has(file)) continue + const hasApiHandler = execSync(`rg -n \"apiHandler\" ${JSON.stringify(file)} || true`, { encoding: 'utf8' }).trim().length > 0 + if (!hasApiHandler) { + missing.push(file) + } + } + + if (missing.length > 0) { + _ulogError('[check-api-handler] missing apiHandler in:') + for (const file of missing) { + _ulogError(`- ${file}`) + } + process.exit(1) + } + + _ulogInfo(`[check-api-handler] ok total=${files.length} allowlist=${ALLOWLIST.size}`) +} + +main() diff --git a/scripts/check-capability-catalog.mjs b/scripts/check-capability-catalog.mjs new file mode 100644 index 0000000..0634d48 --- /dev/null +++ b/scripts/check-capability-catalog.mjs @@ -0,0 +1,334 @@ +import { promises as fs } from 'node:fs' +import path from 'node:path' + + const CATALOG_DIR = path.resolve(process.cwd(), 'standards/capabilities') +const CAPABILITY_NAMESPACES = new Set(['llm', 'image', 'video', 'audio', 'lipsync']) +const CAPABILITY_NAMESPACE_ALLOWED_FIELDS = { + llm: new Set(['reasoningEffortOptions', 'fieldI18n']), + image: new Set(['resolutionOptions', 'fieldI18n']), + video: new Set([ + 'generationModeOptions', + 'generateAudioOptions', + 'durationOptions', + 'fpsOptions', + 'resolutionOptions', + 'firstlastframe', + 'supportGenerateAudio', + 'fieldI18n', + ]), + audio: new Set(['voiceOptions', 'rateOptions', 'fieldI18n']), + lipsync: new Set(['modeOptions', 'fieldI18n']), +} +const CAPABILITY_NAMESPACE_I18N_FIELDS = { + llm: { reasoningEffort: 'reasoningEffortOptions' }, + image: { resolution: 'resolutionOptions' }, + video: { + generationMode: 'generationModeOptions', + generateAudio: 'generateAudioOptions', + duration: 'durationOptions', + fps: 'fpsOptions', + resolution: 'resolutionOptions', + }, + audio: { voice: 'voiceOptions', rate: 'rateOptions' }, + lipsync: { mode: 'modeOptions' }, +} +const MODEL_TYPES = new Set(['llm', 'image', 'video', 'audio', 'lipsync']) + +function isRecord(value) { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +function isNonEmptyString(value) { + return typeof value === 'string' && value.trim().length > 0 +} + +function isI18nKey(value) { + return isNonEmptyString(value) && value.includes('.') +} + +function isStringArray(value) { + return Array.isArray(value) && value.every((item) => isNonEmptyString(item)) +} + +function isNumberArray(value) { + return Array.isArray(value) && value.every((item) => typeof item === 'number' && Number.isFinite(item)) +} + +function isBooleanArray(value) { + return Array.isArray(value) && value.every((item) => typeof item === 'boolean') +} + +function parseModelKeyStrict(value) { + if (!isNonEmptyString(value)) return null + const raw = value.trim() + const marker = raw.indexOf('::') + if (marker === -1) return null + const provider = raw.slice(0, marker).trim() + const modelId = raw.slice(marker + 2).trim() + if (!provider || !modelId) return null + return { provider, modelId, modelKey: `${provider}::${modelId}` } +} + +function pushIssue(issues, file, index, field, message) { + issues.push({ file, index, field, message }) +} + +function validateAllowedFields(issues, file, index, namespace, namespaceValue) { + if (!isRecord(namespaceValue)) return + const allowedFields = CAPABILITY_NAMESPACE_ALLOWED_FIELDS[namespace] + for (const field of Object.keys(namespaceValue)) { + if (allowedFields.has(field)) continue + if (field === 'i18n') { + pushIssue(issues, file, index, `capabilities.${namespace}.${field}`, 'use fieldI18n instead of i18n') + continue + } + pushIssue(issues, file, index, `capabilities.${namespace}.${field}`, `unknown capability field: ${field}`) + } +} + +function validateFieldI18nMap(issues, file, index, namespace, namespaceValue) { + if (!isRecord(namespaceValue)) return + if (namespaceValue.fieldI18n === undefined) return + if (!isRecord(namespaceValue.fieldI18n)) { + pushIssue(issues, file, index, `capabilities.${namespace}.fieldI18n`, 'fieldI18n must be an object') + return + } + + const allowedI18nFields = CAPABILITY_NAMESPACE_I18N_FIELDS[namespace] + for (const [fieldName, fieldConfig] of Object.entries(namespaceValue.fieldI18n)) { + if (!(fieldName in allowedI18nFields)) { + pushIssue(issues, file, index, `capabilities.${namespace}.fieldI18n.${fieldName}`, `unknown i18n field: ${fieldName}`) + continue + } + if (!isRecord(fieldConfig)) { + pushIssue(issues, file, index, `capabilities.${namespace}.fieldI18n.${fieldName}`, 'field i18n config must be an object') + continue + } + + if (fieldConfig.labelKey !== undefined && !isI18nKey(fieldConfig.labelKey)) { + pushIssue(issues, file, index, `capabilities.${namespace}.fieldI18n.${fieldName}.labelKey`, 'labelKey must be an i18n key') + } + if (fieldConfig.unitKey !== undefined && !isI18nKey(fieldConfig.unitKey)) { + pushIssue(issues, file, index, `capabilities.${namespace}.fieldI18n.${fieldName}.unitKey`, 'unitKey must be an i18n key') + } + if (fieldConfig.optionLabelKeys !== undefined) { + if (!isRecord(fieldConfig.optionLabelKeys)) { + pushIssue( + issues, + file, + index, + `capabilities.${namespace}.fieldI18n.${fieldName}.optionLabelKeys`, + 'optionLabelKeys must be an object', + ) + continue + } + const optionFieldName = allowedI18nFields[fieldName] + const optionsRaw = namespaceValue[optionFieldName] + const allowedOptions = Array.isArray(optionsRaw) ? new Set(optionsRaw.map((value) => String(value))) : null + for (const [optionValue, optionLabel] of Object.entries(fieldConfig.optionLabelKeys)) { + if (!isI18nKey(optionLabel)) { + pushIssue( + issues, + file, + index, + `capabilities.${namespace}.fieldI18n.${fieldName}.optionLabelKeys.${optionValue}`, + 'option label must be an i18n key', + ) + } + if (allowedOptions && !allowedOptions.has(optionValue)) { + pushIssue( + issues, + file, + index, + `capabilities.${namespace}.fieldI18n.${fieldName}.optionLabelKeys.${optionValue}`, + `option ${optionValue} is not defined in ${optionFieldName}`, + ) + } + } + } + } +} + +function validateCapabilitiesForModelType(issues, file, index, modelType, capabilities) { + if (capabilities === undefined || capabilities === null) return + if (!isRecord(capabilities)) { + pushIssue(issues, file, index, 'capabilities', 'capabilities must be an object') + return + } + + const expectedNamespace = modelType + for (const namespace of Object.keys(capabilities)) { + if (!CAPABILITY_NAMESPACES.has(namespace)) { + pushIssue(issues, file, index, `capabilities.${namespace}`, `unknown capabilities namespace: ${namespace}`) + continue + } + if (namespace !== expectedNamespace) { + pushIssue( + issues, + file, + index, + `capabilities.${namespace}`, + `namespace ${namespace} is not allowed for model type ${modelType}`, + ) + } + } + + const llm = capabilities.llm + if (llm !== undefined) { + if (!isRecord(llm)) { + pushIssue(issues, file, index, 'capabilities.llm', 'llm capabilities must be an object') + } else { + validateAllowedFields(issues, file, index, 'llm', llm) + if (llm.reasoningEffortOptions !== undefined && !isStringArray(llm.reasoningEffortOptions)) { + pushIssue(issues, file, index, 'capabilities.llm.reasoningEffortOptions', 'must be string array') + } + validateFieldI18nMap(issues, file, index, 'llm', llm) + } + } + + const image = capabilities.image + if (image !== undefined) { + if (!isRecord(image)) { + pushIssue(issues, file, index, 'capabilities.image', 'image capabilities must be an object') + } else { + validateAllowedFields(issues, file, index, 'image', image) + if (image.resolutionOptions !== undefined && !isStringArray(image.resolutionOptions)) { + pushIssue(issues, file, index, 'capabilities.image.resolutionOptions', 'must be string array') + } + validateFieldI18nMap(issues, file, index, 'image', image) + } + } + + const video = capabilities.video + if (video !== undefined) { + if (!isRecord(video)) { + pushIssue(issues, file, index, 'capabilities.video', 'video capabilities must be an object') + } else { + validateAllowedFields(issues, file, index, 'video', video) + if (video.generationModeOptions !== undefined && !isStringArray(video.generationModeOptions)) { + pushIssue(issues, file, index, 'capabilities.video.generationModeOptions', 'must be string array') + } + if (video.generateAudioOptions !== undefined && !isBooleanArray(video.generateAudioOptions)) { + pushIssue(issues, file, index, 'capabilities.video.generateAudioOptions', 'must be boolean array') + } + if (video.durationOptions !== undefined && !isNumberArray(video.durationOptions)) { + pushIssue(issues, file, index, 'capabilities.video.durationOptions', 'must be number array') + } + if (video.fpsOptions !== undefined && !isNumberArray(video.fpsOptions)) { + pushIssue(issues, file, index, 'capabilities.video.fpsOptions', 'must be number array') + } + if (video.resolutionOptions !== undefined && !isStringArray(video.resolutionOptions)) { + pushIssue(issues, file, index, 'capabilities.video.resolutionOptions', 'must be string array') + } + if (video.supportGenerateAudio !== undefined && typeof video.supportGenerateAudio !== 'boolean') { + pushIssue(issues, file, index, 'capabilities.video.supportGenerateAudio', 'must be boolean') + } + if (video.firstlastframe !== undefined && typeof video.firstlastframe !== 'boolean') { + pushIssue(issues, file, index, 'capabilities.video.firstlastframe', 'must be boolean') + } + validateFieldI18nMap(issues, file, index, 'video', video) + } + } + + const audio = capabilities.audio + if (audio !== undefined) { + if (!isRecord(audio)) { + pushIssue(issues, file, index, 'capabilities.audio', 'audio capabilities must be an object') + } else { + validateAllowedFields(issues, file, index, 'audio', audio) + if (audio.voiceOptions !== undefined && !isStringArray(audio.voiceOptions)) { + pushIssue(issues, file, index, 'capabilities.audio.voiceOptions', 'must be string array') + } + if (audio.rateOptions !== undefined && !isStringArray(audio.rateOptions)) { + pushIssue(issues, file, index, 'capabilities.audio.rateOptions', 'must be string array') + } + validateFieldI18nMap(issues, file, index, 'audio', audio) + } + } + + const lipsync = capabilities.lipsync + if (lipsync !== undefined) { + if (!isRecord(lipsync)) { + pushIssue(issues, file, index, 'capabilities.lipsync', 'lipsync capabilities must be an object') + } else { + validateAllowedFields(issues, file, index, 'lipsync', lipsync) + if (lipsync.modeOptions !== undefined && !isStringArray(lipsync.modeOptions)) { + pushIssue(issues, file, index, 'capabilities.lipsync.modeOptions', 'must be string array') + } + validateFieldI18nMap(issues, file, index, 'lipsync', lipsync) + } + } +} + +async function listCatalogFiles() { + const entries = await fs.readdir(CATALOG_DIR, { withFileTypes: true }) + return entries + .filter((entry) => entry.isFile() && entry.name.endsWith('.json')) + .map((entry) => path.join(CATALOG_DIR, entry.name)) +} + +async function readCatalog(filePath) { + const raw = await fs.readFile(filePath, 'utf8') + const parsed = JSON.parse(raw) + if (!Array.isArray(parsed)) { + throw new Error(`catalog must be an array: ${filePath}`) + } + return parsed +} + +async function main() { + const issues = [] + const files = await listCatalogFiles() + if (files.length === 0) { + throw new Error(`no catalog files found in ${CATALOG_DIR}`) + } + + for (const filePath of files) { + const catalogItems = await readCatalog(filePath) + for (let index = 0; index < catalogItems.length; index += 1) { + const item = catalogItems[index] + if (!isRecord(item)) { + pushIssue(issues, filePath, index, 'entry', 'entry must be an object') + continue + } + + if (!isNonEmptyString(item.modelType) || !MODEL_TYPES.has(item.modelType)) { + pushIssue(issues, filePath, index, 'modelType', 'modelType must be llm/image/video/audio/lipsync') + continue + } + + if (!isNonEmptyString(item.provider)) { + pushIssue(issues, filePath, index, 'provider', 'provider must be a non-empty string') + } + if (!isNonEmptyString(item.modelId)) { + pushIssue(issues, filePath, index, 'modelId', 'modelId must be a non-empty string') + } + + const modelKey = `${item.provider || ''}::${item.modelId || ''}` + if (!parseModelKeyStrict(modelKey)) { + pushIssue(issues, filePath, index, 'modelKey', 'provider/modelId must compose a valid provider::modelId') + } + + validateCapabilitiesForModelType(issues, filePath, index, item.modelType, item.capabilities) + } + } + + if (issues.length === 0) { + process.stdout.write(`[check-capability-catalog] OK (${files.length} files)\n`) + return + } + + const maxPrint = 50 + for (const issue of issues.slice(0, maxPrint)) { + process.stdout.write(`[check-capability-catalog] ${issue.file}#${issue.index} ${issue.field}: ${issue.message}\n`) + } + if (issues.length > maxPrint) { + process.stdout.write(`[check-capability-catalog] ... ${issues.length - maxPrint} more issues\n`) + } + process.exitCode = 1 +} + +main().catch((error) => { + process.stderr.write(`[check-capability-catalog] failed: ${String(error)}\n`) + process.exitCode = 1 +}) diff --git a/scripts/check-image-urls-contract.ts b/scripts/check-image-urls-contract.ts new file mode 100644 index 0000000..0574fc2 --- /dev/null +++ b/scripts/check-image-urls-contract.ts @@ -0,0 +1,118 @@ +import { logInfo as _ulogInfo, logError as _ulogError } from '@/lib/logging/core' +import { prisma } from '@/lib/prisma' +import { decodeImageUrlsFromDb } from '@/lib/contracts/image-urls-contract' + +type AppearanceRow = { + id: string + imageUrls: string | null + previousImageUrls: string | null +} + +type DynamicModel = { + findMany: (args: unknown) => Promise +} + +const BATCH_SIZE = 500 + +const MODELS: Array<{ name: string; model: string }> = [ + { name: 'CharacterAppearance', model: 'characterAppearance' }, + { name: 'GlobalCharacterAppearance', model: 'globalCharacterAppearance' }, +] + +const prismaDynamic = prisma as unknown as Record + +function print(message: string) { + process.stdout.write(`${message}\n`) +} + +async function checkModel(modelName: string, modelKey: string) { + const model = prismaDynamic[modelKey] + if (!model) { + throw new Error(`Prisma model not found: ${modelKey}`) + } + + let scanned = 0 + let violations = 0 + const samples: Array<{ id: string; field: 'imageUrls' | 'previousImageUrls'; message: string; value: string | null }> = [] + let cursor: string | null = null + + while (true) { + const rows = await model.findMany({ + select: { + id: true, + imageUrls: true, + previousImageUrls: true, + }, + ...(cursor + ? { + cursor: { id: cursor }, + skip: 1, + } + : {}), + orderBy: { id: 'asc' }, + take: BATCH_SIZE, + }) + + if (rows.length === 0) break + + for (const row of rows) { + scanned += 1 + + for (const fieldName of ['imageUrls', 'previousImageUrls'] as const) { + try { + decodeImageUrlsFromDb(row[fieldName], `${modelName}.${fieldName}`) + } catch (error) { + violations += 1 + if (samples.length < 20) { + samples.push({ + id: row.id, + field: fieldName, + message: error instanceof Error ? error.message : String(error), + value: row[fieldName], + }) + } + } + } + } + + cursor = rows[rows.length - 1]?.id || null + } + + const summary = `[check-image-urls-contract] ${modelName}: scanned=${scanned} violations=${violations}` + _ulogInfo(summary) + print(summary) + if (samples.length > 0) { + _ulogError(`[check-image-urls-contract] ${modelName}: samples=${JSON.stringify(samples, null, 2)}`) + } + + return { scanned, violations } +} + +async function main() { + let totalScanned = 0 + let totalViolations = 0 + + for (const target of MODELS) { + const result = await checkModel(target.name, target.model) + totalScanned += result.scanned + totalViolations += result.violations + } + + if (totalViolations > 0) { + _ulogError(`[check-image-urls-contract] failed scanned=${totalScanned} violations=${totalViolations}`) + print(`[check-image-urls-contract] failed scanned=${totalScanned} violations=${totalViolations}`) + process.exitCode = 1 + return + } + + print(`[check-image-urls-contract] ok scanned=${totalScanned}`) +} + +main() + .catch((error) => { + _ulogError('[check-image-urls-contract] failed:', error) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/check-log-semantic.ts b/scripts/check-log-semantic.ts new file mode 100644 index 0000000..91e9022 --- /dev/null +++ b/scripts/check-log-semantic.ts @@ -0,0 +1,110 @@ +import fs from 'node:fs' + +type Rule = { + file: string + patterns: string[] +} + +const RULES: Rule[] = [ + { + file: 'src/lib/api-errors.ts', + patterns: ['x-request-id', 'api.request.start', 'api.request.finish', 'api.request.error'], + }, + { + file: 'src/lib/workers/shared.ts', + patterns: ['worker.start', 'worker.completed', 'worker.failed', 'durationMs', 'errorCode'], + }, + { + file: 'src/app/api/sse/route.ts', + patterns: ['sse.connect', 'sse.replay', 'sse.disconnect'], + }, + { + file: 'scripts/watchdog.ts', + patterns: ['watchdog.started', 'watchdog.tick.ok', 'watchdog.tick.failed'], + }, + { + file: 'scripts/bull-board.ts', + patterns: ['bull_board.started', 'bull_board.shutdown'], + }, + { + file: 'src/lib/task/submitter.ts', + patterns: ['requestId', 'task.submit.created', 'task.submit.enqueued'], + }, + { + file: 'src/lib/task/types.ts', + patterns: ['trace', 'requestId'], + }, +] + +function read(file: string) { + return fs.readFileSync(file, 'utf8') +} + +function checkRules() { + const violations: string[] = [] + for (const rule of RULES) { + const content = read(rule.file) + for (const pattern of rule.patterns) { + if (!content.includes(pattern)) { + violations.push(`${rule.file} missing "${pattern}"`) + } + } + } + return violations +} + +function checkSubmitTaskRoutes() { + const root = 'src/app/api' + const files = walk(root).filter((file) => file.endsWith('/route.ts')) + const submitTaskFiles = files.filter((file) => read(file).includes('submitTask(')) + const violations: string[] = [] + + for (const file of submitTaskFiles) { + const content = read(file) + if (!content.includes('getRequestId')) { + violations.push(`${file} uses submitTask but does not import getRequestId`) + continue + } + if (!content.includes('requestId: getRequestId(request)')) { + violations.push(`${file} uses submitTask but does not pass requestId`) + } + } + + return { submitTaskFiles, violations } +} + +function walk(dir: string): string[] { + const entries = fs.readdirSync(dir, { withFileTypes: true }) + const out: string[] = [] + + for (const entry of entries) { + const next = `${dir}/${entry.name}` + if (entry.isDirectory()) { + out.push(...walk(next)) + } else { + out.push(next) + } + } + + return out +} + +function main() { + const violations = checkRules() + const submitTaskResult = checkSubmitTaskRoutes() + violations.push(...submitTaskResult.violations) + + if (violations.length > 0) { + process.stderr.write('[check:log-semantic] semantic violations detected:\n') + for (const violation of violations) { + process.stderr.write(`- ${violation}\n`) + } + process.exit(1) + } + + process.stdout.write( + `[check:log-semantic] ok rules=${RULES.length} submitTaskRoutes=${submitTaskResult.submitTaskFiles.length}\n`, + ) +} + +main() diff --git a/scripts/check-media-normalization.ts b/scripts/check-media-normalization.ts new file mode 100644 index 0000000..d46a2e4 --- /dev/null +++ b/scripts/check-media-normalization.ts @@ -0,0 +1,110 @@ +import { execSync } from 'node:child_process' + +const TARGETS = ['src/app/api', 'src/lib'] + +const EXTRACT_ALLOWLIST = new Set([ + 'src/lib/media/service.ts', + 'src/lib/voice/generate-voice-line.ts', +]) + +const FETCH_MEDIA_ALLOWLIST = new Set([ + 'src/lib/media-process.ts', + 'src/lib/image-cache.ts', + 'src/lib/image-label.ts', + 'src/lib/workers/utils.ts', + 'src/app/api/novel-promotion/[projectId]/download-images/route.ts', + 'src/app/api/novel-promotion/[projectId]/download-videos/route.ts', + 'src/app/api/novel-promotion/[projectId]/download-voices/route.ts', + 'src/app/api/novel-promotion/[projectId]/update-asset-label/route.ts', + 'src/app/api/novel-promotion/[projectId]/voice-generate/route.ts', + 'src/app/api/novel-promotion/[projectId]/video-proxy/route.ts', +]) + +function run(cmd: string): string { + try { + return execSync(cmd, { encoding: 'utf8' }) + } catch (error: unknown) { + if (error && typeof error === 'object' && 'stdout' in error) { + const stdout = (error as { stdout?: unknown }).stdout + return typeof stdout === 'string' ? stdout : '' + } + return '' + } +} + +function parseLines(output: string): string[] { + return output + .split('\n') + .map((line) => line.trim()) + .filter(Boolean) +} + +function getFile(line: string): string { + return line.split(':', 1)[0] || '' +} + +function getCode(line: string): string { + const parts = line.split(':') + return parts.slice(2).join(':').trim() +} + +function extractFetchArg(code: string): string { + const matched = code.match(/fetch\(\s*([^)]+)\)/) + return matched?.[1]?.trim() || '' +} + +function isSafeFetchArg(arg: string): boolean { + if (!arg) return false + if (/^toFetchableUrl\(/.test(arg)) return true + if (/^['"`]/.test(arg)) return true + if (/^new URL\(/.test(arg)) return true + return false +} + +function isMediaLikeFetchArg(arg: string): boolean { + return /(image|video|audio|signed).*url/i.test(arg) || /url.*(image|video|audio|signed)/i.test(arg) +} + +function main() { + const targetExpr = TARGETS.join(' ') + + // 规则 1:业务代码中不允许直接调用 extractStorageKey(统一走 resolveStorageKeyFromMediaValue) + const extractOutput = run(`rg -n "extractStorageKey\\\\(" ${targetExpr}`) + const extractLines = parseLines(extractOutput) + const extractViolations = extractLines.filter((line) => { + const file = getFile(line) + if (file.startsWith('src/lib/storage/')) return false + return !EXTRACT_ALLOWLIST.has(file) + }) + + // 规则 2:媒体相关 fetch 必须包裹 toFetchableUrl + const fetchOutput = run(`rg -n "fetch\\\\(" ${targetExpr}`) + const fetchLines = parseLines(fetchOutput) + const fetchViolations = fetchLines.filter((line) => { + const file = getFile(line) + if (!FETCH_MEDIA_ALLOWLIST.has(file)) return false + const code = getCode(line) + const arg = extractFetchArg(code) + if (!isMediaLikeFetchArg(arg)) return false + return !isSafeFetchArg(arg) + }) + + const violations = [ + ...extractViolations.map((line) => `extractStorageKey forbidden: ${line}`), + ...fetchViolations.map((line) => `fetch without toFetchableUrl: ${line}`), + ] + + if (violations.length > 0) { + process.stderr.write('[check:media-normalization] found violations:\n') + for (const item of violations) { + process.stderr.write(`- ${item}\n`) + } + process.exit(1) + } + + process.stdout.write( + `[check:media-normalization] ok extract_scanned=${extractLines.length} fetch_scanned=${fetchLines.length} allow_extract=${EXTRACT_ALLOWLIST.size} allow_fetch=${FETCH_MEDIA_ALLOWLIST.size}\n`, + ) +} + +main() diff --git a/scripts/check-model-config-contract.mjs b/scripts/check-model-config-contract.mjs new file mode 100644 index 0000000..347c40b --- /dev/null +++ b/scripts/check-model-config-contract.mjs @@ -0,0 +1,462 @@ +let prisma + +const STRICT = process.argv.includes('--strict') +const MODEL_FIELDS = [ + 'analysisModel', + 'characterModel', + 'locationModel', + 'storyboardModel', + 'editModel', + 'videoModel', +] +const MAX_SAMPLES = 200 +const CAPABILITY_NAMESPACES = new Set(['llm', 'image', 'video', 'audio', 'lipsync']) +const MODEL_TYPES = new Set(['llm', 'image', 'video', 'audio', 'lipsync']) +const CAPABILITY_NAMESPACE_ALLOWED_FIELDS = { + llm: new Set(['reasoningEffortOptions', 'fieldI18n']), + image: new Set(['resolutionOptions', 'fieldI18n']), + video: new Set([ + 'durationOptions', + 'fpsOptions', + 'resolutionOptions', + 'firstlastframe', + 'supportGenerateAudio', + 'fieldI18n', + ]), + audio: new Set(['voiceOptions', 'rateOptions', 'fieldI18n']), + lipsync: new Set(['modeOptions', 'fieldI18n']), +} + +const CAPABILITY_NAMESPACE_I18N_FIELDS = { + llm: { + reasoningEffort: 'reasoningEffortOptions', + }, + image: { + resolution: 'resolutionOptions', + }, + video: { + duration: 'durationOptions', + fps: 'fpsOptions', + resolution: 'resolutionOptions', + }, + audio: { + voice: 'voiceOptions', + rate: 'rateOptions', + }, + lipsync: { + mode: 'modeOptions', + }, +} + +function isRecord(value) { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +function isNonEmptyString(value) { + return typeof value === 'string' && value.trim().length > 0 +} + +function isStringArray(value) { + return Array.isArray(value) && value.every((item) => isNonEmptyString(item)) +} + +function isNumberArray(value) { + return Array.isArray(value) && value.every((item) => typeof item === 'number' && Number.isFinite(item)) +} + +function parseModelKeyStrict(value) { + if (!isNonEmptyString(value)) return null + const raw = value.trim() + const marker = raw.indexOf('::') + if (marker === -1) return null + const provider = raw.slice(0, marker).trim() + const modelId = raw.slice(marker + 2).trim() + if (!provider || !modelId) return null + return { + provider, + modelId, + modelKey: `${provider}::${modelId}`, + } +} + +function addSample(summary, sample) { + if (summary.samples.length >= MAX_SAMPLES) return + summary.samples.push(sample) +} + +function pushIssue(issues, field, message) { + issues.push({ field, message }) +} + +function isI18nKey(value) { + return isNonEmptyString(value) && value.includes('.') +} + +function validateAllowedFields(issues, namespace, namespaceValue) { + if (!isRecord(namespaceValue)) return + const allowedFields = CAPABILITY_NAMESPACE_ALLOWED_FIELDS[namespace] + for (const field of Object.keys(namespaceValue)) { + if (allowedFields.has(field)) continue + if (field === 'i18n') { + pushIssue(issues, `capabilities.${namespace}.${field}`, 'use fieldI18n instead of i18n') + continue + } + pushIssue(issues, `capabilities.${namespace}.${field}`, `unknown capability field: ${field}`) + } +} + +function validateFieldI18nMap(issues, namespace, namespaceValue) { + if (!isRecord(namespaceValue)) return + if (namespaceValue.fieldI18n === undefined) return + if (!isRecord(namespaceValue.fieldI18n)) { + pushIssue(issues, `capabilities.${namespace}.fieldI18n`, 'fieldI18n must be an object') + return + } + + const allowedI18nFields = CAPABILITY_NAMESPACE_I18N_FIELDS[namespace] + for (const [fieldName, fieldConfig] of Object.entries(namespaceValue.fieldI18n)) { + if (!(fieldName in allowedI18nFields)) { + pushIssue( + issues, + `capabilities.${namespace}.fieldI18n.${fieldName}`, + `unknown i18n field: ${fieldName}`, + ) + continue + } + if (!isRecord(fieldConfig)) { + pushIssue( + issues, + `capabilities.${namespace}.fieldI18n.${fieldName}`, + 'field i18n config must be an object', + ) + continue + } + + if (fieldConfig.labelKey !== undefined && !isI18nKey(fieldConfig.labelKey)) { + pushIssue( + issues, + `capabilities.${namespace}.fieldI18n.${fieldName}.labelKey`, + 'labelKey must be an i18n key', + ) + } + if (fieldConfig.unitKey !== undefined && !isI18nKey(fieldConfig.unitKey)) { + pushIssue( + issues, + `capabilities.${namespace}.fieldI18n.${fieldName}.unitKey`, + 'unitKey must be an i18n key', + ) + } + if (fieldConfig.optionLabelKeys !== undefined) { + if (!isRecord(fieldConfig.optionLabelKeys)) { + pushIssue( + issues, + `capabilities.${namespace}.fieldI18n.${fieldName}.optionLabelKeys`, + 'optionLabelKeys must be an object', + ) + continue + } + + const optionFieldName = allowedI18nFields[fieldName] + const allowedOptionsRaw = namespaceValue[optionFieldName] + const allowedOptions = Array.isArray(allowedOptionsRaw) + ? new Set(allowedOptionsRaw.map((value) => String(value))) + : null + + for (const [optionValue, optionLabelKey] of Object.entries(fieldConfig.optionLabelKeys)) { + if (!isI18nKey(optionLabelKey)) { + pushIssue( + issues, + `capabilities.${namespace}.fieldI18n.${fieldName}.optionLabelKeys.${optionValue}`, + 'option label must be an i18n key', + ) + } + if (allowedOptions && !allowedOptions.has(optionValue)) { + pushIssue( + issues, + `capabilities.${namespace}.fieldI18n.${fieldName}.optionLabelKeys.${optionValue}`, + `option ${optionValue} is not defined in ${optionFieldName}`, + ) + } + } + } + } +} + +function validateCapabilities(modelType, capabilities) { + const issues = [] + if (!MODEL_TYPES.has(modelType)) { + pushIssue(issues, 'type', 'type must be llm/image/video/audio/lipsync') + return issues + } + if (capabilities === undefined || capabilities === null) return issues + if (!isRecord(capabilities)) { + pushIssue(issues, 'capabilities', 'capabilities must be an object') + return issues + } + + for (const namespace of Object.keys(capabilities)) { + if (!CAPABILITY_NAMESPACES.has(namespace)) { + pushIssue(issues, `capabilities.${namespace}`, `unknown capabilities namespace: ${namespace}`) + continue + } + if (namespace !== modelType) { + pushIssue(issues, `capabilities.${namespace}`, `namespace ${namespace} is not allowed for model type ${modelType}`) + } + } + + const llm = capabilities.llm + if (llm !== undefined) { + if (!isRecord(llm)) { + pushIssue(issues, 'capabilities.llm', 'llm capabilities must be an object') + } else { + validateAllowedFields(issues, 'llm', llm) + if (llm.reasoningEffortOptions !== undefined && !isStringArray(llm.reasoningEffortOptions)) { + pushIssue(issues, 'capabilities.llm.reasoningEffortOptions', 'must be string array') + } + validateFieldI18nMap(issues, 'llm', llm) + } + } + + const image = capabilities.image + if (image !== undefined) { + if (!isRecord(image)) { + pushIssue(issues, 'capabilities.image', 'image capabilities must be an object') + } else { + validateAllowedFields(issues, 'image', image) + if (image.resolutionOptions !== undefined && !isStringArray(image.resolutionOptions)) { + pushIssue(issues, 'capabilities.image.resolutionOptions', 'must be string array') + } + validateFieldI18nMap(issues, 'image', image) + } + } + + const video = capabilities.video + if (video !== undefined) { + if (!isRecord(video)) { + pushIssue(issues, 'capabilities.video', 'video capabilities must be an object') + } else { + validateAllowedFields(issues, 'video', video) + if (video.durationOptions !== undefined && !isNumberArray(video.durationOptions)) { + pushIssue(issues, 'capabilities.video.durationOptions', 'must be number array') + } + if (video.fpsOptions !== undefined && !isNumberArray(video.fpsOptions)) { + pushIssue(issues, 'capabilities.video.fpsOptions', 'must be number array') + } + if (video.resolutionOptions !== undefined && !isStringArray(video.resolutionOptions)) { + pushIssue(issues, 'capabilities.video.resolutionOptions', 'must be string array') + } + if (video.supportGenerateAudio !== undefined && typeof video.supportGenerateAudio !== 'boolean') { + pushIssue(issues, 'capabilities.video.supportGenerateAudio', 'must be boolean') + } + if (video.firstlastframe !== undefined && typeof video.firstlastframe !== 'boolean') { + pushIssue(issues, 'capabilities.video.firstlastframe', 'must be boolean') + } + validateFieldI18nMap(issues, 'video', video) + } + } + + const audio = capabilities.audio + if (audio !== undefined) { + if (!isRecord(audio)) { + pushIssue(issues, 'capabilities.audio', 'audio capabilities must be an object') + } else { + validateAllowedFields(issues, 'audio', audio) + if (audio.voiceOptions !== undefined && !isStringArray(audio.voiceOptions)) { + pushIssue(issues, 'capabilities.audio.voiceOptions', 'must be string array') + } + if (audio.rateOptions !== undefined && !isStringArray(audio.rateOptions)) { + pushIssue(issues, 'capabilities.audio.rateOptions', 'must be string array') + } + validateFieldI18nMap(issues, 'audio', audio) + } + } + + const lipsync = capabilities.lipsync + if (lipsync !== undefined) { + if (!isRecord(lipsync)) { + pushIssue(issues, 'capabilities.lipsync', 'lipsync capabilities must be an object') + } else { + validateAllowedFields(issues, 'lipsync', lipsync) + if (lipsync.modeOptions !== undefined && !isStringArray(lipsync.modeOptions)) { + pushIssue(issues, 'capabilities.lipsync.modeOptions', 'must be string array') + } + validateFieldI18nMap(issues, 'lipsync', lipsync) + } + } + + return issues +} + +async function main() { + let PrismaClient + try { + ({ PrismaClient } = await import('@prisma/client')) + } catch { + throw new Error('MISSING_DEPENDENCY: @prisma/client is not installed, run npm install first') + } + + prisma = new PrismaClient() + const summary = { + generatedAt: new Date().toISOString(), + userPreference: { + total: 0, + invalidModelKeyFields: 0, + invalidCustomModelsJson: 0, + invalidCustomModelShape: 0, + invalidCapabilities: 0, + }, + novelPromotionProject: { + total: 0, + invalidModelKeyFields: 0, + }, + samples: [], + } + + const userPrefs = await prisma.userPreference.findMany({ + select: { + id: true, + customModels: true, + analysisModel: true, + characterModel: true, + locationModel: true, + storyboardModel: true, + editModel: true, + videoModel: true, + }, + }) + + for (const pref of userPrefs) { + summary.userPreference.total += 1 + for (const field of MODEL_FIELDS) { + const rawValue = pref[field] + if (!rawValue) continue + if (!parseModelKeyStrict(rawValue)) { + summary.userPreference.invalidModelKeyFields += 1 + addSample(summary, { + table: 'userPreference', + rowId: pref.id, + field, + reason: 'model field is not provider::modelId', + }) + } + } + + if (!pref.customModels) continue + let parsedCustomModels + try { + parsedCustomModels = JSON.parse(pref.customModels) + } catch { + summary.userPreference.invalidCustomModelsJson += 1 + addSample(summary, { + table: 'userPreference', + rowId: pref.id, + field: 'customModels', + reason: 'invalid JSON', + }) + continue + } + if (!Array.isArray(parsedCustomModels)) { + summary.userPreference.invalidCustomModelsJson += 1 + addSample(summary, { + table: 'userPreference', + rowId: pref.id, + field: 'customModels', + reason: 'customModels is not array', + }) + continue + } + + for (let index = 0; index < parsedCustomModels.length; index += 1) { + const modelRaw = parsedCustomModels[index] + if (!isRecord(modelRaw)) { + summary.userPreference.invalidCustomModelShape += 1 + addSample(summary, { + table: 'userPreference', + rowId: pref.id, + field: `customModels[${index}]`, + reason: 'model item is not object', + }) + continue + } + + const modelKey = isNonEmptyString(modelRaw.modelKey) ? modelRaw.modelKey.trim() : '' + const provider = isNonEmptyString(modelRaw.provider) ? modelRaw.provider.trim() : '' + const modelId = isNonEmptyString(modelRaw.modelId) ? modelRaw.modelId.trim() : '' + const parsed = parseModelKeyStrict(modelKey) + if (!parsed || parsed.provider !== provider || parsed.modelId !== modelId) { + summary.userPreference.invalidCustomModelShape += 1 + addSample(summary, { + table: 'userPreference', + rowId: pref.id, + field: `customModels[${index}].modelKey`, + reason: 'modelKey/provider/modelId mismatch', + }) + } + + const modelType = isNonEmptyString(modelRaw.type) ? modelRaw.type.trim() : '' + const capabilityIssues = validateCapabilities(modelType, modelRaw.capabilities) + if (capabilityIssues.length > 0) { + summary.userPreference.invalidCapabilities += 1 + addSample(summary, { + table: 'userPreference', + rowId: pref.id, + field: capabilityIssues[0].field, + reason: capabilityIssues[0].message, + }) + } + } + } + + const projects = await prisma.novelPromotionProject.findMany({ + select: { + id: true, + analysisModel: true, + characterModel: true, + locationModel: true, + storyboardModel: true, + editModel: true, + videoModel: true, + }, + }) + + for (const project of projects) { + summary.novelPromotionProject.total += 1 + for (const field of MODEL_FIELDS) { + const rawValue = project[field] + if (!rawValue) continue + if (!parseModelKeyStrict(rawValue)) { + summary.novelPromotionProject.invalidModelKeyFields += 1 + addSample(summary, { + table: 'novelPromotionProject', + rowId: project.id, + field, + reason: 'model field is not provider::modelId', + }) + } + } + } + + process.stdout.write(`${JSON.stringify(summary, null, 2)}\n`) + + if (!STRICT) return + const hasViolations = summary.userPreference.invalidModelKeyFields > 0 + || summary.userPreference.invalidCustomModelsJson > 0 + || summary.userPreference.invalidCustomModelShape > 0 + || summary.userPreference.invalidCapabilities > 0 + || summary.novelPromotionProject.invalidModelKeyFields > 0 + + if (hasViolations) { + process.exitCode = 1 + } +} + +main() + .catch((error) => { + process.stderr.write(`[check-model-config-contract] failed: ${String(error)}\n`) + process.exitCode = 1 + }) + .finally(async () => { + if (prisma) { + await prisma.$disconnect() + } + }) diff --git a/scripts/check-no-console.ts b/scripts/check-no-console.ts new file mode 100644 index 0000000..33b6a24 --- /dev/null +++ b/scripts/check-no-console.ts @@ -0,0 +1,52 @@ +import { execSync } from 'node:child_process' + +const ALLOWLIST = new Set([ + 'src/lib/logging/core.ts', + 'src/lib/logging/config.ts', + 'src/lib/logging/context.ts', + 'src/lib/logging/redact.ts', + 'scripts/check-no-console.ts', + 'scripts/guards/no-api-direct-llm-call.mjs', + 'scripts/guards/no-internal-task-sync-fallback.mjs', + 'scripts/guards/no-media-provider-bypass.mjs', + 'scripts/guards/no-server-mirror-state.mjs', + 'scripts/guards/task-loading-guard.mjs', + 'scripts/guards/task-target-states-no-polling-guard.mjs', +]) + +function run(cmd: string): string { + try { + return execSync(cmd, { encoding: 'utf8' }) + } catch (error: unknown) { + if (error && typeof error === 'object' && 'stdout' in error) { + const stdout = (error as { stdout?: unknown }).stdout + return typeof stdout === 'string' ? stdout : '' + } + return '' + } +} + +function main() { + const output = run(`rg -n "console\\\\.(log|info|warn|error|debug)\\\\(" src scripts`) + const lines = output + .split('\n') + .map((line) => line.trim()) + .filter(Boolean) + + const violations = lines.filter((line) => { + const file = line.split(':', 1)[0] + return !ALLOWLIST.has(file) + }) + + if (violations.length > 0) { + process.stderr.write('[check:logs] found forbidden console usage:\n') + for (const line of violations) { + process.stderr.write(`- ${line}\n`) + } + process.exit(1) + } + + process.stdout.write(`[check:logs] ok scanned=${lines.length} allowlist=${ALLOWLIST.size}\n`) +} + +main() diff --git a/scripts/check-outbound-image-runtime-sample.ts b/scripts/check-outbound-image-runtime-sample.ts new file mode 100644 index 0000000..a8ec19c --- /dev/null +++ b/scripts/check-outbound-image-runtime-sample.ts @@ -0,0 +1,323 @@ +import { prisma } from '@/lib/prisma' +import { TASK_TYPE } from '@/lib/task/types' + +type AnyJson = unknown + +type Match = { + path: string + value: string +} + +type Options = { + minutes: number + limit: number + projectId: string | null + strictNoData: boolean + includeEvents: boolean + maxEventsPerTask: number + json: boolean +} + +type FailureType = 'normalize' | 'model' | 'cancelled' | 'other' + +const MODEL_ERROR_CODES = new Set([ + 'GENERATION_FAILED', + 'GENERATION_TIMEOUT', + 'RATE_LIMIT', + 'EXTERNAL_ERROR', + 'SENSITIVE_CONTENT', +]) + +function parseNumberArg(name: string, fallback: number): number { + const raw = process.argv.find((arg) => arg.startsWith(`--${name}=`)) + if (!raw) return fallback + const value = Number.parseInt(raw.split('=')[1] || '', 10) + return Number.isFinite(value) && value > 0 ? value : fallback +} + +function parseStringArg(name: string): string | null { + const raw = process.argv.find((arg) => arg.startsWith(`--${name}=`)) + if (!raw) return null + const value = (raw.split('=')[1] || '').trim() + return value || null +} + +function parseBooleanArg(name: string, fallback = false): boolean { + const raw = process.argv.find((arg) => arg.startsWith(`--${name}=`)) + if (!raw) return fallback + const value = (raw.split('=')[1] || '').trim().toLowerCase() + return value === '1' || value === 'true' || value === 'yes' || value === 'on' +} + +function parseOptions(): Options { + return { + minutes: parseNumberArg('minutes', 60 * 24), + limit: parseNumberArg('limit', 200), + projectId: parseStringArg('projectId'), + strictNoData: parseBooleanArg('strictNoData', false), + includeEvents: parseBooleanArg('includeEvents', false), + maxEventsPerTask: parseNumberArg('maxEventsPerTask', 40), + json: parseBooleanArg('json', false), + } +} + +function toExcerpt(value: string, max = 180): string { + if (value.length <= max) return value + return `${value.slice(0, max)}...` +} + +function findStringMatches( + value: AnyJson, + predicate: (input: string) => boolean, + path = '$', + matches: Match[] = [], +): Match[] { + if (typeof value === 'string') { + if (predicate(value)) matches.push({ path, value }) + return matches + } + if (Array.isArray(value)) { + value.forEach((item, index) => { + findStringMatches(item, predicate, `${path}[${index}]`, matches) + }) + return matches + } + if (value && typeof value === 'object') { + for (const [key, next] of Object.entries(value as Record)) { + findStringMatches(next, predicate, `${path}.${key}`, matches) + } + } + return matches +} + +function classifyFailure(task: { + errorCode: string | null + errorMessage: string | null + result: AnyJson | null + events: Array<{ payload: AnyJson | null }> +}): FailureType { + const code = (task.errorCode || '').trim().toUpperCase() + const normalizeRe = /normalize|video_frame_normalize|normalizeReferenceImagesForGeneration|reference image normalize failed|outbound image input is empty|relative_path_rejected/i + const modelRe = /generation failed|provider|upstream|rate limit|timed out|timeout|sensitive/i + + if (code === 'TASK_CANCELLED') return 'cancelled' + if (MODEL_ERROR_CODES.has(code)) return 'model' + if (code) { + const explicitNormalizeCode = code === 'INVALID_PARAMS' || code === 'OUTBOUND_IMAGE_FETCH_FAILED' + if (explicitNormalizeCode) return 'normalize' + return 'other' + } + + const values: string[] = [] + if (code) values.push(code) + if (task.errorMessage) values.push(task.errorMessage) + if (task.result) { + for (const hit of findStringMatches(task.result, () => true)) { + values.push(hit.value) + } + } + for (const event of task.events) { + if (!event.payload) continue + for (const hit of findStringMatches(event.payload, () => true)) { + values.push(hit.value) + } + } + + if (values.some((item) => normalizeRe.test(item))) return 'normalize' + if (values.some((item) => modelRe.test(item))) return 'model' + return 'other' +} + +async function main() { + const options = parseOptions() + const since = new Date(Date.now() - options.minutes * 60_000) + const monitoredTypes = [ + TASK_TYPE.MODIFY_ASSET_IMAGE, + TASK_TYPE.ASSET_HUB_MODIFY, + TASK_TYPE.VIDEO_PANEL, + ] + + const tasks = await prisma.task.findMany({ + where: { + type: { in: monitoredTypes }, + createdAt: { gte: since }, + ...(options.projectId ? { projectId: options.projectId } : {}), + }, + select: { + id: true, + type: true, + status: true, + projectId: true, + targetType: true, + targetId: true, + createdAt: true, + errorCode: true, + errorMessage: true, + payload: true, + result: true, + }, + orderBy: { createdAt: 'desc' }, + take: options.limit, + }) + + if (tasks.length === 0) { + process.stdout.write( + `[check:outbound-image-runtime-sample] no data window=${options.minutes}m limit=${options.limit} strictNoData=${options.strictNoData}\n`, + ) + if (options.strictNoData) process.exit(2) + return + } + + const eventsByTaskId = new Map>() + let eventCount = 0 + if (options.includeEvents) { + for (const task of tasks) { + const rows = await prisma.taskEvent.findMany({ + where: { taskId: task.id }, + select: { + taskId: true, + eventType: true, + payload: true, + createdAt: true, + }, + orderBy: { id: 'desc' }, + take: options.maxEventsPerTask, + }) + const ordered = [...rows].reverse() + eventCount += ordered.length + if (ordered.length > 0) { + eventsByTaskId.set( + task.id, + ordered.map((event) => ({ + eventType: event.eventType, + payload: event.payload, + createdAt: event.createdAt, + })), + ) + } + } + } + + const nextImagePredicate = (input: string) => input.includes('/_next/image') + const hits: Array<{ + taskId: string + taskType: string + source: 'task.payload' | 'task.result' | 'task.event' + path: string + value: string + }> = [] + + let failedCount = 0 + const failedByClass: Record = { + normalize: 0, + model: 0, + cancelled: 0, + other: 0, + } + const failedByCode: Record = {} + + for (const task of tasks) { + const taskEventsForTask = eventsByTaskId.get(task.id) || [] + + if (task.payload) { + for (const match of findStringMatches(task.payload, nextImagePredicate)) { + hits.push({ + taskId: task.id, + taskType: task.type, + source: 'task.payload', + path: match.path, + value: match.value, + }) + } + } + + if (task.result) { + for (const match of findStringMatches(task.result, nextImagePredicate)) { + hits.push({ + taskId: task.id, + taskType: task.type, + source: 'task.result', + path: match.path, + value: match.value, + }) + } + } + + for (const event of taskEventsForTask) { + if (!event.payload) continue + for (const match of findStringMatches(event.payload, nextImagePredicate)) { + hits.push({ + taskId: task.id, + taskType: task.type, + source: 'task.event', + path: match.path, + value: match.value, + }) + } + } + + if (task.status === 'failed') { + failedCount += 1 + const code = (task.errorCode || 'UNKNOWN').trim() || 'UNKNOWN' + failedByCode[code] = (failedByCode[code] || 0) + 1 + const failureType = classifyFailure({ + errorCode: task.errorCode, + errorMessage: task.errorMessage, + result: task.result, + events: taskEventsForTask, + }) + failedByClass[failureType] += 1 + } + } + + const typeCount = tasks.reduce>((acc, item) => { + acc[item.type] = (acc[item.type] || 0) + 1 + return acc + }, {}) + + process.stdout.write( + `[check:outbound-image-runtime-sample] window=${options.minutes}m sampled=${tasks.length} events=${eventCount} includeEvents=${options.includeEvents} next_image_hits=${hits.length}\n`, + ) + process.stdout.write(`[check:outbound-image-runtime-sample] task_types=${JSON.stringify(typeCount)}\n`) + process.stdout.write( + `[check:outbound-image-runtime-sample] failures total=${failedCount} normalize=${failedByClass.normalize} model=${failedByClass.model} cancelled=${failedByClass.cancelled} other=${failedByClass.other} by_code=${JSON.stringify(failedByCode)}\n`, + ) + + if (options.json) { + process.stdout.write( + `${JSON.stringify({ + windowMinutes: options.minutes, + sampled: tasks.length, + events: eventCount, + includeEvents: options.includeEvents, + nextImageHits: hits.length, + taskTypes: typeCount, + failures: { + total: failedCount, + byClass: failedByClass, + byCode: failedByCode, + }, + })}\n`, + ) + } + + if (hits.length > 0) { + process.stderr.write('[check:outbound-image-runtime-sample] found /_next/image contamination:\n') + for (const hit of hits.slice(0, 20)) { + process.stderr.write( + `- task=${hit.taskId} type=${hit.taskType} source=${hit.source} path=${hit.path} value=${toExcerpt(hit.value)}\n`, + ) + } + process.exit(1) + } +} + +main() + .catch((error) => { + const message = error instanceof Error ? error.message : String(error) + process.stderr.write(`[check:outbound-image-runtime-sample] failed: ${message}\n`) + process.exit(1) + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/check-outbound-image-success-rate.ts b/scripts/check-outbound-image-success-rate.ts new file mode 100644 index 0000000..919cd84 --- /dev/null +++ b/scripts/check-outbound-image-success-rate.ts @@ -0,0 +1,224 @@ +import { prisma } from '@/lib/prisma' +import { TASK_STATUS, TASK_TYPE } from '@/lib/task/types' + +type StatusCount = Record + +type WindowSummary = { + total: number + finishedTotal: number + completed: number + failed: number + successRate: number | null + byStatus: StatusCount + byType: Record +} + +type Options = { + minutes: number + baselineMinutes: number + baselineOffsetMinutes: number + projectId: string | null + tolerancePct: number + minFinishedSamples: number + strict: boolean + json: boolean +} + +const DEFAULT_MINUTES = 60 * 24 * 7 +const DEFAULT_TOLERANCE_PCT = 2 +const DEFAULT_MIN_FINISHED_SAMPLES = 20 + +function parseNumberArg(name: string, fallback: number): number { + const raw = process.argv.find((arg) => arg.startsWith(`--${name}=`)) + if (!raw) return fallback + const value = Number.parseFloat(raw.split('=')[1] || '') + return Number.isFinite(value) && value > 0 ? value : fallback +} + +function parseBooleanArg(name: string, fallback = false): boolean { + const raw = process.argv.find((arg) => arg.startsWith(`--${name}=`)) + if (!raw) return fallback + const value = (raw.split('=')[1] || '').trim().toLowerCase() + return value === '1' || value === 'true' || value === 'yes' || value === 'on' +} + +function parseStringArg(name: string): string | null { + const raw = process.argv.find((arg) => arg.startsWith(`--${name}=`)) + if (!raw) return null + const value = (raw.split('=')[1] || '').trim() + return value || null +} + +function parseOptions(): Options { + const minutes = parseNumberArg('minutes', DEFAULT_MINUTES) + const baselineMinutes = parseNumberArg('baselineMinutes', minutes) + const baselineOffsetMinutes = parseNumberArg('baselineOffsetMinutes', minutes) + return { + minutes, + baselineMinutes, + baselineOffsetMinutes, + projectId: parseStringArg('projectId'), + tolerancePct: parseNumberArg('tolerancePct', DEFAULT_TOLERANCE_PCT), + minFinishedSamples: parseNumberArg('minFinishedSamples', DEFAULT_MIN_FINISHED_SAMPLES), + strict: parseBooleanArg('strict', false), + json: parseBooleanArg('json', false), + } +} + +function asPct(value: number | null): string { + return value === null ? 'N/A' : `${value.toFixed(2)}%` +} + +function getSuccessRate(completed: number, failed: number): number | null { + const total = completed + failed + if (total <= 0) return null + return (completed / total) * 100 +} + +function summarizeRows( + rows: Array<{ status: string; type: string }>, +): WindowSummary { + const byStatus: StatusCount = {} + const byType: Record = {} + for (const row of rows) { + byStatus[row.status] = (byStatus[row.status] || 0) + 1 + byType[row.type] = (byType[row.type] || 0) + 1 + } + + const completed = byStatus[TASK_STATUS.COMPLETED] || 0 + const failed = byStatus[TASK_STATUS.FAILED] || 0 + const finishedTotal = completed + failed + + return { + total: rows.length, + finishedTotal, + completed, + failed, + successRate: getSuccessRate(completed, failed), + byStatus, + byType, + } +} + +async function fetchWindowSummary(params: { + from: Date + to: Date + projectId: string | null +}) { + const monitoredTypes = [ + TASK_TYPE.MODIFY_ASSET_IMAGE, + TASK_TYPE.ASSET_HUB_MODIFY, + TASK_TYPE.VIDEO_PANEL, + ] + + const rows = await prisma.task.findMany({ + where: { + type: { in: monitoredTypes }, + createdAt: { + gte: params.from, + lt: params.to, + }, + ...(params.projectId ? { projectId: params.projectId } : {}), + }, + select: { + status: true, + type: true, + }, + }) + + return summarizeRows(rows) +} + +async function main() { + const options = parseOptions() + const now = Date.now() + + const currentEnd = new Date(now) + const currentStart = new Date(now - options.minutes * 60_000) + + const baselineEnd = new Date(now - options.baselineOffsetMinutes * 60_000) + const baselineStart = new Date(baselineEnd.getTime() - options.baselineMinutes * 60_000) + + const [current, baseline] = await Promise.all([ + fetchWindowSummary({ + from: currentStart, + to: currentEnd, + projectId: options.projectId, + }), + fetchWindowSummary({ + from: baselineStart, + to: baselineEnd, + projectId: options.projectId, + }), + ]) + + const hasEnoughCurrent = current.finishedTotal >= options.minFinishedSamples + const hasEnoughBaseline = baseline.finishedTotal >= options.minFinishedSamples + const hasEnoughSamples = hasEnoughCurrent && hasEnoughBaseline + + const rateDeltaPct = + current.successRate !== null && baseline.successRate !== null + ? current.successRate - baseline.successRate + : null + + const meetsTolerance = + rateDeltaPct !== null + ? rateDeltaPct >= -Math.abs(options.tolerancePct) + : false + + const status = hasEnoughSamples + ? meetsTolerance + ? 'pass' + : 'fail' + : 'blocked' + + process.stdout.write( + `[check:outbound-image-success-rate] current=${asPct(current.successRate)} baseline=${asPct(baseline.successRate)} delta=${asPct(rateDeltaPct)} tolerance=-${Math.abs(options.tolerancePct).toFixed(2)}% status=${status}\n`, + ) + process.stdout.write( + `[check:outbound-image-success-rate] current_finished=${current.finishedTotal} baseline_finished=${baseline.finishedTotal} min_required=${options.minFinishedSamples}\n`, + ) + process.stdout.write( + `[check:outbound-image-success-rate] current_by_type=${JSON.stringify(current.byType)} baseline_by_type=${JSON.stringify(baseline.byType)}\n`, + ) + + if (options.json) { + process.stdout.write( + `${JSON.stringify({ + status, + tolerancePct: options.tolerancePct, + minFinishedSamples: options.minFinishedSamples, + windows: { + current: { + from: currentStart.toISOString(), + to: currentEnd.toISOString(), + ...current, + }, + baseline: { + from: baselineStart.toISOString(), + to: baselineEnd.toISOString(), + ...baseline, + }, + }, + rateDeltaPct, + hasEnoughSamples, + })}\n`, + ) + } + + if (!options.strict) return + + if (status === 'pass') return + if (status === 'blocked') process.exit(2) + process.exit(1) +} + +main() + .catch((error) => { + const message = error instanceof Error ? error.message : String(error) + process.stderr.write(`[check:outbound-image-success-rate] failed: ${message}\n`) + process.exit(1) + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/check-outbound-image-unification.ts b/scripts/check-outbound-image-unification.ts new file mode 100644 index 0000000..8a7a83f --- /dev/null +++ b/scripts/check-outbound-image-unification.ts @@ -0,0 +1,167 @@ +import fs from 'node:fs' +import path from 'node:path' + +type Rule = { + file: string + pattern: RegExp + message: string +} + +function readFile(relativePath: string): string { + const fullPath = path.resolve(process.cwd(), relativePath) + return fs.readFileSync(fullPath, 'utf8') +} + +const mustIncludeRules: Rule[] = [ + { + file: 'src/lib/media/outbound-image.ts', + pattern: /export\s+async\s+function\s+normalizeToOriginalMediaUrl\s*\(/, + message: 'missing normalizeToOriginalMediaUrl export', + }, + { + file: 'src/lib/media/outbound-image.ts', + pattern: /export\s+async\s+function\s+normalizeToBase64ForGeneration\s*\(/, + message: 'missing normalizeToBase64ForGeneration export', + }, + { + file: 'src/lib/media/outbound-image.ts', + pattern: /export\s+async\s+function\s+normalizeReferenceImagesForGeneration\s*\(/, + message: 'missing normalizeReferenceImagesForGeneration export', + }, + { + file: 'src/lib/media/outbound-image.ts', + pattern: /class\s+OutboundImageNormalizeError\s+extends\s+Error/, + message: 'outbound-image.ts must expose structured normalize error type', + }, + { + file: 'src/lib/media/outbound-image.ts', + pattern: /OUTBOUND_IMAGE_FETCH_FAILED/, + message: 'outbound-image.ts must classify fetch failures with structured error codes', + }, + { + file: 'src/lib/media/outbound-image.ts', + pattern: /OUTBOUND_IMAGE_REFERENCE_ALL_FAILED/, + message: 'outbound-image.ts must fail explicitly when all references fail to normalize', + }, + { + file: 'src/lib/workers/handlers/image-task-handlers-core.ts', + pattern: /normalizeToBase64ForGeneration\(currentUrl\)/, + message: 'image-task-handlers-core.ts must convert currentUrl to base64 before outbound', + }, + { + file: 'src/lib/workers/handlers/image-task-handlers-core.ts', + pattern: /normalizeReferenceImagesForGeneration\(extraReferenceInputs\)/, + message: 'image-task-handlers-core.ts must normalize extra references before outbound', + }, + { + file: 'src/lib/workers/video.worker.ts', + pattern: /const\s+sourceImageBase64\s*=\s*await\s+normalizeToBase64ForGeneration\(sourceImageUrl\)/, + message: 'video.worker.ts must normalize source frame to base64', + }, + { + file: 'src/lib/workers/video.worker.ts', + pattern: /lastFrameImageBase64\s*=\s*await\s+normalizeToBase64ForGeneration\(lastFrameUrl\)/, + message: 'video.worker.ts must normalize last frame to base64', + }, + { + file: 'src/app/api/novel-promotion/[projectId]/modify-asset-image/route.ts', + pattern: /sanitizeImageInputsForTaskPayload/, + message: 'modify-asset-image route must sanitize image inputs', + }, + { + file: 'src/app/api/novel-promotion/[projectId]/modify-storyboard-image/route.ts', + pattern: /sanitizeImageInputsForTaskPayload/, + message: 'modify-storyboard-image route must sanitize image inputs', + }, + { + file: 'src/app/api/asset-hub/modify-image/route.ts', + pattern: /sanitizeImageInputsForTaskPayload/, + message: 'asset-hub modify-image route must sanitize image inputs', + }, + { + file: 'src/components/ui/ImagePreviewModal.tsx', + pattern: /import\s+\{\s*resolveOriginalImageUrl,\s*toDisplayImageUrl\s*\}\s+from\s+'@\/lib\/media\/image-url'/, + message: 'ImagePreviewModal must use shared image-url helpers', + }, + { + file: 'src/lib/novel-promotion/stages/video-stage-runtime-core.tsx', + pattern: /onPreviewImage=\{setPreviewImage\}/, + message: 'Video stage runtime must wire preview callback to VideoPanelCard', + }, + { + file: 'src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/types.ts', + pattern: /onPreviewImage\?:\s*\(imageUrl:\s*string\)\s*=>\s*void/, + message: 'VideoPanelCard runtime props must expose onPreviewImage', + }, + { + file: 'src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/video/panel-card/VideoPanelCardHeader.tsx', + pattern: /className="absolute left-1\/2 top-1\/2 z-10 h-16 w-16 -translate-x-1\/2 -translate-y-1\/2 rounded-full"/, + message: 'VideoPanelCard play trigger must be centered small button (preview/play separation)', + }, +] + +const mustNotIncludeRules: Rule[] = [ + { + file: 'src/lib/workers/handlers/image-task-handlers-core.ts', + pattern: /referenceImages:\s*\[currentUrl\]/, + message: 'image-task-handlers-core.ts must not pass raw currentUrl directly as outbound reference', + }, + { + file: 'src/lib/workers/video.worker.ts', + pattern: /imageUrl:\s*sourceImageUrl/, + message: 'video.worker.ts must not pass raw sourceImageUrl to generator', + }, + { + file: 'src/lib/media/outbound-image.ts', + pattern: /return\s+await\s+toFetchableAbsoluteUrl\(mediaPath\)/, + message: 'outbound-image.ts must not silently fallback when /m route cannot resolve storage key', + }, + { + file: 'src/lib/media/outbound-image.ts', + pattern: /export\s+async\s+function\s+imageUrlToBase64\s*\(/, + message: 'outbound-image.ts must not keep legacy imageUrlToBase64 alias after phase 2 migration', + }, + { + file: 'src/lib/media/outbound-image.ts', + pattern: /return\s+await\s+toFetchableAbsoluteUrl\(unwrappedInput\)/, + message: 'outbound-image.ts must not silently fallback unknown inputs to fetchable url', + }, +] + +function main() { + const errors: string[] = [] + const cache = new Map() + + const getContent = (file: string) => { + if (!cache.has(file)) cache.set(file, readFile(file)) + return cache.get(file) as string + } + + for (const rule of mustIncludeRules) { + const content = getContent(rule.file) + if (!rule.pattern.test(content)) { + errors.push(`${rule.file}: ${rule.message}`) + } + } + + for (const rule of mustNotIncludeRules) { + const content = getContent(rule.file) + if (rule.pattern.test(content)) { + errors.push(`${rule.file}: ${rule.message}`) + } + } + + if (errors.length > 0) { + process.stderr.write('[check:outbound-image-unification] found violations:\n') + for (const error of errors) { + process.stderr.write(`- ${error}\n`) + } + process.exit(1) + } + + process.stdout.write( + `[check:outbound-image-unification] ok include_checks=${mustIncludeRules.length} exclude_checks=${mustNotIncludeRules.length}\n`, + ) +} + +main() diff --git a/scripts/check-pricing-catalog.mjs b/scripts/check-pricing-catalog.mjs new file mode 100644 index 0000000..8fa3ea0 --- /dev/null +++ b/scripts/check-pricing-catalog.mjs @@ -0,0 +1,293 @@ +import { promises as fs } from 'node:fs' +import path from 'node:path' + +const CATALOG_DIR = path.resolve(process.cwd(), 'standards/pricing') +const CAPABILITY_CATALOG_FILE = path.resolve(process.cwd(), 'standards/capabilities/image-video.catalog.json') +const API_TYPES = new Set(['text', 'image', 'video', 'voice', 'voice-design', 'lip-sync']) +const PRICING_MODES = new Set(['flat', 'capability']) +const TEXT_TOKEN_TYPES = new Set(['input', 'output']) + +function isRecord(value) { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +function isNonEmptyString(value) { + return typeof value === 'string' && value.trim().length > 0 +} + +function isCapabilityValue(value) { + return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' +} + +function isFiniteNumber(value) { + return typeof value === 'number' && Number.isFinite(value) +} + +function pushIssue(issues, file, index, field, message) { + issues.push({ file, index, field, message }) +} + +function getProviderKey(providerId) { + const marker = providerId.indexOf(':') + return marker === -1 ? providerId : providerId.slice(0, marker) +} + +function buildModelKey(modelType, provider, modelId) { + return `${modelType}::${provider}::${modelId}` +} + +async function listCatalogFiles() { + const entries = await fs.readdir(CATALOG_DIR, { withFileTypes: true }) + return entries + .filter((entry) => entry.isFile() && entry.name.endsWith('.json')) + .map((entry) => path.join(CATALOG_DIR, entry.name)) +} + +async function readCatalog(filePath) { + const raw = await fs.readFile(filePath, 'utf8') + const parsed = JSON.parse(raw) + if (!Array.isArray(parsed)) { + throw new Error(`catalog must be an array: ${filePath}`) + } + return parsed +} + +async function readCapabilityCatalog() { + const raw = await fs.readFile(CAPABILITY_CATALOG_FILE, 'utf8') + const parsed = JSON.parse(raw) + if (!Array.isArray(parsed)) { + throw new Error(`capability catalog must be an array: ${CAPABILITY_CATALOG_FILE}`) + } + return parsed +} + +function extractCapabilityOptionFields(modelType, capabilities) { + if (!isRecord(capabilities)) return new Set() + const namespace = capabilities[modelType] + if (!isRecord(namespace)) return new Set() + + const fields = new Set() + for (const [key, value] of Object.entries(namespace)) { + if (!key.endsWith('Options')) continue + if (!Array.isArray(value) || value.length === 0) continue + const field = key.slice(0, -'Options'.length) + fields.add(field) + } + return fields +} + +function buildCapabilityOptionFieldMap(capabilityEntries) { + const map = new Map() + for (const entry of capabilityEntries) { + if (!isRecord(entry)) continue + const modelType = typeof entry.modelType === 'string' ? entry.modelType.trim() : '' + const provider = typeof entry.provider === 'string' ? entry.provider.trim() : '' + const modelId = typeof entry.modelId === 'string' ? entry.modelId.trim() : '' + if (!modelType || !provider || !modelId) continue + + const fields = extractCapabilityOptionFields(modelType, entry.capabilities) + map.set(buildModelKey(modelType, provider, modelId), fields) + const providerKey = getProviderKey(provider) + const fallbackKey = buildModelKey(modelType, providerKey, modelId) + if (!map.has(fallbackKey)) { + map.set(fallbackKey, fields) + } + } + return map +} + +function validateTier(issues, file, index, tier, tierIndex) { + if (!isRecord(tier)) { + pushIssue(issues, file, index, `pricing.tiers[${tierIndex}]`, 'tier must be object') + return + } + + if (!isRecord(tier.when) || Object.keys(tier.when).length === 0) { + pushIssue(issues, file, index, `pricing.tiers[${tierIndex}].when`, 'when must be non-empty object') + } else { + for (const [field, value] of Object.entries(tier.when)) { + if (!isCapabilityValue(value)) { + pushIssue( + issues, + file, + index, + `pricing.tiers[${tierIndex}].when.${field}`, + 'condition value must be string/number/boolean', + ) + } + } + } + + if (!isFiniteNumber(tier.amount) || tier.amount < 0) { + pushIssue(issues, file, index, `pricing.tiers[${tierIndex}].amount`, 'amount must be finite number >= 0') + } +} + +function validateTextCapabilityTiers(issues, file, index, tiers) { + const seenTokenTypes = new Set() + + for (let tierIndex = 0; tierIndex < tiers.length; tierIndex += 1) { + const tier = tiers[tierIndex] + if (!isRecord(tier) || !isRecord(tier.when)) continue + + const whenFields = Object.keys(tier.when) + if (whenFields.length !== 1 || whenFields[0] !== 'tokenType') { + pushIssue(issues, file, index, `pricing.tiers[${tierIndex}].when`, 'text capability tier must only contain tokenType') + continue + } + + const tokenType = tier.when.tokenType + if (typeof tokenType !== 'string' || !TEXT_TOKEN_TYPES.has(tokenType)) { + pushIssue(issues, file, index, `pricing.tiers[${tierIndex}].when.tokenType`, 'tokenType must be input or output') + continue + } + + if (seenTokenTypes.has(tokenType)) { + pushIssue(issues, file, index, `pricing.tiers[${tierIndex}].when.tokenType`, `duplicate tokenType tier: ${tokenType}`) + continue + } + seenTokenTypes.add(tokenType) + } + + for (const requiredTokenType of TEXT_TOKEN_TYPES) { + if (!seenTokenTypes.has(requiredTokenType)) { + pushIssue(issues, file, index, 'pricing.tiers', `missing text tier tokenType=${requiredTokenType}`) + } + } +} + +function validateMediaCapabilityTierFields(issues, file, index, item, tiers, capabilityOptionFieldsMap) { + const modelType = item.apiType + const provider = item.provider + const modelId = item.modelId + const modelKey = buildModelKey(modelType, provider, modelId) + const fallbackKey = buildModelKey(modelType, getProviderKey(provider), modelId) + const optionFields = capabilityOptionFieldsMap.get(modelKey) || capabilityOptionFieldsMap.get(fallbackKey) + + if (!optionFields || optionFields.size === 0) { + pushIssue(issues, file, index, 'pricing.tiers', `no capability option fields found for ${modelType} ${provider}/${modelId}`) + return + } + + for (let tierIndex = 0; tierIndex < tiers.length; tierIndex += 1) { + const tier = tiers[tierIndex] + if (!isRecord(tier) || !isRecord(tier.when)) continue + for (const field of Object.keys(tier.when)) { + if (!optionFields.has(field)) { + pushIssue( + issues, + file, + index, + `pricing.tiers[${tierIndex}].when.${field}`, + `field ${field} is not declared in capabilities options for ${modelType} ${provider}/${modelId}`, + ) + } + } + } +} + +function validateDuplicateCapabilityTiers(issues, file, index, tiers) { + const seen = new Set() + for (let tierIndex = 0; tierIndex < tiers.length; tierIndex += 1) { + const tier = tiers[tierIndex] + if (!isRecord(tier) || !isRecord(tier.when)) continue + const signature = JSON.stringify(Object.entries(tier.when).sort((left, right) => left[0].localeCompare(right[0]))) + if (seen.has(signature)) { + pushIssue(issues, file, index, `pricing.tiers[${tierIndex}].when`, 'duplicate capability tier condition') + continue + } + seen.add(signature) + } +} + +function validatePricing(issues, file, index, item, capabilityOptionFieldsMap) { + const pricing = item.pricing + if (!isRecord(pricing)) { + pushIssue(issues, file, index, 'pricing', 'pricing must be object') + return + } + + if (!isNonEmptyString(pricing.mode) || !PRICING_MODES.has(pricing.mode)) { + pushIssue(issues, file, index, 'pricing.mode', 'pricing.mode must be flat or capability') + return + } + + if (pricing.mode === 'flat') { + if (!isFiniteNumber(pricing.flatAmount) || pricing.flatAmount < 0) { + pushIssue(issues, file, index, 'pricing.flatAmount', 'flatAmount must be finite number >= 0') + } + return + } + + if (!Array.isArray(pricing.tiers) || pricing.tiers.length === 0) { + pushIssue(issues, file, index, 'pricing.tiers', 'tiers must be non-empty array') + return + } + + for (let tierIndex = 0; tierIndex < pricing.tiers.length; tierIndex += 1) { + validateTier(issues, file, index, pricing.tiers[tierIndex], tierIndex) + } + + validateDuplicateCapabilityTiers(issues, file, index, pricing.tiers) + + if (item.apiType === 'text') { + validateTextCapabilityTiers(issues, file, index, pricing.tiers) + return + } + + if (item.apiType === 'image' || item.apiType === 'video') { + validateMediaCapabilityTierFields(issues, file, index, item, pricing.tiers, capabilityOptionFieldsMap) + } +} + +async function main() { + const issues = [] + const files = await listCatalogFiles() + const capabilityCatalog = await readCapabilityCatalog() + const capabilityOptionFieldsMap = buildCapabilityOptionFieldMap(capabilityCatalog) + if (files.length === 0) { + throw new Error(`no pricing files found in ${CATALOG_DIR}`) + } + + for (const filePath of files) { + const items = await readCatalog(filePath) + for (let index = 0; index < items.length; index += 1) { + const item = items[index] + if (!isRecord(item)) { + pushIssue(issues, filePath, index, 'entry', 'entry must be object') + continue + } + + if (!isNonEmptyString(item.apiType) || !API_TYPES.has(item.apiType)) { + pushIssue(issues, filePath, index, 'apiType', 'apiType must be one of text/image/video/voice/voice-design/lip-sync') + } + if (!isNonEmptyString(item.provider)) { + pushIssue(issues, filePath, index, 'provider', 'provider must be non-empty string') + } + if (!isNonEmptyString(item.modelId)) { + pushIssue(issues, filePath, index, 'modelId', 'modelId must be non-empty string') + } + + validatePricing(issues, filePath, index, item, capabilityOptionFieldsMap) + } + } + + if (issues.length === 0) { + process.stdout.write(`[check-pricing-catalog] OK (${files.length} files)\n`) + return + } + + const maxPrint = 50 + for (const issue of issues.slice(0, maxPrint)) { + process.stdout.write(`[check-pricing-catalog] ${issue.file}#${issue.index} ${issue.field}: ${issue.message}\n`) + } + if (issues.length > maxPrint) { + process.stdout.write(`[check-pricing-catalog] ... ${issues.length - maxPrint} more issues\n`) + } + process.exitCode = 1 +} + +main().catch((error) => { + process.stderr.write(`[check-pricing-catalog] failed: ${String(error)}\n`) + process.exitCode = 1 +}) diff --git a/scripts/cleanup-remove-legacy-voice-data.ts b/scripts/cleanup-remove-legacy-voice-data.ts new file mode 100644 index 0000000..067848c --- /dev/null +++ b/scripts/cleanup-remove-legacy-voice-data.ts @@ -0,0 +1,197 @@ +import { prisma } from '@/lib/prisma' + +type CharacterVoiceRecord = { + id: string + customVoiceUrl: string | null +} + +type SpeakerVoiceConfig = { + voiceType?: unknown + voiceId?: unknown + audioUrl?: unknown + [key: string]: unknown +} + +type CleanupSummary = { + projectCharactersUpdated: number + globalCharactersUpdated: number + episodeSpeakerVoicesUpdated: number + episodeSpeakerVoicesCleared: number + invalidSpeakerVoicesSkipped: number +} + +function hasPlayableAudioUrl(value: unknown) { + return typeof value === 'string' && value.trim().length > 0 +} + +function normalizeVoiceType(customVoiceUrl: string | null) { + return hasPlayableAudioUrl(customVoiceUrl) ? 'custom' : null +} + +async function cleanupCharacterTable(records: CharacterVoiceRecord[], table: 'project' | 'global') { + let updated = 0 + for (const row of records) { + const nextVoiceType = normalizeVoiceType(row.customVoiceUrl) + if (table === 'project') { + await prisma.novelPromotionCharacter.update({ + where: { id: row.id }, + data: { + voiceType: nextVoiceType, + voiceId: null, + }, + }) + } else { + await prisma.globalCharacter.update({ + where: { id: row.id }, + data: { + voiceType: nextVoiceType, + voiceId: null, + }, + }) + } + updated += 1 + } + return updated +} + +function normalizeSpeakerVoices(payload: string): { + ok: true + changed: boolean + cleared: boolean + next: string | null +} | { + ok: false +} { + let parsed: unknown + try { + parsed = JSON.parse(payload) + } catch { + return { ok: false } + } + + if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) { + return { ok: false } + } + + const source = parsed as Record + const next: Record = {} + let changed = false + + for (const [speaker, value] of Object.entries(source)) { + if (!value || typeof value !== 'object' || Array.isArray(value)) { + return { ok: false } + } + + const config = { ...(value as SpeakerVoiceConfig) } + if (config.voiceType === 'azure') { + if (hasPlayableAudioUrl(config.audioUrl)) { + config.voiceType = 'custom' + config.voiceId = null + next[speaker] = config + } else { + // No usable audio, drop stale azure speaker config. + } + changed = true + continue + } + + next[speaker] = config + } + + const keys = Object.keys(next) + if (keys.length === 0) { + return { + ok: true, + changed, + cleared: true, + next: null, + } + } + + return { + ok: true, + changed, + cleared: false, + next: changed ? JSON.stringify(next) : payload, + } +} + +async function main() { + const summary: CleanupSummary = { + projectCharactersUpdated: 0, + globalCharactersUpdated: 0, + episodeSpeakerVoicesUpdated: 0, + episodeSpeakerVoicesCleared: 0, + invalidSpeakerVoicesSkipped: 0, + } + + const [projectCharacters, globalCharacters] = await Promise.all([ + prisma.novelPromotionCharacter.findMany({ + where: { voiceType: 'azure' }, + select: { + id: true, + customVoiceUrl: true, + }, + }), + prisma.globalCharacter.findMany({ + where: { voiceType: 'azure' }, + select: { + id: true, + customVoiceUrl: true, + }, + }), + ]) + + summary.projectCharactersUpdated = await cleanupCharacterTable(projectCharacters, 'project') + summary.globalCharactersUpdated = await cleanupCharacterTable(globalCharacters, 'global') + + const episodes = await prisma.novelPromotionEpisode.findMany({ + where: { + speakerVoices: { not: null }, + }, + select: { + id: true, + speakerVoices: true, + }, + }) + + for (const row of episodes) { + const speakerVoices = row.speakerVoices + if (!speakerVoices || !speakerVoices.includes('"voiceType":"azure"')) { + continue + } + const normalized = normalizeSpeakerVoices(speakerVoices) + if (!normalized.ok) { + summary.invalidSpeakerVoicesSkipped += 1 + continue + } + if (!normalized.changed) { + continue + } + await prisma.novelPromotionEpisode.update({ + where: { id: row.id }, + data: { + speakerVoices: normalized.next, + }, + }) + summary.episodeSpeakerVoicesUpdated += 1 + if (normalized.cleared) { + summary.episodeSpeakerVoicesCleared += 1 + } + } + + process.stdout.write(`${JSON.stringify({ + ok: true, + checkedAt: new Date().toISOString(), + summary, + }, null, 2)}\n`) +} + +main() + .catch((error) => { + process.stderr.write(`${error instanceof Error ? error.stack || error.message : String(error)}\n`) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/diagnose-project.ts b/scripts/diagnose-project.ts new file mode 100644 index 0000000..96c9bc6 --- /dev/null +++ b/scripts/diagnose-project.ts @@ -0,0 +1,188 @@ +/** + * 诊断项目任务状态 + * 运行: npx tsx scripts/diagnose-project.ts + */ +import { config } from 'dotenv' +config() + +import { prisma } from '../src/lib/prisma' + +async function diagnoseProject(projectId: string) { + console.log(`🔍 诊断项目: ${projectId}\n`) + + // 1. 检查项目是否存在 + console.log('1️⃣ 项目基本信息:') + const project = await prisma.project.findUnique({ + where: { id: projectId }, + include: { + novelPromotionData: true + } + }) + + if (!project) { + console.log(' ❌ 项目不存在') + process.exit(1) + } + + console.log(` 名称: ${project.name}`) + console.log(` 模式: ${project.mode}`) + console.log(` 用户ID: ${project.userId}`) + + // 2. 检查 NovelPromotionProject + console.log('\n2️⃣ 小说推广项目配置:') + const novelData = project.novelPromotionData + if (!novelData) { + console.log(' ❌ novelPromotionData 未创建') + } else { + console.log(` ID: ${novelData.id}`) + console.log(` 视频比例: ${novelData.videoRatio || '未设置'}`) + console.log(` 画风提示: ${novelData.artStylePrompt || '未设置'}`) + } + + // 3. 检查场景和场景图片 + console.log('\n3️⃣ 场景资产:') + const novelProjectId = novelData?.id + if (!novelProjectId) { + console.log(' ❌ 无法获取 novelPromotionProject ID') + process.exit(1) + } + + const locations = await prisma.novelPromotionLocation.findMany({ + where: { novelPromotionProjectId: novelProjectId }, + include: { + images: { + orderBy: { imageIndex: 'asc' } + } + } + }) + + console.log(` 场景数量: ${locations.length}`) + + for (const loc of locations) { + console.log(`\n 📍 ${loc.name} (${loc.id})`) + console.log(` 图片数量: ${loc.images?.length || 0}`) + + for (const img of loc.images || []) { + console.log(` - [${img.imageIndex}] imageUrl: ${img.imageUrl || 'null'}`) + console.log(` isSelected: ${img.isSelected}`) + console.log(` description: ${img.description || 'null'}`) + + // 检查 MediaObject + if (img.imageUrl) { + const media = await prisma.mediaObject.findFirst({ + where: { + OR: [ + { storageKey: img.imageUrl }, + { storageKey: { contains: img.imageUrl.split('/').pop() || '' } } + ] + } + }) + if (media) { + console.log(` ✅ MediaObject: ${media.publicId}`) + } else { + console.log(` ⚠️ 未找到 MediaObject`) + } + } + } + } + + // 4. 检查最近的任务 + console.log('\n4️⃣ 最近的任务:') + const tasks = await prisma.task.findMany({ + where: { projectId }, + orderBy: { createdAt: 'desc' }, + take: 10 + }) + + console.log(` 任务数量: ${tasks.length}`) + + for (const task of tasks) { + console.log(`\n 📝 ${task.type} (${task.id})`) + console.log(` 状态: ${task.status}`) + console.log(` 目标: ${task.targetType} / ${task.targetId}`) + console.log(` 创建时间: ${task.createdAt}`) + console.log(` 更新时间: ${task.updatedAt}`) + + if (task.errorMessage || task.errorCode) { + console.log(` ❌ 错误码: ${task.errorCode || 'N/A'}`) + console.log(` ❌ 错误信息: ${task.errorMessage?.substring(0, 200) || 'N/A'}`) + } + + // 获取任务事件 + const events = await prisma.taskEvent.findMany({ + where: { taskId: task.id }, + orderBy: { createdAt: 'desc' }, + take: 3 + }) + + if (events.length > 0) { + console.log(` 最近事件:`) + for (const event of events) { + console.log(` - ${event.eventType}: ${JSON.stringify(event.payload).substring(0, 100)}`) + } + } + } + + // 5. 检查 Worker 队列状态 + console.log('\n5️⃣ 检查 Worker 配置:') + console.log(` REDIS_HOST: ${process.env.REDIS_HOST || '未设置'}`) + console.log(` REDIS_PORT: ${process.env.REDIS_PORT || '未设置'}`) + + // 尝试连接 Redis + try { + const { Redis } = await import('ioredis') + const redis = new Redis({ + host: process.env.REDIS_HOST || 'localhost', + port: parseInt(process.env.REDIS_PORT || '6379'), + maxRetriesPerRequest: 3, + connectTimeout: 5000 + }) + + const pingResult = await redis.ping() + console.log(` ✅ Redis 连接: ${pingResult}`) + + // 检查 BullMQ 队列 + const queueKeys = await redis.keys('bull:*:id') + console.log(` BullMQ 队列数量: ${queueKeys.length}`) + + for (const key of queueKeys.slice(0, 5)) { + const queueName = key.replace('bull:', '').replace(':id', '') + const jobCounts = await redis.hgetall(`bull:${queueName}:id`) + console.log(` - ${queueName}`) + } + + redis.disconnect() + } catch (error) { + console.log(` ❌ Redis 连接失败:`, error) + } + + // 6. 检查模型配置 + console.log('\n6️⃣ 检查用户模型配置:') + const userPreference = await prisma.userPreference.findUnique({ + where: { userId: project.userId } + }) + + if (!userPreference) { + console.log(' ❌ 用户偏好配置不存在') + } else { + console.log(` 角色模型: ${userPreference.characterModel || '未设置'}`) + console.log(` 场景模型: ${userPreference.locationModel || '未设置'}`) + console.log(` 视频模型: ${userPreference.videoModel || '未设置'}`) + console.log(` 编辑模型: ${userPreference.editModel || '未设置'}`) + console.log(` 口型同步模型: ${userPreference.lipSyncModel || '未设置'}`) + console.log(` 分析模型: ${userPreference.analysisModel || '未设置'}`) + } + + console.log('\n✨ 诊断完成!') + + await prisma.$disconnect() +} + +const projectId = process.argv[2] +if (!projectId) { + console.log('用法: npx tsx scripts/diagnose-project.ts ') + console.log('示例: npx tsx scripts/diagnose-project.ts fae709e9-9215-4b3f-9f53-dad871f09896') + process.exit(1) +} + +diagnoseProject(projectId).catch(console.error) diff --git a/scripts/guards/api-route-contract-guard.mjs b/scripts/guards/api-route-contract-guard.mjs new file mode 100644 index 0000000..3bcdfab --- /dev/null +++ b/scripts/guards/api-route-contract-guard.mjs @@ -0,0 +1,116 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' +import { pathToFileURL } from 'url' + +const root = process.cwd() +const apiDir = path.join(root, 'src', 'app', 'api') + +export const API_HANDLER_ALLOWLIST = new Set([ + 'src/app/api/auth/[...nextauth]/route.ts', + 'src/app/api/files/[...path]/route.ts', + 'src/app/api/system/boot-id/route.ts', +]) + +export const PUBLIC_ROUTE_ALLOWLIST = new Set([ + 'src/app/api/auth/[...nextauth]/route.ts', + 'src/app/api/auth/register/route.ts', + 'src/app/api/cos/image/route.ts', + 'src/app/api/files/[...path]/route.ts', + 'src/app/api/storage/sign/route.ts', + 'src/app/api/system/boot-id/route.ts', +]) + +const AUTH_CALL_PATTERNS = [ + /\brequireUserAuth\s*\(/, + /\brequireProjectAuth\s*\(/, + /\brequireProjectAuthLight\s*\(/, +] + +function fail(title, details = []) { + process.stderr.write(`\n[api-route-contract-guard] ${title}\n`) + for (const detail of details) { + process.stderr.write(` - ${detail}\n`) + } + process.exit(1) +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (entry.name === 'route.ts') out.push(fullPath) + } + return out +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function hasApiHandlerWrapper(content) { + return /\bapiHandler\s*\(/.test(content) +} + +function hasRequiredAuth(content) { + return AUTH_CALL_PATTERNS.some((pattern) => pattern.test(content)) +} + +export function inspectRouteContract(relPath, content) { + const violations = [] + + if (!API_HANDLER_ALLOWLIST.has(relPath) && !hasApiHandlerWrapper(content)) { + violations.push(`${relPath} missing apiHandler wrapper`) + } + + if (!PUBLIC_ROUTE_ALLOWLIST.has(relPath) && !hasRequiredAuth(content)) { + violations.push(`${relPath} missing requireUserAuth/requireProjectAuth/requireProjectAuthLight`) + } + + return violations +} + +export function findApiRouteContractViolations(scanRoot = root) { + const routesRoot = path.join(scanRoot, 'src', 'app', 'api') + return walk(routesRoot) + .map((fullPath) => { + const relPath = path.relative(scanRoot, fullPath).split(path.sep).join('/') + const content = fs.readFileSync(fullPath, 'utf8') + return inspectRouteContract(relPath, content) + }) + .flat() +} + +export function main() { + if (!fs.existsSync(apiDir)) { + fail('Missing src/app/api directory') + } + + const violations = walk(apiDir) + .map((fullPath) => { + const relPath = toRel(fullPath) + const content = fs.readFileSync(fullPath, 'utf8') + return inspectRouteContract(relPath, content) + }) + .flat() + + if (violations.length > 0) { + fail('Found API route contract violations', violations) + } + + process.stdout.write( + `[api-route-contract-guard] OK routes=${walk(apiDir).length} public=${PUBLIC_ROUTE_ALLOWLIST.size} apiHandlerExceptions=${API_HANDLER_ALLOWLIST.size}\n`, + ) +} + +if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { + main() +} diff --git a/scripts/guards/changed-file-test-impact-guard.mjs b/scripts/guards/changed-file-test-impact-guard.mjs new file mode 100644 index 0000000..046f9da --- /dev/null +++ b/scripts/guards/changed-file-test-impact-guard.mjs @@ -0,0 +1,106 @@ +#!/usr/bin/env node + +import { execSync } from 'node:child_process' +import { pathToFileURL } from 'node:url' + +const RULES = [ + { + name: 'api', + source: /^src\/app\/api\//, + tests: [/^tests\/integration\/api\/contract\//, /^tests\/system\//, /^tests\/regression\//], + message: 'changing src/app/api/** requires a matching contract, system, or regression test change', + }, + { + name: 'worker', + source: /^src\/lib\/workers\//, + tests: [/^tests\/unit\/worker\//, /^tests\/system\//, /^tests\/regression\//], + message: 'changing src/lib/workers/** requires a matching worker, system, or regression test change', + }, + { + name: 'task', + source: /^src\/lib\/task\//, + tests: [/^tests\/unit\/task\//, /^tests\/system\//, /^tests\/regression\//], + message: 'changing src/lib/task/** requires a matching task, system, or regression test change', + }, + { + name: 'media', + source: /^src\/lib\/media\//, + tests: [/^tests\/unit\//, /^tests\/system\//, /^tests\/regression\//], + message: 'changing src/lib/media/** requires a matching unit, system, or regression test change', + }, + { + name: 'provider', + source: /^src\/lib\/(generator-api|generators|model-gateway|lipsync|providers)\//, + tests: [/^tests\/unit\/(providers|model-gateway|llm)\//, /^tests\/integration\/provider\//, /^tests\/system\//, /^tests\/regression\//], + message: 'changing provider/gateway code requires provider contract, system, or regression test change', + }, +] + +function normalizeChangedFiles(rawFiles) { + return rawFiles + .flatMap((item) => item.split(/[\n,]/)) + .map((item) => item.trim()) + .filter(Boolean) +} + +function readGitChangedFiles() { + try { + const output = execSync('git diff --name-only --cached', { + cwd: process.cwd(), + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'], + }) + return normalizeChangedFiles([output]) + } catch { + return [] + } +} + +export function inspectChangedFiles(changedFiles) { + const changed = normalizeChangedFiles(changedFiles) + const changedTests = changed.filter((file) => file.startsWith('tests/')) + const violations = [] + + for (const rule of RULES) { + const impactedSources = changed.filter((file) => rule.source.test(file)) + if (impactedSources.length === 0) continue + const hasMatchingTestChange = changedTests.some((file) => rule.tests.some((pattern) => pattern.test(file))) + if (!hasMatchingTestChange) { + violations.push(`${rule.name}: ${rule.message}; sources=${impactedSources.join(',')}`) + } + } + + return violations +} + +function fail(violations) { + console.error('\n[changed-file-test-impact-guard] Missing matching test changes') + for (const violation of violations) { + console.error(` - ${violation}`) + } + process.exit(1) +} + +function runCli() { + const inputFiles = process.argv.slice(2) + const changedFiles = inputFiles.length > 0 + ? normalizeChangedFiles(inputFiles) + : normalizeChangedFiles([process.env.TEST_IMPACT_CHANGED_FILES || '', ...readGitChangedFiles()]) + + if (changedFiles.length === 0) { + console.log('[changed-file-test-impact-guard] SKIP no changed files detected') + process.exit(0) + } + + const violations = inspectChangedFiles(changedFiles) + if (violations.length > 0) { + fail(violations) + } + + console.log(`[changed-file-test-impact-guard] OK files=${changedFiles.length}`) +} + +const entryHref = process.argv[1] ? pathToFileURL(process.argv[1]).href : null +if (entryHref && import.meta.url === entryHref) { + runCli() +} diff --git a/scripts/guards/file-line-count-guard.mjs b/scripts/guards/file-line-count-guard.mjs new file mode 100644 index 0000000..ff895f2 --- /dev/null +++ b/scripts/guards/file-line-count-guard.mjs @@ -0,0 +1,89 @@ +#!/usr/bin/env node +import fs from 'fs' +import path from 'path' + +const ROOT = process.cwd() + +const RULES = [ + { + label: 'component', + dir: 'src', + include: (relPath) => + relPath.includes('/components/') + && /\.(ts|tsx)$/.test(relPath), + limit: 500, + }, + { + label: 'hook', + dir: 'src', + include: (relPath) => + (relPath.includes('/hooks/') || /\/use[A-Z].+\.(ts|tsx)$/.test(relPath)) + && /\.(ts|tsx)$/.test(relPath), + limit: 400, + }, + { + label: 'worker-handler', + dir: 'src/lib/workers/handlers', + include: (relPath) => /\.(ts|tsx)$/.test(relPath), + limit: 300, + }, + { + label: 'mutation', + dir: 'src/lib/query/mutations', + include: (relPath) => /\.(ts|tsx)$/.test(relPath) && !relPath.endsWith('/index.ts'), + limit: 300, + }, +] + +const walkFiles = (absDir, relBase = '') => { + if (!fs.existsSync(absDir)) return [] + const entries = fs.readdirSync(absDir, { withFileTypes: true }) + const out = [] + for (const entry of entries) { + const abs = path.join(absDir, entry.name) + const rel = path.join(relBase, entry.name).replace(/\\/g, '/') + if (entry.isDirectory()) { + out.push(...walkFiles(abs, rel)) + continue + } + out.push({ absPath: abs, relPath: rel }) + } + return out +} + +const countLines = (absPath) => { + const raw = fs.readFileSync(absPath, 'utf8') + if (raw.length === 0) return 0 + return raw.split('\n').length +} + +const violations = [] + +for (const rule of RULES) { + const absDir = path.join(ROOT, rule.dir) + const files = walkFiles(absDir, rule.dir).filter((f) => rule.include(f.relPath)) + for (const file of files) { + const lineCount = countLines(file.absPath) + if (lineCount > rule.limit) { + violations.push({ + label: rule.label, + relPath: file.relPath, + lineCount, + limit: rule.limit, + }) + } + } +} + +if (violations.length === 0) { + process.stdout.write('[file-line-count-guard] PASS\n') + process.exit(0) +} + +process.stderr.write('[file-line-count-guard] FAIL: file size budget exceeded\n') +for (const violation of violations) { + process.stderr.write( + `- [${violation.label}] ${violation.relPath}: ${violation.lineCount} > ${violation.limit}\n`, + ) +} +process.exit(1) diff --git a/scripts/guards/image-reference-normalization-guard.mjs b/scripts/guards/image-reference-normalization-guard.mjs new file mode 100644 index 0000000..766c2e6 --- /dev/null +++ b/scripts/guards/image-reference-normalization-guard.mjs @@ -0,0 +1,102 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' +import { pathToFileURL } from 'url' + +const root = process.cwd() +const handlersDir = path.join(root, 'src', 'lib', 'workers', 'handlers') + +export const NORMALIZATION_HELPER_ALLOWLIST = new Set([ + 'src/lib/workers/handlers/image-task-handler-shared.ts', +]) + +const ACCEPTED_NORMALIZATION_MARKERS = [ + /\bnormalizeReferenceImagesForGeneration\s*\(/, + /\bnormalizeToBase64ForGeneration\s*\(/, + /\bgenerateProjectLabeledImageToStorage\s*\(/, + /\bgenerateCleanImageToStorage\s*\(/, +] + +function fail(title, details = []) { + process.stderr.write(`\n[image-reference-normalization-guard] ${title}\n`) + for (const detail of details) { + process.stderr.write(` - ${detail}\n`) + } + process.exit(1) +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (entry.name.endsWith('.ts')) out.push(fullPath) + } + return out +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function usesGenerationReferenceImages(content) { + return /\bresolveImageSourceFromGeneration\s*\(/.test(content) && /\breferenceImages\s*:/.test(content) +} + +function hasNormalizationMarker(content) { + return ACCEPTED_NORMALIZATION_MARKERS.some((pattern) => pattern.test(content)) +} + +export function inspectImageReferenceNormalization(relPath, content) { + if (NORMALIZATION_HELPER_ALLOWLIST.has(relPath)) return [] + if (!usesGenerationReferenceImages(content)) return [] + if (hasNormalizationMarker(content)) return [] + return [ + `${relPath} uses resolveImageSourceFromGeneration with referenceImages but does not reference normalizeReferenceImagesForGeneration/normalizeToBase64ForGeneration/generateProjectLabeledImageToStorage/generateCleanImageToStorage`, + ] +} + +export function findImageReferenceNormalizationViolations(scanRoot = root) { + const scanDir = path.join(scanRoot, 'src', 'lib', 'workers', 'handlers') + return walk(scanDir) + .map((fullPath) => { + const relPath = path.relative(scanRoot, fullPath).split(path.sep).join('/') + const content = fs.readFileSync(fullPath, 'utf8') + return inspectImageReferenceNormalization(relPath, content) + }) + .flat() +} + +export function main() { + if (!fs.existsSync(handlersDir)) { + fail('Missing src/lib/workers/handlers directory') + } + + const handlerFiles = walk(handlersDir) + const violations = handlerFiles + .map((fullPath) => { + const relPath = toRel(fullPath) + const content = fs.readFileSync(fullPath, 'utf8') + return inspectImageReferenceNormalization(relPath, content) + }) + .flat() + + if (violations.length > 0) { + fail('Found image reference normalization violations', violations) + } + + process.stdout.write( + `[image-reference-normalization-guard] OK handlers=${handlerFiles.length} allowlist=${NORMALIZATION_HELPER_ALLOWLIST.size}\n`, + ) +} + +if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { + main() +} diff --git a/scripts/guards/locale-navigation-guard.mjs b/scripts/guards/locale-navigation-guard.mjs new file mode 100644 index 0000000..b2ebea2 --- /dev/null +++ b/scripts/guards/locale-navigation-guard.mjs @@ -0,0 +1,101 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) + +const scanDirectories = [ + 'src/app/[locale]', +] + +const extraFiles = [ + 'src/components/Navbar.tsx', + 'src/components/LanguageSwitcher.tsx', +] + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (sourceExtensions.has(path.extname(fullPath))) { + out.push(fullPath) + } + } + return out +} + +function gatherTargetFiles() { + const files = scanDirectories.flatMap((dir) => walk(path.join(root, dir))) + for (const relPath of extraFiles) { + const fullPath = path.join(root, relPath) + if (fs.existsSync(fullPath)) { + files.push(fullPath) + } + } + return Array.from(new Set(files)) +} + +function findViolations(content, relPath) { + const violations = [] + const lines = content.split('\n') + + const nextLinkImport = /from\s+['"]next\/link['"]/ + const nextNavigationUseRouterImport = /import\s*{[\s\S]*?\buseRouter\b[\s\S]*?}\s*from\s*['"]next\/navigation['"]/m + const rootHrefLiteral = /\bhref\s*=\s*["']\// + const rootHrefTemplate = /\bhref\s*=\s*{`\// + const rootRouterCall = /\brouter\.(push|replace|prefetch)\s*\(\s*["'`]\// + + const nextLinkIndex = content.search(nextLinkImport) + if (nextLinkIndex >= 0) { + const lineNo = content.slice(0, nextLinkIndex).split('\n').length + violations.push(`${relPath}:${lineNo} do not import next/link in locale navigation surface; use @/i18n/navigation Link`) + } + + const nextNavigationRouterIndex = content.search(nextNavigationUseRouterImport) + if (nextNavigationRouterIndex >= 0) { + const lineNo = content.slice(0, nextNavigationRouterIndex).split('\n').length + violations.push(`${relPath}:${lineNo} do not import useRouter from next/navigation in locale navigation surface; use @/i18n/navigation useRouter`) + } + + for (let index = 0; index < lines.length; index += 1) { + const line = lines[index] + const lineNo = index + 1 + if (rootHrefLiteral.test(line) || rootHrefTemplate.test(line)) { + violations.push(`${relPath}:${lineNo} do not use root-literal href; use Link href={{ pathname: '...' }} via @/i18n/navigation`) + } + if (rootRouterCall.test(line)) { + violations.push(`${relPath}:${lineNo} do not use root-literal router navigation; use router.push/replace({ pathname: '...' }) via @/i18n/navigation`) + } + } + + return violations +} + +const violations = [] +for (const filePath of gatherTargetFiles()) { + const content = fs.readFileSync(filePath, 'utf8') + violations.push(...findViolations(content, toRel(filePath))) +} + +if (violations.length > 0) { + console.error('\n[locale-navigation-guard] violations found:') + for (const violation of violations) { + console.error(` - ${violation}`) + } + process.exit(1) +} + +console.log('[locale-navigation-guard] OK') diff --git a/scripts/guards/no-api-direct-llm-call.mjs b/scripts/guards/no-api-direct-llm-call.mjs new file mode 100644 index 0000000..0a458a2 --- /dev/null +++ b/scripts/guards/no-api-direct-llm-call.mjs @@ -0,0 +1,77 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const scanRoots = ['src/app/api', 'src/pages/api'] +const allowedPrefixes = [] +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) + +function fail(title, details = []) { + console.error(`\n[no-api-direct-llm-call] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + const ext = path.extname(entry.name) + if (sourceExtensions.has(ext)) { + out.push(fullPath) + } + } + return out +} + +function isAllowedFile(relPath) { + return allowedPrefixes.some((prefix) => relPath.startsWith(prefix)) +} + +function collectViolations(fullPath) { + const relPath = toRel(fullPath) + if (isAllowedFile(relPath)) return [] + + const content = fs.readFileSync(fullPath, 'utf8') + const lines = content.split('\n') + const violations = [] + + for (let i = 0; i < lines.length; i += 1) { + const line = lines[i] + if (/from\s+['"]@\/lib\/llm-client['"]/.test(line)) { + violations.push(`${relPath}:${i + 1} forbidden import from '@/lib/llm-client'`) + } + if (/\bchatCompletion[A-Za-z0-9_]*\s*\(/.test(line)) { + violations.push(`${relPath}:${i + 1} forbidden direct chatCompletion* call`) + } + if (/\bisInternalTaskExecution\b/.test(line)) { + violations.push(`${relPath}:${i + 1} forbidden dual-track fallback marker isInternalTaskExecution`) + } + } + + return violations +} + +const allFiles = scanRoots.flatMap((scanRoot) => walk(path.join(root, scanRoot))) +const violations = allFiles.flatMap((fullPath) => collectViolations(fullPath)) + +if (violations.length > 0) { + fail('Found forbidden direct LLM execution in production API routes', violations) +} + +console.log('[no-api-direct-llm-call] OK') diff --git a/scripts/guards/no-duplicate-endpoint-entry.mjs b/scripts/guards/no-duplicate-endpoint-entry.mjs new file mode 100644 index 0000000..eedd193 --- /dev/null +++ b/scripts/guards/no-duplicate-endpoint-entry.mjs @@ -0,0 +1,45 @@ +#!/usr/bin/env node +import fs from 'fs' +import path from 'path' + +const ROOT = process.cwd() +const API_ROOT = path.join(ROOT, 'src', 'app', 'api') + +const KNOWN_DUPLICATE_GROUPS = [ + { + key: 'user-llm-test-connection', + candidates: [ + 'src/app/api/user/api-config/test-connection/route.ts', + 'src/app/api/user/test-llm-provider/route.ts', + ], + }, +] + +const exists = (relPath) => fs.existsSync(path.join(ROOT, relPath)) + +const failures = [] +for (const group of KNOWN_DUPLICATE_GROUPS) { + const present = group.candidates.filter(exists) + if (present.length > 1) { + failures.push({ key: group.key, present }) + } +} + +if (!fs.existsSync(API_ROOT)) { + process.stdout.write('[no-duplicate-endpoint-entry] PASS (api dir missing)\n') + process.exit(0) +} + +if (failures.length === 0) { + process.stdout.write('[no-duplicate-endpoint-entry] PASS\n') + process.exit(0) +} + +process.stderr.write('[no-duplicate-endpoint-entry] FAIL: duplicated endpoint entry detected\n') +for (const failure of failures) { + process.stderr.write(`- ${failure.key}\n`) + for (const relPath of failure.present) { + process.stderr.write(` - ${relPath}\n`) + } +} +process.exit(1) diff --git a/scripts/guards/no-hardcoded-model-capabilities.mjs b/scripts/guards/no-hardcoded-model-capabilities.mjs new file mode 100644 index 0000000..b4c381e --- /dev/null +++ b/scripts/guards/no-hardcoded-model-capabilities.mjs @@ -0,0 +1,73 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) +const scanRoots = ['src'] +const allowConstantDefinitionsIn = new Set([ + 'src/lib/constants.ts', +]) +const forbiddenCapabilityConstants = [ + 'VIDEO_MODELS', + 'FIRST_LAST_FRAME_MODELS', + 'AUDIO_SUPPORTED_MODELS', + 'BANANA_MODELS', + 'BANANA_RESOLUTION_OPTIONS', +] + +function fail(title, details = []) { + console.error(`\n[no-hardcoded-model-capabilities] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (sourceExtensions.has(path.extname(entry.name))) { + out.push(fullPath) + } + } + return out +} + +const files = scanRoots.flatMap((scanRoot) => walk(path.join(root, scanRoot))) +const violations = [] + +for (const fullPath of files) { + const relPath = toRel(fullPath) + if (allowConstantDefinitionsIn.has(relPath)) continue + + const lines = fs.readFileSync(fullPath, 'utf8').split('\n') + for (let index = 0; index < lines.length; index += 1) { + const line = lines[index] + for (const token of forbiddenCapabilityConstants) { + const tokenPattern = new RegExp(`\\b${token}\\b`) + if (tokenPattern.test(line)) { + violations.push(`${relPath}:${index + 1} forbidden hardcoded model capability token ${token}`) + } + } + } +} + +if (violations.length > 0) { + fail('Found hardcoded model capability usage', violations) +} + +console.log('[no-hardcoded-model-capabilities] OK') diff --git a/scripts/guards/no-internal-task-sync-fallback.mjs b/scripts/guards/no-internal-task-sync-fallback.mjs new file mode 100644 index 0000000..2e94ece --- /dev/null +++ b/scripts/guards/no-internal-task-sync-fallback.mjs @@ -0,0 +1,77 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const scanRoots = ['src/app/api', 'src/pages/api'] +const allowedPrefixes = ['src/app/api/ui-review/', 'src/pages/api/ui-review/'] +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) + +function fail(title, details = []) { + console.error(`\n[no-internal-task-sync-fallback] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (sourceExtensions.has(path.extname(entry.name))) { + out.push(fullPath) + } + } + return out +} + +function isAllowedFile(relPath) { + return allowedPrefixes.some((prefix) => relPath.startsWith(prefix)) +} + +function collectViolations(fullPath) { + const relPath = toRel(fullPath) + if (isAllowedFile(relPath)) return [] + + const content = fs.readFileSync(fullPath, 'utf8') + const lines = content.split('\n') + const violations = [] + + for (let i = 0; i < lines.length; i += 1) { + const line = lines[i] + if (/\bisInternalTaskExecution\b/.test(line)) { + violations.push(`${relPath}:${i + 1} forbidden dual-track fallback marker isInternalTaskExecution`) + } + if (/\bshouldRunSyncTask\s*\(/.test(line)) { + violations.push(`${relPath}:${i + 1} forbidden sync-mode branch helper shouldRunSyncTask`) + } + } + + if (/\bmaybeSubmitLLMTask\s*\(/.test(content) && !/sync mode is disabled for this route/.test(content)) { + violations.push(`${relPath} missing explicit sync-disabled guard after maybeSubmitLLMTask`) + } + + return violations +} + +const allFiles = scanRoots.flatMap((scanRoot) => walk(path.join(root, scanRoot))) +const violations = allFiles.flatMap((fullPath) => collectViolations(fullPath)) + +if (violations.length > 0) { + fail('Found potential sync fallback or dual-track task branch in production API routes', violations) +} + +console.log('[no-internal-task-sync-fallback] OK') diff --git a/scripts/guards/no-media-provider-bypass.mjs b/scripts/guards/no-media-provider-bypass.mjs new file mode 100644 index 0000000..7646f38 --- /dev/null +++ b/scripts/guards/no-media-provider-bypass.mjs @@ -0,0 +1,88 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) +const allowFactoryImportIn = new Set([ + 'src/lib/generator-api.ts', + 'src/lib/generators/factory.ts', +]) + +function fail(title, details = []) { + console.error(`\n[no-media-provider-bypass] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (sourceExtensions.has(path.extname(entry.name))) { + out.push(fullPath) + } + } + return out +} + +const generatorApiPath = path.join(root, 'src/lib/generator-api.ts') +if (!fs.existsSync(generatorApiPath)) { + fail('Missing src/lib/generator-api.ts') +} + +const generatorApiContent = fs.readFileSync(generatorApiPath, 'utf8') +const resolveModelSelectionHits = (generatorApiContent.match(/resolveModelSelection\s*\(/g) || []).length +if (resolveModelSelectionHits < 2) { + fail('generator-api must route both image and video generation through resolveModelSelection', [ + 'expected >= 2 resolveModelSelection(...) calls in src/lib/generator-api.ts', + ]) +} + +const allFiles = walk(path.join(root, 'src')) +const violations = [] + +for (const fullPath of allFiles) { + const relPath = toRel(fullPath) + const content = fs.readFileSync(fullPath, 'utf8') + const lines = content.split('\n') + + for (let i = 0; i < lines.length; i += 1) { + const line = lines[i] + + if ( + relPath !== 'src/lib/generators/factory.ts' && + (/\bcreateImageGeneratorByModel\s*\(/.test(line) || /\bcreateVideoGeneratorByModel\s*\(/.test(line)) + ) { + violations.push(`${relPath}:${i + 1} forbidden provider-bypass factory call create*GeneratorByModel(...)`) + } + + if ((/\bgetImageApiKey\s*\(/.test(line) || /\bgetVideoApiKey\s*\(/.test(line)) && relPath !== 'src/lib/api-config.ts') { + violations.push(`${relPath}:${i + 1} forbidden direct getImageApiKey/getVideoApiKey usage outside api-config`) + } + + if (/from\s+['"]@\/lib\/generators\/factory['"]/.test(line) && !allowFactoryImportIn.has(relPath)) { + violations.push(`${relPath}:${i + 1} forbidden direct import from '@/lib/generators/factory' (must go through generator-api)`) + } + } +} + +if (violations.length > 0) { + fail('Found media provider routing bypass', violations) +} + +console.log('[no-media-provider-bypass] OK') diff --git a/scripts/guards/no-model-key-downgrade.mjs b/scripts/guards/no-model-key-downgrade.mjs new file mode 100644 index 0000000..59c8c80 --- /dev/null +++ b/scripts/guards/no-model-key-downgrade.mjs @@ -0,0 +1,93 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) +const scanRoots = ['src/app', 'src/lib'] +const modelFields = [ + 'analysisModel', + 'characterModel', + 'locationModel', + 'storyboardModel', + 'editModel', + 'videoModel', +] + +function fail(title, details = []) { + console.error(`\n[no-model-key-downgrade] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (sourceExtensions.has(path.extname(entry.name))) { + out.push(fullPath) + } + } + return out +} + +function collectViolations(filePath) { + const relPath = toRel(filePath) + const lines = fs.readFileSync(filePath, 'utf8').split('\n') + const violations = [] + + const modelFieldPattern = new RegExp(`\\b(${modelFields.join('|')})\\s*:\\s*[^,\\n]*\\bmodelId\\b`) + const optionModelIdPattern = /value=\{model\.modelId\}/ + + for (let index = 0; index < lines.length; index += 1) { + const line = lines[index] + if (modelFieldPattern.test(line)) { + violations.push(`${relPath}:${index + 1} default model field must persist model_key, not modelId`) + } + if (optionModelIdPattern.test(line)) { + violations.push(`${relPath}:${index + 1} UI option value must use modelKey, not model.modelId`) + } + } + + return violations +} + +function assertFileContains(relativePath, requiredSnippets) { + const fullPath = path.join(root, relativePath) + if (!fs.existsSync(fullPath)) { + fail('Missing required contract file', [relativePath]) + } + const content = fs.readFileSync(fullPath, 'utf8') + const missing = requiredSnippets.filter((snippet) => !content.includes(snippet)) + if (missing.length > 0) { + fail('Model key contract anchor missing', missing.map((snippet) => `${relativePath} missing: ${snippet}`)) + } +} + +const files = scanRoots.flatMap((scanRoot) => walk(path.join(root, scanRoot))) +const violations = files.flatMap((filePath) => collectViolations(filePath)) + +assertFileContains('src/lib/model-config-contract.ts', ['parseModelKeyStrict', 'markerIndex === -1) return null']) +assertFileContains('src/lib/config-service.ts', ['parseModelKeyStrict']) +assertFileContains('src/app/api/user/api-config/route.ts', ['validateDefaultModelKey', 'must be provider::modelId']) +assertFileContains('src/app/api/novel-promotion/[projectId]/route.ts', ['must be provider::modelId']) + +if (violations.length > 0) { + fail('Found model key downgrade pattern', violations) +} + +console.log('[no-model-key-downgrade] OK') diff --git a/scripts/guards/no-multiple-sources-of-truth.mjs b/scripts/guards/no-multiple-sources-of-truth.mjs new file mode 100644 index 0000000..9f2e668 --- /dev/null +++ b/scripts/guards/no-multiple-sources-of-truth.mjs @@ -0,0 +1,109 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) + +const lineScanRoots = [ + 'src/app/[locale]/workspace/[projectId]/modes/novel-promotion', + 'src/lib/query/hooks', +] + +const fileScanRoots = [ + 'src/app/api/novel-promotion', + 'src/lib/workers/handlers', +] + +const lineRules = [ + { + name: 'shadow state localStoryboards', + test: (line) => /const\s*\[\s*localStoryboards\s*,\s*setLocalStoryboards\s*\]\s*=\s*useState/.test(line), + }, + { + name: 'shadow state localVoiceLines', + test: (line) => /const\s*\[\s*localVoiceLines\s*,\s*setLocalVoiceLines\s*\]\s*=\s*useState/.test(line), + }, + { + name: 'hardcoded queryKey array', + test: (line) => /queryKey\s*:\s*\[/.test(line), + }, +] + +function fail(title, details = []) { + console.error(`\n[no-multiple-sources-of-truth] ${title}`) + for (const detail of details) { + console.error(` - ${detail}`) + } + process.exit(1) +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (sourceExtensions.has(path.extname(entry.name))) out.push(fullPath) + } + return out +} + +function collectLineViolations(fullPath) { + const relPath = toRel(fullPath) + const content = fs.readFileSync(fullPath, 'utf8') + const lines = content.split('\n') + const violations = [] + + for (let i = 0; i < lines.length; i += 1) { + const line = lines[i] + for (const rule of lineRules) { + if (rule.test(line)) { + violations.push(`${relPath}:${i + 1} forbidden: ${rule.name}`) + } + } + } + + return violations +} + +function collectFileViolations(fullPath) { + const relPath = toRel(fullPath) + const content = fs.readFileSync(fullPath, 'utf8') + const violations = [] + + const updateCallRegex = /novelPromotionProject\.update\(\{[\s\S]*?\n\s*\}\)/g + for (const match of content.matchAll(updateCallRegex)) { + const block = match[0] + const hasStageWrite = /\bdata\s*:\s*\{[\s\S]*?\bstage\s*:/.test(block) + if (!hasStageWrite) continue + const before = content.slice(0, match.index ?? 0) + const lineNumber = before.split('\n').length + violations.push(`${relPath}:${lineNumber} forbidden: DB stage write in novelPromotionProject.update`) + } + + return violations +} + +const lineFiles = lineScanRoots.flatMap((scanRoot) => walk(path.join(root, scanRoot))) +const fileFiles = fileScanRoots.flatMap((scanRoot) => walk(path.join(root, scanRoot))) + +const lineViolations = lineFiles.flatMap((fullPath) => collectLineViolations(fullPath)) +const fileViolations = fileFiles.flatMap((fullPath) => collectFileViolations(fullPath)) +const allViolations = [...lineViolations, ...fileViolations] + +if (allViolations.length > 0) { + fail('Found multiple-sources-of-truth regressions', allViolations) +} + +console.log('[no-multiple-sources-of-truth] OK') diff --git a/scripts/guards/no-provider-guessing.mjs b/scripts/guards/no-provider-guessing.mjs new file mode 100644 index 0000000..d78fb32 --- /dev/null +++ b/scripts/guards/no-provider-guessing.mjs @@ -0,0 +1,95 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) +const scanRoots = ['src/lib', 'src/app/api'] +const allowModelRegistryUsage = new Set() + +function fail(title, details = []) { + console.error(`\n[no-provider-guessing] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (sourceExtensions.has(path.extname(entry.name))) { + out.push(fullPath) + } + } + return out +} + +const apiConfigPath = path.join(root, 'src/lib/api-config.ts') +if (!fs.existsSync(apiConfigPath)) { + fail('Missing src/lib/api-config.ts') +} +const legacyRegistryPath = path.join(root, 'src/lib/model-registry.ts') +if (fs.existsSync(legacyRegistryPath)) { + fail('Legacy runtime registry must be removed', ['src/lib/model-registry.ts']) +} +const apiConfigText = fs.readFileSync(apiConfigPath, 'utf8') + +const forbiddenApiConfigTokens = [ + 'includeAnyType', + 'crossTypeCandidates', + 'matches multiple providers across media types', +] +const apiViolations = forbiddenApiConfigTokens + .filter((token) => apiConfigText.includes(token)) + .map((token) => `src/lib/api-config.ts contains forbidden provider-guessing token: ${token}`) + +// 验证 api-config.ts 使用严格 provider.id 精确匹配(不按 type 过滤,不做 providerKey 模糊匹配) +if (!apiConfigText.includes('pickProviderStrict(')) { + apiViolations.push('src/lib/api-config.ts missing strict provider resolution function (pickProviderStrict)') +} + +const files = scanRoots.flatMap((scanRoot) => walk(path.join(root, scanRoot))) +const violations = [...apiViolations] + +for (const fullPath of files) { + const relPath = toRel(fullPath) + const content = fs.readFileSync(fullPath, 'utf8') + const lines = content.split('\n') + + for (let index = 0; index < lines.length; index += 1) { + const line = lines[index] + if ( + /from\s+['"]@\/lib\/model-registry['"]/.test(line) + && !allowModelRegistryUsage.has(relPath) + ) { + violations.push(`${relPath}:${index + 1} forbidden model-registry import outside allowed boundary`) + } + + if ( + (/\bgetModelRegistryEntry\s*\(/.test(line) || /\blistRegisteredModels\s*\(/.test(line)) + && !allowModelRegistryUsage.has(relPath) + ) { + violations.push(`${relPath}:${index + 1} forbidden model-registry runtime mapping usage`) + } + } +} + +if (violations.length > 0) { + fail('Found provider guessing / registry mapping violation', violations) +} + +console.log('[no-provider-guessing] OK') diff --git a/scripts/guards/no-server-mirror-state.mjs b/scripts/guards/no-server-mirror-state.mjs new file mode 100644 index 0000000..db7a7c3 --- /dev/null +++ b/scripts/guards/no-server-mirror-state.mjs @@ -0,0 +1,81 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const scanRoots = [ + 'src/app/[locale]/workspace/[projectId]/modes/novel-promotion', +] +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) + +const forbiddenRules = [ + { + name: 'localProject/localEpisode mirror state', + test: (line) => /\blocalProject\b|\blocalEpisode\b/.test(line), + }, + { + name: 'server mirror useState(projectData.*)', + test: (line) => /useState\s*\(\s*projectData\./.test(line), + }, + { + name: 'server mirror useState(episode?.*)', + test: (line) => /useState\s*\(\s*episode\?\./.test(line), + }, +] + +function fail(title, details = []) { + console.error(`\n[no-server-mirror-state] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + const ext = path.extname(entry.name) + if (sourceExtensions.has(ext)) out.push(fullPath) + } + return out +} + +function collectViolations(fullPath) { + const relPath = toRel(fullPath) + const content = fs.readFileSync(fullPath, 'utf8') + const lines = content.split('\n') + const violations = [] + + for (let i = 0; i < lines.length; i += 1) { + const line = lines[i] + for (const rule of forbiddenRules) { + if (rule.test(line)) { + violations.push(`${relPath}:${i + 1} forbidden: ${rule.name}`) + } + } + } + + return violations +} + +const allFiles = scanRoots.flatMap((scanRoot) => walk(path.join(root, scanRoot))) +const violations = allFiles.flatMap((fullPath) => collectViolations(fullPath)) + +if (violations.length > 0) { + fail('Found forbidden server mirror state patterns', violations) +} + +console.log('[no-server-mirror-state] OK') diff --git a/scripts/guards/prompt-ab-regression.mjs b/scripts/guards/prompt-ab-regression.mjs new file mode 100644 index 0000000..6bcb84b --- /dev/null +++ b/scripts/guards/prompt-ab-regression.mjs @@ -0,0 +1,143 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const catalogPath = path.join(root, 'src', 'lib', 'prompt-i18n', 'catalog.ts') +const singlePlaceholderPattern = /\{([A-Za-z0-9_]+)\}/g +const doublePlaceholderPattern = /\{\{([A-Za-z0-9_]+)\}\}/g +const unresolvedPlaceholderPattern = /\{\{?[A-Za-z0-9_]+\}?\}/g + +function fail(title, details = []) { + console.error(`\n[prompt-ab-regression] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function parseCatalog(text) { + const entries = [] + const entryPattern = /pathStem:\s*'([^']+)'\s*,[\s\S]*?variableKeys:\s*\[([\s\S]*?)\]\s*,/g + for (const match of text.matchAll(entryPattern)) { + const pathStem = match[1] + const rawKeys = match[2] || '' + const keys = Array.from(rawKeys.matchAll(/'([^']+)'/g)).map((item) => item[1]) + entries.push({ pathStem, variableKeys: keys }) + } + return entries +} + +function extractPlaceholders(template) { + const keys = new Set() + for (const match of template.matchAll(singlePlaceholderPattern)) { + if (match[1]) keys.add(match[1]) + } + for (const match of template.matchAll(doublePlaceholderPattern)) { + if (match[1]) keys.add(match[1]) + } + return Array.from(keys) +} + +function replaceAll(template, variables) { + let rendered = template + for (const [key, value] of Object.entries(variables)) { + const pattern = new RegExp(`\\{\\{${key}\\}\\}|\\{${key}\\}`, 'g') + rendered = rendered.replace(pattern, value) + } + return rendered +} + +function setDiff(left, right) { + const rightSet = new Set(right) + return left.filter((item) => !rightSet.has(item)) +} + +if (!fs.existsSync(catalogPath)) { + fail('catalog.ts not found', ['src/lib/prompt-i18n/catalog.ts']) +} + +const catalogText = fs.readFileSync(catalogPath, 'utf8') +const entries = parseCatalog(catalogText) +if (entries.length === 0) { + fail('failed to parse prompt catalog entries') +} + +const violations = [] + +for (const entry of entries) { + const zhPath = path.join(root, 'lib', 'prompts', `${entry.pathStem}.zh.txt`) + const enPath = path.join(root, 'lib', 'prompts', `${entry.pathStem}.en.txt`) + if (!fs.existsSync(zhPath)) { + violations.push(`missing zh template: lib/prompts/${entry.pathStem}.zh.txt`) + continue + } + if (!fs.existsSync(enPath)) { + violations.push(`missing en template: lib/prompts/${entry.pathStem}.en.txt`) + continue + } + + const zhTemplate = fs.readFileSync(zhPath, 'utf8') + const enTemplate = fs.readFileSync(enPath, 'utf8') + const declared = entry.variableKeys + const zhPlaceholders = extractPlaceholders(zhTemplate) + const enPlaceholders = extractPlaceholders(enTemplate) + + const missingInZh = setDiff(declared, zhPlaceholders) + const missingInEn = setDiff(declared, enPlaceholders) + const extraInZh = setDiff(zhPlaceholders, declared) + const extraInEn = setDiff(enPlaceholders, declared) + const zhOnly = setDiff(zhPlaceholders, enPlaceholders) + const enOnly = setDiff(enPlaceholders, zhPlaceholders) + + for (const key of missingInZh) { + violations.push(`missing {${key}} in zh template: lib/prompts/${entry.pathStem}.zh.txt`) + } + for (const key of missingInEn) { + violations.push(`missing {${key}} in en template: lib/prompts/${entry.pathStem}.en.txt`) + } + for (const key of extraInZh) { + violations.push(`unexpected {${key}} in zh template: lib/prompts/${entry.pathStem}.zh.txt`) + } + for (const key of extraInEn) { + violations.push(`unexpected {${key}} in en template: lib/prompts/${entry.pathStem}.en.txt`) + } + for (const key of zhOnly) { + violations.push(`placeholder {${key}} exists only in zh template: ${entry.pathStem}`) + } + for (const key of enOnly) { + violations.push(`placeholder {${key}} exists only in en template: ${entry.pathStem}`) + } + + const variables = Object.fromEntries( + declared.map((key) => [key, `__AB_SAMPLE_${key.toUpperCase()}__`]), + ) + const renderedZh = replaceAll(zhTemplate, variables) + const renderedEn = replaceAll(enTemplate, variables) + + const unresolvedZh = renderedZh.match(unresolvedPlaceholderPattern) || [] + const unresolvedEn = renderedEn.match(unresolvedPlaceholderPattern) || [] + if (unresolvedZh.length > 0) { + violations.push(`unresolved placeholders in zh template: ${entry.pathStem} -> ${unresolvedZh.join(', ')}`) + } + if (unresolvedEn.length > 0) { + violations.push(`unresolved placeholders in en template: ${entry.pathStem} -> ${unresolvedEn.join(', ')}`) + } + + for (const [key, sample] of Object.entries(variables)) { + if (!renderedZh.includes(sample)) { + violations.push(`zh template variable not used after render: ${entry.pathStem}.{${key}}`) + } + if (!renderedEn.includes(sample)) { + violations.push(`en template variable not used after render: ${entry.pathStem}.{${key}}`) + } + } +} + +if (violations.length > 0) { + fail('A/B regression check failed', violations) +} + +console.log(`[prompt-ab-regression] OK (${entries.length} templates checked)`) diff --git a/scripts/guards/prompt-i18n-guard.mjs b/scripts/guards/prompt-i18n-guard.mjs new file mode 100644 index 0000000..ac0af4f --- /dev/null +++ b/scripts/guards/prompt-i18n-guard.mjs @@ -0,0 +1,160 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const sourceExtensions = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs']) +const scanRoots = ['src', 'scripts'] +const allowedPromptTemplateReaders = new Set([ + 'src/lib/prompt-i18n/template-store.ts', + 'scripts/guards/prompt-i18n-guard.mjs', + 'scripts/guards/prompt-semantic-regression.mjs', + 'scripts/guards/prompt-ab-regression.mjs', + 'scripts/guards/prompt-json-canary-guard.mjs', +]) +const languageDirectiveAllowList = new Set([ + 'scripts/guards/prompt-i18n-guard.mjs', +]) +const languageDirectivePattern = /请用中文|中文输出|use Chinese|output in Chinese/i + +function fail(title, details = []) { + console.error(`\n[prompt-i18n-guard] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + out.push(fullPath) + } + return out +} + +function listSourceFiles() { + return scanRoots + .flatMap((scanRoot) => walk(path.join(root, scanRoot))) + .filter((fullPath) => sourceExtensions.has(path.extname(fullPath))) +} + +function collectDirectPromptReadViolations() { + const violations = [] + const files = listSourceFiles() + for (const filePath of files) { + const relPath = toRel(filePath) + if (allowedPromptTemplateReaders.has(relPath)) continue + const content = fs.readFileSync(filePath, 'utf8') + const hasReadFileSync = /\breadFileSync\s*\(/.test(content) + if (!hasReadFileSync) continue + const hasPromptPathToken = + content.includes('lib/prompts') + || ( + /['"]lib['"]/.test(content) + && /['"]prompts['"]/.test(content) + ) + if (hasPromptPathToken) { + violations.push(`${relPath} direct prompt file read is forbidden; use buildPrompt/getPromptTemplate`) + } + } + return violations +} + +function collectLanguageDirectiveViolations() { + const violations = [] + + for (const filePath of listSourceFiles()) { + const relPath = toRel(filePath) + if (languageDirectiveAllowList.has(relPath)) continue + const lines = fs.readFileSync(filePath, 'utf8').split('\n') + for (let index = 0; index < lines.length; index += 1) { + const line = lines[index] + if (languageDirectivePattern.test(line)) { + violations.push(`${relPath}:${index + 1} hardcoded language directive is forbidden`) + } + } + } + + const promptFiles = walk(path.join(root, 'lib', 'prompts')) + .filter((fullPath) => fullPath.endsWith('.en.txt')) + for (const filePath of promptFiles) { + const relPath = toRel(filePath) + const lines = fs.readFileSync(filePath, 'utf8').split('\n') + for (let index = 0; index < lines.length; index += 1) { + const line = lines[index] + if (languageDirectivePattern.test(line)) { + violations.push(`${relPath}:${index + 1} English template cannot require Chinese output`) + } + } + } + + return violations +} + +function collectLegacyPromptFiles() { + return walk(path.join(root, 'lib', 'prompts')) + .map((fullPath) => toRel(fullPath)) + .filter((relPath) => relPath.endsWith('.txt') && !relPath.endsWith('.zh.txt') && !relPath.endsWith('.en.txt')) +} + +function verifyPromptCatalogCoverage() { + const catalogPath = path.join(root, 'src', 'lib', 'prompt-i18n', 'catalog.ts') + if (!fs.existsSync(catalogPath)) { + fail('Missing prompt catalog file', ['src/lib/prompt-i18n/catalog.ts']) + } + + const catalogText = fs.readFileSync(catalogPath, 'utf8') + const stems = Array.from(catalogText.matchAll(/pathStem:\s*'([^']+)'/g)).map((match) => match[1]) + if (stems.length === 0) { + fail('No prompt pathStem found in catalog.ts') + } + + const missing = [] + for (const stem of stems) { + const zhPath = path.join(root, 'lib', 'prompts', `${stem}.zh.txt`) + const enPath = path.join(root, 'lib', 'prompts', `${stem}.en.txt`) + if (!fs.existsSync(zhPath)) { + missing.push(`missing zh template: lib/prompts/${stem}.zh.txt`) + } + if (!fs.existsSync(enPath)) { + missing.push(`missing en template: lib/prompts/${stem}.en.txt`) + } + } + + if (missing.length > 0) { + fail('Prompt template coverage check failed', missing) + } +} + +const legacyPromptFiles = collectLegacyPromptFiles() +if (legacyPromptFiles.length > 0) { + fail('Legacy prompt files found (.txt without locale suffix)', legacyPromptFiles) +} + +verifyPromptCatalogCoverage() + +const promptReadViolations = collectDirectPromptReadViolations() +if (promptReadViolations.length > 0) { + fail('Found direct prompt template reads', promptReadViolations) +} + +const languageViolations = collectLanguageDirectiveViolations() +if (languageViolations.length > 0) { + fail('Found hardcoded language directives', languageViolations) +} + +console.log('[prompt-i18n-guard] OK') diff --git a/scripts/guards/prompt-json-canary-guard.mjs b/scripts/guards/prompt-json-canary-guard.mjs new file mode 100644 index 0000000..8088e14 --- /dev/null +++ b/scripts/guards/prompt-json-canary-guard.mjs @@ -0,0 +1,250 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() + +const CANARY_FILES = { + clips: 'standards/prompt-canary/story_to_script_clips.canary.json', + screenplay: 'standards/prompt-canary/screenplay_conversion.canary.json', + storyboardPanels: 'standards/prompt-canary/storyboard_panels.canary.json', + voiceAnalysis: 'standards/prompt-canary/voice_analysis.canary.json', +} + +const TEMPLATE_TOKEN_REQUIREMENTS = { + 'novel-promotion/agent_clip': ['start', 'end', 'summary', 'location', 'characters'], + 'novel-promotion/screenplay_conversion': [ + 'clip_id', + 'original_text', + 'scenes', + 'heading', + 'content', + 'type', + 'action', + 'dialogue', + 'voiceover', + ], + 'novel-promotion/agent_storyboard_plan': [ + 'panel_number', + 'description', + 'characters', + 'location', + 'scene_type', + 'source_text', + ], + 'novel-promotion/agent_storyboard_detail': [ + 'panel_number', + 'description', + 'characters', + 'location', + 'scene_type', + 'source_text', + 'shot_type', + 'camera_move', + 'video_prompt', + ], + 'novel-promotion/agent_storyboard_insert': [ + 'panel_number', + 'description', + 'characters', + 'location', + 'scene_type', + 'source_text', + 'shot_type', + 'camera_move', + 'video_prompt', + ], + 'novel-promotion/voice_analysis': [ + 'lineIndex', + 'speaker', + 'content', + 'emotionStrength', + 'matchedPanel', + 'storyboardId', + 'panelIndex', + ], +} + +function fail(title, details = []) { + console.error(`\n[prompt-json-canary-guard] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function isRecord(value) { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +function isString(value) { + return typeof value === 'string' +} + +function isNumber(value) { + return typeof value === 'number' && Number.isFinite(value) +} + +function readJson(relativePath) { + const fullPath = path.join(root, relativePath) + if (!fs.existsSync(fullPath)) { + fail('Missing canary fixture', [relativePath]) + } + try { + return JSON.parse(fs.readFileSync(fullPath, 'utf8')) + } catch (error) { + fail('Invalid canary fixture JSON', [`${relativePath}: ${error instanceof Error ? error.message : String(error)}`]) + } +} + +function validateClipCanary(value) { + if (!Array.isArray(value) || value.length === 0) return 'clips fixture must be a non-empty array' + for (let i = 0; i < value.length; i += 1) { + const row = value[i] + if (!isRecord(row)) return `clips[${i}] must be an object` + if (!isString(row.start) || row.start.length < 5) return `clips[${i}].start must be string length >= 5` + if (!isString(row.end) || row.end.length < 5) return `clips[${i}].end must be string length >= 5` + if (!isString(row.summary) || row.summary.length === 0) return `clips[${i}].summary must be non-empty string` + if (!(row.location === null || isString(row.location))) return `clips[${i}].location must be string or null` + if (!Array.isArray(row.characters) || !row.characters.every((item) => isString(item))) { + return `clips[${i}].characters must be string array` + } + } + return null +} + +function validateScreenplayCanary(value) { + if (!isRecord(value)) return 'screenplay fixture must be an object' + if (!isString(value.clip_id) || !value.clip_id) return 'screenplay.clip_id must be non-empty string' + if (!isString(value.original_text)) return 'screenplay.original_text must be string' + if (!Array.isArray(value.scenes) || value.scenes.length === 0) return 'screenplay.scenes must be non-empty array' + + for (let i = 0; i < value.scenes.length; i += 1) { + const scene = value.scenes[i] + if (!isRecord(scene)) return `screenplay.scenes[${i}] must be object` + if (!isNumber(scene.scene_number)) return `screenplay.scenes[${i}].scene_number must be number` + if (!isRecord(scene.heading)) return `screenplay.scenes[${i}].heading must be object` + if (!isString(scene.heading.int_ext)) return `screenplay.scenes[${i}].heading.int_ext must be string` + if (!isString(scene.heading.location)) return `screenplay.scenes[${i}].heading.location must be string` + if (!isString(scene.heading.time)) return `screenplay.scenes[${i}].heading.time must be string` + if (!isString(scene.description)) return `screenplay.scenes[${i}].description must be string` + if (!Array.isArray(scene.characters) || !scene.characters.every((item) => isString(item))) { + return `screenplay.scenes[${i}].characters must be string array` + } + if (!Array.isArray(scene.content) || scene.content.length === 0) return `screenplay.scenes[${i}].content must be non-empty array` + + for (let j = 0; j < scene.content.length; j += 1) { + const segment = scene.content[j] + if (!isRecord(segment)) return `screenplay.scenes[${i}].content[${j}] must be object` + if (!isString(segment.type)) return `screenplay.scenes[${i}].content[${j}].type must be string` + if (segment.type === 'action') { + if (!isString(segment.text)) return `screenplay action[${i}:${j}].text must be string` + } else if (segment.type === 'dialogue') { + if (!isString(segment.character)) return `screenplay dialogue[${i}:${j}].character must be string` + if (!isString(segment.lines)) return `screenplay dialogue[${i}:${j}].lines must be string` + if (segment.parenthetical !== undefined && !isString(segment.parenthetical)) { + return `screenplay dialogue[${i}:${j}].parenthetical must be string when present` + } + } else if (segment.type === 'voiceover') { + if (!isString(segment.text)) return `screenplay voiceover[${i}:${j}].text must be string` + if (segment.character !== undefined && !isString(segment.character)) { + return `screenplay voiceover[${i}:${j}].character must be string when present` + } + } else { + return `screenplay.scenes[${i}].content[${j}].type must be action/dialogue/voiceover` + } + } + } + + return null +} + +function validateStoryboardPanelsCanary(value) { + if (!Array.isArray(value) || value.length === 0) return 'storyboard panels fixture must be non-empty array' + for (let i = 0; i < value.length; i += 1) { + const panel = value[i] + if (!isRecord(panel)) return `storyboardPanels[${i}] must be object` + if (!isNumber(panel.panel_number)) return `storyboardPanels[${i}].panel_number must be number` + if (!isString(panel.description)) return `storyboardPanels[${i}].description must be string` + if (!isString(panel.location)) return `storyboardPanels[${i}].location must be string` + if (!isString(panel.scene_type)) return `storyboardPanels[${i}].scene_type must be string` + if (!isString(panel.source_text)) return `storyboardPanels[${i}].source_text must be string` + if (!isString(panel.shot_type)) return `storyboardPanels[${i}].shot_type must be string` + if (!isString(panel.camera_move)) return `storyboardPanels[${i}].camera_move must be string` + if (!isString(panel.video_prompt)) return `storyboardPanels[${i}].video_prompt must be string` + if (panel.duration !== undefined && !isNumber(panel.duration)) return `storyboardPanels[${i}].duration must be number when present` + if (!Array.isArray(panel.characters)) return `storyboardPanels[${i}].characters must be array` + for (let j = 0; j < panel.characters.length; j += 1) { + const character = panel.characters[j] + if (!isRecord(character)) return `storyboardPanels[${i}].characters[${j}] must be object` + if (!isString(character.name)) return `storyboardPanels[${i}].characters[${j}].name must be string` + if (character.appearance !== undefined && !isString(character.appearance)) { + return `storyboardPanels[${i}].characters[${j}].appearance must be string when present` + } + } + } + return null +} + +function validateVoiceAnalysisCanary(value) { + if (!Array.isArray(value) || value.length === 0) return 'voice analysis fixture must be non-empty array' + for (let i = 0; i < value.length; i += 1) { + const row = value[i] + if (!isRecord(row)) return `voiceAnalysis[${i}] must be object` + if (!isNumber(row.lineIndex)) return `voiceAnalysis[${i}].lineIndex must be number` + if (!isString(row.speaker)) return `voiceAnalysis[${i}].speaker must be string` + if (!isString(row.content)) return `voiceAnalysis[${i}].content must be string` + if (!isNumber(row.emotionStrength)) return `voiceAnalysis[${i}].emotionStrength must be number` + if (row.matchedPanel !== null) { + if (!isRecord(row.matchedPanel)) return `voiceAnalysis[${i}].matchedPanel must be object or null` + if (!isString(row.matchedPanel.storyboardId)) return `voiceAnalysis[${i}].matchedPanel.storyboardId must be string` + if (!isNumber(row.matchedPanel.panelIndex)) return `voiceAnalysis[${i}].matchedPanel.panelIndex must be number` + } + } + return null +} + +function checkTemplateTokens(pathStem, requiredTokens) { + const violations = [] + for (const locale of ['zh', 'en']) { + const relPath = `lib/prompts/${pathStem}.${locale}.txt` + const fullPath = path.join(root, relPath) + if (!fs.existsSync(fullPath)) { + violations.push(`missing template: ${relPath}`) + continue + } + const content = fs.readFileSync(fullPath, 'utf8') + for (const token of requiredTokens) { + if (!content.includes(token)) { + violations.push(`missing token ${token} in ${relPath}`) + } + } + } + return violations +} + +const violations = [] + +const clipsErr = validateClipCanary(readJson(CANARY_FILES.clips)) +if (clipsErr) violations.push(clipsErr) + +const screenplayErr = validateScreenplayCanary(readJson(CANARY_FILES.screenplay)) +if (screenplayErr) violations.push(screenplayErr) + +const panelsErr = validateStoryboardPanelsCanary(readJson(CANARY_FILES.storyboardPanels)) +if (panelsErr) violations.push(panelsErr) + +const voiceErr = validateVoiceAnalysisCanary(readJson(CANARY_FILES.voiceAnalysis)) +if (voiceErr) violations.push(voiceErr) + +for (const [pathStem, requiredTokens] of Object.entries(TEMPLATE_TOKEN_REQUIREMENTS)) { + violations.push(...checkTemplateTokens(pathStem, requiredTokens)) +} + +if (violations.length > 0) { + fail('JSON schema canary check failed', violations) +} + +console.log('[prompt-json-canary-guard] OK') diff --git a/scripts/guards/prompt-semantic-regression.mjs b/scripts/guards/prompt-semantic-regression.mjs new file mode 100644 index 0000000..afa62b2 --- /dev/null +++ b/scripts/guards/prompt-semantic-regression.mjs @@ -0,0 +1,108 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() +const catalogPath = path.join(root, 'src', 'lib', 'prompt-i18n', 'catalog.ts') +const chineseCharPattern = /[\p{Script=Han}]/u +const singlePlaceholderPattern = /\{([A-Za-z0-9_]+)\}/g +const doublePlaceholderPattern = /\{\{([A-Za-z0-9_]+)\}\}/g + +const criticalTemplateTokens = new Map([ + ['novel-promotion/voice_analysis', ['"lineIndex"', '"speaker"', '"content"', '"emotionStrength"', '"matchedPanel"']], + ['novel-promotion/agent_storyboard_plan', ['"panel_number"', '"description"', '"characters"', '"location"', '"scene_type"', '"source_text"', '"shot_type"', '"camera_move"', '"video_prompt"']], + ['novel-promotion/agent_storyboard_detail', ['"panel_number"', '"description"', '"characters"', '"location"', '"scene_type"', '"source_text"', '"shot_type"', '"camera_move"', '"video_prompt"']], + ['novel-promotion/agent_storyboard_insert', ['"panel_number"', '"description"', '"characters"', '"location"', '"scene_type"', '"source_text"', '"shot_type"', '"camera_move"', '"video_prompt"']], + ['novel-promotion/screenplay_conversion', ['"clip_id"', '"scenes"', '"heading"', '"content"', '"dialogue"', '"voiceover"']], + ['novel-promotion/select_location', ['"locations"', '"name"', '"summary"', '"descriptions"']], + ['novel-promotion/episode_split', ['"analysis"', '"episodes"', '"startMarker"', '"endMarker"', '"validation"']], + ['novel-promotion/image_prompt_modify', ['"image_prompt"', '"video_prompt"']], + ['novel-promotion/character_create', ['"prompt"']], + ['novel-promotion/location_create', ['"prompt"']], +]) + +function fail(title, details = []) { + console.error(`\n[prompt-semantic-regression] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function parseCatalog(text) { + const entries = [] + const entryPattern = /pathStem:\s*'([^']+)'\s*,[\s\S]*?variableKeys:\s*\[([\s\S]*?)\]\s*,/g + for (const match of text.matchAll(entryPattern)) { + const pathStem = match[1] + const rawKeys = match[2] || '' + const keys = Array.from(rawKeys.matchAll(/'([^']+)'/g)).map((item) => item[1]) + entries.push({ pathStem, variableKeys: keys }) + } + return entries +} + +function extractPlaceholders(template) { + const keys = new Set() + for (const match of template.matchAll(singlePlaceholderPattern)) { + if (match[1]) keys.add(match[1]) + } + for (const match of template.matchAll(doublePlaceholderPattern)) { + if (match[1]) keys.add(match[1]) + } + return Array.from(keys) +} + +if (!fs.existsSync(catalogPath)) { + fail('catalog.ts not found', ['src/lib/prompt-i18n/catalog.ts']) +} + +const catalogText = fs.readFileSync(catalogPath, 'utf8') +const entries = parseCatalog(catalogText) +if (entries.length === 0) { + fail('failed to parse prompt catalog entries') +} + +const violations = [] +for (const entry of entries) { + const templatePath = path.join(root, 'lib', 'prompts', `${entry.pathStem}.en.txt`) + if (!fs.existsSync(templatePath)) { + violations.push(`missing template: lib/prompts/${entry.pathStem}.en.txt`) + continue + } + + const template = fs.readFileSync(templatePath, 'utf8') + if (chineseCharPattern.test(template)) { + violations.push(`unexpected Chinese content in English template: lib/prompts/${entry.pathStem}.en.txt`) + } + + const placeholders = extractPlaceholders(template) + const placeholderSet = new Set(placeholders) + const variableKeySet = new Set(entry.variableKeys) + + for (const key of entry.variableKeys) { + if (!placeholderSet.has(key)) { + violations.push(`missing placeholder {${key}} in lib/prompts/${entry.pathStem}.en.txt`) + } + } + + for (const key of placeholders) { + if (!variableKeySet.has(key)) { + violations.push(`unexpected placeholder {${key}} in lib/prompts/${entry.pathStem}.en.txt`) + } + } + + const requiredTokens = criticalTemplateTokens.get(entry.pathStem) || [] + for (const token of requiredTokens) { + if (!template.includes(token)) { + violations.push(`missing semantic token ${token} in lib/prompts/${entry.pathStem}.en.txt`) + } + } +} + +if (violations.length > 0) { + fail('semantic regression check failed', violations) +} + +console.log(`[prompt-semantic-regression] OK (${entries.length} templates checked)`) diff --git a/scripts/guards/task-loading-baseline.json b/scripts/guards/task-loading-baseline.json new file mode 100644 index 0000000..1c7686b --- /dev/null +++ b/scripts/guards/task-loading-baseline.json @@ -0,0 +1,9 @@ +{ + "allowedDirectTaskStateUsageFiles": [ + "src/lib/query/hooks/useTaskTargetStates.ts", + "src/lib/query/hooks/useTaskPresentation.ts", + "src/lib/query/hooks/useProjectAssets.ts", + "src/lib/query/hooks/useGlobalAssets.ts" + ], + "allowedLegacyGeneratingUsageFiles": [] +} diff --git a/scripts/guards/task-loading-guard.mjs b/scripts/guards/task-loading-guard.mjs new file mode 100644 index 0000000..f60aba6 --- /dev/null +++ b/scripts/guards/task-loading-guard.mjs @@ -0,0 +1,132 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const workspaceRoot = process.cwd() +const baselinePath = path.join(workspaceRoot, 'scripts/guards/task-loading-baseline.json') + +function walkFiles(dir, out = []) { + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === 'node_modules' || entry.name === '.git' || entry.name === '.next') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walkFiles(fullPath, out) + } else { + out.push(fullPath) + } + } + return out +} + +function toPosixRelative(filePath) { + return path.relative(workspaceRoot, filePath).split(path.sep).join('/') +} + +function collectMatches(files, pattern) { + const matches = [] + for (const fullPath of files) { + if (!fullPath.endsWith('.ts') && !fullPath.endsWith('.tsx')) continue + const relPath = toPosixRelative(fullPath) + const content = fs.readFileSync(fullPath, 'utf8') + const lines = content.split('\n') + for (let i = 0; i < lines.length; i += 1) { + if (lines[i].includes(pattern)) { + matches.push(`${relPath}:${i + 1}`) + } + } + } + return matches +} + +function fail(title, lines) { + console.error(`\n[task-loading-guard] ${title}`) + for (const line of lines) { + console.error(` - ${line}`) + } + process.exit(1) +} + +if (!fs.existsSync(baselinePath)) { + fail('Missing baseline file', [toPosixRelative(baselinePath)]) +} + +const baseline = JSON.parse(fs.readFileSync(baselinePath, 'utf8')) +const allowedFiles = new Set(baseline.allowedDirectTaskStateUsageFiles || []) +const allowedLegacyGeneratingFiles = new Set(baseline.allowedLegacyGeneratingUsageFiles || []) +const allFiles = walkFiles(path.join(workspaceRoot, 'src')) + +const directTaskStateUsage = collectMatches(allFiles, 'useTaskTargetStates(') +const directUsageOutOfAllowlist = directTaskStateUsage + .map((entry) => entry.split(':')[0]) + .filter((file) => !allowedFiles.has(file)) + +if (directUsageOutOfAllowlist.length > 0) { + fail( + 'Found component-level direct useTaskTargetStates outside baseline allowlist', + Array.from(new Set(directUsageOutOfAllowlist)), + ) +} + +const crossDomainLabels = collectMatches(allFiles, 'video.panelCard.generating') +if (crossDomainLabels.length > 0) { + fail('Found cross-domain loading label reuse (video.panelCard.generating)', crossDomainLabels) +} + +const uiFiles = allFiles.filter((file) => { + const relPath = toPosixRelative(file) + return relPath.startsWith('src/app/') || relPath.startsWith('src/components/') +}) +const legacyGeneratingPatterns = [ + 'appearance.generating', + 'panel.generatingImage', + 'shot.generatingImage', + 'line.generating', +] +const legacyGeneratingMatches = legacyGeneratingPatterns.flatMap((pattern) => + collectMatches(uiFiles, pattern), +) +const legacyGeneratingOutOfAllowlist = legacyGeneratingMatches + .map((entry) => entry.split(':')[0]) + .filter((file) => !allowedLegacyGeneratingFiles.has(file)) +if (legacyGeneratingOutOfAllowlist.length > 0) { + fail( + 'Found legacy generating truth usage in UI components', + Array.from(new Set(legacyGeneratingOutOfAllowlist)), + ) +} + +const hooksIndexPath = path.join(workspaceRoot, 'src/lib/query/hooks/index.ts') +if (fs.existsSync(hooksIndexPath)) { + const hooksIndex = fs.readFileSync(hooksIndexPath, 'utf8') + const bannedReexports = [ + { + pattern: /export\s*\{[^}]*useGenerateCharacterImage[^}]*\}\s*from\s*['"]\.\/useGlobalAssets['"]/m, + message: 'hooks/index.ts must not export useGenerateCharacterImage from useGlobalAssets', + }, + { + pattern: /export\s*\{[^}]*useGenerateLocationImage[^}]*\}\s*from\s*['"]\.\/useGlobalAssets['"]/m, + message: 'hooks/index.ts must not export useGenerateLocationImage from useGlobalAssets', + }, + { + pattern: /export\s*\{[^}]*useGenerateProjectCharacterImage[^}]*\}\s*from\s*['"]\.\/useProjectAssets['"]/m, + message: 'hooks/index.ts must not export useGenerateProjectCharacterImage from useProjectAssets', + }, + { + pattern: /export\s*\{[^}]*useGenerateProjectLocationImage[^}]*\}\s*from\s*['"]\.\/useProjectAssets['"]/m, + message: 'hooks/index.ts must not export useGenerateProjectLocationImage from useProjectAssets', + }, + ] + + const violations = bannedReexports + .filter((item) => item.pattern.test(hooksIndex)) + .map((item) => item.message) + + if (violations.length > 0) { + fail('Found non-canonical mutation re-exports', violations) + } +} + +console.log('[task-loading-guard] OK') diff --git a/scripts/guards/task-state-unification-guard.sh b/scripts/guards/task-state-unification-guard.sh new file mode 100644 index 0000000..d8ff8f1 --- /dev/null +++ b/scripts/guards/task-state-unification-guard.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +set -euo pipefail + +failed=0 + +check_absent() { + local label="$1" + local pattern="$2" + shift 2 + local output + output="$(git grep --untracked -nE "$pattern" -- "$@" || true)" + if [[ -n "$output" ]]; then + echo "$output" + echo "::error title=${label}::${label}" + failed=1 + fi +} + +check_absent \ + "Do not branch UI status on cancelled" \ + "status[[:space:]]*===[[:space:]]*['\\\"]cancelled['\\\"]|status[[:space:]]*==[[:space:]]*['\\\"]cancelled['\\\"]" \ + src/app \ + src/components \ + src/features \ + src/lib/query + +check_absent \ + "useTaskHandoff is forbidden" \ + "useTaskHandoff" \ + src + +check_absent \ + "Do not use legacy task hooks in app layer" \ + "useActiveTasks\\(|useTaskStatus\\(" \ + src/app \ + src/features + +if [[ "$failed" -ne 0 ]]; then + exit 1 +fi + +echo "task-state-unification guard passed" diff --git a/scripts/guards/task-status-cutover-audit.sh b/scripts/guards/task-status-cutover-audit.sh new file mode 100644 index 0000000..9766c95 --- /dev/null +++ b/scripts/guards/task-status-cutover-audit.sh @@ -0,0 +1,100 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(git rev-parse --show-toplevel)" +cd "$ROOT_DIR" + +FAILED=0 + +print_header() { + echo + echo "============================================================" + echo "$1" + echo "============================================================" +} + +print_ok() { + echo "[PASS] $1" +} + +print_fail() { + echo "[FAIL] $1" +} + +run_zero_match_check() { + local title="$1" + local pattern="$2" + shift 2 + local paths=("$@") + local output + output="$(git grep -n -E "$pattern" -- "${paths[@]}" || true)" + if [[ -z "$output" ]]; then + print_ok "$title" + else + print_fail "$title" + echo "$output" + FAILED=1 + fi +} + +run_usetasktargetstates_check() { + local title="useTaskTargetStates 仅允许在 useProjectAssets/useGlobalAssets 中使用" + local output + output="$(git grep -n "useTaskTargetStates" -- src || true)" + + if [[ -z "$output" ]]; then + print_ok "$title (当前 0 命中)" + return + fi + + local filtered + filtered="$(echo "$output" | grep -v "src/lib/query/hooks/useProjectAssets.ts" | grep -v "src/lib/query/hooks/useGlobalAssets.ts" || true)" + + if [[ -z "$filtered" ]]; then + print_ok "$title" + else + print_fail "$title" + echo "$filtered" + FAILED=1 + fi +} + +print_header "Task Status Cutover Audit" + +run_zero_match_check \ + "禁止 useTaskHandoff" \ + "useTaskHandoff" \ + src + +run_zero_match_check \ + "禁止 manualRegeneratingItems/setRegeneratingItems/clearRegeneratingItem" \ + "manualRegeneratingItems|setRegeneratingItems|clearRegeneratingItem" \ + src + +run_zero_match_check \ + "禁止业务层直接判断 status ===/!== cancelled" \ + "status\\s*===\\s*['\\\"]cancelled['\\\"]|status\\s*!==\\s*['\\\"]cancelled['\\\"]" \ + src + +run_zero_match_check \ + "禁止 generatingImage/generatingVideo/generatingLipSync 字段" \ + "\\bgeneratingImage\\b|\\bgeneratingVideo\\b|\\bgeneratingLipSync\\b" \ + src + +run_usetasktargetstates_check + +run_zero_match_check \ + "禁止 novel-promotion/asset-hub/shared-assets 中 useState(false) 作为生成态命名" \ + "const \\[[^\\]]*(Generating|Regenerating|WaitingForGeneration|AnalyzingAssets|GeneratingAll|CopyingFromGlobal)[^\\]]*\\]\\s*=\\s*useState\\(false\\)" \ + "src/app/[locale]/workspace/[projectId]/modes/novel-promotion" \ + "src/app/[locale]/workspace/asset-hub" \ + "src/components/shared/assets" + +print_header "Audit Result" +if [[ "$FAILED" -eq 0 ]]; then + echo "All checks passed." + exit 0 +fi + +echo "Audit failed. Please fix findings above." +exit 1 diff --git a/scripts/guards/task-submit-compensation-guard.mjs b/scripts/guards/task-submit-compensation-guard.mjs new file mode 100644 index 0000000..95ace4a --- /dev/null +++ b/scripts/guards/task-submit-compensation-guard.mjs @@ -0,0 +1,84 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' +import { pathToFileURL } from 'url' + +const root = process.cwd() +const apiDir = path.join(root, 'src', 'app', 'api') +const CREATE_PATTERN = /\.\s*create\s*\(/ +const SUBMIT_TASK_PATTERN = /\bsubmitTask\s*\(/ +const ROLLBACK_PATTERN = /rollback|compensat/i + +function fail(title, details = []) { + process.stderr.write(`\n[task-submit-compensation-guard] ${title}\n`) + for (const detail of details) { + process.stderr.write(` - ${detail}\n`) + } + process.exit(1) +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (entry.name === 'route.ts') out.push(fullPath) + } + return out +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +export function inspectTaskSubmitCompensation(relPath, content) { + if (!CREATE_PATTERN.test(content)) return [] + if (!SUBMIT_TASK_PATTERN.test(content)) return [] + if (ROLLBACK_PATTERN.test(content)) return [] + return [ + `${relPath} creates data before submitTask without explicit rollback/compensation marker`, + ] +} + +export function findTaskSubmitCompensationViolations(scanRoot = root) { + const routesRoot = path.join(scanRoot, 'src', 'app', 'api') + return walk(routesRoot) + .map((fullPath) => { + const relPath = path.relative(scanRoot, fullPath).split(path.sep).join('/') + const content = fs.readFileSync(fullPath, 'utf8') + return inspectTaskSubmitCompensation(relPath, content) + }) + .flat() +} + +export function main() { + if (!fs.existsSync(apiDir)) { + fail('Missing src/app/api directory') + } + + const routeFiles = walk(apiDir) + const violations = routeFiles + .map((fullPath) => { + const relPath = toRel(fullPath) + const content = fs.readFileSync(fullPath, 'utf8') + return inspectTaskSubmitCompensation(relPath, content) + }) + .flat() + + if (violations.length > 0) { + fail('Found create+submitTask routes without compensation marker', violations) + } + + process.stdout.write(`[task-submit-compensation-guard] OK routes=${routeFiles.length}\n`) +} + +if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { + main() +} diff --git a/scripts/guards/task-target-states-no-polling-guard.mjs b/scripts/guards/task-target-states-no-polling-guard.mjs new file mode 100644 index 0000000..40042af --- /dev/null +++ b/scripts/guards/task-target-states-no-polling-guard.mjs @@ -0,0 +1,96 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' +import process from 'process' + +const root = process.cwd() + +function fail(title, details = []) { + console.error(`\n[task-target-states-no-polling-guard] ${title}`) + for (const line of details) { + console.error(` - ${line}`) + } + process.exit(1) +} + +function readFile(relativePath) { + const fullPath = path.join(root, relativePath) + if (!fs.existsSync(fullPath)) { + fail('Missing required file', [relativePath]) + } + return fs.readFileSync(fullPath, 'utf8') +} + +function walk(dir, out = []) { + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const full = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(full, out) + } else { + out.push(full) + } + } + return out +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +function collectPattern(pattern) { + const files = walk(path.join(root, 'src')) + const hits = [] + for (const fullPath of files) { + if (!fullPath.endsWith('.ts') && !fullPath.endsWith('.tsx')) continue + const text = fs.readFileSync(fullPath, 'utf8') + const lines = text.split('\n') + for (let i = 0; i < lines.length; i += 1) { + if (pattern.test(lines[i])) { + hits.push(`${toRel(fullPath)}:${i + 1}`) + } + } + } + return hits +} + +const refetchIntervalMsHits = collectPattern(/\brefetchIntervalMs\b/) +if (refetchIntervalMsHits.length > 0) { + fail('Found forbidden refetchIntervalMs usage', refetchIntervalMsHits) +} + +const voiceStagePath = + 'src/app/[locale]/workspace/[projectId]/modes/novel-promotion/components/VoiceStage.tsx' +const voiceStageText = readFile(voiceStagePath) +if (voiceStageText.includes('setInterval(')) { + fail('VoiceStage must not use timer polling', [voiceStagePath]) +} + +const targetStateMapPath = 'src/lib/query/hooks/useTaskTargetStateMap.ts' +const targetStateMapText = readFile(targetStateMapPath) +if (!/refetchInterval:\s*false/.test(targetStateMapText)) { + fail('useTaskTargetStateMap must keep refetchInterval disabled', [targetStateMapPath]) +} + +const ssePath = 'src/lib/query/hooks/useSSE.ts' +const sseText = readFile(ssePath) +const targetStatesInvalidateExprMatch = sseText.match( + /const shouldInvalidateTargetStates\s*=\s*([\s\S]*?)\n\s*\n/, +) +if (!targetStatesInvalidateExprMatch) { + fail('Unable to locate shouldInvalidateTargetStates expression', [ssePath]) +} +const targetStatesInvalidateExpr = targetStatesInvalidateExprMatch[1] +if (!/TASK_EVENT_TYPE\.COMPLETED/.test(targetStatesInvalidateExpr) || !/TASK_EVENT_TYPE\.FAILED/.test(targetStatesInvalidateExpr)) { + fail('useSSE must invalidate target states only for terminal events', [ssePath]) +} +if (/TASK_EVENT_TYPE\.CREATED/.test(targetStatesInvalidateExpr)) { + fail('useSSE target-state invalidation must not include CREATED', [ssePath]) +} +if (/TASK_EVENT_TYPE\.PROCESSING/.test(targetStatesInvalidateExpr)) { + fail('useSSE target-state invalidation must not include PROCESSING', [ssePath]) +} + +console.log('[task-target-states-no-polling-guard] OK') diff --git a/scripts/guards/test-behavior-quality-guard.mjs b/scripts/guards/test-behavior-quality-guard.mjs new file mode 100644 index 0000000..ccb023c --- /dev/null +++ b/scripts/guards/test-behavior-quality-guard.mjs @@ -0,0 +1,85 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' + +const root = process.cwd() +const targetDirs = [ + path.join(root, 'tests', 'integration', 'api', 'contract'), + path.join(root, 'tests', 'integration', 'provider'), + path.join(root, 'tests', 'integration', 'chain'), + path.join(root, 'tests', 'system'), + path.join(root, 'tests', 'regression'), +] + +function fail(title, details = []) { + console.error(`\n[test-behavior-quality-guard] ${title}`) + for (const detail of details) { + console.error(` - ${detail}`) + } + process.exit(1) +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === 'node_modules') continue + const full = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(full, out) + continue + } + if (entry.isFile() && entry.name.endsWith('.test.ts')) out.push(full) + } + return out +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +const files = targetDirs.flatMap((dir) => walk(dir)) +if (files.length === 0) { + fail('No target test files found', targetDirs.map((dir) => toRel(dir))) +} + +const violations = [] + +for (const file of files) { + const rel = toRel(file) + const text = fs.readFileSync(file, 'utf8') + + const hasSourceRead = /(readFileSync|fs\.readFileSync)\s*\([\s\S]{0,240}src\/(app|lib)\//m.test(text) + if (hasSourceRead) { + violations.push(`${rel}: reading source code text is forbidden in behavior contract/chain tests`) + } + + const forbiddenStringContracts = [ + /toContain\(\s*['"]apiHandler['"]\s*\)/, + /toContain\(\s*['"]submitTask['"]\s*\)/, + /toContain\(\s*['"]maybeSubmitLLMTask['"]\s*\)/, + /includes\(\s*['"]apiHandler['"]\s*\)/, + /includes\(\s*['"]submitTask['"]\s*\)/, + /includes\(\s*['"]maybeSubmitLLMTask['"]\s*\)/, + ] + + for (const pattern of forbiddenStringContracts) { + if (pattern.test(text)) { + violations.push(`${rel}: forbidden structural string assertion matched ${pattern}`) + break + } + } + + const hasWeakCallAssertion = /toHaveBeenCalled\(\s*\)/.test(text) + const hasStrongCallAssertion = /toHaveBeenCalledWith\(/.test(text) + if (hasWeakCallAssertion && !hasStrongCallAssertion) { + violations.push(`${rel}: has toHaveBeenCalled() without any toHaveBeenCalledWith() result assertions`) + } +} + +if (violations.length > 0) { + fail('Behavior quality violations found', violations) +} + +console.log(`[test-behavior-quality-guard] OK files=${files.length}`) diff --git a/scripts/guards/test-behavior-route-coverage-guard.mjs b/scripts/guards/test-behavior-route-coverage-guard.mjs new file mode 100644 index 0000000..6d8e43b --- /dev/null +++ b/scripts/guards/test-behavior-route-coverage-guard.mjs @@ -0,0 +1,54 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' + +const root = process.cwd() +const catalogPath = path.join(root, 'tests', 'contracts', 'route-catalog.ts') +const matrixPath = path.join(root, 'tests', 'contracts', 'route-behavior-matrix.ts') + +function fail(title, details = []) { + console.error(`\n[test-behavior-route-coverage-guard] ${title}`) + for (const detail of details) { + console.error(` - ${detail}`) + } + process.exit(1) +} + +if (!fs.existsSync(catalogPath)) { + fail('route catalog is missing', ['tests/contracts/route-catalog.ts']) +} +if (!fs.existsSync(matrixPath)) { + fail('route behavior matrix is missing', ['tests/contracts/route-behavior-matrix.ts']) +} + +const catalogText = fs.readFileSync(catalogPath, 'utf8') +const matrixText = fs.readFileSync(matrixPath, 'utf8') + +if (!matrixText.includes('ROUTE_CATALOG.map')) { + fail('route behavior matrix must derive entries from ROUTE_CATALOG.map') +} + +const routeFilesBlockMatch = catalogText.match(/const ROUTE_FILES = \[([\s\S]*?)\] as const/) +if (!routeFilesBlockMatch) { + fail('unable to parse ROUTE_FILES block from route catalog') +} +const routeFilesBlock = routeFilesBlockMatch ? routeFilesBlockMatch[1] : '' +const routeCount = Array.from(routeFilesBlock.matchAll(/'src\/app\/api\/[^']+\/route\.ts'/g)).length +if (routeCount === 0) { + fail('no routes detected in route catalog') +} + +const testFiles = Array.from(matrixText.matchAll(/'tests\/[a-zA-Z0-9_\-/.]+\.test\.ts'/g)) + .map((match) => match[0].slice(1, -1)) + +if (testFiles.length === 0) { + fail('route behavior matrix does not declare any behavior test files') +} + +const missingTests = Array.from(new Set(testFiles)).filter((file) => !fs.existsSync(path.join(root, file))) +if (missingTests.length > 0) { + fail('route behavior matrix references missing test files', missingTests) +} + +console.log(`[test-behavior-route-coverage-guard] OK routes=${routeCount} tests=${new Set(testFiles).size}`) diff --git a/scripts/guards/test-behavior-tasktype-coverage-guard.mjs b/scripts/guards/test-behavior-tasktype-coverage-guard.mjs new file mode 100644 index 0000000..c3f26ae --- /dev/null +++ b/scripts/guards/test-behavior-tasktype-coverage-guard.mjs @@ -0,0 +1,49 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' + +const root = process.cwd() +const catalogPath = path.join(root, 'tests', 'contracts', 'task-type-catalog.ts') +const matrixPath = path.join(root, 'tests', 'contracts', 'tasktype-behavior-matrix.ts') + +function fail(title, details = []) { + console.error(`\n[test-behavior-tasktype-coverage-guard] ${title}`) + for (const detail of details) { + console.error(` - ${detail}`) + } + process.exit(1) +} + +if (!fs.existsSync(catalogPath)) { + fail('task type catalog is missing', ['tests/contracts/task-type-catalog.ts']) +} +if (!fs.existsSync(matrixPath)) { + fail('tasktype behavior matrix is missing', ['tests/contracts/tasktype-behavior-matrix.ts']) +} + +const catalogText = fs.readFileSync(catalogPath, 'utf8') +const matrixText = fs.readFileSync(matrixPath, 'utf8') + +if (!matrixText.includes('TASK_TYPE_CATALOG.map')) { + fail('tasktype behavior matrix must derive entries from TASK_TYPE_CATALOG.map') +} + +const taskTypeCount = Array.from(catalogText.matchAll(/\[TASK_TYPE\.([A-Z_]+)\]/g)).length +if (taskTypeCount === 0) { + fail('no task types detected in task type catalog') +} + +const testFiles = Array.from(matrixText.matchAll(/'tests\/[a-zA-Z0-9_\-/.]+\.test\.ts'/g)) + .map((match) => match[0].slice(1, -1)) + +if (testFiles.length === 0) { + fail('tasktype behavior matrix does not declare any behavior test files') +} + +const missingTests = Array.from(new Set(testFiles)).filter((file) => !fs.existsSync(path.join(root, file))) +if (missingTests.length > 0) { + fail('tasktype behavior matrix references missing test files', missingTests) +} + +console.log(`[test-behavior-tasktype-coverage-guard] OK taskTypes=${taskTypeCount} tests=${new Set(testFiles).size}`) diff --git a/scripts/guards/test-route-coverage-guard.mjs b/scripts/guards/test-route-coverage-guard.mjs new file mode 100644 index 0000000..9dca4e6 --- /dev/null +++ b/scripts/guards/test-route-coverage-guard.mjs @@ -0,0 +1,57 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' + +const root = process.cwd() +const apiDir = path.join(root, 'src', 'app', 'api') +const catalogPath = path.join(root, 'tests', 'contracts', 'route-catalog.ts') + +function fail(title, details = []) { + console.error(`\n[test-route-coverage-guard] ${title}`) + for (const detail of details) { + console.error(` - ${detail}`) + } + process.exit(1) +} + +function walk(dir, out = []) { + if (!fs.existsSync(dir)) return out + const entries = fs.readdirSync(dir, { withFileTypes: true }) + for (const entry of entries) { + if (entry.name === '.git' || entry.name === '.next' || entry.name === 'node_modules') continue + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + walk(fullPath, out) + continue + } + if (entry.name === 'route.ts') out.push(fullPath) + } + return out +} + +function toRel(fullPath) { + return path.relative(root, fullPath).split(path.sep).join('/') +} + +if (!fs.existsSync(catalogPath)) { + fail('route-catalog.ts is missing', ['tests/contracts/route-catalog.ts']) +} + +const actualRoutes = walk(apiDir).map(toRel).sort() +const catalogText = fs.readFileSync(catalogPath, 'utf8') +const catalogRoutes = Array.from(catalogText.matchAll(/'src\/app\/api\/[^']+\/route\.ts'/g)) + .map((match) => match[0].slice(1, -1)) + .sort() + +const missingInCatalog = actualRoutes.filter((routeFile) => !catalogRoutes.includes(routeFile)) +const staleInCatalog = catalogRoutes.filter((routeFile) => !actualRoutes.includes(routeFile)) + +if (missingInCatalog.length > 0) { + fail('Missing routes in tests/contracts/route-catalog.ts', missingInCatalog) +} +if (staleInCatalog.length > 0) { + fail('Stale route entries found in tests/contracts/route-catalog.ts', staleInCatalog) +} + +console.log(`[test-route-coverage-guard] OK routes=${actualRoutes.length}`) diff --git a/scripts/guards/test-tasktype-coverage-guard.mjs b/scripts/guards/test-tasktype-coverage-guard.mjs new file mode 100644 index 0000000..2652cc2 --- /dev/null +++ b/scripts/guards/test-tasktype-coverage-guard.mjs @@ -0,0 +1,46 @@ +#!/usr/bin/env node + +import fs from 'fs' +import path from 'path' + +const root = process.cwd() +const taskTypesPath = path.join(root, 'src', 'lib', 'task', 'types.ts') +const catalogPath = path.join(root, 'tests', 'contracts', 'task-type-catalog.ts') + +function fail(title, details = []) { + console.error(`\n[test-tasktype-coverage-guard] ${title}`) + for (const detail of details) { + console.error(` - ${detail}`) + } + process.exit(1) +} + +if (!fs.existsSync(taskTypesPath)) { + fail('Task type source file is missing', ['src/lib/task/types.ts']) +} +if (!fs.existsSync(catalogPath)) { + fail('Task type catalog file is missing', ['tests/contracts/task-type-catalog.ts']) +} + +const taskTypesText = fs.readFileSync(taskTypesPath, 'utf8') +const catalogText = fs.readFileSync(catalogPath, 'utf8') + +const taskTypeBlockMatch = taskTypesText.match(/export const TASK_TYPE = \{([\s\S]*?)\n\} as const/) +if (!taskTypeBlockMatch) { + fail('Unable to parse TASK_TYPE block from src/lib/task/types.ts') +} +const taskTypeBlock = taskTypeBlockMatch ? taskTypeBlockMatch[1] : '' +const taskTypeKeys = Array.from(taskTypeBlock.matchAll(/^\s+([A-Z_]+):\s'[^']+',?$/gm)).map((match) => match[1]) +const catalogKeys = Array.from(catalogText.matchAll(/\[TASK_TYPE\.([A-Z_]+)\]/g)).map((match) => match[1]) + +const missingKeys = taskTypeKeys.filter((key) => !catalogKeys.includes(key)) +const staleKeys = catalogKeys.filter((key) => !taskTypeKeys.includes(key)) + +if (missingKeys.length > 0) { + fail('Missing TASK_TYPE owners in tests/contracts/task-type-catalog.ts', missingKeys) +} +if (staleKeys.length > 0) { + fail('Stale TASK_TYPE keys in tests/contracts/task-type-catalog.ts', staleKeys) +} + +console.log(`[test-tasktype-coverage-guard] OK taskTypes=${taskTypeKeys.length}`) diff --git a/scripts/media-archive-legacy-refs.ts b/scripts/media-archive-legacy-refs.ts new file mode 100644 index 0000000..68bb7ea --- /dev/null +++ b/scripts/media-archive-legacy-refs.ts @@ -0,0 +1,127 @@ +import { logInfo as _ulogInfo, logError as _ulogError } from '@/lib/logging/core' +import { createHash } from 'node:crypto' +import { promises as fs } from 'node:fs' +import path from 'node:path' +import { prisma } from '@/lib/prisma' +import { MEDIA_MODEL_MAPPINGS } from './media-mapping' + +const BACKUP_ROOT = path.join(process.cwd(), 'data', 'migration-backups') +const BATCH_SIZE = 500 +type DynamicModel = { + findMany: (args: unknown) => Promise>> + createMany?: (args: unknown) => Promise +} +const prismaDynamic = prisma as unknown as Record + +function nowStamp() { + return new Date().toISOString().replace(/[:.]/g, '-') +} + +function checksum(value: string) { + return createHash('sha256').update(value).digest('hex') +} + +function toSelect(fields: string[]) { + const select: Record = { id: true } + for (const field of fields) select[field] = true + return select +} + +async function main() { + const runId = nowStamp() + const backupDir = path.join(BACKUP_ROOT, runId) + await fs.mkdir(backupDir, { recursive: true }) + + const allRows: Array<{ + runId: string + tableName: string + rowId: string + fieldName: string + legacyValue: string + checksum: string + }> = [] + + for (const mapping of MEDIA_MODEL_MAPPINGS) { + const model = prismaDynamic[mapping.model] + if (!model) continue + + const select = toSelect(mapping.fields.map((f) => f.legacyField)) + let cursor: string | null = null + + while (true) { + const page = await model.findMany({ + select, + ...(cursor + ? { + cursor: { id: cursor }, + skip: 1, + } + : {}), + orderBy: { id: 'asc' }, + take: BATCH_SIZE, + }) + if (!page.length) break + + for (const row of page) { + for (const field of mapping.fields) { + const value = row[field.legacyField] + if (typeof value !== 'string' || !value.trim()) continue + allRows.push({ + runId, + tableName: mapping.tableName, + rowId: String(row.id), + fieldName: field.legacyField, + legacyValue: value, + checksum: checksum(value), + }) + } + } + + cursor = String(page[page.length - 1].id) + } + } + + if (allRows.length > 0) { + try { + const backupModel = prismaDynamic.legacyMediaRefBackup + if (!backupModel?.createMany) { + throw new Error('Prisma model not found: legacyMediaRefBackup') + } + for (let i = 0; i < allRows.length; i += 1000) { + const chunk = allRows.slice(i, i + 1000) + await backupModel.createMany({ data: chunk }) + } + } catch (error) { + const message = error instanceof Error ? error.message : String(error) + _ulogError('[media-archive-legacy-refs] db backup table unavailable, fallback to file snapshot only', message) + } + } + + const snapshotPath = path.join(backupDir, 'legacy-media-refs.json') + await fs.writeFile(snapshotPath, JSON.stringify(allRows, null, 2), 'utf8') + const snapshotHash = checksum(await fs.readFile(snapshotPath, 'utf8')) + + const summary = { + runId, + createdAt: new Date().toISOString(), + backupDir, + archivedCount: allRows.length, + snapshotFile: path.basename(snapshotPath), + snapshotSha256: snapshotHash, + } + + await fs.writeFile(path.join(backupDir, 'legacy-media-refs-summary.json'), JSON.stringify(summary, null, 2), 'utf8') + + _ulogInfo(`[media-archive-legacy-refs] runId=${runId}`) + _ulogInfo(`[media-archive-legacy-refs] archived=${allRows.length}`) + _ulogInfo(`[media-archive-legacy-refs] snapshot=${snapshotPath}`) +} + +main() + .catch((error) => { + _ulogError('[media-archive-legacy-refs] failed:', error) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/media-backfill-refs.ts b/scripts/media-backfill-refs.ts new file mode 100644 index 0000000..1ed8ce4 --- /dev/null +++ b/scripts/media-backfill-refs.ts @@ -0,0 +1,122 @@ +import { logInfo as _ulogInfo, logError as _ulogError } from '@/lib/logging/core' +import { prisma } from '@/lib/prisma' +import { resolveMediaRefFromLegacyValue } from '@/lib/media/service' +import { MEDIA_MODEL_MAPPINGS } from './media-mapping' + +const BATCH_SIZE = 200 +type DynamicModel = { + findMany: (args: unknown) => Promise>> + update: (args: unknown) => Promise +} +const prismaDynamic = prisma as unknown as Record + +function toSelect(fields: string[]) { + const select: Record = { id: true } + for (const field of fields) select[field] = true + return select +} + +async function backfillModel(mapping: (typeof MEDIA_MODEL_MAPPINGS)[number]) { + const model = prismaDynamic[mapping.model] + if (!model) { + throw new Error(`Prisma model not found: ${mapping.model}`) + } + + const selectFields = mapping.fields.flatMap((f) => [f.legacyField, f.mediaIdField]) + const select = toSelect(selectFields) + + let cursor: string | null = null + let scanned = 0 + let updated = 0 + + try { + while (true) { + const rows = await model.findMany({ + select, + ...(cursor + ? { + cursor: { id: cursor }, + skip: 1, + } + : {}), + orderBy: { id: 'asc' }, + take: BATCH_SIZE, + }) + + if (!rows.length) break + + for (const row of rows) { + scanned += 1 + const patch: Record = {} + + for (const field of mapping.fields) { + const mediaId = row[field.mediaIdField] + const legacyValue = row[field.legacyField] + if (mediaId || typeof legacyValue !== 'string' || !legacyValue.trim()) { + continue + } + + const media = await resolveMediaRefFromLegacyValue(legacyValue) + if (!media) continue + patch[field.mediaIdField] = media.id + } + + if (Object.keys(patch).length > 0) { + await model.update({ + where: { id: String(row.id) }, + data: patch, + }) + updated += 1 + } + } + + cursor = String(rows[rows.length - 1].id) + } + } catch (error) { + const message = error instanceof Error ? error.message : String(error) + if (message.includes('does not exist') || message.includes('Unknown column')) { + _ulogError( + `[media-backfill-refs] skip ${mapping.tableName}: migration columns not available yet`, + message, + ) + return { scanned: 0, updated: 0, skipped: true } + } + throw error + } + + return { scanned, updated, skipped: false } +} + +async function main() { + const startedAt = new Date() + _ulogInfo(`[media-backfill-refs] started at ${startedAt.toISOString()}`) + + let totalScanned = 0 + let totalUpdated = 0 + + for (const mapping of MEDIA_MODEL_MAPPINGS) { + const result = await backfillModel(mapping) + totalScanned += result.scanned + totalUpdated += result.updated + if (result.skipped) { + _ulogInfo(`[media-backfill-refs] ${mapping.tableName}: skipped (run add-only DB migration first)`) + } else { + _ulogInfo( + `[media-backfill-refs] ${mapping.tableName}: scanned=${result.scanned} updatedRows=${result.updated}`, + ) + } + } + + _ulogInfo( + `[media-backfill-refs] done scanned=${totalScanned} updatedRows=${totalUpdated} durationMs=${Date.now() - startedAt.getTime()}`, + ) +} + +main() + .catch((error) => { + _ulogError('[media-backfill-refs] failed:', error) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/media-build-unreferenced-index.ts b/scripts/media-build-unreferenced-index.ts new file mode 100644 index 0000000..a0b06b2 --- /dev/null +++ b/scripts/media-build-unreferenced-index.ts @@ -0,0 +1,202 @@ +import { logInfo as _ulogInfo, logError as _ulogError } from '@/lib/logging/core' +import { promises as fs } from 'node:fs' +import path from 'node:path' +import COS from 'cos-nodejs-sdk-v5' +import { prisma } from '@/lib/prisma' +import { resolveStorageKeyFromMediaValue } from '@/lib/media/service' +import { MEDIA_MODEL_MAPPINGS } from './media-mapping' + +type StorageEntry = { + key: string + sizeBytes: number + lastModified: string | null +} +type CosBucketPage = { + Contents?: Array<{ Key: string; Size?: string | number; LastModified?: string }> + IsTruncated?: string | boolean + NextMarker?: string +} +type DynamicModel = { + findMany: (args: unknown) => Promise>> +} +const prismaDynamic = prisma as unknown as Record + +const BACKUP_ROOT = path.join(process.cwd(), 'data', 'migration-backups') + +function nowStamp() { + return new Date().toISOString().replace(/[:.]/g, '-') +} + +async function listLocalObjects(): Promise { + const uploadDir = process.env.UPLOAD_DIR || './data/uploads' + const rootDir = path.isAbsolute(uploadDir) ? uploadDir : path.join(process.cwd(), uploadDir) + const exists = await fs.stat(rootDir).then(() => true).catch(() => false) + if (!exists) return [] + + const rows: StorageEntry[] = [] + const queue = [''] + + while (queue.length > 0) { + const rel = queue.shift() as string + const full = path.join(rootDir, rel) + const entries = await fs.readdir(full, { withFileTypes: true }) + for (const entry of entries) { + const childRel = path.join(rel, entry.name) + if (entry.isDirectory()) { + queue.push(childRel) + continue + } + if (!entry.isFile()) continue + const stat = await fs.stat(path.join(rootDir, childRel)) + rows.push({ + key: childRel.split(path.sep).join('/'), + sizeBytes: stat.size, + lastModified: stat.mtime.toISOString(), + }) + } + } + + return rows +} + +async function listCosObjects(): Promise { + const secretId = process.env.COS_SECRET_ID + const secretKey = process.env.COS_SECRET_KEY + const bucket = process.env.COS_BUCKET + const region = process.env.COS_REGION + + if (!secretId || !secretKey || !bucket || !region) { + throw new Error('Missing COS env: COS_SECRET_ID/COS_SECRET_KEY/COS_BUCKET/COS_REGION') + } + + const cos = new COS({ SecretId: secretId, SecretKey: secretKey, Timeout: 60_000 }) + const rows: StorageEntry[] = [] + let marker = '' + + while (true) { + const page = await new Promise((resolve, reject) => { + cos.getBucket( + { + Bucket: bucket, + Region: region, + Marker: marker, + MaxKeys: 1000, + }, + (err, data) => (err ? reject(err) : resolve(data as unknown as CosBucketPage)), + ) + }) + + const contents = page.Contents || [] + for (const item of contents) { + rows.push({ + key: item.Key, + sizeBytes: Number(item.Size || 0), + lastModified: item.LastModified || null, + }) + } + + const truncated = String(page.IsTruncated || 'false') === 'true' + if (!truncated) break + const nextMarker = typeof page.NextMarker === 'string' ? page.NextMarker : '' + marker = nextMarker || (contents.length ? contents[contents.length - 1].Key : '') + if (!marker) break + } + + return rows +} + +async function listStorageObjects() { + const storageType = process.env.STORAGE_TYPE || 'cos' + if (storageType === 'local') { + return { storageType, rows: await listLocalObjects() } + } + return { storageType, rows: await listCosObjects() } +} + +async function buildReferencedKeySet() { + const refs = new Set() + + try { + const mediaRows = await prismaDynamic.mediaObject.findMany({ + select: { storageKey: true }, + }) + for (const row of mediaRows) { + if (typeof row.storageKey === 'string' && row.storageKey.trim()) refs.add(row.storageKey) + } + } catch (error) { + const message = error instanceof Error ? error.message : String(error) + _ulogError('[media-build-unreferenced-index] media_objects unavailable, fallback to legacy field scan', message) + } + + for (const mapping of MEDIA_MODEL_MAPPINGS) { + const model = prismaDynamic[mapping.model] + if (!model) continue + + const select: Record = { id: true } + for (const field of mapping.fields) select[field.legacyField] = true + + let cursor: string | null = null + while (true) { + const rows = await model.findMany({ + select, + ...(cursor + ? { + cursor: { id: cursor }, + skip: 1, + } + : {}), + orderBy: { id: 'asc' }, + take: 500, + }) + if (!rows.length) break + + for (const row of rows) { + for (const field of mapping.fields) { + const value = row[field.legacyField] + if (typeof value !== 'string' || !value.trim()) continue + const key = await resolveStorageKeyFromMediaValue(value) + if (key) refs.add(key) + } + } + + cursor = String(rows[rows.length - 1].id) + } + } + + return refs +} + +async function main() { + const stamp = nowStamp() + const backupDir = path.join(BACKUP_ROOT, stamp) + await fs.mkdir(backupDir, { recursive: true }) + + const referenced = await buildReferencedKeySet() + const storage = await listStorageObjects() + const unreferenced = storage.rows.filter((row) => !referenced.has(row.key)) + + const output = { + createdAt: new Date().toISOString(), + storageType: storage.storageType, + totalStorageObjects: storage.rows.length, + referencedKeyCount: referenced.size, + unreferencedCount: unreferenced.length, + objects: unreferenced, + } + + const filePath = path.join(backupDir, 'unreferenced-storage-objects-index.json') + await fs.writeFile(filePath, JSON.stringify(output, null, 2), 'utf8') + + _ulogInfo(`[media-build-unreferenced-index] storageType=${storage.storageType}`) + _ulogInfo(`[media-build-unreferenced-index] total=${storage.rows.length} unreferenced=${unreferenced.length}`) + _ulogInfo(`[media-build-unreferenced-index] output=${filePath}`) +} + +main() + .catch((error) => { + _ulogError('[media-build-unreferenced-index] failed:', error) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/media-mapping.ts b/scripts/media-mapping.ts new file mode 100644 index 0000000..297e558 --- /dev/null +++ b/scripts/media-mapping.ts @@ -0,0 +1,90 @@ +export type MediaFieldMapping = { + legacyField: string + mediaIdField: string +} + +export type MediaModelMapping = { + model: string + tableName: string + fields: MediaFieldMapping[] +} + +export const MEDIA_MODEL_MAPPINGS: MediaModelMapping[] = [ + { + model: 'characterAppearance', + tableName: 'character_appearances', + fields: [{ legacyField: 'imageUrl', mediaIdField: 'imageMediaId' }], + }, + { + model: 'locationImage', + tableName: 'location_images', + fields: [{ legacyField: 'imageUrl', mediaIdField: 'imageMediaId' }], + }, + { + model: 'novelPromotionCharacter', + tableName: 'novel_promotion_characters', + fields: [{ legacyField: 'customVoiceUrl', mediaIdField: 'customVoiceMediaId' }], + }, + { + model: 'novelPromotionEpisode', + tableName: 'novel_promotion_episodes', + fields: [{ legacyField: 'audioUrl', mediaIdField: 'audioMediaId' }], + }, + { + model: 'novelPromotionPanel', + tableName: 'novel_promotion_panels', + fields: [ + { legacyField: 'imageUrl', mediaIdField: 'imageMediaId' }, + { legacyField: 'videoUrl', mediaIdField: 'videoMediaId' }, + { legacyField: 'lipSyncVideoUrl', mediaIdField: 'lipSyncVideoMediaId' }, + { legacyField: 'sketchImageUrl', mediaIdField: 'sketchImageMediaId' }, + { legacyField: 'previousImageUrl', mediaIdField: 'previousImageMediaId' }, + ], + }, + { + model: 'novelPromotionShot', + tableName: 'novel_promotion_shots', + fields: [{ legacyField: 'imageUrl', mediaIdField: 'imageMediaId' }], + }, + { + model: 'supplementaryPanel', + tableName: 'supplementary_panels', + fields: [{ legacyField: 'imageUrl', mediaIdField: 'imageMediaId' }], + }, + { + model: 'novelPromotionVoiceLine', + tableName: 'novel_promotion_voice_lines', + fields: [{ legacyField: 'audioUrl', mediaIdField: 'audioMediaId' }], + }, + { + model: 'voicePreset', + tableName: 'voice_presets', + fields: [{ legacyField: 'audioUrl', mediaIdField: 'audioMediaId' }], + }, + { + model: 'globalCharacter', + tableName: 'global_characters', + fields: [{ legacyField: 'customVoiceUrl', mediaIdField: 'customVoiceMediaId' }], + }, + { + model: 'globalCharacterAppearance', + tableName: 'global_character_appearances', + fields: [ + { legacyField: 'imageUrl', mediaIdField: 'imageMediaId' }, + { legacyField: 'previousImageUrl', mediaIdField: 'previousImageMediaId' }, + ], + }, + { + model: 'globalLocationImage', + tableName: 'global_location_images', + fields: [ + { legacyField: 'imageUrl', mediaIdField: 'imageMediaId' }, + { legacyField: 'previousImageUrl', mediaIdField: 'previousImageMediaId' }, + ], + }, + { + model: 'globalVoice', + tableName: 'global_voices', + fields: [{ legacyField: 'customVoiceUrl', mediaIdField: 'customVoiceMediaId' }], + }, +] diff --git a/scripts/media-restore-dry-run.ts b/scripts/media-restore-dry-run.ts new file mode 100644 index 0000000..16fc41e --- /dev/null +++ b/scripts/media-restore-dry-run.ts @@ -0,0 +1,111 @@ +import { logInfo as _ulogInfo, logError as _ulogError } from '@/lib/logging/core' +import { promises as fs } from 'node:fs' +import path from 'node:path' +import { prisma } from '@/lib/prisma' + +const BACKUP_ROOT = path.join(process.cwd(), 'data', 'migration-backups') + +type CountMap = Record + +async function findLatestBackupDir() { + const exists = await fs.stat(BACKUP_ROOT).then(() => true).catch(() => false) + if (!exists) { + throw new Error(`Backup root not found: ${BACKUP_ROOT}`) + } + const dirs = (await fs.readdir(BACKUP_ROOT, { withFileTypes: true })) + .filter((d) => d.isDirectory()) + .map((d) => d.name) + .sort() + const validDirs: string[] = [] + for (const dir of dirs) { + const metadataPath = path.join(BACKUP_ROOT, dir, 'metadata.json') + const exists = await fs.stat(metadataPath).then(() => true).catch(() => false) + if (exists) validDirs.push(dir) + } + + if (!validDirs.length) { + throw new Error(`No backup directories found in ${BACKUP_ROOT}`) + } + return path.join(BACKUP_ROOT, validDirs[validDirs.length - 1]) +} + +async function readExpectedCounts(backupDir: string): Promise { + const metadataPath = path.join(backupDir, 'metadata.json') + const raw = await fs.readFile(metadataPath, 'utf8') + const parsed = JSON.parse(raw) + return (parsed.tableCounts || {}) as CountMap +} + +async function currentCounts(): Promise { + const entries: Array<[string, string]> = [ + ['projects', 'projects'], + ['novel_promotion_projects', 'novel_promotion_projects'], + ['novel_promotion_episodes', 'novel_promotion_episodes'], + ['novel_promotion_panels', 'novel_promotion_panels'], + ['novel_promotion_voice_lines', 'novel_promotion_voice_lines'], + ['global_characters', 'global_characters'], + ['global_character_appearances', 'global_character_appearances'], + ['global_locations', 'global_locations'], + ['global_location_images', 'global_location_images'], + ['global_voices', 'global_voices'], + ['tasks', 'tasks'], + ['task_events', 'task_events'], + ] + + const resolved = await Promise.all(entries.map(async ([name, tableName]) => { + const rows = (await prisma.$queryRawUnsafe( + `SELECT COUNT(*) AS c FROM \`${tableName}\``, + )) as Array> + const raw = rows[0] || {} + const firstValue = Object.values(raw)[0] + const count = Number(firstValue || 0) + return [name, Number.isFinite(count) ? count : 0] as const + })) + const out: CountMap = {} + for (const [name, count] of resolved) out[name] = count + return out +} + +function printDiff(expected: CountMap, actual: CountMap) { + const keys = [...new Set([...Object.keys(expected), ...Object.keys(actual)])].sort() + let hasDiff = false + + _ulogInfo('table\texpected\tactual\tdelta') + for (const key of keys) { + const e = expected[key] ?? 0 + const a = actual[key] ?? 0 + const d = a - e + if (d !== 0) hasDiff = true + _ulogInfo(`${key}\t${e}\t${a}\t${d >= 0 ? '+' : ''}${d}`) + } + + return hasDiff +} + +async function main() { + const explicit = process.argv.find((arg) => arg.startsWith('--backup=')) + const backupDir = explicit ? path.resolve(explicit.split('=')[1]) : await findLatestBackupDir() + + _ulogInfo(`[media-restore-dry-run] backupDir=${backupDir}`) + + const expected = await readExpectedCounts(backupDir) + const actual = await currentCounts() + const hasDiff = printDiff(expected, actual) + + if (hasDiff) { + _ulogInfo('[media-restore-dry-run] drift detected (dry-run only, no writes executed).') + process.exitCode = 2 + return + } + + _ulogInfo('[media-restore-dry-run] ok: counts match expected snapshot.') +} + +main() + .catch((error) => { + _ulogError('[media-restore-dry-run] failed:', error) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/media-safety-backup.ts b/scripts/media-safety-backup.ts new file mode 100644 index 0000000..d53cac6 --- /dev/null +++ b/scripts/media-safety-backup.ts @@ -0,0 +1,247 @@ +import { logInfo as _ulogInfo, logError as _ulogError } from '@/lib/logging/core' +import { createHash } from 'node:crypto' +import { promises as fs } from 'node:fs' +import path from 'node:path' +import COS from 'cos-nodejs-sdk-v5' +import { prisma } from '@/lib/prisma' + +type SnapshotTask = { + name: string + tableName: string +} + +type StorageIndexRow = { + key: string + hash: string | null + sizeBytes: number + lastModified: string | null +} + +type CosBucketPage = { + Contents?: Array<{ + Key: string + ETag?: string + Size?: string | number + LastModified?: string + }> + IsTruncated?: string | boolean + NextMarker?: string +} + +const BACKUP_ROOT = path.join(process.cwd(), 'data', 'migration-backups') + +function nowStamp() { + return new Date().toISOString().replace(/[:.]/g, '-') +} + +function toJson(value: unknown) { + return JSON.stringify( + value, + (_key, val) => (typeof val === 'bigint' ? String(val) : val), + 2, + ) +} + +async function writeJson(filePath: string, data: unknown) { + await fs.writeFile(filePath, toJson(data), 'utf8') +} + +function sha256Text(input: string) { + return createHash('sha256').update(input).digest('hex') +} + +function resolveDatabaseFilePath(databaseUrl: string | undefined): string | null { + if (!databaseUrl) return null + if (databaseUrl.startsWith('file:')) { + const raw = databaseUrl.slice('file:'.length) + if (!raw) return null + return path.isAbsolute(raw) ? raw : path.join(process.cwd(), raw) + } + return null +} + +async function listLocalFilesRecursively(rootDir: string, prefix = ''): Promise { + const fullDir = path.join(rootDir, prefix) + const entries = await fs.readdir(fullDir, { withFileTypes: true }) + const out: StorageIndexRow[] = [] + + for (const entry of entries) { + const rel = path.join(prefix, entry.name) + if (entry.isDirectory()) { + out.push(...(await listLocalFilesRecursively(rootDir, rel))) + continue + } + if (!entry.isFile()) continue + + const filePath = path.join(rootDir, rel) + const stat = await fs.stat(filePath) + const buf = await fs.readFile(filePath) + out.push({ + key: rel.split(path.sep).join('/'), + hash: createHash('sha256').update(buf).digest('hex'), + sizeBytes: stat.size, + lastModified: stat.mtime.toISOString(), + }) + } + + return out +} + +async function listCosObjects(): Promise { + const secretId = process.env.COS_SECRET_ID + const secretKey = process.env.COS_SECRET_KEY + const bucket = process.env.COS_BUCKET + const region = process.env.COS_REGION + + if (!secretId || !secretKey || !bucket || !region) { + throw new Error('Missing COS env: COS_SECRET_ID/COS_SECRET_KEY/COS_BUCKET/COS_REGION') + } + + const cos = new COS({ SecretId: secretId, SecretKey: secretKey, Timeout: 60_000 }) + const out: StorageIndexRow[] = [] + let marker = '' + + while (true) { + const page = await new Promise((resolve, reject) => { + cos.getBucket( + { + Bucket: bucket, + Region: region, + Marker: marker, + MaxKeys: 1000, + }, + (err, data) => (err ? reject(err) : resolve((data || {}) as CosBucketPage)), + ) + }) + + const contents = page.Contents || [] + for (const item of contents) { + out.push({ + key: item.Key, + hash: item.ETag ? String(item.ETag).replaceAll('"', '') : null, + sizeBytes: Number(item.Size || 0), + lastModified: item.LastModified || null, + }) + } + + const truncated = String(page.IsTruncated || 'false') === 'true' + if (!truncated) break + marker = page.NextMarker || (contents.length ? contents[contents.length - 1].Key : '') + if (!marker) break + } + + return out +} + +async function buildStorageIndex(): Promise<{ storageType: string; rows: StorageIndexRow[] }> { + const storageType = process.env.STORAGE_TYPE || 'cos' + if (storageType === 'local') { + const uploadDir = process.env.UPLOAD_DIR || './data/uploads' + const rootDir = path.isAbsolute(uploadDir) ? uploadDir : path.join(process.cwd(), uploadDir) + const exists = await fs.stat(rootDir).then(() => true).catch(() => false) + if (!exists) { + return { storageType, rows: [] } + } + const rows = await listLocalFilesRecursively(rootDir) + return { storageType, rows } + } + + const rows = await listCosObjects() + return { storageType, rows } +} + +async function snapshotTables(backupDir: string) { + const tasks: SnapshotTask[] = [ + { name: 'projects', tableName: 'projects' }, + { name: 'novel_promotion_projects', tableName: 'novel_promotion_projects' }, + { name: 'novel_promotion_episodes', tableName: 'novel_promotion_episodes' }, + { name: 'novel_promotion_panels', tableName: 'novel_promotion_panels' }, + { name: 'novel_promotion_voice_lines', tableName: 'novel_promotion_voice_lines' }, + { name: 'global_characters', tableName: 'global_characters' }, + { name: 'global_character_appearances', tableName: 'global_character_appearances' }, + { name: 'global_locations', tableName: 'global_locations' }, + { name: 'global_location_images', tableName: 'global_location_images' }, + { name: 'global_voices', tableName: 'global_voices' }, + { name: 'tasks', tableName: 'tasks' }, + { name: 'task_events', tableName: 'task_events' }, + ] + + const counts: Record = {} + for (const task of tasks) { + const rows = (await prisma.$queryRawUnsafe(`SELECT * FROM \`${task.tableName}\``)) as unknown[] + counts[task.name] = rows.length + await writeJson(path.join(backupDir, `${task.name}.json`), rows) + } + + return counts +} + +async function writeChecksums(backupDir: string) { + const files = (await fs.readdir(backupDir)).sort() + const sums: Record = {} + + for (const file of files) { + const filePath = path.join(backupDir, file) + const stat = await fs.stat(filePath) + if (!stat.isFile()) continue + const buf = await fs.readFile(filePath) + sums[file] = createHash('sha256').update(buf).digest('hex') + } + + await writeJson(path.join(backupDir, 'checksums.json'), sums) +} + +async function backupDbFile(backupDir: string) { + const dbFile = resolveDatabaseFilePath(process.env.DATABASE_URL) + if (!dbFile) return null + + const stat = await fs.stat(dbFile).catch(() => null) + if (!stat || !stat.isFile()) return null + + const fileName = path.basename(dbFile) + const target = path.join(backupDir, `db-file-${fileName}`) + await fs.copyFile(dbFile, target) + return path.basename(target) +} + +async function main() { + const stamp = nowStamp() + const backupDir = path.join(BACKUP_ROOT, stamp) + await fs.mkdir(backupDir, { recursive: true }) + + const meta: Record = { + createdAt: new Date().toISOString(), + backupDir, + databaseUrl: process.env.DATABASE_URL || null, + storageType: process.env.STORAGE_TYPE || 'cos', + nodeEnv: process.env.NODE_ENV || null, + } + + const copiedDbFile = await backupDbFile(backupDir) + meta.copiedDbFile = copiedDbFile + + const tableCounts = await snapshotTables(backupDir) + meta.tableCounts = tableCounts + + const storage = await buildStorageIndex() + meta.storageType = storage.storageType + meta.storageObjectCount = storage.rows.length + await writeJson(path.join(backupDir, 'storage-object-index.json'), storage.rows) + + await writeChecksums(backupDir) + meta.metadataChecksum = sha256Text(toJson(meta)) + await writeJson(path.join(backupDir, 'metadata.json'), meta) + + _ulogInfo(`[media-safety-backup] done: ${backupDir}`) + _ulogInfo(`[media-safety-backup] tableCounts=${JSON.stringify(tableCounts)}`) + _ulogInfo(`[media-safety-backup] storageObjects=${storage.rows.length}`) +} + +main() + .catch((error) => { + _ulogError('[media-safety-backup] failed:', error) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/migrate-cancelled-to-failed.ts b/scripts/migrate-cancelled-to-failed.ts new file mode 100644 index 0000000..ecb9257 --- /dev/null +++ b/scripts/migrate-cancelled-to-failed.ts @@ -0,0 +1,72 @@ +import { prisma } from '@/lib/prisma' + +const OLD_STATUS = 'cancelled' +const NEW_STATUS = 'failed' +const OLD_EVENT_TYPE = 'task.cancelled' +const NEW_EVENT_TYPE = 'task.failed' +const MIGRATION_ERROR_CODE = 'USER_CANCELLED' +const MIGRATION_ERROR_MESSAGE = '用户已停止任务。' + +function log(message: string) { + process.stdout.write(`${message}\n`) +} + +function logError(message: string) { + process.stderr.write(`${message}\n`) +} + +async function main() { + const totalTasks = await prisma.task.count({ + where: { status: OLD_STATUS }, + }) + const totalEvents = await prisma.taskEvent.count({ + where: { eventType: OLD_EVENT_TYPE }, + }) + + log(`[migrate-cancelled-to-failed] matched tasks: ${totalTasks}`) + log(`[migrate-cancelled-to-failed] matched events: ${totalEvents}`) + if (totalTasks === 0 && totalEvents === 0) { + log('[migrate-cancelled-to-failed] no rows to migrate') + return + } + + const taskEmptyMessageResult = await prisma.task.updateMany({ + where: { + status: OLD_STATUS, + OR: [{ errorMessage: null }, { errorMessage: '' }], + }, + data: { + status: NEW_STATUS, + errorCode: MIGRATION_ERROR_CODE, + errorMessage: MIGRATION_ERROR_MESSAGE, + }, + }) + + const taskResult = await prisma.task.updateMany({ + where: { status: OLD_STATUS }, + data: { + status: NEW_STATUS, + errorCode: MIGRATION_ERROR_CODE, + }, + }) + + const eventResult = await prisma.taskEvent.updateMany({ + where: { eventType: OLD_EVENT_TYPE }, + data: { + eventType: NEW_EVENT_TYPE, + }, + }) + + log(`[migrate-cancelled-to-failed] updated tasks (empty message): ${taskEmptyMessageResult.count}`) + log(`[migrate-cancelled-to-failed] updated tasks (remaining): ${taskResult.count}`) + log(`[migrate-cancelled-to-failed] updated events: ${eventResult.count}`) +} + +main() + .catch((error) => { + logError(`[migrate-cancelled-to-failed] failed: ${error instanceof Error ? error.stack || error.message : String(error)}`) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/migrate-image-urls-contract.ts b/scripts/migrate-image-urls-contract.ts new file mode 100644 index 0000000..3a3e77f --- /dev/null +++ b/scripts/migrate-image-urls-contract.ts @@ -0,0 +1,231 @@ +import { logInfo as _ulogInfo, logError as _ulogError } from '@/lib/logging/core' +import { prisma } from '@/lib/prisma' +import { encodeImageUrls } from '@/lib/contracts/image-urls-contract' + +type AppearanceRow = { + id: string + imageUrls: string | null + previousImageUrls: string | null +} + +type DynamicModel = { + findMany: (args: unknown) => Promise + update: (args: unknown) => Promise +} + +type FieldName = 'imageUrls' | 'previousImageUrls' + +type NormalizeResult = { + next: string + changed: boolean + reason: 'ok' | 'null' | 'invalid_json' | 'not_array' | 'filtered_non_string' | 'normalized_json' +} + +type ModelStats = { + scanned: number + updatedRows: number + changedFields: number + reasons: Record +} + +const BATCH_SIZE = 200 +const APPLY = process.argv.includes('--apply') + +const MODELS: Array<{ name: string; model: string }> = [ + { name: 'CharacterAppearance', model: 'characterAppearance' }, + { name: 'GlobalCharacterAppearance', model: 'globalCharacterAppearance' }, +] + +const prismaDynamic = prisma as unknown as Record + +function print(message: string) { + process.stdout.write(`${message}\n`) +} + +function normalizeField(raw: string | null): NormalizeResult { + if (raw === null) { + return { + next: encodeImageUrls([]), + changed: true, + reason: 'null', + } + } + + try { + const parsed = JSON.parse(raw) as unknown + if (!Array.isArray(parsed)) { + return { + next: encodeImageUrls([]), + changed: true, + reason: 'not_array', + } + } + + const stringOnly = parsed.filter((item): item is string => typeof item === 'string') + const next = encodeImageUrls(stringOnly) + + if (parsed.length !== stringOnly.length) { + return { + next, + changed: true, + reason: 'filtered_non_string', + } + } + + if (raw !== next) { + return { + next, + changed: true, + reason: 'normalized_json', + } + } + + return { + next, + changed: false, + reason: 'ok', + } + } catch { + return { + next: encodeImageUrls([]), + changed: true, + reason: 'invalid_json', + } + } +} + +async function migrateModel(modelName: string, modelKey: string) { + const model = prismaDynamic[modelKey] + if (!model) { + throw new Error(`Prisma model not found: ${modelKey}`) + } + + const stats: ModelStats = { + scanned: 0, + updatedRows: 0, + changedFields: 0, + reasons: { + ok: 0, + null: 0, + invalid_json: 0, + not_array: 0, + filtered_non_string: 0, + normalized_json: 0, + }, + } + + const samples: Array<{ id: string; field: FieldName; reason: NormalizeResult['reason']; before: string | null; after: string }> = [] + + let cursor: string | null = null + + while (true) { + const rows = await model.findMany({ + select: { + id: true, + imageUrls: true, + previousImageUrls: true, + }, + ...(cursor + ? { + cursor: { id: cursor }, + skip: 1, + } + : {}), + orderBy: { id: 'asc' }, + take: BATCH_SIZE, + }) + + if (rows.length === 0) break + + for (const row of rows) { + stats.scanned += 1 + + const imageUrlsResult = normalizeField(row.imageUrls) + const previousImageUrlsResult = normalizeField(row.previousImageUrls) + + stats.reasons[imageUrlsResult.reason] += 1 + stats.reasons[previousImageUrlsResult.reason] += 1 + + const data: Partial> = {} + + if (imageUrlsResult.changed) { + data.imageUrls = imageUrlsResult.next + stats.changedFields += 1 + if (samples.length < 20) { + samples.push({ + id: row.id, + field: 'imageUrls', + reason: imageUrlsResult.reason, + before: row.imageUrls, + after: imageUrlsResult.next, + }) + } + } + + if (previousImageUrlsResult.changed) { + data.previousImageUrls = previousImageUrlsResult.next + stats.changedFields += 1 + if (samples.length < 20) { + samples.push({ + id: row.id, + field: 'previousImageUrls', + reason: previousImageUrlsResult.reason, + before: row.previousImageUrls, + after: previousImageUrlsResult.next, + }) + } + } + + if (Object.keys(data).length > 0) { + stats.updatedRows += 1 + if (APPLY) { + await model.update({ + where: { id: row.id }, + data, + }) + } + } + } + + cursor = rows[rows.length - 1]?.id || null + } + + const summary = `[migrate-image-urls-contract] ${modelName}: scanned=${stats.scanned} updatedRows=${stats.updatedRows} changedFields=${stats.changedFields}` + _ulogInfo(summary) + print(summary) + print(`[migrate-image-urls-contract] ${modelName}: reasons=${JSON.stringify(stats.reasons)}`) + + if (samples.length > 0) { + print(`[migrate-image-urls-contract] ${modelName}: sampleChanges=${JSON.stringify(samples, null, 2)}`) + } + + return stats +} + +async function main() { + print(`[migrate-image-urls-contract] mode=${APPLY ? 'apply' : 'dry-run'}`) + + const totals = { + scanned: 0, + updatedRows: 0, + changedFields: 0, + } + + for (const target of MODELS) { + const stats = await migrateModel(target.name, target.model) + totals.scanned += stats.scanned + totals.updatedRows += stats.updatedRows + totals.changedFields += stats.changedFields + } + + print(`[migrate-image-urls-contract] done scanned=${totals.scanned} updatedRows=${totals.updatedRows} changedFields=${totals.changedFields} mode=${APPLY ? 'apply' : 'dry-run'}`) +} + +main() + .catch((error) => { + _ulogError('[migrate-image-urls-contract] failed:', error) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/migrate-local-to-minio.ts b/scripts/migrate-local-to-minio.ts new file mode 100644 index 0000000..5bb0388 --- /dev/null +++ b/scripts/migrate-local-to-minio.ts @@ -0,0 +1,217 @@ +#!/usr/bin/env npx tsx +/** + * 本地存储 → MinIO 迁移脚本 + * 使用 @aws-sdk/client-s3(项目已有依赖) + * + * 用法: npx tsx scripts/migrate-local-to-minio.ts + */ + +import { S3Client, PutObjectCommand, HeadObjectCommand } from '@aws-sdk/client-s3' +import * as fs from 'fs/promises' +import * as path from 'path' +import { createReadStream } from 'fs' + +// ==================== 配置 ==================== +const LOCAL_DIR = process.env.LOCAL_UPLOAD_DIR || './data/uploads' +const MINIO_ENDPOINT = process.env.MINIO_ENDPOINT || 'http://127.0.0.1:19000' +const MINIO_BUCKET = process.env.MINIO_BUCKET || 'waoowaoo' +const MINIO_REGION = process.env.MINIO_REGION || 'us-east-1' +const MINIO_ACCESS_KEY = process.env.MINIO_ACCESS_KEY || 'minioadmin' +const MINIO_SECRET_KEY = process.env.MINIO_SECRET_KEY || 'minioadmin' +const CONCURRENCY = parseInt(process.env.MIGRATE_CONCURRENCY || '10') +const DRY_RUN = process.env.MIGRATE_DRY_RUN === 'true' + +// ==================== S3 客户端 ==================== +const s3 = new S3Client({ + endpoint: MINIO_ENDPOINT, + region: MINIO_REGION, + forcePathStyle: true, + credentials: { + accessKeyId: MINIO_ACCESS_KEY, + secretAccessKey: MINIO_SECRET_KEY, + }, +}) + +// ==================== 工具函数 ==================== +function guessContentType(filename: string): string { + const ext = path.extname(filename).toLowerCase() + const types: Record = { + '.jpg': 'image/jpeg', + '.jpeg': 'image/jpeg', + '.png': 'image/png', + '.gif': 'image/gif', + '.webp': 'image/webp', + '.mp4': 'video/mp4', + '.webm': 'video/webm', + '.mp3': 'audio/mpeg', + '.wav': 'audio/wav', + '.ogg': 'audio/ogg', + '.json': 'application/json', + '.txt': 'text/plain', + } + return types[ext] || 'application/octet-stream' +} + +function formatBytes(bytes: number): string { + if (bytes === 0) return '0 B' + const k = 1024 + const sizes = ['B', 'KB', 'MB', 'GB'] + const i = Math.floor(Math.log(bytes) / Math.log(k)) + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i] +} + +// ==================== 扫描本地文件 ==================== +async function scanLocalFiles(dir: string, basePath = ''): Promise> { + const files: Array<{ localPath: string; key: string; size: number }> = [] + + try { + const entries = await fs.readdir(dir, { withFileTypes: true }) + for (const entry of entries) { + const fullPath = path.join(dir, entry.name) + const relativePath = path.join(basePath, entry.name) + + if (entry.isDirectory()) { + files.push(...await scanLocalFiles(fullPath, relativePath)) + } else { + // 跳过隐藏文件 + if (entry.name.startsWith('.')) continue + const stats = await fs.stat(fullPath) + files.push({ + localPath: fullPath, + key: relativePath.replace(/\\/g, '/'), + size: stats.size, + }) + } + } + } catch (err: unknown) { + console.error(` ⚠️ 无法读取目录: ${dir}`, (err as Error).message) + } + + return files +} + +// ==================== 检查文件是否已存在 ==================== +async function objectExists(key: string): Promise { + try { + await s3.send(new HeadObjectCommand({ Bucket: MINIO_BUCKET, Key: key })) + return true + } catch { + return false + } +} + +// ==================== 上传文件 ==================== +async function uploadFile(file: { localPath: string; key: string; size: number }): Promise<'success' | 'skipped' | 'error'> { + // 检查是否已存在 + if (await objectExists(file.key)) { + return 'skipped' + } + + if (DRY_RUN) { + console.log(` [DRY RUN] 将上传: ${file.key} (${formatBytes(file.size)})`) + return 'skipped' + } + + try { + const body = await fs.readFile(file.localPath) + await s3.send(new PutObjectCommand({ + Bucket: MINIO_BUCKET, + Key: file.key, + Body: body, + ContentType: guessContentType(file.key), + })) + return 'success' + } catch (err: unknown) { + console.error(` ✗ 上传失败: ${file.key}`, (err as Error).message) + return 'error' + } +} + +// ==================== 并行控制 ==================== +async function runBatched(items: T[], concurrency: number, fn: (item: T) => Promise) { + for (let i = 0; i < items.length; i += concurrency) { + const batch = items.slice(i, i + concurrency) + await Promise.all(batch.map(fn)) + } +} + +// ==================== 主流程 ==================== +async function main() { + console.log() + console.log('╔══════════════════════════════════════════════════════╗') + console.log('║ Local Storage → MinIO Migration Tool ║') + console.log('╚══════════════════════════════════════════════════════╝') + console.log() + console.log(` 📂 源目录: ${path.resolve(LOCAL_DIR)}`) + console.log(` 🪣 目标桶: ${MINIO_ENDPOINT}/${MINIO_BUCKET}`) + console.log(` ⚡ 并发数: ${CONCURRENCY}`) + console.log(` 🔍 干运行: ${DRY_RUN}`) + console.log() + + // 1. 扫描文件 + console.log('📦 扫描本地文件...') + const files = await scanLocalFiles(LOCAL_DIR) + + if (files.length === 0) { + console.log(' 没有需要迁移的文件') + return + } + + const totalSize = files.reduce((sum, f) => sum + f.size, 0) + console.log(` 找到 ${files.length} 个文件, 总大小: ${formatBytes(totalSize)}`) + console.log() + + // 2. 开始上传 + console.log('🚀 开始迁移...') + const startTime = Date.now() + let success = 0 + let skipped = 0 + let failed = 0 + let processed = 0 + + await runBatched(files, CONCURRENCY, async (file) => { + const result = await uploadFile(file) + processed++ + + if (result === 'success') { + success++ + if (success % 50 === 0 || success <= 5) { + console.log(` ✓ [${processed}/${files.length}] ${file.key} (${formatBytes(file.size)})`) + } + } else if (result === 'skipped') { + skipped++ + } else { + failed++ + } + + if (processed % 100 === 0) { + const pct = ((processed / files.length) * 100).toFixed(1) + console.log(` 📊 进度: ${pct}% (${processed}/${files.length}) | ✓${success} ⏭${skipped} ✗${failed}`) + } + }) + + // 3. 结果 + const duration = ((Date.now() - startTime) / 1000).toFixed(1) + console.log() + console.log('╔══════════════════════════════════════════════════════╗') + console.log('║ 迁移完成 ║') + console.log('╠══════════════════════════════════════════════════════╣') + console.log(`║ 总文件: ${String(files.length).padEnd(40)} ║`) + console.log(`║ 成功: ${String(success).padEnd(40)} ║`) + console.log(`║ 跳过: ${String(skipped).padEnd(40)} ║`) + console.log(`║ 失败: ${String(failed).padEnd(40)} ║`) + console.log(`║ 耗时: ${String(duration + 's').padEnd(40)} ║`) + console.log(`║ 大小: ${formatBytes(totalSize).padEnd(40)} ║`) + console.log('╚══════════════════════════════════════════════════════╝') + + if (failed > 0) { + console.log() + console.log('⚠️ 有文件上传失败,请重新运行脚本(已上传的会自动跳过)') + process.exit(1) + } +} + +main().catch(err => { + console.error('迁移失败:', err) + process.exit(1) +}) diff --git a/scripts/migrate-to-minio.sh b/scripts/migrate-to-minio.sh new file mode 100755 index 0000000..bd53621 --- /dev/null +++ b/scripts/migrate-to-minio.sh @@ -0,0 +1,100 @@ +#!/bin/bash +# +# 存储迁移快捷脚本 +# 用法: ./scripts/migrate-to-minio.sh [选项] +# + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_DIR="$(dirname "$SCRIPT_DIR")" +cd "$PROJECT_DIR" + +# 颜色输出 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +echo -e "${GREEN}══════════════════════════════════════════════════════════${NC}" +echo -e "${GREEN} Local Storage → MinIO Migration Tool${NC}" +echo -e "${GREEN}══════════════════════════════════════════════════════════${NC}" +echo + +# 检查 MinIO 是否运行 +if ! curl -sf http://127.0.0.1:19000/minio/health/live >/devdev/null 2>&1; then + echo -e "${YELLOW}⚠ MinIO 未检测到在 127.0.0.1:19000${NC}" + echo " 请先启动 MinIO: docker compose up -d minio" + echo + read -p "是否尝试自动启动 MinIO? [Y/n] " -n 1 -r + echo + if [[ ! $REPLY =~ ^[Nn]$ ]]; then + docker compose up -d minio + echo -e "${GREEN}✓ MinIO 启动中,等待 5 秒...${NC}" + sleep 5 + else + exit 1 + fi +fi + +echo -e "${GREEN}✓ MinIO 服务正常${NC}" +echo + +# 检查本地数据目录 +if [ ! -d "./data/uploads" ]; then + echo -e "${YELLOW}⚠ 本地数据目录 ./data/uploads 不存在${NC}" + echo " 无需迁移" + exit 0 +fi + +FILE_COUNT=$(find ./data/uploads -type f 2>/dev/null | wc -l) +if [ "$FILE_COUNT" -eq 0 ]; then + echo -e "${YELLOW}⚠ 本地数据目录为空${NC}" + echo " 无需迁移" + exit 0 +fi + +echo "本地文件数: $FILE_COUNT" +echo + +# 运行干运行模式预览 +echo -e "${YELLOW}▶ 干运行预览 (Dry Run)...${NC}" +MIGRATE_DRY_RUN=true npx tsx scripts/migrate-to-minio.ts +echo + +# 确认执行 +read -p "是否开始实际迁移? [y/N] " -n 1 -r +echo +if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo -e "${YELLOW}已取消迁移${NC}" + exit 0 +fi + +echo +echo -e "${GREEN}▶ 开始迁移...${NC}" +npx tsx scripts/migrate-to-minio.ts + +if [ $? -eq 0 ]; then + echo + echo -e "${GREEN}══════════════════════════════════════════════════════════${NC}" + echo -e "${GREEN} 迁移成功完成!${NC}" + echo -e "${GREEN}══════════════════════════════════════════════════════════${NC}" + echo + echo "后续步骤:" + echo " 1. 验证 MinIO 控制台: http://127.0.0.1:19001" + echo " 账号: minioadmin / minioadmin" + echo " 2. 更新 .env: STORAGE_TYPE=minio" + echo " 3. 重启应用: docker compose restart app" + echo " 4. 测试图片/视频访问" + echo " 5. 确认无误后删除本地数据: rm -rf ./data/uploads" + echo +else + echo + echo -e "${RED}══════════════════════════════════════════════════════════${NC}" + echo -e "${RED} 迁移失败${NC}" + echo -e "${RED}══════════════════════════════════════════════════════════${NC}" + echo + echo "可重新运行继续迁移:" + echo " ./scripts/migrate-to-minio.sh" + exit 1 +fi diff --git a/scripts/migrate-to-minio.ts b/scripts/migrate-to-minio.ts new file mode 100644 index 0000000..41365f9 --- /dev/null +++ b/scripts/migrate-to-minio.ts @@ -0,0 +1,343 @@ +#!/usr/bin/env node +/** + * 存储迁移脚本: Local → MinIO + * + * 用途: 将本地文件存储的数据无缝迁移到 MinIO 对象存储 + * 特点: + * - 断点续传(记录已迁移文件) + * - 校验和验证 + * - 原子性操作(失败可回滚) + * - 并行上传加速 + */ + +import { Client as MinioClient } from 'minio' +import * as fs from 'fs/promises' +import * as path from 'path' +import { createHash } from 'crypto' +import { createReadStream } from 'fs' + +// ==================== 配置 ==================== +const CONFIG = { + // 源: 本地存储 + local: { + baseDir: process.env.LOCAL_UPLOAD_DIR || './data/uploads', + }, + // 目标: MinIO + minio: { + endPoint: process.env.MINIO_ENDPOINT?.replace(/^https?:\/\//, '') || '127.0.0.1', + port: parseInt(process.env.MINIO_PORT || '9000'), + useSSL: process.env.MINIO_USE_SSL === 'true', + accessKey: process.env.MINIO_ACCESS_KEY || 'minioadmin', + secretKey: process.env.MINIO_SECRET_KEY || 'minioadmin', + bucket: process.env.MINIO_BUCKET || 'waoowaoo', + region: process.env.MINIO_REGION || 'us-east-1', + forcePathStyle: process.env.MINIO_FORCE_PATH_STYLE !== 'false', + }, + // 迁移选项 + options: { + concurrency: parseInt(process.env.MIGRATE_CONCURRENCY || '5'), + dryRun: process.env.MIGRATE_DRY_RUN === 'true', + resume: process.env.MIGRATE_RESUME !== 'false', + progressFile: process.env.MIGRATE_PROGRESS_FILE || './scripts/.migrate-progress.json', + logLevel: process.env.MIGRATE_LOG_LEVEL || 'info', // debug, info, warn, error + } +} + +// ==================== 日志 ==================== +const LOG_LEVELS = { debug: 0, info: 1, warn: 2, error: 3 } +function log(level: string, message: string, ...args: unknown[]) { + if (LOG_LEVELS[level as keyof typeof LOG_LEVELS] >= LOG_LEVELS[CONFIG.options.logLevel as keyof typeof LOG_LEVELS]) { + const timestamp = new Date().toISOString() + console[level === 'error' ? 'error' : 'log'](`[${timestamp}] [${level.toUpperCase()}] ${message}`, ...args) + } +} + +// ==================== MinIO 客户端 ==================== +const minioClient = new MinioClient({ + endPoint: CONFIG.minio.endPoint, + port: CONFIG.minio.port, + useSSL: CONFIG.minio.useSSL, + accessKey: CONFIG.minio.accessKey, + secretKey: CONFIG.minio.secretKey, + region: CONFIG.minio.region, +}) + +// ==================== 文件扫描 ==================== +async function scanLocalFiles(dir: string, basePath = ''): Promise> { + const files: Array<{localPath: string, key: string, size: number, mtime: Date}> = [] + + try { + const entries = await fs.readdir(dir, { withFileTypes: true }) + + for (const entry of entries) { + const fullPath = path.join(dir, entry.name) + const relativePath = path.join(basePath, entry.name) + + if (entry.isDirectory()) { + const subFiles = await scanLocalFiles(fullPath, relativePath) + files.push(...subFiles) + } else { + const stats = await fs.stat(fullPath) + files.push({ + localPath: fullPath, + key: relativePath.replace(/\\/g, '/'), // 统一使用正斜杠 + size: stats.size, + mtime: stats.mtime, + }) + } + } + } catch (err: unknown) { + log('warn', `无法读取目录: ${dir}`, (err as Error).message) + } + + return files +} + +// ==================== 校验和 ==================== +async function calculateHash(filePath: string): Promise { + return new Promise((resolve, reject) => { + const hash = createHash('md5') + const stream = createReadStream(filePath) + + stream.on('data', chunk => hash.update(chunk)) + stream.on('end', () => resolve(hash.digest('hex'))) + stream.on('error', reject) + }) +} + +// ==================== 进度管理 ==================== +async function loadProgress(): Promise> { + try { + if (!CONFIG.options.resume) { + return new Set() + } + const data = await fs.readFile(CONFIG.options.progressFile, 'utf-8') + const progress = JSON.parse(data) + return new Set(progress.migrated || []) + } catch { + return new Set() + } +} + +async function saveProgress(migratedKeys: Set) { + const progress = { + updatedAt: new Date().toISOString(), + migrated: Array.from(migratedKeys), + } + await fs.writeFile(CONFIG.options.progressFile, JSON.stringify(progress, null, 2)) +} + +// ==================== 存储桶检查/创建 ==================== +async function ensureBucket() { + log('info', `检查存储桶: ${CONFIG.minio.bucket}`) + + const exists = await minioClient.bucketExists(CONFIG.minio.bucket) + if (!exists) { + log('info', `创建存储桶: ${CONFIG.minio.bucket}`) + await minioClient.makeBucket(CONFIG.minio.bucket, CONFIG.minio.region) + + // 设置存储桶为 public read (可选,根据需求) + const policy = { + Version: '2012-10-17', + Statement: [ + { + Effect: 'Allow', + Principal: { AWS: ['*'] }, + Action: ['s3:GetObject'], + Resource: [`arn:aws:s3:::${CONFIG.minio.bucket}/*`] + } + ] + } + await minioClient.setBucketPolicy(CONFIG.minio.bucket, JSON.stringify(policy)) + log('info', '存储桶访问策略已设置为公开读取') + } +} + +// ==================== 文件上传 ==================== +async function uploadFile(fileInfo: {localPath: string, key: string, size: number}, migratedKeys: Set): Promise<{status: string, key: string, size?: number, error?: string}> { + const { localPath, key, size } = fileInfo + + // 检查是否已迁移 + if (migratedKeys.has(key)) { + log('debug', `跳过已迁移: ${key}`) + return { status: 'skipped', key } + } + + if (CONFIG.options.dryRun) { + log('info', `[DRY RUN] 将上传: ${key} (${formatBytes(size)})`) + return { status: 'dry_run', key } + } + + try { + // 计算本地文件 MD5 + const localHash = await calculateHash(localPath) + + // 上传文件 + const fileStream = createReadStream(localPath) + await minioClient.putObject(CONFIG.minio.bucket, key, fileStream, size, { + 'Content-Type': guessContentType(key), + 'X-Amz-Meta-Original-Hash': localHash, + }) + + // 验证上传 + const stat = await minioClient.statObject(CONFIG.minio.bucket, key) + + // 记录迁移成功 + migratedKeys.add(key) + + log('info', `✓ 上传成功: ${key} (${formatBytes(size)})`) + return { status: 'success', key, size } + + } catch (err: unknown) { + log('error', `✗ 上传失败: ${key}`, (err as Error).message) + return { status: 'error', key, error: (err as Error).message } + } +} + +// ==================== 内容类型猜测 ==================== +function guessContentType(filename: string): string { + const ext = path.extname(filename).toLowerCase() + const types: Record = { + '.jpg': 'image/jpeg', + '.jpeg': 'image/jpeg', + '.png': 'image/png', + '.gif': 'image/gif', + '.webp': 'image/webp', + '.mp4': 'video/mp4', + '.webm': 'video/webm', + '.mp3': 'audio/mpeg', + '.wav': 'audio/wav', + '.json': 'application/json', + '.txt': 'text/plain', + } + return types[ext] || 'application/octet-stream' +} + +// ==================== 字节格式化 ==================== +function formatBytes(bytes: number): string { + if (bytes === 0) return '0 B' + const k = 1024 + const sizes = ['B', 'KB', 'MB', 'GB', 'TB'] + const i = Math.floor(Math.log(bytes) / Math.log(k)) + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i] +} + +// ==================== 并行任务控制 ==================== +async function runWithConcurrency(tasks: Array<() => Promise>, concurrency: number): Promise { + const results: T[] = [] + const executing: Promise[] = [] + + for (const task of tasks) { + const promise = task().then(result => { + results.push(result) + }) + executing.push(promise) + + if (executing.length >= concurrency) { + await Promise.race(executing) + executing.splice(executing.findIndex(p => p === promise), 1) + } + } + + await Promise.all(executing) + return results +} + +// ==================== 主流程 ==================== +async function main() { + console.log('╔══════════════════════════════════════════════════════════╗') + console.log('║ Local Storage → MinIO Migration Tool ║') + console.log('╚══════════════════════════════════════════════════════════╝') + console.log() + + log('info', '配置信息:') + log('info', ` 本地目录: ${path.resolve(CONFIG.local.baseDir)}`) + log('info', ` MinIO: ${CONFIG.minio.endPoint}:${CONFIG.minio.port}/${CONFIG.minio.bucket}`) + log('info', ` 并发数: ${CONFIG.options.concurrency}`) + log('info', ` 干运行: ${CONFIG.options.dryRun}`) + log('info', ` 断点续传: ${CONFIG.options.resume}`) + console.log() + + // 1. 扫描本地文件 + log('info', '扫描本地文件...') + const files = await scanLocalFiles(CONFIG.local.baseDir) + log('info', `找到 ${files.length} 个文件`) + + if (files.length === 0) { + log('info', '没有需要迁移的文件') + return + } + + const totalSize = files.reduce((sum, f) => sum + f.size, 0) + log('info', `总大小: ${formatBytes(totalSize)}`) + console.log() + + // 2. 加载进度 + const migratedKeys = await loadProgress() + log('info', `已迁移: ${migratedKeys.size} 个文件`) + + // 3. 确保存储桶存在 + await ensureBucket() + + // 4. 执行迁移 + const startTime = Date.now() + let processed = 0 + let success = 0 + let failed = 0 + let skipped = 0 + + const uploadTasks = files.map(file => async () => { + const result = await uploadFile(file, migratedKeys) + processed++ + + if (result.status === 'success') success++ + else if (result.status === 'error') failed++ + else if (result.status === 'skipped') skipped++ + + // 每 10 个文件保存一次进度 + if (processed % 10 === 0) { + await saveProgress(migratedKeys) + const progress = ((processed / files.length) * 100).toFixed(1) + log('info', `进度: ${progress}% (${processed}/${files.length})`) + } + + return result + }) + + await runWithConcurrency(uploadTasks, CONFIG.options.concurrency) + + // 5. 保存最终进度 + await saveProgress(migratedKeys) + + // 6. 报告 + const duration = ((Date.now() - startTime) / 1000).toFixed(1) + console.log() + console.log('╔══════════════════════════════════════════════════════════╗') + console.log('║ 迁移完成 ║') + console.log('╠══════════════════════════════════════════════════════════╣') + console.log(`║ 总文件数: ${String(files.length).padEnd(39)} ║`) + console.log(`║ 成功: ${String(success).padEnd(39)} ║`) + console.log(`║ 失败: ${String(failed).padEnd(39)} ║`) + console.log(`║ 跳过: ${String(skipped).padEnd(39)} ║`) + console.log(`║ 耗时: ${String(duration + 's').padEnd(39)} ║`) + console.log('╚══════════════════════════════════════════════════════════╝') + + // 7. 后续步骤提示 + console.log() + console.log('📋 后续步骤:') + console.log(' 1. 验证 MinIO 中的文件: mc ls local/waoowaoo') + console.log(' 2. 更新 .env: STORAGE_TYPE=minio') + console.log(' 3. 重启应用: docker compose restart app') + console.log(' 4. 测试图片/视频访问是否正常') + console.log(' 5. 确认无误后可删除本地文件: rm -rf ./data/uploads') + + if (failed > 0) { + process.exit(1) + } +} + +// 运行 +main().catch(err => { + log('error', '迁移失败:', err) + process.exit(1) +}) diff --git a/scripts/migrations/migrate-capability-selections.ts b/scripts/migrations/migrate-capability-selections.ts new file mode 100644 index 0000000..ea0a514 --- /dev/null +++ b/scripts/migrations/migrate-capability-selections.ts @@ -0,0 +1,310 @@ +import { prisma } from '@/lib/prisma' +import { + parseModelKeyStrict, + type CapabilitySelections, + type CapabilityValue, +} from '@/lib/model-config-contract' +import { findBuiltinCapabilities } from '@/lib/model-capabilities/catalog' + +const APPLY = process.argv.includes('--apply') + +const USER_IMAGE_MODEL_FIELDS = [ + 'characterModel', + 'locationModel', + 'storyboardModel', + 'editModel', +] as const + +const PROJECT_IMAGE_MODEL_FIELDS = [ + 'characterModel', + 'locationModel', + 'storyboardModel', + 'editModel', +] as const + +type UserImageModelField = typeof USER_IMAGE_MODEL_FIELDS[number] +type ProjectImageModelField = typeof PROJECT_IMAGE_MODEL_FIELDS[number] + +interface UserPreferenceRow { + id: string + userId: string + imageResolution: string + capabilityDefaults: string | null + characterModel: string | null + locationModel: string | null + storyboardModel: string | null + editModel: string | null +} + +interface ProjectRow { + id: string + projectId: string + imageResolution: string + videoResolution: string + capabilityOverrides: string | null + characterModel: string | null + locationModel: string | null + storyboardModel: string | null + editModel: string | null + videoModel: string | null +} + +interface MigrationSummary { + mode: 'dry-run' | 'apply' + userPreference: { + scanned: number + updated: number + migratedImageResolution: number + } + novelPromotionProject: { + scanned: number + updated: number + migratedImageResolution: number + migratedVideoResolution: number + } +} + +function isRecord(value: unknown): value is Record { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +function isCapabilityValue(value: unknown): value is CapabilityValue { + return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' +} + +function normalizeSelections(raw: unknown): CapabilitySelections { + if (!isRecord(raw)) return {} + + const normalized: CapabilitySelections = {} + for (const [modelKey, rawSelection] of Object.entries(raw)) { + if (!isRecord(rawSelection)) continue + + const nextSelection: Record = {} + for (const [field, value] of Object.entries(rawSelection)) { + if (isCapabilityValue(value)) { + nextSelection[field] = value + } + } + + normalized[modelKey] = nextSelection + } + + return normalized +} + +function parseSelections(raw: string | null): CapabilitySelections { + if (!raw) return {} + try { + return normalizeSelections(JSON.parse(raw) as unknown) + } catch { + return {} + } +} + +function serializeSelections(selections: CapabilitySelections): string | null { + if (Object.keys(selections).length === 0) return null + return JSON.stringify(selections) +} + +function getCapabilityResolutionOptions( + modelType: 'image' | 'video', + modelKey: string, +): string[] { + const parsed = parseModelKeyStrict(modelKey) + if (!parsed) return [] + + const capabilities = findBuiltinCapabilities(modelType, parsed.provider, parsed.modelId) + const namespace = capabilities?.[modelType] + if (!namespace || !isRecord(namespace)) return [] + + const resolutionOptions = namespace.resolutionOptions + if (!Array.isArray(resolutionOptions)) return [] + + return resolutionOptions.filter((item): item is string => typeof item === 'string' && item.trim().length > 0) +} + +function ensureModelResolutionSelection(input: { + modelType: 'image' | 'video' + modelKey: string + resolution: string + selections: CapabilitySelections +}): boolean { + const options = getCapabilityResolutionOptions(input.modelType, input.modelKey) + if (options.length === 0) return false + if (!options.includes(input.resolution)) return false + + const current = input.selections[input.modelKey] + if (current && current.resolution !== undefined) { + return false + } + + input.selections[input.modelKey] = { + ...(current || {}), + resolution: input.resolution, + } + return true +} + +function collectModelKeys( + row: RowType, + fields: readonly (keyof RowType)[], +): string[] { + const modelKeys: string[] = [] + for (const field of fields) { + const value = row[field] + if (typeof value !== 'string') continue + const trimmed = value.trim() + if (!trimmed) continue + modelKeys.push(trimmed) + } + return modelKeys +} + +async function migrateUserPreferences(summary: MigrationSummary) { + const rows = await prisma.userPreference.findMany({ + select: { + id: true, + userId: true, + imageResolution: true, + capabilityDefaults: true, + characterModel: true, + locationModel: true, + storyboardModel: true, + editModel: true, + }, + }) as UserPreferenceRow[] + + summary.userPreference.scanned = rows.length + + for (const row of rows) { + const nextSelections = parseSelections(row.capabilityDefaults) + const modelKeys = collectModelKeys(row, USER_IMAGE_MODEL_FIELDS) + let changed = false + + for (const modelKey of modelKeys) { + if (ensureModelResolutionSelection({ + modelType: 'image', + modelKey, + resolution: row.imageResolution, + selections: nextSelections, + })) { + changed = true + summary.userPreference.migratedImageResolution += 1 + } + } + + if (!changed) continue + summary.userPreference.updated += 1 + + if (APPLY) { + await prisma.userPreference.update({ + where: { id: row.id }, + data: { + capabilityDefaults: serializeSelections(nextSelections), + }, + }) + } + } +} + +async function migrateProjects(summary: MigrationSummary) { + const rows = await prisma.novelPromotionProject.findMany({ + select: { + id: true, + projectId: true, + imageResolution: true, + videoResolution: true, + capabilityOverrides: true, + characterModel: true, + locationModel: true, + storyboardModel: true, + editModel: true, + videoModel: true, + }, + }) as ProjectRow[] + + summary.novelPromotionProject.scanned = rows.length + + for (const row of rows) { + const nextSelections = parseSelections(row.capabilityOverrides) + const imageModelKeys = collectModelKeys(row, PROJECT_IMAGE_MODEL_FIELDS) + let changed = false + + for (const modelKey of imageModelKeys) { + if (ensureModelResolutionSelection({ + modelType: 'image', + modelKey, + resolution: row.imageResolution, + selections: nextSelections, + })) { + changed = true + summary.novelPromotionProject.migratedImageResolution += 1 + } + } + + if (typeof row.videoModel === 'string' && row.videoModel.trim()) { + if (ensureModelResolutionSelection({ + modelType: 'video', + modelKey: row.videoModel.trim(), + resolution: row.videoResolution, + selections: nextSelections, + })) { + changed = true + summary.novelPromotionProject.migratedVideoResolution += 1 + } + } + + if (!changed) continue + summary.novelPromotionProject.updated += 1 + + if (APPLY) { + await prisma.novelPromotionProject.update({ + where: { id: row.id }, + data: { + capabilityOverrides: serializeSelections(nextSelections), + }, + }) + } + } +} + +async function main() { + const summary: MigrationSummary = { + mode: APPLY ? 'apply' : 'dry-run', + userPreference: { + scanned: 0, + updated: 0, + migratedImageResolution: 0, + }, + novelPromotionProject: { + scanned: 0, + updated: 0, + migratedImageResolution: 0, + migratedVideoResolution: 0, + }, + } + + await migrateUserPreferences(summary) + await migrateProjects(summary) + + process.stdout.write(`${JSON.stringify(summary, null, 2)}\n`) +} + +main() + .catch((error: unknown) => { + const message = error instanceof Error ? error.message : String(error) + const missingColumn = + message.includes('capabilityDefaults') || message.includes('capabilityOverrides') + if (missingColumn && message.includes('does not exist')) { + process.stderr.write( + '[migrate-capability-selections] FAILED: required DB columns are missing. ' + + 'Apply SQL migration `prisma/migrations/20260215_add_capability_selection_columns.sql` first.\n', + ) + } else { + process.stderr.write(`[migrate-capability-selections] FAILED: ${message}\n`) + } + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/migrations/migrate-custom-pricing-v2.ts b/scripts/migrations/migrate-custom-pricing-v2.ts new file mode 100644 index 0000000..4bd3bb2 --- /dev/null +++ b/scripts/migrations/migrate-custom-pricing-v2.ts @@ -0,0 +1,152 @@ +import { prisma } from '@/lib/prisma' + +const APPLY = process.argv.includes('--apply') + +type PreferenceRow = { + id: string + userId: string + customModels: string | null +} + +type MigrationSummary = { + mode: 'dry-run' | 'apply' + scanned: number + updatedRows: number + migratedModels: number + skippedInvalidRows: number +} + +function isRecord(value: unknown): value is Record { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +function parseCustomModels(raw: string | null): unknown[] | null { + if (!raw) return [] + try { + const parsed = JSON.parse(raw) as unknown + if (!Array.isArray(parsed)) return null + return parsed + } catch { + return null + } +} + +function migrateLegacyCustomPricing(raw: unknown): { + changed: boolean + next: unknown +} { + if (!isRecord(raw)) { + return { changed: false, next: raw } + } + + const hasLegacyInput = typeof raw.input === 'number' && Number.isFinite(raw.input) && raw.input >= 0 + const hasLegacyOutput = typeof raw.output === 'number' && Number.isFinite(raw.output) && raw.output >= 0 + if (!hasLegacyInput && !hasLegacyOutput) { + return { changed: false, next: raw } + } + + const llmRaw = isRecord(raw.llm) ? raw.llm : {} + const llmInput = typeof llmRaw.inputPerMillion === 'number' && Number.isFinite(llmRaw.inputPerMillion) && llmRaw.inputPerMillion >= 0 + ? llmRaw.inputPerMillion + : (hasLegacyInput ? raw.input as number : undefined) + const llmOutput = typeof llmRaw.outputPerMillion === 'number' && Number.isFinite(llmRaw.outputPerMillion) && llmRaw.outputPerMillion >= 0 + ? llmRaw.outputPerMillion + : (hasLegacyOutput ? raw.output as number : undefined) + + const nextPricing: Record = {} + for (const [key, value] of Object.entries(raw)) { + if (key === 'input' || key === 'output') continue + nextPricing[key] = value + } + + nextPricing.llm = { + ...(llmInput !== undefined ? { inputPerMillion: llmInput } : {}), + ...(llmOutput !== undefined ? { outputPerMillion: llmOutput } : {}), + } + + return { + changed: true, + next: nextPricing, + } +} + +function migrateCustomModel(rawModel: unknown): { changed: boolean; next: unknown } { + if (!isRecord(rawModel)) { + return { changed: false, next: rawModel } + } + + const migratedPricing = migrateLegacyCustomPricing(rawModel.customPricing) + if (!migratedPricing.changed) { + return { changed: false, next: rawModel } + } + + return { + changed: true, + next: { + ...rawModel, + customPricing: migratedPricing.next, + }, + } +} + +async function main() { + const summary: MigrationSummary = { + mode: APPLY ? 'apply' : 'dry-run', + scanned: 0, + updatedRows: 0, + migratedModels: 0, + skippedInvalidRows: 0, + } + + const rows = await prisma.userPreference.findMany({ + select: { + id: true, + userId: true, + customModels: true, + }, + }) as PreferenceRow[] + + summary.scanned = rows.length + + for (const row of rows) { + const parsedModels = parseCustomModels(row.customModels) + if (parsedModels === null) { + summary.skippedInvalidRows += 1 + continue + } + + let rowChanged = false + const nextModels = parsedModels.map((model) => { + const migrated = migrateCustomModel(model) + if (migrated.changed) { + rowChanged = true + summary.migratedModels += 1 + } + return migrated.next + }) + + if (!rowChanged) continue + summary.updatedRows += 1 + + if (APPLY) { + await prisma.userPreference.update({ + where: { id: row.id }, + data: { + customModels: JSON.stringify(nextModels), + }, + }) + } + } + + console.log(JSON.stringify(summary, null, 2)) +} + +main() + .then(async () => { + await prisma.$disconnect() + }) + .catch(async (error: unknown) => { + console.error('[migrate-custom-pricing-v2] failed', error) + await prisma.$disconnect() + process.exit(1) + }) diff --git a/scripts/migrations/migrate-gateway-route-openai-compat.ts b/scripts/migrations/migrate-gateway-route-openai-compat.ts new file mode 100644 index 0000000..f31fdf0 --- /dev/null +++ b/scripts/migrations/migrate-gateway-route-openai-compat.ts @@ -0,0 +1,80 @@ +import { prisma } from '@/lib/prisma' +import { migrateGatewayRoutePayload } from '@/lib/migrations/gateway-route-openai-compat' + +const APPLY = process.argv.includes('--apply') + +type PreferenceRow = { + id: string + userId: string + customProviders: string | null +} + +type MigrationSummary = { + mode: 'dry-run' | 'apply' + scanned: number + updatedRows: number + migratedProviders: number + routeLitellmToOpenaiCompat: number + routeForcedOfficial: number + geminiApiModeCorrected: number + skippedInvalidRows: number +} + +async function main() { + const summary: MigrationSummary = { + mode: APPLY ? 'apply' : 'dry-run', + scanned: 0, + updatedRows: 0, + migratedProviders: 0, + routeLitellmToOpenaiCompat: 0, + routeForcedOfficial: 0, + geminiApiModeCorrected: 0, + skippedInvalidRows: 0, + } + + const rows = await prisma.userPreference.findMany({ + select: { + id: true, + userId: true, + customProviders: true, + }, + }) as PreferenceRow[] + summary.scanned = rows.length + + for (const row of rows) { + const result = migrateGatewayRoutePayload(row.customProviders) + if (result.status === 'invalid') { + summary.skippedInvalidRows += 1 + continue + } + + summary.migratedProviders += result.summary.providersChanged + summary.routeLitellmToOpenaiCompat += result.summary.routeLitellmToOpenaiCompat + summary.routeForcedOfficial += result.summary.routeForcedOfficial + summary.geminiApiModeCorrected += result.summary.geminiApiModeCorrected + + if (!result.changed) continue + summary.updatedRows += 1 + + if (APPLY) { + await prisma.userPreference.update({ + where: { id: row.id }, + data: { + customProviders: result.nextRaw ?? null, + }, + }) + } + } + + console.log(JSON.stringify(summary, null, 2)) +} + +main() + .then(async () => { + await prisma.$disconnect() + }) + .catch(async (error: unknown) => { + console.error('[migrate-gateway-route-openai-compat] failed', error) + await prisma.$disconnect() + process.exit(1) + }) diff --git a/scripts/migrations/migrate-graph-artifacts-unique-index.ts b/scripts/migrations/migrate-graph-artifacts-unique-index.ts new file mode 100644 index 0000000..ef37ad9 --- /dev/null +++ b/scripts/migrations/migrate-graph-artifacts-unique-index.ts @@ -0,0 +1,145 @@ +import { prisma } from '@/lib/prisma' + +const APPLY = process.argv.includes('--apply') +const REQUIRED_INDEX_NAME = 'graph_artifacts_runId_stepKey_artifactType_refId_key' +const REQUIRED_COLUMNS = ['runId', 'stepKey', 'artifactType', 'refId'] as const + +type IndexRow = { + Key_name: string + Non_unique: number | string + Seq_in_index: number | string + Column_name: string +} + +type DuplicateRow = { + runId: string + stepKey: string + artifactType: string + refId: string + c: bigint | number +} + +type MigrationSummary = { + mode: 'dry-run' | 'apply' + hasRequiredIndexBefore: boolean + duplicateGroupCount: number + duplicateSamples: Array<{ + runId: string + stepKey: string + artifactType: string + refId: string + count: number + }> + altered: boolean + hasRequiredIndexAfter: boolean +} + +function parseIntSafe(value: number | string) { + if (typeof value === 'number') return value + return Number.parseInt(value, 10) +} + +function hasRequiredUniqueIndex(rows: IndexRow[]) { + const grouped = new Map>() + for (const row of rows) { + const seq = parseIntSafe(row.Seq_in_index) + const nonUnique = parseIntSafe(row.Non_unique) + if (!Number.isFinite(seq) || !Number.isFinite(nonUnique)) continue + const key = row.Key_name + const items = grouped.get(key) || [] + items.push({ + seq, + column: row.Column_name, + nonUnique, + }) + grouped.set(key, items) + } + + for (const [key, entries] of grouped.entries()) { + if (entries.length !== REQUIRED_COLUMNS.length) continue + const sorted = entries.sort((a, b) => a.seq - b.seq) + if (sorted[0]?.nonUnique !== 0) continue + const columns = sorted.map((entry) => entry.column) + const isTarget = columns.every((column, index) => column === REQUIRED_COLUMNS[index]) + if (isTarget && key === REQUIRED_INDEX_NAME) return true + if (isTarget) return true + } + return false +} + +function toNumber(value: bigint | number) { + if (typeof value === 'bigint') return Number(value) + return value +} + +async function loadIndexRows() { + return await prisma.$queryRawUnsafe('SHOW INDEX FROM graph_artifacts') +} + +async function loadDuplicateGroups() { + return await prisma.$queryRawUnsafe( + `SELECT runId, stepKey, artifactType, refId, COUNT(*) AS c + FROM graph_artifacts + WHERE stepKey IS NOT NULL + GROUP BY runId, stepKey, artifactType, refId + HAVING c > 1 + LIMIT 20`, + ) +} + +async function main() { + const beforeRows = await loadIndexRows() + const hasBefore = hasRequiredUniqueIndex(beforeRows) + const duplicates = await loadDuplicateGroups() + + const summary: MigrationSummary = { + mode: APPLY ? 'apply' : 'dry-run', + hasRequiredIndexBefore: hasBefore, + duplicateGroupCount: duplicates.length, + duplicateSamples: duplicates.map((row) => ({ + runId: row.runId, + stepKey: row.stepKey, + artifactType: row.artifactType, + refId: row.refId, + count: toNumber(row.c), + })), + altered: false, + hasRequiredIndexAfter: hasBefore, + } + + if (hasBefore) { + console.log(JSON.stringify(summary, null, 2)) + return + } + + if (duplicates.length > 0) { + throw new Error( + `cannot add unique index; found ${duplicates.length} duplicate groups in graph_artifacts (stepKey IS NOT NULL)`, + ) + } + + if (APPLY) { + await prisma.$executeRawUnsafe( + `ALTER TABLE graph_artifacts + ADD UNIQUE INDEX ${REQUIRED_INDEX_NAME} (runId, stepKey, artifactType, refId)`, + ) + summary.altered = true + const afterRows = await loadIndexRows() + summary.hasRequiredIndexAfter = hasRequiredUniqueIndex(afterRows) + if (!summary.hasRequiredIndexAfter) { + throw new Error('unique index create verification failed') + } + } + + console.log(JSON.stringify(summary, null, 2)) +} + +main() + .then(async () => { + await prisma.$disconnect() + }) + .catch(async (error: unknown) => { + console.error('[migrate-graph-artifacts-unique-index] failed', error) + await prisma.$disconnect() + process.exit(1) + }) diff --git a/scripts/migrations/migrate-model-config-contract.ts b/scripts/migrations/migrate-model-config-contract.ts new file mode 100644 index 0000000..2ef375b --- /dev/null +++ b/scripts/migrations/migrate-model-config-contract.ts @@ -0,0 +1,498 @@ +import fs from 'fs' +import path from 'path' +import { prisma } from '@/lib/prisma' +import { + composeModelKey, + parseModelKeyStrict, + validateModelCapabilities, + type ModelCapabilities, + type UnifiedModelType, +} from '@/lib/model-config-contract' + +type ModelField = + | 'analysisModel' + | 'characterModel' + | 'locationModel' + | 'storyboardModel' + | 'editModel' + | 'videoModel' + +type PreferenceRow = { + id: string + userId: string + customModels: string | null + analysisModel: string | null + characterModel: string | null + locationModel: string | null + storyboardModel: string | null + editModel: string | null + videoModel: string | null +} + +type ProjectRow = { + id: string + projectId: string + analysisModel: string | null + characterModel: string | null + locationModel: string | null + storyboardModel: string | null + editModel: string | null + videoModel: string | null + project: { + userId: string + } +} + +type MigrationIssue = { + table: 'userPreference' | 'novelPromotionProject' + rowId: string + userId?: string + field: string + kind: + | 'CUSTOM_MODELS_JSON_INVALID' + | 'MODEL_SHAPE_INVALID' + | 'MODEL_TYPE_INVALID' + | 'MODEL_KEY_INCOMPLETE' + | 'MODEL_KEY_MISMATCH' + | 'MODEL_CAPABILITY_INVALID' + | 'LEGACY_MODEL_ID_NOT_FOUND' + | 'LEGACY_MODEL_ID_AMBIGUOUS' + rawValue?: string | null + candidates?: string[] + message: string +} + +type MigrationReport = { + generatedAt: string + mode: 'dry-run' | 'apply' + userPreference: { + scanned: number + updated: number + updatedCustomModels: number + updatedDefaultFields: number + } + novelPromotionProject: { + scanned: number + updated: number + updatedFields: number + } + issues: MigrationIssue[] +} + +type NormalizedModel = { + provider: string + modelId: string + modelKey: string + name: string + type: UnifiedModelType + price: number + resolution?: '2K' | '4K' + capabilities?: ModelCapabilities +} + +const APPLY = process.argv.includes('--apply') +const MAX_ISSUES = 500 +const MODEL_FIELDS: readonly ModelField[] = [ + 'analysisModel', + 'characterModel', + 'locationModel', + 'storyboardModel', + 'editModel', + 'videoModel', +] + +const LEGACY_MODEL_ID_MAP = new Map([ + ['anthropic/claude-sonnet-4.5', 'openrouter::anthropic/claude-sonnet-4.5'], + ['google/gemini-3-pro-preview', 'openrouter::google/gemini-3-pro-preview'], + ['openai/gpt-5.2', 'openrouter::openai/gpt-5.2'], + ['banana', 'fal::banana'], + ['banana-2k', 'fal::banana'], + ['seedream', 'ark::doubao-seedream-4-0-250828'], + ['seedream4.5', 'ark::doubao-seedream-4-5-251128'], + ['gemini-3-pro-image-preview', 'google::gemini-3-pro-image-preview'], + ['gemini-3-pro-image-preview-batch', 'google::gemini-3-pro-image-preview-batch'], + ['nano-banana-pro', 'google::gemini-3-pro-image-preview'], + ['gemini-3.0-pro-image-portrait', 'flow2api::gemini-3.0-pro-image-portrait'], + ['imagen-4.0-ultra-generate-001', 'google::imagen-4.0-ultra-generate-001'], + ['doubao-seedance-1-0-pro-250528', 'ark::doubao-seedance-1-0-pro-250528'], + ['doubao-seedance-1-0-pro-fast-251015', 'ark::doubao-seedance-1-0-pro-fast-251015'], + ['doubao-seedance-1-0-pro-fast-251015-batch', 'ark::doubao-seedance-1-0-pro-fast-251015-batch'], +]) + +function parseReportPathArg(): string { + const flagPrefix = '--report=' + const inline = process.argv.find((arg) => arg.startsWith(flagPrefix)) + if (inline) return inline.slice(flagPrefix.length) + const flagIndex = process.argv.findIndex((arg) => arg === '--report') + if (flagIndex !== -1 && process.argv[flagIndex + 1]) { + return process.argv[flagIndex + 1] + } + return 'scripts/migrations/reports/model-config-migration-report.json' +} + +function isRecord(value: unknown): value is Record { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +function toTrimmedString(value: unknown): string { + return typeof value === 'string' ? value.trim() : '' +} + +function isUnifiedModelType(value: unknown): value is UnifiedModelType { + return value === 'llm' + || value === 'image' + || value === 'video' + || value === 'audio' + || value === 'lipsync' +} + +function stableStringify(value: unknown): string { + return JSON.stringify(value) +} + +function parseCustomModels(raw: string | null): { ok: true; value: unknown[] } | { ok: false } { + if (!raw) return { ok: true, value: [] } + try { + const parsed = JSON.parse(raw) as unknown + if (!Array.isArray(parsed)) return { ok: false } + return { ok: true, value: parsed } + } catch { + return { ok: false } + } +} + +function normalizeModel( + raw: unknown, +): { normalized: NormalizedModel | null; changed: boolean; issue?: Omit } { + if (!isRecord(raw)) { + return { + normalized: null, + changed: false, + issue: { + field: 'customModels', + kind: 'MODEL_SHAPE_INVALID', + message: 'customModels item must be object', + }, + } + } + + const modelType = raw.type + if (!isUnifiedModelType(modelType)) { + return { + normalized: null, + changed: false, + issue: { + field: 'customModels.type', + kind: 'MODEL_TYPE_INVALID', + rawValue: String(raw.type ?? ''), + message: 'custom model type must be llm/image/video/audio/lipsync', + }, + } + } + + const providerField = toTrimmedString(raw.provider) + const modelIdField = toTrimmedString(raw.modelId) + const parsedModelKey = parseModelKeyStrict(toTrimmedString(raw.modelKey)) + + const provider = providerField || parsedModelKey?.provider || '' + const modelId = modelIdField || parsedModelKey?.modelId || '' + const modelKey = composeModelKey(provider, modelId) + if (!modelKey) { + return { + normalized: null, + changed: false, + issue: { + field: 'customModels.modelKey', + kind: 'MODEL_KEY_INCOMPLETE', + rawValue: toTrimmedString(raw.modelKey), + message: 'provider/modelId/modelKey cannot compose a valid model_key', + }, + } + } + + if (parsedModelKey && parsedModelKey.modelKey !== modelKey) { + return { + normalized: null, + changed: false, + issue: { + field: 'customModels.modelKey', + kind: 'MODEL_KEY_MISMATCH', + rawValue: toTrimmedString(raw.modelKey), + message: 'modelKey conflicts with provider/modelId', + }, + } + } + + const rawResolution = toTrimmedString(raw.resolution) + const resolution = rawResolution === '2K' || rawResolution === '4K' ? rawResolution : undefined + const capabilities = isRecord(raw.capabilities) + ? ({ ...(raw.capabilities as ModelCapabilities) }) + : undefined + const capabilityIssues = validateModelCapabilities(modelType, capabilities) + if (capabilityIssues.length > 0) { + const firstIssue = capabilityIssues[0] + return { + normalized: null, + changed: false, + issue: { + field: firstIssue.field, + kind: 'MODEL_CAPABILITY_INVALID', + message: `${firstIssue.code}: ${firstIssue.message}`, + }, + } + } + + const name = toTrimmedString(raw.name) || modelId + const price = typeof raw.price === 'number' && Number.isFinite(raw.price) ? raw.price : 0 + + const normalized: NormalizedModel = { + provider, + modelId, + modelKey, + name, + type: modelType, + price, + ...(resolution ? { resolution } : {}), + ...(capabilities ? { capabilities } : {}), + } + + const changed = stableStringify(raw) !== stableStringify(normalized) + return { normalized, changed } +} + +function addIssue(report: MigrationReport, issue: MigrationIssue) { + if (report.issues.length >= MAX_ISSUES) return + report.issues.push(issue) +} + +function normalizeModelFieldValue( + rawValue: string | null, + field: ModelField, + mappingByModelId: Map, +): { nextValue: string | null; changed: boolean; issue?: Omit } { + if (!rawValue || !rawValue.trim()) return { nextValue: null, changed: rawValue !== null } + const trimmed = rawValue.trim() + const parsed = parseModelKeyStrict(trimmed) + if (parsed) { + return { nextValue: parsed.modelKey, changed: parsed.modelKey !== rawValue } + } + + const candidates = mappingByModelId.get(trimmed) || [] + if (candidates.length === 1) { + return { nextValue: candidates[0], changed: candidates[0] !== rawValue } + } + if (candidates.length === 0) { + const mappedModelKey = LEGACY_MODEL_ID_MAP.get(trimmed) + if (mappedModelKey) { + return { nextValue: mappedModelKey, changed: mappedModelKey !== rawValue } + } + } + if (candidates.length === 0) { + return { + nextValue: rawValue, + changed: false, + issue: { + field, + kind: 'LEGACY_MODEL_ID_NOT_FOUND', + rawValue, + message: `${field} legacy modelId cannot be mapped`, + }, + } + } + return { + nextValue: rawValue, + changed: false, + issue: { + field, + kind: 'LEGACY_MODEL_ID_AMBIGUOUS', + rawValue, + candidates, + message: `${field} legacy modelId maps to multiple providers`, + }, + } +} + +async function main() { + const reportPath = parseReportPathArg() + const report: MigrationReport = { + generatedAt: new Date().toISOString(), + mode: APPLY ? 'apply' : 'dry-run', + userPreference: { + scanned: 0, + updated: 0, + updatedCustomModels: 0, + updatedDefaultFields: 0, + }, + novelPromotionProject: { + scanned: 0, + updated: 0, + updatedFields: 0, + }, + issues: [], + } + + const userPrefs = await prisma.userPreference.findMany({ + select: { + id: true, + userId: true, + customModels: true, + analysisModel: true, + characterModel: true, + locationModel: true, + storyboardModel: true, + editModel: true, + videoModel: true, + }, + }) + + const userMappings = new Map>() + + for (const pref of userPrefs) { + report.userPreference.scanned += 1 + const updateData: Partial> = {} + + const parsedCustomModels = parseCustomModels(pref.customModels) + const normalizedModels: NormalizedModel[] = [] + let customModelsChanged = false + + if (!parsedCustomModels.ok) { + addIssue(report, { + table: 'userPreference', + rowId: pref.id, + userId: pref.userId, + field: 'customModels', + kind: 'CUSTOM_MODELS_JSON_INVALID', + rawValue: pref.customModels, + message: 'customModels JSON is invalid', + }) + } else { + for (let index = 0; index < parsedCustomModels.value.length; index += 1) { + const normalizedResult = normalizeModel(parsedCustomModels.value[index]) + if (normalizedResult.issue) { + addIssue(report, { + table: 'userPreference', + rowId: pref.id, + userId: pref.userId, + ...normalizedResult.issue, + }) + continue + } + if (normalizedResult.normalized) { + normalizedModels.push(normalizedResult.normalized) + if (normalizedResult.changed) customModelsChanged = true + } + } + } + + const mappingByModelId = new Map() + for (const model of normalizedModels) { + const existing = mappingByModelId.get(model.modelId) || [] + if (!existing.includes(model.modelKey)) existing.push(model.modelKey) + mappingByModelId.set(model.modelId, existing) + } + userMappings.set(pref.userId, mappingByModelId) + + if (customModelsChanged) { + updateData.customModels = JSON.stringify(normalizedModels) + report.userPreference.updatedCustomModels += 1 + } + + for (const field of MODEL_FIELDS) { + const normalizedField = normalizeModelFieldValue(pref[field], field, mappingByModelId) + if (normalizedField.issue) { + addIssue(report, { + table: 'userPreference', + rowId: pref.id, + userId: pref.userId, + ...normalizedField.issue, + }) + } + if (normalizedField.changed) { + updateData[field] = normalizedField.nextValue + report.userPreference.updatedDefaultFields += 1 + } + } + + if (Object.keys(updateData).length > 0) { + report.userPreference.updated += 1 + if (APPLY) { + await prisma.userPreference.update({ + where: { id: pref.id }, + data: updateData, + }) + } + } + } + + const projects = await prisma.novelPromotionProject.findMany({ + select: { + id: true, + projectId: true, + analysisModel: true, + characterModel: true, + locationModel: true, + storyboardModel: true, + editModel: true, + videoModel: true, + project: { + select: { + userId: true, + }, + }, + }, + }) + + for (const row of projects as ProjectRow[]) { + report.novelPromotionProject.scanned += 1 + const mappingByModelId = userMappings.get(row.project.userId) || new Map() + const updateData: Partial> = {} + + for (const field of MODEL_FIELDS) { + const normalizedField = normalizeModelFieldValue(row[field], field, mappingByModelId) + if (normalizedField.issue) { + addIssue(report, { + table: 'novelPromotionProject', + rowId: row.id, + userId: row.project.userId, + ...normalizedField.issue, + }) + } + if (normalizedField.changed) { + updateData[field] = normalizedField.nextValue + report.novelPromotionProject.updatedFields += 1 + } + } + + if (Object.keys(updateData).length > 0) { + report.novelPromotionProject.updated += 1 + if (APPLY) { + await prisma.novelPromotionProject.update({ + where: { id: row.id }, + data: updateData, + }) + } + } + } + + const absoluteReportPath = path.isAbsolute(reportPath) + ? reportPath + : path.join(process.cwd(), reportPath) + fs.mkdirSync(path.dirname(absoluteReportPath), { recursive: true }) + fs.writeFileSync(absoluteReportPath, `${JSON.stringify(report, null, 2)}\n`, 'utf8') + + process.stdout.write( + `[migrate-model-config-contract] mode=${report.mode} ` + + `prefs=${report.userPreference.scanned}/${report.userPreference.updated} ` + + `projects=${report.novelPromotionProject.scanned}/${report.novelPromotionProject.updated} ` + + `issues=${report.issues.length} report=${absoluteReportPath}\n`, + ) +} + +main() + .catch((error) => { + process.stderr.write(`[migrate-model-config-contract] failed: ${String(error)}\n`) + process.exitCode = 1 + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/migrations/migrate-qwen-to-bailian.ts b/scripts/migrations/migrate-qwen-to-bailian.ts new file mode 100644 index 0000000..e34f255 --- /dev/null +++ b/scripts/migrations/migrate-qwen-to-bailian.ts @@ -0,0 +1,351 @@ +import { prisma } from '@/lib/prisma' +import { composeModelKey, parseModelKeyStrict, type CapabilitySelections } from '@/lib/model-config-contract' + +const APPLY = process.argv.includes('--apply') + +type PreferenceRow = { + id: string + userId: string + customProviders: string | null + customModels: string | null + analysisModel: string | null + characterModel: string | null + locationModel: string | null + storyboardModel: string | null + editModel: string | null + videoModel: string | null + lipSyncModel: string | null + capabilityDefaults: string | null +} + +type StoredProvider = { + id: string + name: string + baseUrl?: string + apiKey?: string + apiMode?: 'gemini-sdk' | 'openai-official' + gatewayRoute?: 'official' | 'litellm' +} + +type StoredModel = { + modelId: string + modelKey: string + name: string + type: string + provider: string + price: number +} + +type MigrationConflict = { + userId: string + reason: string +} + +type MigrationSummary = { + mode: 'dry-run' | 'apply' + scanned: number + updatedRows: number + updatedProviders: number + updatedModels: number + updatedDefaults: number + updatedCapabilityDefaults: number + invalidRows: number + conflicts: MigrationConflict[] +} + +type DefaultModelField = + | 'analysisModel' + | 'characterModel' + | 'locationModel' + | 'storyboardModel' + | 'editModel' + | 'videoModel' + | 'lipSyncModel' + +const DEFAULT_MODEL_FIELDS: readonly DefaultModelField[] = [ + 'analysisModel', + 'characterModel', + 'locationModel', + 'storyboardModel', + 'editModel', + 'videoModel', + 'lipSyncModel', +] + +function isRecord(value: unknown): value is Record { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +function readTrimmedString(value: unknown): string { + return typeof value === 'string' ? value.trim() : '' +} + +function parseProviders(raw: string | null): StoredProvider[] | null { + if (!raw) return [] + try { + const parsed = JSON.parse(raw) as unknown + if (!Array.isArray(parsed)) return null + const providers: StoredProvider[] = [] + for (const item of parsed) { + if (!isRecord(item)) return null + const id = readTrimmedString(item.id) + const name = readTrimmedString(item.name) + if (!id || !name) return null + const provider: StoredProvider = { id, name } + if (typeof item.baseUrl === 'string' && item.baseUrl.trim()) provider.baseUrl = item.baseUrl.trim() + if (typeof item.apiKey === 'string' && item.apiKey.trim()) provider.apiKey = item.apiKey.trim() + if (item.apiMode === 'gemini-sdk' || item.apiMode === 'openai-official') provider.apiMode = item.apiMode + if (item.gatewayRoute === 'official' || item.gatewayRoute === 'litellm') provider.gatewayRoute = item.gatewayRoute + providers.push(provider) + } + return providers + } catch { + return null + } +} + +function parseModels(raw: string | null): StoredModel[] | null { + if (!raw) return [] + try { + const parsed = JSON.parse(raw) as unknown + if (!Array.isArray(parsed)) return null + const models: StoredModel[] = [] + for (const item of parsed) { + if (!isRecord(item)) return null + const modelId = readTrimmedString(item.modelId) + const modelKey = readTrimmedString(item.modelKey) + const provider = readTrimmedString(item.provider) + const name = readTrimmedString(item.name) + const type = readTrimmedString(item.type) + const price = typeof item.price === 'number' && Number.isFinite(item.price) ? item.price : 0 + if (!modelId || !provider || !type) return null + const normalizedModelKey = modelKey || composeModelKey(provider, modelId) + if (!normalizedModelKey) return null + models.push({ + modelId, + modelKey: normalizedModelKey, + provider, + name: name || modelId, + type, + price, + }) + } + return models + } catch { + return null + } +} + +function parseCapabilityDefaults(raw: string | null): CapabilitySelections | null { + if (!raw) return {} + try { + const parsed = JSON.parse(raw) as unknown + if (!isRecord(parsed)) return null + const selections: CapabilitySelections = {} + for (const [modelKey, value] of Object.entries(parsed)) { + if (!isRecord(value)) continue + const nextSelection: Record = {} + for (const [field, option] of Object.entries(value)) { + if (typeof option === 'string' || typeof option === 'number' || typeof option === 'boolean') { + nextSelection[field] = option + } + } + selections[modelKey] = nextSelection + } + return selections + } catch { + return null + } +} + +function migrateProviderId(providerId: string): string { + if (providerId === 'qwen') return 'bailian' + const parsed = parseModelKeyStrict(providerId) + if (parsed) return providerId + const marker = providerId.indexOf(':') + if (marker === -1) return providerId + const providerKey = providerId.slice(0, marker) + if (providerKey !== 'qwen') return providerId + return `bailian${providerId.slice(marker)}` +} + +function migrateModelKey(rawModelKey: string): string { + const parsed = parseModelKeyStrict(rawModelKey) + if (!parsed) return rawModelKey + if (parsed.provider !== 'qwen') return parsed.modelKey + return composeModelKey('bailian', parsed.modelId) +} + +function migrateDefaultModel(rawValue: string | null): string | null { + if (!rawValue) return rawValue + const value = rawValue.trim() + if (!value) return null + return migrateModelKey(value) +} + +function hasProviderByKey(providers: StoredProvider[], providerKey: string): boolean { + return providers.some((provider) => { + const marker = provider.id.indexOf(':') + const key = marker === -1 ? provider.id : provider.id.slice(0, marker) + return key === providerKey + }) +} + +async function main() { + const summary: MigrationSummary = { + mode: APPLY ? 'apply' : 'dry-run', + scanned: 0, + updatedRows: 0, + updatedProviders: 0, + updatedModels: 0, + updatedDefaults: 0, + updatedCapabilityDefaults: 0, + invalidRows: 0, + conflicts: [], + } + + const rows = await prisma.userPreference.findMany({ + select: { + id: true, + userId: true, + customProviders: true, + customModels: true, + analysisModel: true, + characterModel: true, + locationModel: true, + storyboardModel: true, + editModel: true, + videoModel: true, + lipSyncModel: true, + capabilityDefaults: true, + }, + }) as PreferenceRow[] + + summary.scanned = rows.length + + for (const row of rows) { + const providers = parseProviders(row.customProviders) + const models = parseModels(row.customModels) + const capabilityDefaults = parseCapabilityDefaults(row.capabilityDefaults) + if (!providers || !models || !capabilityDefaults) { + summary.invalidRows += 1 + continue + } + + const hasQwenProvider = hasProviderByKey(providers, 'qwen') + const hasBailianProvider = hasProviderByKey(providers, 'bailian') + if (hasQwenProvider && hasBailianProvider) { + summary.conflicts.push({ + userId: row.userId, + reason: 'both qwen and bailian providers exist', + }) + continue + } + + let rowChanged = false + + const nextProviders = providers.map((provider) => { + const nextId = migrateProviderId(provider.id) + if (nextId !== provider.id) { + rowChanged = true + summary.updatedProviders += 1 + } + return { + ...provider, + id: nextId, + ...(nextId === 'bailian' ? { name: 'Alibaba Bailian' } : {}), + } + }) + + const nextModels = models.map((model) => { + const nextProvider = migrateProviderId(model.provider) + const nextModelKey = migrateModelKey(model.modelKey) + const changed = nextProvider !== model.provider || nextModelKey !== model.modelKey + if (changed) { + rowChanged = true + summary.updatedModels += 1 + } + return { + ...model, + provider: nextProvider, + modelKey: nextModelKey, + } + }) + const modelKeySet = new Set() + let hasModelConflict = false + for (const model of nextModels) { + if (!modelKeySet.has(model.modelKey)) { + modelKeySet.add(model.modelKey) + continue + } + hasModelConflict = true + break + } + if (hasModelConflict) { + summary.conflicts.push({ + userId: row.userId, + reason: 'model key collision after qwen -> bailian migration', + }) + continue + } + + const nextDefaults: Partial> = {} + for (const field of DEFAULT_MODEL_FIELDS) { + const current = row[field] + const next = migrateDefaultModel(current) + nextDefaults[field] = next + if ((current || null) !== (next || null)) { + rowChanged = true + summary.updatedDefaults += 1 + } + } + + const nextCapabilityDefaults: CapabilitySelections = {} + for (const [modelKey, selection] of Object.entries(capabilityDefaults)) { + const nextModelKey = migrateModelKey(modelKey) + nextCapabilityDefaults[nextModelKey] = selection + if (nextModelKey !== modelKey) { + rowChanged = true + summary.updatedCapabilityDefaults += 1 + } + } + + if (!rowChanged) continue + summary.updatedRows += 1 + + if (APPLY) { + await prisma.userPreference.update({ + where: { id: row.id }, + data: { + customProviders: JSON.stringify(nextProviders), + customModels: JSON.stringify(nextModels), + analysisModel: nextDefaults.analysisModel || null, + characterModel: nextDefaults.characterModel || null, + locationModel: nextDefaults.locationModel || null, + storyboardModel: nextDefaults.storyboardModel || null, + editModel: nextDefaults.editModel || null, + videoModel: nextDefaults.videoModel || null, + lipSyncModel: nextDefaults.lipSyncModel || null, + capabilityDefaults: Object.keys(nextCapabilityDefaults).length > 0 + ? JSON.stringify(nextCapabilityDefaults) + : null, + }, + }) + } + } + + console.log(JSON.stringify(summary, null, 2)) + if (summary.conflicts.length > 0) { + process.exitCode = 2 + } +} + +main() + .then(async () => { + await prisma.$disconnect() + }) + .catch(async (error: unknown) => { + console.error('[migrate-qwen-to-bailian] failed', error) + await prisma.$disconnect() + process.exit(1) + }) diff --git a/scripts/migrations/migrate-release-blockers.ts b/scripts/migrations/migrate-release-blockers.ts new file mode 100644 index 0000000..32516c6 --- /dev/null +++ b/scripts/migrations/migrate-release-blockers.ts @@ -0,0 +1,868 @@ +import { prisma } from '@/lib/prisma' +import { composeModelKey, parseModelKeyStrict, type CapabilitySelections } from '@/lib/model-config-contract' + +type Mode = 'dry-run' | 'apply' + +type UserPreferenceRow = { + id: string + userId: string + customProviders: string | null + customModels: string | null + analysisModel: string | null + characterModel: string | null + locationModel: string | null + storyboardModel: string | null + editModel: string | null + videoModel: string | null + audioModel: string | null + lipSyncModel: string | null + capabilityDefaults: string | null +} + +type NovelProjectRow = { + id: string + projectId: string + analysisModel: string | null + characterModel: string | null + locationModel: string | null + storyboardModel: string | null + editModel: string | null + videoModel: string | null + capabilityOverrides: string | null +} + +type StoredProvider = { + id: string + name: string + baseUrl?: string + apiKey?: string + apiMode?: 'gemini-sdk' | 'openai-official' + gatewayRoute?: 'official' | 'openai-compat' +} + +type StoredModel = { + modelId: string + modelKey: string + provider: string + [key: string]: unknown +} + +type ParseResult = { + ok: boolean + value: T +} + +type MigrationSummary = { + mode: Mode + userPreference: { + scanned: number + updated: number + dirtyClearedProviders: number + dirtyClearedModels: number + dirtyClearedCapabilityDefaults: number + migratedProviders: number + migratedModels: number + migratedDefaultModelFields: number + migratedCapabilityDefaultKeys: number + modelCollisionsResolvedByBailian: number + providerCollisionsResolvedByBailian: number + invalidModelFieldsCleared: number + } + novelPromotionProject: { + scanned: number + updated: number + migratedModelFields: number + migratedCapabilityOverrideKeys: number + invalidModelFieldsCleared: number + dirtyClearedCapabilityOverrides: number + } + graphArtifacts: { + hasRequiredUniqueIndexBefore: boolean + duplicateGroupsBefore: number + duplicateGroupSamples: Array<{ + runId: string + stepKey: string + artifactType: string + refId: string + count: number + }> + deletedRowsForDedup: number + duplicateGroupsAfter: number + indexAdded: boolean + hasRequiredUniqueIndexAfter: boolean + } +} + +type MysqlIndexRow = { + Key_name: string + Non_unique: number | string + Seq_in_index: number | string + Column_name: string +} + +type DuplicateGroupRow = { + runId: string + stepKey: string + artifactType: string + refId: string + c: bigint | number +} + +type CountRow = { + c: bigint | number +} + +type DefaultModelField = + | 'analysisModel' + | 'characterModel' + | 'locationModel' + | 'storyboardModel' + | 'editModel' + | 'videoModel' + | 'audioModel' + | 'lipSyncModel' + +type ProjectModelField = + | 'analysisModel' + | 'characterModel' + | 'locationModel' + | 'storyboardModel' + | 'editModel' + | 'videoModel' + +type UserPreferenceUpdateData = Partial> & { + customProviders?: string | null + customModels?: string | null + capabilityDefaults?: string | null +} + +type NovelProjectUpdateData = Partial> & { + capabilityOverrides?: string | null +} + +const MODE: Mode = process.argv.includes('--dry-run') ? 'dry-run' : 'apply' +const APPLY = MODE === 'apply' + +const OFFICIAL_ONLY_PROVIDER_KEYS = new Set(['bailian', 'siliconflow']) +const DEFAULT_MODEL_FIELDS: readonly DefaultModelField[] = [ + 'analysisModel', + 'characterModel', + 'locationModel', + 'storyboardModel', + 'editModel', + 'videoModel', + 'audioModel', + 'lipSyncModel', +] +const PROJECT_MODEL_FIELDS: readonly ProjectModelField[] = [ + 'analysisModel', + 'characterModel', + 'locationModel', + 'storyboardModel', + 'editModel', + 'videoModel', +] +const REQUIRED_GRAPH_ARTIFACT_UNIQUE_COLUMNS = ['runId', 'stepKey', 'artifactType', 'refId'] as const + +function isRecord(value: unknown): value is Record { + return !!value && typeof value === 'object' && !Array.isArray(value) +} + +function readTrimmedString(value: unknown): string { + return typeof value === 'string' ? value.trim() : '' +} + +function toNullableModelField(raw: string | null | undefined): string | null { + const trimmed = readTrimmedString(raw) + return trimmed || null +} + +function getProviderKey(providerId: string): string { + const index = providerId.indexOf(':') + return index === -1 ? providerId : providerId.slice(0, index) +} + +function migrateProviderId(providerId: string): string { + const trimmed = providerId.trim() + if (!trimmed) return trimmed + if (trimmed === 'qwen') return 'bailian' + + const providerKey = getProviderKey(trimmed) + if (providerKey !== 'qwen') return trimmed + return `bailian${trimmed.slice(providerKey.length)}` +} + +function migrateModelKey(rawModelKey: string): string { + const parsed = parseModelKeyStrict(rawModelKey) + if (!parsed) return rawModelKey + if (getProviderKey(parsed.provider) !== 'qwen') return parsed.modelKey + const nextProvider = migrateProviderId(parsed.provider) + return composeModelKey(nextProvider, parsed.modelId) +} + +function providerPriorityByOriginalKey(originalProviderId: string): number { + const key = getProviderKey(originalProviderId) + if (key === 'bailian') return 2 + if (key === 'qwen') return 1 + return 0 +} + +function normalizeGatewayRoute( + providerId: string, + rawGatewayRoute: unknown, +): 'official' | 'openai-compat' { + const providerKey = getProviderKey(providerId) + if (providerKey === 'openai-compatible') return 'openai-compat' + if (providerKey === 'gemini-compatible') return 'official' + if (OFFICIAL_ONLY_PROVIDER_KEYS.has(providerKey)) return 'official' + return rawGatewayRoute === 'openai-compat' ? 'openai-compat' : 'official' +} + +function parseJsonArray(raw: string | null): ParseResult { + if (!raw) return { ok: true, value: [] } + try { + const parsed = JSON.parse(raw) as unknown + if (!Array.isArray(parsed)) return { ok: false, value: [] } + return { ok: true, value: parsed } + } catch { + return { ok: false, value: [] } + } +} + +function parseJsonRecord(raw: string | null): ParseResult> { + if (!raw) return { ok: true, value: {} } + try { + const parsed = JSON.parse(raw) as unknown + if (!isRecord(parsed)) return { ok: false, value: {} } + return { ok: true, value: parsed } + } catch { + return { ok: false, value: {} } + } +} + +function migrateProviders( + rawProviders: string | null, +): { + ok: boolean + nextRaw: string | null + changed: boolean + migratedProviders: number + collisionsResolvedByBailian: number +} { + const parsed = parseJsonArray(rawProviders) + if (!parsed.ok) { + return { + ok: false, + nextRaw: null, + changed: rawProviders !== null, + migratedProviders: 0, + collisionsResolvedByBailian: 0, + } + } + + const deduped = new Map() + let migratedProviders = 0 + let collisionsResolvedByBailian = 0 + + for (const item of parsed.value) { + if (!isRecord(item)) { + return { + ok: false, + nextRaw: null, + changed: true, + migratedProviders: 0, + collisionsResolvedByBailian: 0, + } + } + + const id = readTrimmedString(item.id) + const name = readTrimmedString(item.name) + if (!id || !name) { + return { + ok: false, + nextRaw: null, + changed: true, + migratedProviders: 0, + collisionsResolvedByBailian: 0, + } + } + + const nextId = migrateProviderId(id) + if (nextId !== id) migratedProviders += 1 + + const apiModeRaw = readTrimmedString(item.apiMode) + let apiMode: 'gemini-sdk' | 'openai-official' | undefined + if (apiModeRaw === 'gemini-sdk' || apiModeRaw === 'openai-official') { + apiMode = apiModeRaw + } + if (getProviderKey(nextId) === 'gemini-compatible' && apiMode === 'openai-official') { + apiMode = 'gemini-sdk' + } + + const nextProvider: StoredProvider = { + id: nextId, + name: getProviderKey(nextId) === 'bailian' ? 'Alibaba Bailian' : name, + baseUrl: readTrimmedString(item.baseUrl) || undefined, + apiKey: typeof item.apiKey === 'string' ? item.apiKey.trim() : undefined, + apiMode, + gatewayRoute: normalizeGatewayRoute(nextId, item.gatewayRoute), + } + + const dedupeKey = nextProvider.id.toLowerCase() + const nextPriority = providerPriorityByOriginalKey(id) + const existing = deduped.get(dedupeKey) + if (!existing) { + deduped.set(dedupeKey, { provider: nextProvider, priority: nextPriority }) + continue + } + + if (nextPriority > existing.priority) { + deduped.set(dedupeKey, { provider: nextProvider, priority: nextPriority }) + collisionsResolvedByBailian += 1 + } + } + + const nextProviders = Array.from(deduped.values()).map((entry) => entry.provider) + const nextRaw = nextProviders.length > 0 ? JSON.stringify(nextProviders) : null + return { + ok: true, + nextRaw, + changed: (rawProviders || null) !== (nextRaw || null), + migratedProviders, + collisionsResolvedByBailian, + } +} + +function migrateModels( + rawModels: string | null, +): { + ok: boolean + nextRaw: string | null + changed: boolean + migratedModels: number + collisionsResolvedByBailian: number +} { + const parsed = parseJsonArray(rawModels) + if (!parsed.ok) { + return { + ok: false, + nextRaw: null, + changed: rawModels !== null, + migratedModels: 0, + collisionsResolvedByBailian: 0, + } + } + + const deduped = new Map() + let migratedModels = 0 + let collisionsResolvedByBailian = 0 + + for (const item of parsed.value) { + if (!isRecord(item)) { + return { + ok: false, + nextRaw: null, + changed: true, + migratedModels: 0, + collisionsResolvedByBailian: 0, + } + } + + const providerRaw = readTrimmedString(item.provider) + const modelIdRaw = readTrimmedString(item.modelId) + const modelKeyRaw = readTrimmedString(item.modelKey) + const parsedModelKey = parseModelKeyStrict(modelKeyRaw) + + const sourceProvider = providerRaw || parsedModelKey?.provider || '' + const sourceModelId = modelIdRaw || parsedModelKey?.modelId || '' + if (!sourceProvider || !sourceModelId) { + return { + ok: false, + nextRaw: null, + changed: true, + migratedModels: 0, + collisionsResolvedByBailian: 0, + } + } + + const nextProvider = migrateProviderId(sourceProvider) + const nextModelKey = composeModelKey(nextProvider, sourceModelId) + if (!nextModelKey) { + return { + ok: false, + nextRaw: null, + changed: true, + migratedModels: 0, + collisionsResolvedByBailian: 0, + } + } + + if (nextProvider !== sourceProvider || nextModelKey !== modelKeyRaw) migratedModels += 1 + + const nextModel: StoredModel = { + ...item, + provider: nextProvider, + modelId: sourceModelId, + modelKey: nextModelKey, + } + const dedupeKey = nextModelKey.toLowerCase() + const nextPriority = providerPriorityByOriginalKey(sourceProvider) + const existing = deduped.get(dedupeKey) + if (!existing) { + deduped.set(dedupeKey, { model: nextModel, priority: nextPriority }) + continue + } + + if (nextPriority > existing.priority) { + deduped.set(dedupeKey, { model: nextModel, priority: nextPriority }) + collisionsResolvedByBailian += 1 + } + } + + const nextModels = Array.from(deduped.values()).map((entry) => entry.model) + const nextRaw = nextModels.length > 0 ? JSON.stringify(nextModels) : null + return { + ok: true, + nextRaw, + changed: (rawModels || null) !== (nextRaw || null), + migratedModels, + collisionsResolvedByBailian, + } +} + +function migrateModelField( + raw: string | null, +): { + nextValue: string | null + changed: boolean + migrated: boolean + clearedInvalid: boolean +} { + const current = toNullableModelField(raw) + if (!current) { + return { + nextValue: null, + changed: current !== raw, + migrated: false, + clearedInvalid: false, + } + } + + const parsed = parseModelKeyStrict(current) + if (!parsed) { + return { + nextValue: null, + changed: true, + migrated: false, + clearedInvalid: true, + } + } + + const nextProvider = migrateProviderId(parsed.provider) + const nextKey = composeModelKey(nextProvider, parsed.modelId) + return { + nextValue: nextKey || null, + changed: (nextKey || null) !== (raw || null), + migrated: parsed.provider !== nextProvider, + clearedInvalid: false, + } +} + +function migrateCapabilitySelections( + raw: string | null, +): { + ok: boolean + nextRaw: string | null + changed: boolean + migratedKeys: number +} { + const parsed = parseJsonRecord(raw) + if (!parsed.ok) { + return { + ok: false, + nextRaw: null, + changed: raw !== null, + migratedKeys: 0, + } + } + + const deduped: CapabilitySelections = {} + const priorities = new Map() + let migratedKeys = 0 + + for (const [modelKey, rawSelection] of Object.entries(parsed.value)) { + if (!isRecord(rawSelection)) { + return { + ok: false, + nextRaw: null, + changed: raw !== null, + migratedKeys: 0, + } + } + + const parsedKey = parseModelKeyStrict(modelKey) + if (!parsedKey) { + return { + ok: false, + nextRaw: null, + changed: raw !== null, + migratedKeys: 0, + } + } + + const nextKey = migrateModelKey(parsedKey.modelKey) + if (nextKey !== parsedKey.modelKey) migratedKeys += 1 + + const nextSelection: Record = {} + for (const [field, value] of Object.entries(rawSelection)) { + if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'boolean') { + return { + ok: false, + nextRaw: null, + changed: raw !== null, + migratedKeys: 0, + } + } + nextSelection[field] = value + } + + const sourcePriority = providerPriorityByOriginalKey(parsedKey.provider) + const existingPriority = priorities.get(nextKey) + if (existingPriority === undefined || sourcePriority > existingPriority) { + deduped[nextKey] = nextSelection + priorities.set(nextKey, sourcePriority) + } + } + + const nextRaw = Object.keys(deduped).length > 0 ? JSON.stringify(deduped) : null + return { + ok: true, + nextRaw, + changed: (raw || null) !== (nextRaw || null), + migratedKeys, + } +} + +function toIndexNumber(value: number | string): number { + if (typeof value === 'number') return value + return Number.parseInt(value, 10) +} + +function hasRequiredGraphArtifactUniqueIndex(rows: MysqlIndexRow[]): boolean { + const indexColumns = new Map>() + for (const row of rows) { + const seq = toIndexNumber(row.Seq_in_index) + const nonUnique = toIndexNumber(row.Non_unique) + if (!Number.isFinite(seq) || !Number.isFinite(nonUnique)) continue + const key = row.Key_name + const list = indexColumns.get(key) || [] + list.push({ + seq, + column: row.Column_name, + nonUnique, + }) + indexColumns.set(key, list) + } + + for (const entries of indexColumns.values()) { + if (entries.length !== REQUIRED_GRAPH_ARTIFACT_UNIQUE_COLUMNS.length) continue + const sorted = entries.sort((a, b) => a.seq - b.seq) + if (sorted[0]?.nonUnique !== 0) continue + const columns = sorted.map((entry) => entry.column) + const match = columns.every((column, index) => column === REQUIRED_GRAPH_ARTIFACT_UNIQUE_COLUMNS[index]) + if (match) return true + } + return false +} + +function toNumber(value: bigint | number): number { + if (typeof value === 'bigint') return Number(value) + return value +} + +async function loadGraphArtifactIndexes(): Promise { + return await prisma.$queryRawUnsafe('SHOW INDEX FROM graph_artifacts') +} + +async function countGraphArtifactDuplicateGroups(): Promise { + const rows = await prisma.$queryRawUnsafe( + `SELECT COUNT(*) AS c + FROM ( + SELECT 1 + FROM graph_artifacts + WHERE stepKey IS NOT NULL + GROUP BY runId, stepKey, artifactType, refId + HAVING COUNT(*) > 1 + ) duplicate_groups`, + ) + return rows.length > 0 ? toNumber(rows[0].c) : 0 +} + +async function sampleGraphArtifactDuplicateGroups(limit: number): Promise { + return await prisma.$queryRawUnsafe( + `SELECT runId, stepKey, artifactType, refId, COUNT(*) AS c + FROM graph_artifacts + WHERE stepKey IS NOT NULL + GROUP BY runId, stepKey, artifactType, refId + HAVING c > 1 + LIMIT ${limit}`, + ) +} + +async function dedupeGraphArtifacts(): Promise { + return await prisma.$executeRawUnsafe( + `DELETE ga1 FROM graph_artifacts ga1 + JOIN graph_artifacts ga2 + ON ga1.runId = ga2.runId + AND ga1.stepKey = ga2.stepKey + AND ga1.artifactType = ga2.artifactType + AND ga1.refId = ga2.refId + AND ( + ga1.createdAt < ga2.createdAt + OR (ga1.createdAt = ga2.createdAt AND ga1.id < ga2.id) + ) + WHERE ga1.stepKey IS NOT NULL`, + ) +} + +async function addGraphArtifactUniqueIndex(): Promise { + await prisma.$executeRawUnsafe( + 'ALTER TABLE graph_artifacts ADD UNIQUE INDEX graph_artifacts_runId_stepKey_artifactType_refId_key (runId, stepKey, artifactType, refId)', + ) +} + +async function migrateUserPreferences(summary: MigrationSummary): Promise { + const rows = await prisma.userPreference.findMany({ + select: { + id: true, + userId: true, + customProviders: true, + customModels: true, + analysisModel: true, + characterModel: true, + locationModel: true, + storyboardModel: true, + editModel: true, + videoModel: true, + audioModel: true, + lipSyncModel: true, + capabilityDefaults: true, + }, + }) as UserPreferenceRow[] + + summary.userPreference.scanned = rows.length + + for (const row of rows) { + const updateData: UserPreferenceUpdateData = {} + let changed = false + + const providerResult = migrateProviders(row.customProviders) + if (!providerResult.ok) { + updateData.customProviders = null + changed = changed || row.customProviders !== null + summary.userPreference.dirtyClearedProviders += 1 + } else if (providerResult.changed) { + updateData.customProviders = providerResult.nextRaw + changed = true + summary.userPreference.migratedProviders += providerResult.migratedProviders + summary.userPreference.providerCollisionsResolvedByBailian += providerResult.collisionsResolvedByBailian + } + + const modelResult = migrateModels(row.customModels) + if (!modelResult.ok) { + updateData.customModels = null + changed = changed || row.customModels !== null + summary.userPreference.dirtyClearedModels += 1 + } else if (modelResult.changed) { + updateData.customModels = modelResult.nextRaw + changed = true + summary.userPreference.migratedModels += modelResult.migratedModels + summary.userPreference.modelCollisionsResolvedByBailian += modelResult.collisionsResolvedByBailian + } + + const capabilityResult = migrateCapabilitySelections(row.capabilityDefaults) + if (!capabilityResult.ok) { + updateData.capabilityDefaults = null + changed = changed || row.capabilityDefaults !== null + summary.userPreference.dirtyClearedCapabilityDefaults += 1 + } else if (capabilityResult.changed) { + updateData.capabilityDefaults = capabilityResult.nextRaw + changed = true + summary.userPreference.migratedCapabilityDefaultKeys += capabilityResult.migratedKeys + } + + for (const field of DEFAULT_MODEL_FIELDS) { + const fieldResult = migrateModelField(row[field]) + if (!fieldResult.changed) continue + updateData[field] = fieldResult.nextValue + changed = true + if (fieldResult.migrated) { + summary.userPreference.migratedDefaultModelFields += 1 + } + if (fieldResult.clearedInvalid) { + summary.userPreference.invalidModelFieldsCleared += 1 + } + } + + if (!changed) continue + summary.userPreference.updated += 1 + + if (APPLY) { + await prisma.userPreference.update({ + where: { id: row.id }, + data: updateData, + }) + } + } +} + +async function migrateNovelProjects(summary: MigrationSummary): Promise { + const rows = await prisma.novelPromotionProject.findMany({ + select: { + id: true, + projectId: true, + analysisModel: true, + characterModel: true, + locationModel: true, + storyboardModel: true, + editModel: true, + videoModel: true, + capabilityOverrides: true, + }, + }) as NovelProjectRow[] + + summary.novelPromotionProject.scanned = rows.length + + for (const row of rows) { + const updateData: NovelProjectUpdateData = {} + let changed = false + + for (const field of PROJECT_MODEL_FIELDS) { + const fieldResult = migrateModelField(row[field]) + if (!fieldResult.changed) continue + updateData[field] = fieldResult.nextValue + changed = true + if (fieldResult.migrated) { + summary.novelPromotionProject.migratedModelFields += 1 + } + if (fieldResult.clearedInvalid) { + summary.novelPromotionProject.invalidModelFieldsCleared += 1 + } + } + + const capabilityResult = migrateCapabilitySelections(row.capabilityOverrides) + if (!capabilityResult.ok) { + updateData.capabilityOverrides = null + changed = changed || row.capabilityOverrides !== null + summary.novelPromotionProject.dirtyClearedCapabilityOverrides += 1 + } else if (capabilityResult.changed) { + updateData.capabilityOverrides = capabilityResult.nextRaw + changed = true + summary.novelPromotionProject.migratedCapabilityOverrideKeys += capabilityResult.migratedKeys + } + + if (!changed) continue + summary.novelPromotionProject.updated += 1 + + if (APPLY) { + await prisma.novelPromotionProject.update({ + where: { id: row.id }, + data: updateData, + }) + } + } +} + +async function migrateGraphArtifacts(summary: MigrationSummary): Promise { + const beforeIndexes = await loadGraphArtifactIndexes() + const hasRequiredBefore = hasRequiredGraphArtifactUniqueIndex(beforeIndexes) + const duplicateGroupsBefore = await countGraphArtifactDuplicateGroups() + const duplicateGroupSamples = await sampleGraphArtifactDuplicateGroups(20) + + summary.graphArtifacts.hasRequiredUniqueIndexBefore = hasRequiredBefore + summary.graphArtifacts.duplicateGroupsBefore = duplicateGroupsBefore + summary.graphArtifacts.duplicateGroupSamples = duplicateGroupSamples.map((row) => ({ + runId: row.runId, + stepKey: row.stepKey, + artifactType: row.artifactType, + refId: row.refId, + count: toNumber(row.c), + })) + + if (APPLY && duplicateGroupsBefore > 0) { + const deleted = await dedupeGraphArtifacts() + summary.graphArtifacts.deletedRowsForDedup = deleted + } + + const duplicateGroupsAfter = APPLY ? await countGraphArtifactDuplicateGroups() : duplicateGroupsBefore + summary.graphArtifacts.duplicateGroupsAfter = duplicateGroupsAfter + + if (APPLY && !hasRequiredBefore) { + if (duplicateGroupsAfter > 0) { + throw new Error( + `GRAPH_ARTIFACT_DEDUPE_INCOMPLETE: still has ${duplicateGroupsAfter} duplicate groups, unique index not added`, + ) + } + await addGraphArtifactUniqueIndex() + summary.graphArtifacts.indexAdded = true + } + + const afterIndexes = await loadGraphArtifactIndexes() + summary.graphArtifacts.hasRequiredUniqueIndexAfter = hasRequiredGraphArtifactUniqueIndex(afterIndexes) + if (APPLY && !summary.graphArtifacts.hasRequiredUniqueIndexAfter) { + throw new Error('GRAPH_ARTIFACT_UNIQUE_INDEX_MISSING_AFTER_MIGRATION') + } +} + +async function main() { + const summary: MigrationSummary = { + mode: MODE, + userPreference: { + scanned: 0, + updated: 0, + dirtyClearedProviders: 0, + dirtyClearedModels: 0, + dirtyClearedCapabilityDefaults: 0, + migratedProviders: 0, + migratedModels: 0, + migratedDefaultModelFields: 0, + migratedCapabilityDefaultKeys: 0, + modelCollisionsResolvedByBailian: 0, + providerCollisionsResolvedByBailian: 0, + invalidModelFieldsCleared: 0, + }, + novelPromotionProject: { + scanned: 0, + updated: 0, + migratedModelFields: 0, + migratedCapabilityOverrideKeys: 0, + invalidModelFieldsCleared: 0, + dirtyClearedCapabilityOverrides: 0, + }, + graphArtifacts: { + hasRequiredUniqueIndexBefore: false, + duplicateGroupsBefore: 0, + duplicateGroupSamples: [], + deletedRowsForDedup: 0, + duplicateGroupsAfter: 0, + indexAdded: false, + hasRequiredUniqueIndexAfter: false, + }, + } + + await migrateUserPreferences(summary) + await migrateNovelProjects(summary) + await migrateGraphArtifacts(summary) + + console.log(JSON.stringify(summary, null, 2)) +} + +main() + .then(async () => { + await prisma.$disconnect() + }) + .catch(async (error: unknown) => { + console.error('[migrate-release-blockers] failed', error) + await prisma.$disconnect() + process.exit(1) + }) diff --git a/scripts/migrations/reports/model-config-migration-report.apply.json b/scripts/migrations/reports/model-config-migration-report.apply.json new file mode 100644 index 0000000..a3c3733 --- /dev/null +++ b/scripts/migrations/reports/model-config-migration-report.apply.json @@ -0,0 +1,1187 @@ +{ + "generatedAt": "2026-02-12T12:51:54.103Z", + "mode": "apply", + "userPreference": { + "scanned": 7, + "updated": 1, + "updatedCustomModels": 1, + "updatedDefaultFields": 2 + }, + "novelPromotionProject": { + "scanned": 70, + "updated": 65, + "updatedFields": 189 + }, + "issues": [ + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "anthropic/claude-sonnet-4.5", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "anthropic/claude-sonnet-4.5", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0574a234-e128-4196-a103-1fa8305f3ca0", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0574a234-e128-4196-a103-1fa8305f3ca0", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0a235755-3a90-44b1-813d-d00d163662b9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0a235755-3a90-44b1-813d-d00d163662b9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0a235755-3a90-44b1-813d-d00d163662b9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "155e9723-b2ef-414f-8c5e-f9e1e34de536", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "1979ed4c-0d16-4696-a9ea-4a15e0c4cd0f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "1979ed4c-0d16-4696-a9ea-4a15e0c4cd0f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "1a296d18-c305-4639-9b11-3c694cd0718d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "1a296d18-c305-4639-9b11-3c694cd0718d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "2f898804-cda1-417a-9f58-6d19fa0f134d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3.0-pro-image-portrait", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "374c975a-8223-453e-81a4-d110c7e4b685", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "374c975a-8223-453e-81a4-d110c7e4b685", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "374c975a-8223-453e-81a4-d110c7e4b685", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "49909329-a771-4b18-a305-ff7d284bcf4e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "49909329-a771-4b18-a305-ff7d284bcf4e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "49909329-a771-4b18-a305-ff7d284bcf4e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "49909329-a771-4b18-a305-ff7d284bcf4e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "4f0eaccc-5fe4-4440-bcc0-be70892626c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "4f0eaccc-5fe4-4440-bcc0-be70892626c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "55e56c35-f59f-4d32-9e99-d67b46846870", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "55e56c35-f59f-4d32-9e99-d67b46846870", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5cdef710-6aef-445a-b217-2cdb6987a68a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5cdef710-6aef-445a-b217-2cdb6987a68a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5cdef710-6aef-445a-b217-2cdb6987a68a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5cdef710-6aef-445a-b217-2cdb6987a68a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5d97db15-8e16-45dc-8fa7-5efa5a237a99", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5d97db15-8e16-45dc-8fa7-5efa5a237a99", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "673acab3-9d09-4b1f-87cc-9cafbe60af80", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "673acab3-9d09-4b1f-87cc-9cafbe60af80", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "anthropic/claude-sonnet-4.5", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "77b44773-1264-419f-b145-4c2a9cbbd977", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "77b44773-1264-419f-b145-4c2a9cbbd977", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "77b44773-1264-419f-b145-4c2a9cbbd977", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "77b44773-1264-419f-b145-4c2a9cbbd977", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "788c5fc0-e3b6-48dd-a2e5-719069726a08", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "788c5fc0-e3b6-48dd-a2e5-719069726a08", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "811a2cde-2a8e-4934-947b-18bf9d6331e0", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana-2k", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "88dbc942-e549-48f8-808b-53e57fbdb97f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "88dbc942-e549-48f8-808b-53e57fbdb97f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "8ef54b9c-0142-49ad-a9cd-ec94c5132731", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "8ef54b9c-0142-49ad-a9cd-ec94c5132731", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "8ef54b9c-0142-49ad-a9cd-ec94c5132731", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "9b48f96d-7d46-4264-abfd-82ee338eecd7", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b1013460-0798-43f2-87bd-7b018cca1d58", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana-2k", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b8740c4d-0694-4106-9831-db665225a0c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b8740c4d-0694-4106-9831-db665225a0c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b8740c4d-0694-4106-9831-db665225a0c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b9f3f933-13d6-461a-bb80-1e94b48c855d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b9f3f933-13d6-461a-bb80-1e94b48c855d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b9f3f933-13d6-461a-bb80-1e94b48c855d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b9f3f933-13d6-461a-bb80-1e94b48c855d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bcf736cd-aeb9-49ce-bb36-d878400bbfd6", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bcf736cd-aeb9-49ce-bb36-d878400bbfd6", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bcf736cd-aeb9-49ce-bb36-d878400bbfd6", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bcf736cd-aeb9-49ce-bb36-d878400bbfd6", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c38b1c73-9baa-4a03-86b7-5f6dbecc0e1e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c38b1c73-9baa-4a03-86b7-5f6dbecc0e1e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ca374b6b-5666-4940-a859-23761fbacd62", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "openai/gpt-5.2", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d1bbeef0-94d5-4247-b90f-105b432649e1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d1bbeef0-94d5-4247-b90f-105b432649e1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d2c7979d-839b-4baa-bbf0-c726f2cc09bb", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "imagen-4.0-ultra-generate-001", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d2c7979d-839b-4baa-bbf0-c726f2cc09bb", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d2c7979d-839b-4baa-bbf0-c726f2cc09bb", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "dc0669ec-effc-4626-a038-bbf48994d65a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "dc0669ec-effc-4626-a038-bbf48994d65a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "dc0669ec-effc-4626-a038-bbf48994d65a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "de428a7c-e719-4cda-874a-7c54878a14bc", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana-2k", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ec2526c0-1acd-4081-b13d-019d5d425710", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ec2526c0-1acd-4081-b13d-019d5d425710", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ec2526c0-1acd-4081-b13d-019d5d425710", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ed2d93ad-5cfa-4bd0-b373-a65aae679ef5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ee5e7440-c825-4c0c-b903-0a51d983db6f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ee5e7440-c825-4c0c-b903-0a51d983db6f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f36d983d-ba52-4849-bcda-0d710b2e04f9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "nano-banana-pro", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f36d983d-ba52-4849-bcda-0d710b2e04f9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "nano-banana-pro", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f45efd24-37b1-4ca6-8808-0b5c9de205f1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f45efd24-37b1-4ca6-8808-0b5c9de205f1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f45efd24-37b1-4ca6-8808-0b5c9de205f1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ff9129c7-f76f-4ab0-8fae-84be89b62390", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ff9129c7-f76f-4ab0-8fae-84be89b62390", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ff9129c7-f76f-4ab0-8fae-84be89b62390", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + } + ] +} diff --git a/scripts/migrations/reports/model-config-migration-report.post-alias-apply.json b/scripts/migrations/reports/model-config-migration-report.post-alias-apply.json new file mode 100644 index 0000000..11c8dc8 --- /dev/null +++ b/scripts/migrations/reports/model-config-migration-report.post-alias-apply.json @@ -0,0 +1,16 @@ +{ + "generatedAt": "2026-02-12T12:53:18.381Z", + "mode": "apply", + "userPreference": { + "scanned": 7, + "updated": 4, + "updatedCustomModels": 0, + "updatedDefaultFields": 24 + }, + "novelPromotionProject": { + "scanned": 70, + "updated": 40, + "updatedFields": 106 + }, + "issues": [] +} diff --git a/scripts/migrations/reports/model-config-migration-report.post-alias-dryrun.json b/scripts/migrations/reports/model-config-migration-report.post-alias-dryrun.json new file mode 100644 index 0000000..df431ee --- /dev/null +++ b/scripts/migrations/reports/model-config-migration-report.post-alias-dryrun.json @@ -0,0 +1,16 @@ +{ + "generatedAt": "2026-02-12T12:53:12.288Z", + "mode": "dry-run", + "userPreference": { + "scanned": 7, + "updated": 4, + "updatedCustomModels": 0, + "updatedDefaultFields": 24 + }, + "novelPromotionProject": { + "scanned": 70, + "updated": 40, + "updatedFields": 106 + }, + "issues": [] +} diff --git a/scripts/migrations/reports/model-config-migration-report.pre-apply.json b/scripts/migrations/reports/model-config-migration-report.pre-apply.json new file mode 100644 index 0000000..9ece5bc --- /dev/null +++ b/scripts/migrations/reports/model-config-migration-report.pre-apply.json @@ -0,0 +1,1187 @@ +{ + "generatedAt": "2026-02-12T12:51:46.934Z", + "mode": "dry-run", + "userPreference": { + "scanned": 7, + "updated": 1, + "updatedCustomModels": 1, + "updatedDefaultFields": 2 + }, + "novelPromotionProject": { + "scanned": 70, + "updated": 65, + "updatedFields": 189 + }, + "issues": [ + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "anthropic/claude-sonnet-4.5", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "0c3ddcbd-d6f7-4b57-90d0-3c2fe0d48c5c", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "4c73593e-148d-4707-a2c2-087d2fd43a68", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "b33bc1c7-0ba8-475e-87e0-ba6ef897c2d2", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "userPreference", + "rowId": "bb2a2aa3-29f9-4f85-9e93-6363faf17dc4", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "anthropic/claude-sonnet-4.5", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "04ebb651-dc90-4c69-99d4-343dd037a9b9", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0574a234-e128-4196-a103-1fa8305f3ca0", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0574a234-e128-4196-a103-1fa8305f3ca0", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0a235755-3a90-44b1-813d-d00d163662b9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0a235755-3a90-44b1-813d-d00d163662b9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "0a235755-3a90-44b1-813d-d00d163662b9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "155e9723-b2ef-414f-8c5e-f9e1e34de536", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "1979ed4c-0d16-4696-a9ea-4a15e0c4cd0f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "1979ed4c-0d16-4696-a9ea-4a15e0c4cd0f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "1a296d18-c305-4639-9b11-3c694cd0718d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "1a296d18-c305-4639-9b11-3c694cd0718d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "2f898804-cda1-417a-9f58-6d19fa0f134d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3.0-pro-image-portrait", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "374c975a-8223-453e-81a4-d110c7e4b685", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "374c975a-8223-453e-81a4-d110c7e4b685", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "374c975a-8223-453e-81a4-d110c7e4b685", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "49909329-a771-4b18-a305-ff7d284bcf4e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "49909329-a771-4b18-a305-ff7d284bcf4e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "49909329-a771-4b18-a305-ff7d284bcf4e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "49909329-a771-4b18-a305-ff7d284bcf4e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "4f0eaccc-5fe4-4440-bcc0-be70892626c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "4f0eaccc-5fe4-4440-bcc0-be70892626c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "55e56c35-f59f-4d32-9e99-d67b46846870", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "55e56c35-f59f-4d32-9e99-d67b46846870", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5cdef710-6aef-445a-b217-2cdb6987a68a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5cdef710-6aef-445a-b217-2cdb6987a68a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5cdef710-6aef-445a-b217-2cdb6987a68a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5cdef710-6aef-445a-b217-2cdb6987a68a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5d97db15-8e16-45dc-8fa7-5efa5a237a99", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "5d97db15-8e16-45dc-8fa7-5efa5a237a99", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "673acab3-9d09-4b1f-87cc-9cafbe60af80", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "673acab3-9d09-4b1f-87cc-9cafbe60af80", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "anthropic/claude-sonnet-4.5", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "6bbb564a-14bd-4bc2-83e7-1a8e8612eb8e", + "userId": "edb99912-94ce-403d-97bb-2a29d5d20cb6", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "77b44773-1264-419f-b145-4c2a9cbbd977", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "77b44773-1264-419f-b145-4c2a9cbbd977", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "77b44773-1264-419f-b145-4c2a9cbbd977", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "77b44773-1264-419f-b145-4c2a9cbbd977", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "788c5fc0-e3b6-48dd-a2e5-719069726a08", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "788c5fc0-e3b6-48dd-a2e5-719069726a08", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "811a2cde-2a8e-4934-947b-18bf9d6331e0", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana-2k", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "88dbc942-e549-48f8-808b-53e57fbdb97f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "88dbc942-e549-48f8-808b-53e57fbdb97f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "8ef54b9c-0142-49ad-a9cd-ec94c5132731", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "8ef54b9c-0142-49ad-a9cd-ec94c5132731", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "8ef54b9c-0142-49ad-a9cd-ec94c5132731", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "9b48f96d-7d46-4264-abfd-82ee338eecd7", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b1013460-0798-43f2-87bd-7b018cca1d58", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana-2k", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b8740c4d-0694-4106-9831-db665225a0c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b8740c4d-0694-4106-9831-db665225a0c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b8740c4d-0694-4106-9831-db665225a0c5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b9f3f933-13d6-461a-bb80-1e94b48c855d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b9f3f933-13d6-461a-bb80-1e94b48c855d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b9f3f933-13d6-461a-bb80-1e94b48c855d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "b9f3f933-13d6-461a-bb80-1e94b48c855d", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bc31aa21-9eec-47d2-9853-e4b34d926b6a", + "userId": "5a28aff0-e370-4337-acf6-0f8ce86f346a", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bcf736cd-aeb9-49ce-bb36-d878400bbfd6", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bcf736cd-aeb9-49ce-bb36-d878400bbfd6", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bcf736cd-aeb9-49ce-bb36-d878400bbfd6", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "bcf736cd-aeb9-49ce-bb36-d878400bbfd6", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c38b1c73-9baa-4a03-86b7-5f6dbecc0e1e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c38b1c73-9baa-4a03-86b7-5f6dbecc0e1e", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "c61f1a58-42e8-4989-968b-5a373ae77e1a", + "userId": "bea0c5b7-73f0-4048-8cb9-e6ef18650a0f", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ca374b6b-5666-4940-a859-23761fbacd62", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "openai/gpt-5.2", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d1bbeef0-94d5-4247-b90f-105b432649e1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d1bbeef0-94d5-4247-b90f-105b432649e1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d2c7979d-839b-4baa-bbf0-c726f2cc09bb", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "imagen-4.0-ultra-generate-001", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d2c7979d-839b-4baa-bbf0-c726f2cc09bb", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "d2c7979d-839b-4baa-bbf0-c726f2cc09bb", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "dc0669ec-effc-4626-a038-bbf48994d65a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "dc0669ec-effc-4626-a038-bbf48994d65a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "dc0669ec-effc-4626-a038-bbf48994d65a", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-fast-251015-batch", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "de428a7c-e719-4cda-874a-7c54878a14bc", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana-2k", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ec2526c0-1acd-4081-b13d-019d5d425710", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ec2526c0-1acd-4081-b13d-019d5d425710", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ec2526c0-1acd-4081-b13d-019d5d425710", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ed2d93ad-5cfa-4bd0-b373-a65aae679ef5", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ee5e7440-c825-4c0c-b903-0a51d983db6f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ee5e7440-c825-4c0c-b903-0a51d983db6f", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f36d983d-ba52-4849-bcda-0d710b2e04f9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "nano-banana-pro", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f36d983d-ba52-4849-bcda-0d710b2e04f9", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "editModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "nano-banana-pro", + "message": "editModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "analysisModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "google/gemini-3-pro-preview", + "message": "analysisModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "banana", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f38e00d3-09b0-47a5-8caf-71d491bae4d1", + "userId": "91c9fe74-556d-4036-a2a0-ebd3336fd8d8", + "field": "videoModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "doubao-seedance-1-0-pro-250528", + "message": "videoModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f45efd24-37b1-4ca6-8808-0b5c9de205f1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f45efd24-37b1-4ca6-8808-0b5c9de205f1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "f45efd24-37b1-4ca6-8808-0b5c9de205f1", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ff9129c7-f76f-4ab0-8fae-84be89b62390", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "characterModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "characterModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ff9129c7-f76f-4ab0-8fae-84be89b62390", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "locationModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "seedream4.5", + "message": "locationModel legacy modelId cannot be mapped" + }, + { + "table": "novelPromotionProject", + "rowId": "ff9129c7-f76f-4ab0-8fae-84be89b62390", + "userId": "3d84c341-87d7-4165-971d-a3f6c576aa21", + "field": "storyboardModel", + "kind": "LEGACY_MODEL_ID_NOT_FOUND", + "rawValue": "gemini-3-pro-image-preview-batch", + "message": "storyboardModel legacy modelId cannot be mapped" + } + ] +} diff --git a/scripts/task-error-stats.ts b/scripts/task-error-stats.ts new file mode 100644 index 0000000..c188af8 --- /dev/null +++ b/scripts/task-error-stats.ts @@ -0,0 +1,53 @@ +import { logInfo as _ulogInfo, logError as _ulogError } from '@/lib/logging/core' +import { prisma } from '@/lib/prisma' + +function parseMinutesArg() { + const raw = process.argv.find((arg) => arg.startsWith('--minutes=')) + const value = raw ? Number.parseInt(raw.split('=')[1], 10) : 5 + return Number.isFinite(value) && value > 0 ? value : 5 +} + +async function main() { + const minutes = parseMinutesArg() + const since = new Date(Date.now() - minutes * 60_000) + + const rows = await prisma.task.groupBy({ + by: ['errorCode'], + where: { + status: 'failed', + finishedAt: { gte: since }, + }, + _count: { + _all: true, + }, + orderBy: { + _count: { + errorCode: 'desc', + }, + }, + }) + + const total = rows.reduce((sum: number, row) => sum + (row._count?._all || 0), 0) + + _ulogInfo(`[TaskErrorStats] window=${minutes}m failed_total=${total}`) + if (!rows.length) { + _ulogInfo('No failed tasks in the selected window.') + return + } + + for (const row of rows) { + const code = row.errorCode || 'UNKNOWN' + const count = row?._count?._all || 0 + const ratio = total > 0 ? ((count / total) * 100).toFixed(1) : '0.0' + _ulogInfo(`${code}\t${count}\t${ratio}%`) + } +} + +main() + .catch((error) => { + _ulogError('[TaskErrorStats] failed:', error?.message || error) + process.exit(1) + }) + .finally(async () => { + await prisma.$disconnect() + }) diff --git a/scripts/test-full-image-flow.ts b/scripts/test-full-image-flow.ts new file mode 100644 index 0000000..f93c8e8 --- /dev/null +++ b/scripts/test-full-image-flow.ts @@ -0,0 +1,161 @@ +/** + * 模拟完整的图像生成和显示流程 + * 运行: npx tsx scripts/test-full-image-flow.ts + */ +import { config } from 'dotenv' +config() + +import { uploadObject, getStorageProvider } from '../src/lib/storage' +import { extractStorageKeyFromLegacyValue, resolveMediaRefFromLegacyValue, getMediaObjectByPublicId } from '../src/lib/media/service' +import { attachMediaFieldsToProject } from '../src/lib/media/attach' +import { randomUUID } from 'crypto' + +async function testFullImageFlow() { + console.log('🧪 模拟完整图像生成和显示流程...\n') + + const provider = getStorageProvider() + console.log(`存储类型: ${provider.kind}\n`) + + // 1. 模拟图像生成后的上传 + console.log('1️⃣ 模拟图像生成后上传:') + const testKey = `images/location-${randomUUID()}.jpg` + const testImageContent = Buffer.from('fake-generated-image-data') + + const storedKey = await uploadObject(testImageContent, testKey) + console.log(` ✅ 上传成功,返回 key: ${storedKey}`) + + // 2. 模拟数据库存储(存储 key) + console.log('\n2️⃣ 模拟数据库存储:') + const mockDbLocation = { + id: 'loc-test-123', + name: '测试场景', + images: [ + { + id: 'img-1', + imageUrl: storedKey, // 存储的是 key,不是完整 URL + imageIndex: 0, + } + ] + } + console.log(` 存储的 imageUrl: ${storedKey}`) + + // 3. 测试 extractStorageKeyFromLegacyValue + console.log('\n3️⃣ 测试 extractStorageKeyFromLegacyValue:') + const extractedKey = extractStorageKeyFromLegacyValue(storedKey) + console.log(` 输入: ${storedKey}`) + console.log(` 输出: ${extractedKey}`) + if (extractedKey) { + console.log(` ✅ 成功提取 storageKey`) + } else { + console.log(` ❌ 未能提取 storageKey - 这是问题所在!`) + } + + // 4. 测试 resolveMediaRefFromLegacyValue(创建 MediaObject) + console.log('\n4️⃣ 测试 resolveMediaRefFromLegacyValue:') + try { + const mediaRef = await resolveMediaRefFromLegacyValue(storedKey) + if (mediaRef) { + console.log(` ✅ MediaObject 创建/获取成功`) + console.log(` id: ${mediaRef.id}`) + console.log(` publicId: ${mediaRef.publicId}`) + console.log(` url: ${mediaRef.url}`) + console.log(` storageKey: ${mediaRef.storageKey}`) + } else { + console.log(` ❌ MediaRef 为 null`) + } + } catch (error) { + console.log(` ❌ 失败:`, error) + } + + // 5. 测试 attachMediaFieldsToProject(完整流程) + console.log('\n5️⃣ 测试 attachMediaFieldsToProject(API 层转换):') + try { + const mockProject = { + id: 'proj-test', + locations: [mockDbLocation] + } + + const result = await attachMediaFieldsToProject(mockProject) + const location = result.locations?.[0] + const image = location?.images?.[0] + + console.log(` 转换后的 imageUrl: ${image?.imageUrl}`) + + if (image?.imageUrl?.startsWith('/m/')) { + console.log(` ✅ 正确生成了 /m/ 格式的 URL`) + + // 提取 publicId + const publicId = image.imageUrl.replace('/m/', '').split('?')[0] + console.log(` publicId: ${publicId}`) + + // 验证 MediaObject 存在 + const media = await getMediaObjectByPublicId(publicId) + if (media) { + console.log(` ✅ MediaObject 存在,storageKey: ${media.storageKey}`) + } else { + console.log(` ❌ MediaObject 不存在!`) + } + } else if (image?.imageUrl?.startsWith('http')) { + console.log(` ⚠️ 返回了完整 HTTP URL: ${image.imageUrl}`) + } else if (!image?.imageUrl) { + console.log(` ❌ imageUrl 为空!`) + } else { + console.log(` ⚠️ URL 格式: ${image.imageUrl}`) + } + } catch (error) { + console.log(` ❌ 失败:`, error) + } + + // 6. 测试访问 /m/ URL + console.log('\n6️⃣ 测试访问 /m/ URL:') + try { + const mockProject = { + id: 'proj-test', + locations: [mockDbLocation] + } + + const result = await attachMediaFieldsToProject(mockProject) + const imageUrl = result.locations?.[0]?.images?.[0]?.imageUrl + + if (imageUrl?.startsWith('/m/')) { + const fullUrl = `http://localhost:3000${imageUrl}` + console.log(` 尝试访问: ${fullUrl}`) + + try { + const response = await fetch(fullUrl, { redirect: 'manual' }) + console.log(` 状态: ${response.status}`) + + if (response.status === 200) { + console.log(` ✅ /m/ 端点工作正常`) + } else if (response.status === 307 || response.status === 302) { + console.log(` ✅ /m/ 端点返回重定向(正常)`) + console.log(` Location: ${response.headers.get('location')?.substring(0, 80)}...`) + } else if (response.status === 404) { + console.log(` ❌ MediaObject 未找到(404)`) + } else { + console.log(` ⚠️ 状态码: ${response.status}`) + } + } catch (error) { + console.log(` ⚠️ 请求失败(可能服务器未启动):`, error) + } + } else { + console.log(` 跳过测试(URL 格式不正确)`) + } + } catch (error) { + console.log(` 跳过测试:`, error) + } + + // 清理 + console.log('\n7️⃣ 清理测试数据:') + try { + const { deleteObject } = await import('../src/lib/storage') + await deleteObject(storedKey) + console.log(` ✅ 删除成功`) + } catch (error) { + console.log(` ⚠️ 删除失败:`, error) + } + + console.log('\n✨ 测试完成!') +} + +testFullImageFlow().catch(console.error) diff --git a/scripts/test-image-url-flow.ts b/scripts/test-image-url-flow.ts new file mode 100644 index 0000000..829dad4 --- /dev/null +++ b/scripts/test-image-url-flow.ts @@ -0,0 +1,125 @@ +/** + * 图片 URL 流程测试 + * 模拟图片生成后的存储和读取流程 + * 运行: npx tsx scripts/test-image-url-flow.ts + */ +import { config } from 'dotenv' +config() + +import { uploadObject, getSignedUrl, extractStorageKey, toFetchableUrl } from '../src/lib/storage' +import { keyToSignedUrl, addSignedUrlToLocation } from '../src/lib/storage' +import { encodeImageUrls, decodeImageUrlsFromDb } from '../src/lib/contracts/image-urls-contract' +import { randomUUID } from 'crypto' + +async function testImageUrlFlow() { + console.log('🧪 测试图片 URL 全流程...\n') + + // 1. 模拟上传图片到存储 + console.log('1️⃣ 模拟上传图片:') + const testKey = `images/location-${randomUUID()}.jpg` + const testImageContent = Buffer.from('fake-image-data') + + let storedKey: string + try { + storedKey = await uploadObject(testImageContent, testKey) + console.log(` ✅ 上传成功,返回 key: ${storedKey}`) + } catch (error) { + console.log(` ❌ 上传失败:`, error) + process.exit(1) + } + + // 2. 模拟存储到数据库(encodeImageUrls) + console.log('\n2️⃣ 模拟数据库存储(encodeImageUrls):') + const imageUrlsArray = [storedKey] + const dbValue = encodeImageUrls(imageUrlsArray) + console.log(` ✅ 数据库值: ${dbValue}`) + + // 3. 模拟从数据库读取(decodeImageUrlsFromDb) + console.log('\n3️⃣ 模拟数据库读取(decodeImageUrlsFromDb):') + const decodedKeys = decodeImageUrlsFromDb(dbValue) + console.log(` ✅ 解析出的 keys: ${JSON.stringify(decodedKeys)}`) + + // 4. 测试 keyToSignedUrl(用于 API 返回给前端) + console.log('\n4️⃣ 测试 keyToSignedUrl(API 层转换):') + for (const key of decodedKeys) { + const signedUrl = keyToSignedUrl(key) + console.log(` Key: ${key}`) + console.log(` → Signed URL: ${signedUrl}`) + + // 检查是否是 /api/storage/sign 格式 + if (signedUrl?.startsWith('/api/storage/sign')) { + console.log(` ✅ 正确生成了签名 URL 路径`) + } else if (signedUrl?.startsWith('http')) { + console.log(` ⚠️ 返回了完整 HTTP URL,可能无法直接访问`) + } else { + console.log(` ⚠️ URL 格式: ${signedUrl}`) + } + } + + // 5. 测试 addSignedUrlToLocation(完整对象转换) + console.log('\n5️⃣ 测试 addSignedUrlToLocation(完整对象转换):') + const mockLocationFromDb = { + id: 'loc-123', + name: '测试场景', + images: [ + { + id: 'img-1', + imageUrl: storedKey, + imageIndex: 0, + } + ] + } + + const locationWithSignedUrls = addSignedUrlToLocation(mockLocationFromDb) + console.log(` 转换后的 location.images:`) + for (const img of locationWithSignedUrls.images || []) { + console.log(` - imageIndex: ${img.imageIndex}`) + console.log(` - imageUrl: ${img.imageUrl}`) + + if (img.imageUrl?.startsWith('/api/storage/sign')) { + console.log(` ✅ 正确: 是相对路径签名 URL`) + } else if (img.imageUrl?.startsWith('http://127.0.0.1:19000')) { + console.log(` ❌ 错误: 是 MinIO 直链,可能需要签名`) + } else if (img.imageUrl?.startsWith('http')) { + console.log(` ⚠️ 是外部 HTTP URL`) + } else { + console.log(` ⚠️ 其他格式: ${img.imageUrl}`) + } + } + + // 6. 测试 getSignedUrl 直接调用 + console.log('\n6️⃣ 测试 getSignedUrl 直接调用:') + const directSignedUrl = getSignedUrl(storedKey) + console.log(` Key: ${storedKey}`) + console.log(` → URL: ${directSignedUrl}`) + + // 7. 测试 extractStorageKey + console.log('\n7️⃣ 测试 extractStorageKey(从各种 URL 提取 key):') + const testUrls = [ + storedKey, + `http://127.0.0.1:19000/waoowaoo/${storedKey}`, + directSignedUrl, + ] + for (const url of testUrls) { + const extracted = extractStorageKey(url) + console.log(` ${url.substring(0, 60)}...`) + console.log(` → extracted: ${extracted}`) + } + + // 8. 清理测试数据 + console.log('\n8️⃣ 清理测试数据:') + try { + const { deleteObject } = await import('../src/lib/storage') + await deleteObject(storedKey) + console.log(` ✅ 删除成功`) + } catch (error) { + console.log(` ⚠️ 删除失败(可忽略):`, error) + } + + console.log('\n✨ 测试完成!') + console.log('\n📋 总结:') + console.log(' 如果第4、5步返回的是 /api/storage/sign?key=... 格式 → ✅ 正常') + console.log(' 如果第4、5步返回的是 http://127.0.0.1:19000/... 格式 → ❌ 需要修复') +} + +testImageUrlFlow().catch(console.error) diff --git a/scripts/test-minio.ts b/scripts/test-minio.ts new file mode 100644 index 0000000..a3b410b --- /dev/null +++ b/scripts/test-minio.ts @@ -0,0 +1,119 @@ +/** + * MinIO 存储测试脚本 + * 运行: npx tsx scripts/test-minio.ts + */ +import { config } from 'dotenv' +config() // 加载 .env 文件 + +import { getStorageProvider, uploadObject, getSignedObjectUrl, getObjectBuffer, deleteObject } from '../src/lib/storage' +import { randomUUID } from 'crypto' + +async function testMinio() { + console.log('🧪 开始测试 MinIO 存储...\n') + + // 1. 检查环境变量 + console.log('1️⃣ 检查环境变量:') + const requiredEnv = [ + 'STORAGE_TYPE', + 'MINIO_ENDPOINT', + 'MINIO_ACCESS_KEY', + 'MINIO_SECRET_KEY', + 'MINIO_BUCKET', + ] + for (const key of requiredEnv) { + const value = process.env[key] + if (value) { + // 隐藏敏感信息 + const displayValue = key.includes('SECRET') || key.includes('KEY') && key !== 'STORAGE_TYPE' + ? '*'.repeat(Math.min(value.length, 8)) + : value + console.log(` ✅ ${key}=${displayValue}`) + } else { + console.log(` ❌ ${key}=未设置`) + } + } + + // 2. 初始化 Provider + console.log('\n2️⃣ 初始化存储 Provider:') + try { + const provider = getStorageProvider() + console.log(` ✅ Provider 类型: ${provider.kind}`) + } catch (error) { + console.log(` ❌ 初始化失败:`, error) + process.exit(1) + } + + // 3. 测试上传 + console.log('\n3️⃣ 测试上传:') + const testKey = `test/${randomUUID()}.txt` + const testContent = `Hello MinIO! 测试时间: ${new Date().toISOString()}` + let uploadedKey: string + + try { + uploadedKey = await uploadObject(Buffer.from(testContent), testKey) + console.log(` ✅ 上传成功: ${uploadedKey}`) + } catch (error) { + console.log(` ❌ 上传失败:`, error) + process.exit(1) + } + + // 4. 测试获取签名 URL + console.log('\n4️⃣ 测试获取签名 URL:') + let signedUrl: string + try { + signedUrl = await getSignedObjectUrl(uploadedKey, 300) + console.log(` ✅ 签名 URL 生成成功`) + console.log(` URL: ${signedUrl.substring(0, 100)}...`) + } catch (error) { + console.log(` ❌ 签名 URL 生成失败:`, error) + process.exit(1) + } + + // 5. 测试下载 + console.log('\n5️⃣ 测试下载:') + try { + const buffer = await getObjectBuffer(uploadedKey) + const content = buffer.toString() + if (content === testContent) { + console.log(` ✅ 下载成功,内容匹配`) + } else { + console.log(` ❌ 下载成功,但内容不匹配`) + console.log(` 预期: ${testContent}`) + console.log(` 实际: ${content}`) + } + } catch (error) { + console.log(` ❌ 下载失败:`, error) + process.exit(1) + } + + // 6. 通过 HTTP 访问签名 URL + console.log('\n6️⃣ 测试通过 HTTP 访问签名 URL:') + try { + const response = await fetch(signedUrl) + if (response.ok) { + const content = await response.text() + if (content === testContent) { + console.log(` ✅ HTTP 访问成功,内容匹配`) + } else { + console.log(` ❌ HTTP 访问成功,但内容不匹配`) + } + } else { + console.log(` ❌ HTTP 访问失败: ${response.status} ${response.statusText}`) + } + } catch (error) { + console.log(` ❌ HTTP 请求失败:`, error) + } + + // 7. 清理测试文件 + console.log('\n7️⃣ 清理测试文件:') + try { + await deleteObject(uploadedKey) + console.log(` ✅ 删除成功`) + } catch (error) { + console.log(` ❌ 删除失败:`, error) + } + + console.log('\n✨ 测试完成!') +} + +testMinio().catch(console.error) diff --git a/scripts/test-regression-runner.sh b/scripts/test-regression-runner.sh new file mode 100644 index 0000000..0aa4bad --- /dev/null +++ b/scripts/test-regression-runner.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [ "$#" -eq 0 ]; then + echo "[regression-runner] missing command" + exit 2 +fi + +LOG_FILE="$(mktemp -t regression-runner.XXXXXX.log)" + +set +e +"$@" 2>&1 | tee "$LOG_FILE" +CMD_STATUS=${PIPESTATUS[0]} +set -e + +if [ "$CMD_STATUS" -ne 0 ]; then + echo + echo "[regression-runner] regression failed, collecting diagnostics..." + + FAILED_FILES="$(grep -E '^ FAIL ' "$LOG_FILE" | sed -E 's/^ FAIL ([^ ]+).*/\1/' | sort -u || true)" + if [ -z "$FAILED_FILES" ]; then + echo "[regression-runner] no explicit FAIL file lines found in output" + else + echo "[regression-runner] failed files:" + while IFS= read -r file; do + [ -z "$file" ] && continue + echo " - $file" + LAST_COMMIT="$(git log -n 1 --format='%h %ad %an %s' --date=short -- "$file" || true)" + FIRST_COMMIT="$(git log --diff-filter=A --follow --format='%h %ad %an %s' --date=short -- "$file" | tail -n 1 || true)" + if [ -n "$LAST_COMMIT" ]; then + echo " latest: $LAST_COMMIT" + fi + if [ -n "$FIRST_COMMIT" ]; then + echo " first: $FIRST_COMMIT" + fi + done <<< "$FAILED_FILES" + fi +fi + +rm -f "$LOG_FILE" +exit "$CMD_STATUS" diff --git a/scripts/test-sign-api.ts b/scripts/test-sign-api.ts new file mode 100644 index 0000000..1c2fc0b --- /dev/null +++ b/scripts/test-sign-api.ts @@ -0,0 +1,95 @@ +/** + * 测试 /api/storage/sign 端点 + * 运行: npx tsx scripts/test-sign-api.ts + */ +import { config } from 'dotenv' +config() + +import { uploadObject, getSignedObjectUrl } from '../src/lib/storage' +import { randomUUID } from 'crypto' +import http from 'http' + +async function testSignApi() { + console.log('🧪 测试 /api/storage/sign API...\n') + + // 1. 上传测试文件 + console.log('1️⃣ 上传测试文件:') + const testKey = `images/test-${randomUUID()}.txt` + const testContent = 'Hello from MinIO test!' + + await uploadObject(Buffer.from(testContent), testKey) + console.log(` ✅ 上传成功: ${testKey}`) + + // 2. 生成签名 URL(服务端直接调用) + console.log('\n2️⃣ 服务端生成签名 URL:') + const signedUrl = await getSignedObjectUrl(testKey, 300) + console.log(` URL: ${signedUrl}`) + + // 3. 测试直接访问签名 URL + console.log('\n3️⃣ 测试直接访问签名 URL:') + try { + const response = await fetch(signedUrl) + if (response.ok) { + const content = await response.text() + console.log(` ✅ 访问成功,内容: "${content}"`) + } else { + console.log(` ❌ 访问失败: ${response.status} ${response.statusText}`) + } + } catch (error) { + console.log(` ❌ 请求失败:`, error) + } + + // 4. 测试 /api/storage/sign 端点(模拟前端访问) + console.log('\n4️⃣ 测试 /api/storage/sign 端点(模拟前端):') + const signApiUrl = `http://localhost:3000/api/storage/sign?key=${encodeURIComponent(testKey)}&expires=300` + console.log(` URL: ${signApiUrl}`) + + try { + const response = await fetch(signApiUrl, { redirect: 'manual' }) + console.log(` 状态: ${response.status}`) + console.log(` Location: ${response.headers.get('location')}`) + + if (response.status === 307 || response.status === 302) { + const redirectUrl = response.headers.get('location') + console.log(` ✅ 重定向 URL: ${redirectUrl?.substring(0, 80)}...`) + + // 5. 测试跟随重定向 + console.log('\n5️⃣ 测试跟随重定向访问图片:') + const finalResponse = await fetch(signApiUrl, { redirect: 'follow' }) + if (finalResponse.ok) { + const content = await finalResponse.text() + console.log(` ✅ 最终访问成功,内容: "${content}"`) + } else { + console.log(` ❌ 最终访问失败: ${finalResponse.status}`) + } + } else { + const body = await response.text() + console.log(` 响应: ${body.substring(0, 200)}`) + } + } catch (error) { + console.log(` ❌ 请求失败(可能服务器未启动):`, error) + } + + // 6. 测试 /api/cos/image 端点(旧版兼容) + console.log('\n6️⃣ 测试 /api/cos/image 端点(旧版兼容):') + const cosApiUrl = `http://localhost:3000/api/cos/image?key=${encodeURIComponent(testKey)}&expires=300` + console.log(` URL: ${cosApiUrl}`) + + try { + const response = await fetch(cosApiUrl, { redirect: 'manual' }) + console.log(` 状态: ${response.status}`) + console.log(` Location: ${response.headers.get('location')}`) + } catch (error) { + console.log(` ❌ 请求失败(可能服务器未启动):`, error) + } + + // 清理 + console.log('\n7️⃣ 清理测试文件:') + const { deleteObject } = await import('../src/lib/storage') + await deleteObject(testKey) + console.log(` ✅ 清理完成`) + + console.log('\n✨ 测试完成!') +} + +testSignApi().catch(console.error) diff --git a/scripts/tmp-cleanup-project-models.mjs b/scripts/tmp-cleanup-project-models.mjs new file mode 100644 index 0000000..3c4d7f2 --- /dev/null +++ b/scripts/tmp-cleanup-project-models.mjs @@ -0,0 +1,41 @@ +import { PrismaClient } from '@prisma/client'; +const p = new PrismaClient(); +setTimeout(() => { console.error('TIMEOUT'); process.exit(1); }, 30000); + +const userId = '3d84c341-87d7-4165-971d-a3f6c576aa21'; +const needle = 'gemini-compatible:5b127c32-136e-4e5a-af74-8bae3e28be7a'; +const modelFields = ['characterModel', 'locationModel', 'storyboardModel', 'editModel']; + +// novelPromotionData is a relation, query directly +const npProjects = await p.novelPromotionProject.findMany({ + where: { project: { userId } }, + select: { id: true, projectId: true, characterModel: true, locationModel: true, storyboardModel: true, editModel: true, project: { select: { name: true } } } +}); + +let totalCleaned = 0; + +for (const np of npProjects) { + const updates = {}; + const cleanedFields = []; + + for (const field of modelFields) { + if (typeof np[field] === 'string' && np[field].includes(needle)) { + updates[field] = ''; + cleanedFields.push(`${field}: ${np[field]}`); + } + } + + if (cleanedFields.length > 0) { + await p.novelPromotionProject.update({ + where: { id: np.id }, + data: updates + }); + console.log(`✓ ${np.project.name} (${np.projectId}): cleared ${cleanedFields.length} fields`); + cleanedFields.forEach(f => console.log(` - ${f}`)); + totalCleaned++; + } +} + +console.log(`\nDone. Cleaned ${totalCleaned} projects.`); +await p.$disconnect(); +process.exit(0); diff --git a/scripts/tmp-find-old-model.mjs b/scripts/tmp-find-old-model.mjs new file mode 100644 index 0000000..c7cd735 --- /dev/null +++ b/scripts/tmp-find-old-model.mjs @@ -0,0 +1,43 @@ +import { PrismaClient } from '@prisma/client'; +const p = new PrismaClient(); +setTimeout(() => { console.error('TIMEOUT'); process.exit(1); }, 15000); + +const userId = '3d84c341-87d7-4165-971d-a3f6c576aa21'; +const needle = 'gemini-compatible:5b'; + +// 1. Check userPreference default models +const pref = await p.userPreference.findUnique({ + where: { userId }, + select: { analysisModel: true, characterModel: true, locationModel: true, storyboardModel: true, editModel: true, videoModel: true } +}); +console.log('=== UserPreference defaults ==='); +let found = false; +for (const [k, v] of Object.entries(pref || {})) { + if (typeof v === 'string' && v.includes(needle)) { + console.log(' FOUND in', k, ':', v); + found = true; + } +} +if (!found) console.log(' (clean)'); + +// 2. Check novelPromotionData JSON for any reference +const projects = await p.project.findMany({ + where: { userId }, + select: { id: true, name: true, novelPromotionData: true } +}); +console.log('\n=== Project novelPromotionData ==='); +for (const proj of projects) { + const data = JSON.stringify(proj.novelPromotionData || {}); + if (data.includes(needle)) { + // Find which keys reference it + const parsed = proj.novelPromotionData; + for (const [k, v] of Object.entries(parsed || {})) { + if (typeof v === 'string' && v.includes(needle)) { + console.log(' FOUND in project', proj.id, '(' + proj.name + ') field:', k, '=', v); + } + } + } +} + +await p.$disconnect(); +process.exit(0); diff --git a/scripts/watchdog.ts b/scripts/watchdog.ts new file mode 100644 index 0000000..b36efc6 --- /dev/null +++ b/scripts/watchdog.ts @@ -0,0 +1,225 @@ +import { createScopedLogger } from '@/lib/logging/core' +import { prisma } from '@/lib/prisma' +import { addTaskJob } from '@/lib/task/queues' +import { resolveTaskLocaleFromBody } from '@/lib/task/resolve-locale' +import { markTaskFailed } from '@/lib/task/service' +import { publishTaskEvent } from '@/lib/task/publisher' +import { TASK_EVENT_TYPE, TASK_TYPE, type TaskType } from '@/lib/task/types' +import { cleanupAllProjectLogs } from '@/lib/logging/file-writer' + +const INTERVAL_MS = Number.parseInt(process.env.WATCHDOG_INTERVAL_MS || '30000', 10) || 30000 +const HEARTBEAT_TIMEOUT_MS = Number.parseInt(process.env.TASK_HEARTBEAT_TIMEOUT_MS || '90000', 10) || 90000 +const TASK_TYPE_SET: ReadonlySet = new Set(Object.values(TASK_TYPE)) +// 每小时执行一次日志清理 +const LOG_CLEANUP_INTERVAL_TICKS = Math.ceil(3600_000 / INTERVAL_MS) +let tickCount = 0 +const logger = createScopedLogger({ + module: 'watchdog', + action: 'watchdog.tick', +}) + +function toTaskType(value: string): TaskType | null { + if (TASK_TYPE_SET.has(value)) { + return value as TaskType + } + return null +} + +function toTaskPayload(value: unknown): Record | null { + if (value && typeof value === 'object' && !Array.isArray(value)) { + return value as Record + } + return null +} + +async function recoverQueuedTasks() { + const rows = await prisma.task.findMany({ + where: { + status: 'queued', + enqueuedAt: null, + }, + take: 100, + orderBy: { createdAt: 'asc' }, + }) + + for (const task of rows) { + const taskType = toTaskType(task.type) + if (!taskType) { + logger.error({ + action: 'watchdog.reenqueue_invalid_type', + message: `invalid task type: ${task.type}`, + taskId: task.id, + projectId: task.projectId, + userId: task.userId, + errorCode: 'INVALID_PARAMS', + retryable: false, + }) + continue + } + try { + const locale = resolveTaskLocaleFromBody(task.payload) + if (!locale) { + await markTaskFailed(task.id, 'TASK_LOCALE_REQUIRED', 'task locale is missing') + logger.error({ + action: 'watchdog.reenqueue_locale_missing', + message: 'task locale is missing', + taskId: task.id, + projectId: task.projectId, + userId: task.userId, + errorCode: 'TASK_LOCALE_REQUIRED', + retryable: false, + }) + continue + } + + await addTaskJob({ + taskId: task.id, + type: taskType, + locale, + projectId: task.projectId, + episodeId: task.episodeId, + targetType: task.targetType, + targetId: task.targetId, + payload: toTaskPayload(task.payload), + userId: task.userId, + }) + await prisma.task.update({ + where: { id: task.id }, + data: { + enqueuedAt: new Date(), + enqueueAttempts: { increment: 1 }, + lastEnqueueError: null, + }, + }) + logger.info({ + action: 'watchdog.reenqueue', + message: 'watchdog re-enqueued queued task', + taskId: task.id, + projectId: task.projectId, + userId: task.userId, + details: { + type: task.type, + targetType: task.targetType, + targetId: task.targetId, + }, + }) + } catch (error: unknown) { + const message = error instanceof Error ? error.message : 're-enqueue failed' + await prisma.task.update({ + where: { id: task.id }, + data: { + enqueueAttempts: { increment: 1 }, + lastEnqueueError: message, + }, + }) + logger.error({ + action: 'watchdog.reenqueue_failed', + message, + taskId: task.id, + projectId: task.projectId, + userId: task.userId, + errorCode: 'EXTERNAL_ERROR', + retryable: true, + }) + } + } +} + +async function cleanupZombieProcessingTasks() { + const timeoutAt = new Date(Date.now() - HEARTBEAT_TIMEOUT_MS) + const rows = await prisma.task.findMany({ + where: { + status: 'processing', + heartbeatAt: { lt: timeoutAt }, + }, + take: 100, + }) + + for (const task of rows) { + if ((task.attempt || 0) >= (task.maxAttempts || 5)) { + await markTaskFailed(task.id, 'WATCHDOG_TIMEOUT', 'Task heartbeat timeout') + await publishTaskEvent({ + taskId: task.id, + projectId: task.projectId, + userId: task.userId, + type: TASK_EVENT_TYPE.FAILED, + payload: { reason: 'watchdog_timeout' }, + }) + logger.error({ + action: 'watchdog.fail_timeout', + message: 'watchdog marked task as failed due to heartbeat timeout', + taskId: task.id, + projectId: task.projectId, + userId: task.userId, + errorCode: 'WATCHDOG_TIMEOUT', + retryable: true, + }) + continue + } + + await prisma.task.update({ + where: { id: task.id }, + data: { + status: 'queued', + enqueuedAt: null, + heartbeatAt: null, + startedAt: null, + }, + }) + await publishTaskEvent({ + taskId: task.id, + projectId: task.projectId, + userId: task.userId, + type: TASK_EVENT_TYPE.CREATED, + payload: { reason: 'watchdog_requeue' }, + }) + logger.warn({ + action: 'watchdog.requeue_processing', + message: 'watchdog re-queued stalled processing task', + taskId: task.id, + projectId: task.projectId, + userId: task.userId, + retryable: true, + }) + } +} + +async function tick() { + tickCount++ + const startedAt = Date.now() + try { + await recoverQueuedTasks() + await cleanupZombieProcessingTasks() + // 每小时清理一次日志(过滤 24h 前内容) + if (tickCount % LOG_CLEANUP_INTERVAL_TICKS === 0) { + void cleanupAllProjectLogs() + } + logger.info({ + action: 'watchdog.tick.ok', + message: 'watchdog tick completed', + durationMs: Date.now() - startedAt, + }) + } catch (error: unknown) { + const message = error instanceof Error ? error.message : 'watchdog tick failed' + logger.error({ + action: 'watchdog.tick.failed', + message, + durationMs: Date.now() - startedAt, + errorCode: 'INTERNAL_ERROR', + retryable: true, + }) + } +} + +logger.info({ + action: 'watchdog.started', + message: 'watchdog started', + details: { + intervalMs: INTERVAL_MS, + heartbeatTimeoutMs: HEARTBEAT_TIMEOUT_MS, + }, +}) +void tick() +setInterval(() => { + void tick() +}, INTERVAL_MS) diff --git a/src/app/[locale]/auth/signin/page.tsx b/src/app/[locale]/auth/signin/page.tsx new file mode 100644 index 0000000..3d0ffe4 --- /dev/null +++ b/src/app/[locale]/auth/signin/page.tsx @@ -0,0 +1,127 @@ +'use client' + +import { useState } from "react" +import { signIn } from "next-auth/react" +import { useTranslations } from 'next-intl' +import Navbar from "@/components/Navbar" +import { Link, useRouter } from '@/i18n/navigation' +import { buildAuthenticatedHomeTarget } from '@/lib/home/default-route' + +export default function SignIn() { + const [username, setUsername] = useState("") + const [password, setPassword] = useState("") + const [loading, setLoading] = useState(false) + const [error, setError] = useState("") + const router = useRouter() + const t = useTranslations('auth') + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault() + setLoading(true) + setError("") + + try { + const result = await signIn("credentials", { + username, + password, + redirect: false, + }) + + if (result?.error === 'RateLimited') { + setError(t('rateLimited')) + } else if (result?.error) { + setError(t('loginFailed')) + } else { + router.push(buildAuthenticatedHomeTarget()) + router.refresh() + } + } catch { + setError(t('loginError')) + } finally { + setLoading(false) + } + } + + return ( +

+ ) +} diff --git a/src/app/[locale]/auth/signup/page.tsx b/src/app/[locale]/auth/signup/page.tsx new file mode 100644 index 0000000..af0aeee --- /dev/null +++ b/src/app/[locale]/auth/signup/page.tsx @@ -0,0 +1,173 @@ +'use client' + +import { useState } from "react" +import { useTranslations } from 'next-intl' +import Navbar from "@/components/Navbar" +import PasswordStrengthIndicator from "@/components/auth/PasswordStrengthIndicator" +import { apiFetch } from '@/lib/api-fetch' +import { Link, useRouter } from '@/i18n/navigation' + +export default function SignUp() { + const [name, setName] = useState("") + const [password, setPassword] = useState("") + const [confirmPassword, setConfirmPassword] = useState("") + const [loading, setLoading] = useState(false) + const [error, setError] = useState("") + const [success, setSuccess] = useState("") + const router = useRouter() + const t = useTranslations('auth') + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault() + setLoading(true) + setError("") + setSuccess("") + + if (password !== confirmPassword) { + setError(t('passwordMismatch')) + setLoading(false) + return + } + + if (password.length < 6) { + setError(t('passwordTooShort')) + setLoading(false) + return + } + + try { + const response = await apiFetch("/api/auth/register", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + name, + password, + }), + }) + + const data = await response.json() + + if (response.ok) { + setSuccess(t('signupSuccess')) + setTimeout(() => { + router.push({ pathname: '/auth/signin' }) + }, 2000) + } else { + setError(data.message || t('signupFailed')) + } + } catch { + setError(t('signupError')) + } finally { + setLoading(false) + } + } + + return ( +
+ +
+
+
+
+

+ {t('createAccount')} +

+

{t('joinPlatform')}

+
+ +
+
+ + setName(e.target.value)} + required + className="glass-input-base w-full px-4 py-3" + placeholder={t('phoneNumberPlaceholder')} + /> +
+ +
+ + setPassword(e.target.value)} + required + className="glass-input-base w-full px-4 py-3" + placeholder={t('passwordMinPlaceholder')} + /> + +
+ +
+ + setConfirmPassword(e.target.value)} + required + className="glass-input-base w-full px-4 py-3" + placeholder={t('confirmPasswordPlaceholder')} + /> +
+ + {error && ( +
+ {error} +
+ )} + + {success && ( +
+ {success} +
+ )} + + +
+ +
+

+ {t('hasAccount')}{" "} + + {t('signinNow')} + +

+
+ +
+ + {t('backToHome')} + +
+
+
+
+
+ ) +} diff --git a/src/app/[locale]/dev/segmented-control-test/page.tsx b/src/app/[locale]/dev/segmented-control-test/page.tsx new file mode 100644 index 0000000..7f10dbb --- /dev/null +++ b/src/app/[locale]/dev/segmented-control-test/page.tsx @@ -0,0 +1,1091 @@ +'use client' + +import { useState, useRef, useEffect, type ReactNode } from 'react' + +// ─── 演示选项 ───────────────────────────────────────── +const demoTabs = [ + { value: 'all', label: '全部' }, + { value: 'character', label: '角色' }, + { value: 'location', label: '场景' }, + { value: 'prop', label: '道具' }, +] + +const demoTabsWithCount = [ + { value: 'all', label: '全部 (24)' }, + { value: 'character', label: '角色 (12)' }, + { value: 'location', label: '场景 (8)' }, + { value: 'prop', label: '道具 (4)' }, +] + +// ─── 原始版本 (Current) ────────────────────────────────── +function SegmentedCurrent({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + return ( +
+
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ─── 方案 A: 滑动指示器 (Sliding Pill) ────────────────── +function SegmentedSlidingPill({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ + left: activeButton.offsetLeft, + width: activeButton.offsetWidth, + }) + } + }, [value, options]) + + return ( +
+
+
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ─── 方案 B: 渐变下划线 (Gradient Underline) ──────────── +function SegmentedGradientUnderline({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [lineStyle, setLineStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setLineStyle({ + left: activeButton.offsetLeft + 8, + width: activeButton.offsetWidth - 16, + }) + } + }, [value, options]) + + return ( +
+
+ {options.map((opt) => ( + + ))} +
+ {/* 渐变下划线 */} +
+
+
+ ) +} + +// ─── 方案 C: 胶囊按钮组 (Capsule Group) ───────────────── +function SegmentedCapsule({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + return ( +
+ {options.map((opt) => ( + + ))} +
+ ) +} + +// ─── 方案 D: 霓虹卡片 (Neon Card) ─────────────────────── +function SegmentedNeonCard({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ + left: activeButton.offsetLeft, + width: activeButton.offsetWidth, + }) + } + }, [value, options]) + + return ( +
+
+
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ─── 方案 E: 玻璃态 (Glassmorphism) ───────────────────── +function SegmentedGlass({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ + left: activeButton.offsetLeft, + width: activeButton.offsetWidth, + }) + } + }, [value, options]) + + return ( +
+
+
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ─── 方案 F: 浮雕质感 (Embossed) ──────────────────────── +function SegmentedEmbossed({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + return ( +
+ {options.map((opt) => ( + + ))} +
+ ) +} + +// ═══════════════════════════════════════════════════════════ +// 🆕 Round 2: 基于 Sliding Pill + Neon Card + Glass 融合 +// ═══════════════════════════════════════════════════════════ + +// ─── 方案 G: 玻璃霓虹滑块 (Glass Neon Slide) ──────────── +// 融合: Glass 的半透明底 + Neon 的渐变发光指示器 + Pill 的滑动动画 +function SegmentedGlassNeonSlide({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ left: activeButton.offsetLeft, width: activeButton.offsetWidth }) + } + }, [value, options]) + + return ( +
+
+
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ─── 方案 H: 极光药丸 (Aurora Pill) ───────────────────── +// 融合: Pill 的圆润滑动 + 极光渐变边框 + Glass 的通透感 +function SegmentedAuroraPill({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ left: activeButton.offsetLeft, width: activeButton.offsetWidth }) + } + }, [value, options]) + + return ( +
+
+
+
+
+
+
+
+
+ {options.map((opt) => ( + + ))} +
+
+
+
+ ) +} + +// ─── 方案 I: 冰晶霓虹 (Ice Neon) ──────────────────────── +// 融合: Neon 的发光效果 + 冷调蓝色渐变 + Pill 的弹性滑动 + Glass 的边框 +function SegmentedIceNeon({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ left: activeButton.offsetLeft, width: activeButton.offsetWidth }) + } + }, [value, options]) + + return ( +
+
+
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ─── 方案 J: 磨砂药丸 (Frosted Pill) ──────────────────── +// 融合: Pill 的弹性滑动 + Glass 的磨砂质感 + 微妙的内阴影 +function SegmentedFrostedPill({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ left: activeButton.offsetLeft, width: activeButton.offsetWidth }) + } + }, [value, options]) + + return ( +
+
+
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ─── 方案 K: 星辰玻璃 (Stellar Glass) ─────────────────── +// 融合: 深色渐变底 + Glass 的通透指示器 + Neon 的微光边缘 + Pill 的滑动 +function SegmentedStellarGlass({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ left: activeButton.offsetLeft, width: activeButton.offsetWidth }) + } + }, [value, options]) + + return ( +
+
+
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ═══════════════════════════════════════════════════════════ +// 🏆 Final Round: 最终候选 — 对齐当前系统 px-3 py-1.5 间距 +// ═══════════════════════════════════════════════════════════ + +// ─── Final 1: 滑动药丸 (Sliding Pill Final) ───────────── +// 与当前系统对等的 px-3 py-1.5 按钮间距 +function SegmentedSlidingPillFinal({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ left: activeButton.offsetLeft, width: activeButton.offsetWidth }) + } + }, [value, options]) + + return ( +
+
+ {/* 指示器放在 grid 内部,与按钮共享定位参考系 */} +
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ─── Final 2: 蓝色霓虹 (Blue Neon Final) ──────────────── +// 蓝色渐变 + 与当前系统对等的 px-3 py-1.5 按钮间距 +function SegmentedBlueNeonFinal({ options, value, onChange }: { + options: Array<{ value: string; label: ReactNode }> + value: string + onChange: (v: string) => void +}) { + const containerRef = useRef(null) + const [indicatorStyle, setIndicatorStyle] = useState<{ left: number; width: number }>({ left: 0, width: 0 }) + + useEffect(() => { + if (!containerRef.current) return + const activeIndex = options.findIndex((opt) => opt.value === value) + const buttons = containerRef.current.querySelectorAll('button') + const activeButton = buttons[activeIndex] + if (activeButton) { + setIndicatorStyle({ left: activeButton.offsetLeft, width: activeButton.offsetWidth }) + } + }, [value, options]) + + return ( +
+
+ {/* 指示器放在 grid 内部,与按钮共享定位参考系 */} +
+ {options.map((opt) => ( + + ))} +
+
+ ) +} + +// ─── 页面 ───────────────────────────────────────────── +export default function SegmentedControlTestPage() { + const [v1, setV1] = useState('all') + const [v2, setV2] = useState('all') + const [v3, setV3] = useState('all') + const [v4, setV4] = useState('all') + const [v5, setV5] = useState('all') + const [v6, setV6] = useState('all') + + // 带计数的独立状态 + const [v1c, setV1c] = useState('all') + const [v2c, setV2c] = useState('all') + const [v3c, setV3c] = useState('all') + const [v4c, setV4c] = useState('all') + const [v5c, setV5c] = useState('all') + const [v6c, setV6c] = useState('all') + + // Round 2 状态 + const [vG, setVG] = useState('all') + const [vH, setVH] = useState('all') + const [vI, setVI] = useState('all') + const [vJ, setVJ] = useState('all') + const [vK, setVK] = useState('all') + const [vGc, setVGc] = useState('all') + const [vHc, setVHc] = useState('all') + const [vIc, setVIc] = useState('all') + const [vJc, setVJc] = useState('all') + const [vKc, setVKc] = useState('all') + + // Final 状态 + const [vF1, setVF1] = useState('all') + const [vF2, setVF2] = useState('all') + const [vF1c, setVF1c] = useState('all') + const [vF2c, setVF2c] = useState('all') + + return ( +
+
+ {/* 页面标题 */} +
+

+ SegmentedControl 样式对比 +

+

+ 共 13 种方案 · Round 1 (A-F) + Round 2 (G-K) + 🏆 Final (2) · 每种方案展示简约版和带计数版 +

+
+ + {/* ─── 0. Current (原始) ─── */} +
+
+ CURRENT +

当前版本 · iOS Segmented

+
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── A. Sliding Pill ─── */} +
+
+ A +

滑动药丸 · Sliding Pill

+ 平滑的滑动动画指示器 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── B. Gradient Underline ─── */} +
+
+ B +

渐变下划线 · Gradient Underline

+ 紫色渐变下划线指示器, 极简风格 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── C. Capsule ─── */} +
+
+ C +

胶囊按钮 · Capsule Group

+ 黑白反转, 胶囊形态 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── D. Neon Card ─── */} +
+
+ D +

霓虹卡片 · Neon Card

+ 渐变紫色指示器, 发光效果 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── E. Glass ─── */} +
+
+ E +

毛玻璃 · Glassmorphism

+ 半透明毛玻璃质感, 融入背景 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── F. Embossed ─── */} +
+
+ F +

浮雕质感 · Embossed

+ 微妙的渐变 + 浮雕阴影, 精致的立体感 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ═══════════════════════════════════════════════════ */} + {/* 🆕 Round 2: 融合变体 */} + {/* ═══════════════════════════════════════════════════ */} + +
+
+ 🆕 Round 2 + 基于 Sliding Pill + Neon Card + Glass 融合 +
+
+ + {/* ─── G. Glass Neon Slide ─── */} +
+
+ G +

玻璃霓虹滑块 · Glass Neon Slide

+ Glass 半透明底 + Neon 渐变发光 + 弹性滑动 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── H. Aurora Pill ─── */} +
+
+ H +

极光药丸 · Aurora Pill

+ 彩虹渐变边框 + 圆润全圆角 + 弹性滑动指示器 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── I. Ice Neon ─── */} +
+
+ I +

冰晶霓虹 · Ice Neon

+ 冷调蓝紫渐变发光 + 弹性滑动 + 淡蓝底色 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── J. Frosted Pill ─── */} +
+
+ J +

磨砂药丸 · Frosted Pill

+ 磨砂质感底 + 超弹性滑动 + 选中加粗 + 精致内阴影 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* ─── K. Stellar Glass ─── */} +
+
+ K +

星辰玻璃 · Stellar Glass

+ 深色宇宙渐变底 + 发光玻璃指示器 + 紫色辉光文字 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+
+ + {/* 暗色背景对比区 - Round 1 */} +
+

🌙 暗色背景参考 · Round 1

+
+
+ Current + +
+
+ A · Sliding Pill + +
+
+ B · Gradient Underline + +
+
+ C · Capsule + +
+
+ D · Neon Card + +
+
+ E · Glassmorphism + +
+
+ F · Embossed + +
+
+
+ + {/* 暗色背景对比区 - Round 2 */} +
+

🌙 暗色背景参考 · Round 2

+
+
+ G · Glass Neon Slide + +
+
+ H · Aurora Pill + +
+
+ I · Ice Neon + +
+
+ J · Frosted Pill + +
+
+ K · Stellar Glass + +
+
+
+ + {/* ═══════════════════════════════════════════════════ */} + {/* 🏆 Final Round: 最终候选 */} + {/* ═══════════════════════════════════════════════════ */} + +
+
+ 🏆 Final Round + 对齐系统 px-3 py-1.5 间距 · 霓虹改蓝色 +
+
+ + {/* ─── Final 1: Sliding Pill ─── */} +
+
+ F1 +

滑动药丸 · Sliding Pill Final

+ 对齐系统间距 px-3 py-1.5 + 滑动动画 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+ 对照 + + ← 当前系统 +
+
+
+ + {/* ─── Final 2: Blue Neon ─── */} +
+
+ F2 +

蓝色霓虹 · Blue Neon Final

+ 蓝色渐变发光 + 对齐系统间距 px-3 py-1.5 +
+
+
+ 简约 + +
+
+ 计数 + +
+
+ 对照 + + ← 当前系统 +
+
+
+ + {/* 🏆 Final 暗色背景对比区 */} +
+

🌙 暗色背景参考 · Final

+
+
+ Current (对照) + +
+
+ F1 · Sliding Pill Final + +
+
+ F2 · Blue Neon Final + +
+
+
+ + {/* Footer 说明 */} +
+ 测试页面 · 仅用于样式对比 · 选择喜欢的方案后替换 SegmentedControl.tsx +
+
+
+ ) +} diff --git a/src/app/[locale]/dev/workspace-redesign/InlineSelector.tsx b/src/app/[locale]/dev/workspace-redesign/InlineSelector.tsx new file mode 100644 index 0000000..bacf0e3 --- /dev/null +++ b/src/app/[locale]/dev/workspace-redesign/InlineSelector.tsx @@ -0,0 +1,72 @@ +'use client' + +import { useState, useRef, useEffect } from 'react' +import { AppIcon } from '@/components/ui/icons' + +/** + * 内嵌下拉选择器 + * 显示为紧凑的标签按钮,点击展开向上弹出选项列表 + */ +export function InlineSelector({ + label, + selectedId, + options, + onSelect, + renderLabel, +}: { + label: string + selectedId: string + options: { id: string; labelKey: string; emoji?: string }[] + onSelect: (id: string) => void + renderLabel: (opt: { id: string; labelKey: string; emoji?: string }) => string +}) { + const [open, setOpen] = useState(false) + const ref = useRef(null) + const selected = options.find((o) => o.id === selectedId) + + // 点击外部关闭 + useEffect(() => { + if (!open) return + const handler = (e: MouseEvent) => { + if (ref.current && !ref.current.contains(e.target as Node)) { + setOpen(false) + } + } + document.addEventListener('mousedown', handler) + return () => document.removeEventListener('mousedown', handler) + }, [open]) + + return ( +
+ + {open && ( +
+ {options.map((opt) => ( + + ))} +
+ )} +
+ ) +} diff --git a/src/app/[locale]/dev/workspace-redesign/ProjectLayouts.tsx b/src/app/[locale]/dev/workspace-redesign/ProjectLayouts.tsx new file mode 100644 index 0000000..d6aaf56 --- /dev/null +++ b/src/app/[locale]/dev/workspace-redesign/ProjectLayouts.tsx @@ -0,0 +1,239 @@ +'use client' + +/** + * 最近项目布局组件集 + * 5 种不同的排版方式,使用系统实际的卡片设计风格 + */ +import { AppIcon, IconGradientDefs } from '@/components/ui/icons' +import type { MockProject } from './shared' +import { formatTimeAgo } from './shared' + +/** 通用的项目统计行 — 模仿系统真实卡片中的渐变统计 */ +function ProjectStats({ project, t }: { project: MockProject; t: (key: string) => string }) { + return ( +
+
+ ) +} + +/** + * 排版1: 网格卡片 + * 标准 5 列网格,卡片内容模仿系统真实结构(标题+描述+统计+时间) + */ +export function LayoutGrid({ projects, t }: { projects: MockProject[]; t: (key: string, params?: Record) => string }) { + return ( +
+
+

{t('recentProjects')}

+ +
+
+ {projects.map((p) => ( +
+
+
+

+ {p.name} +

+
+ +

{p.description}

+
+ +
+ + {formatTimeAgo(p.updatedAt, t)} +
+
+
+ ))} +
+
+ ) +} + +/** + * 排版2: 横向滚动 + * 一排横滚大卡片,更有沉浸感 + */ +export function LayoutScroll({ projects, t }: { projects: MockProject[]; t: (key: string, params?: Record) => string }) { + return ( +
+
+

{t('recentProjects')}

+ +
+
+ {projects.map((p) => ( +
+
+
+

+ {p.name} +

+
+ +

{p.description}

+
+ +
+ + {formatTimeAgo(p.updatedAt, t)} +
+
+
+ ))} +
+
+ ) +} + +/** + * 排版3: 紧凑列表 + * 左右布局的一行式列表,信息紧凑 + */ +export function LayoutList({ projects, t }: { projects: MockProject[]; t: (key: string, params?: Record) => string }) { + return ( +
+
+

{t('recentProjects')}

+ +
+
+ {projects.map((p) => ( +
+
+

+ {p.name} +

+

{p.description}

+
+
+ +
+
+ + {formatTimeAgo(p.updatedAt, t)} +
+ +
+ ))} +
+
+ ) +} + +/** + * 排版4: 突出首项 + * 第一个项目大卡片占满左侧,右侧两列堆叠小卡片 + */ +export function LayoutFeatured({ projects, t }: { projects: MockProject[]; t: (key: string, params?: Record) => string }) { + const [first, ...rest] = projects + + return ( +
+
+

{t('recentProjects')}

+ +
+
+ {/* 大卡片 */} + {first && ( +
+
+
+
+
{t('latestUpdate')}
+

+ {first.name} +

+
+ +

{first.description}

+
+
+
+ +
+ + {formatTimeAgo(first.updatedAt, t)} +
+
+
+
+ )} + {/* 小卡片网格 */} +
+ {rest.map((p) => ( +
+
+
+

+ {p.name} +

+

{p.description}

+
+ + {formatTimeAgo(p.updatedAt, t)} +
+
+
+ ))} +
+
+
+ ) +} + +/** + * 排版5: 极简圆点列表 + * 和输入框同宽的极简列表,仅显示项目名和关键数据 + */ +export function LayoutMinimalList({ projects, t }: { projects: MockProject[]; t: (key: string, params?: Record) => string }) { + return ( +
+
+

{t('recentProjects')}

+ +
+
+ {projects.map((p) => ( +
+
+ + {p.name} +
+
+ {p.stats.episodes} {t('episodes')} + {p.stats.images} {t('images')} + {formatTimeAgo(p.updatedAt, t)} + +
+
+ ))} +
+
+ ) +} diff --git a/src/app/[locale]/dev/workspace-redesign/VariantClearBreath.tsx b/src/app/[locale]/dev/workspace-redesign/VariantClearBreath.tsx new file mode 100644 index 0000000..2df455f --- /dev/null +++ b/src/app/[locale]/dev/workspace-redesign/VariantClearBreath.tsx @@ -0,0 +1,147 @@ +'use client' + +/** + * 清澈呼吸 — 输入区域 + * Apple 风格呼吸光晕 + 下拉标签选项 + * 底部排版由 page.tsx 注入 + */ +import { useState } from 'react' +import { useTranslations } from 'next-intl' +import { AppIcon } from '@/components/ui/icons' +import { InlineSelector } from './InlineSelector' +import { + STYLE_OPTIONS, + RATIO_OPTIONS, + QUALITY_OPTIONS, +} from './shared' + +export default function VariantClearBreath({ children }: { children?: React.ReactNode }) { + const t = useTranslations('workspaceRedesign') + const [selectedStyle, setSelectedStyle] = useState('anime') + const [selectedRatio, setSelectedRatio] = useState('16:9') + const [selectedQuality, setSelectedQuality] = useState('high') + const [inputValue, setInputValue] = useState('') + + return ( +
+ {/* 自定义呼吸动画 */} + + +
+
+

+ ✨ {t('quickActions.title')} +

+

{t('inputPlaceholder')}

+
+ + {/* 呼吸光晕容器 */} +
+
+
+
+ +
+

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