﻿.env.example .gitignore README.md design-docs/00-README.md design-docs/01-浜у搧瀹氫綅涓嶴aaS鍖栫瓥鐣?md design-docs/02-鍓嶇鍔熻兘涓庨〉闈㈡竻鍗?md design-docs/03-涓夊紑婧愰」鐩姣斾笌鍚告敹.md design-docs/04-鏍稿績涓氬姟娴佺▼涓嶢I娴佹按绾?md design-docs/05-鍚庣鏋舵瀯璁捐.md design-docs/06-鏁版嵁搴撹璁?md design-docs/07-API鎺ュ彛瑙勮寖.md design-docs/08-寮傛浠诲姟涓嶢I宸ヤ綔娴?md design-docs/09-璁¤垂涓庡绉熸埛SaaS鍩虹璁炬柦.md design-docs/10-閮ㄧ讲涓庤繍缁?md design-docs/11-瀹炴柦璺嚎鍥句笌閲岀▼纰?md design-docs/12-鍓嶇鍘熷瀷澶嶇洏涓庢祦绋嬮獙璇?md design-docs/13-澶欰gent鍔熻兘澶嶇洏涓庤惤鍦版柟妗?md design-docs/14-鍓嶇鍘熷瀷鎴浘澶嶇洏涓庢渶缁堢‘璁?md design-docs/15-鎵ц浠诲姟鍒楄〃 copy.md design-docs/16-瀹炴柦寮€鍙戜换鍔″垪琛?md design-docs/17-骞冲彴杩愯惀鍚庡彴璁捐.md design-docs/18-Agent鍓ф儏鐞嗚В涓庝竴鑷存€ч檮褰?md design-docs/18-Agent鍗囩骇鏂规PRD.md design-docs/18-Agent瀹炴柦缁嗚妭闄勫綍.md design-docs/19-UIUX鏁翠綋浼樺寲鏂规.md design-docs/video-generation-structured-redesign.md design-docs/绔埌绔祦绋嬮獙璇?md design-docs/瑙嗛浠诲姟鎸佷箙鍖栦笌杞閲嶆瀯.md design-docs/璁捐鏂囨。瀹℃煡鎰忚.md doc/h5/.env.development doc/h5/.env.production doc/h5/.gitignore doc/h5/README.md doc/h5/index.html doc/h5/package-lock.json doc/h5/package.json doc/h5/src/App.vue doc/h5/src/api/login.ts doc/h5/src/components/Aside.vue doc/h5/src/components/Header.vue doc/h5/src/components/Navbar.vue doc/h5/src/components/UploadSingleFile.vue doc/h5/src/components/UploadSingleImg.vue doc/h5/src/main.ts doc/h5/src/router/index.ts doc/h5/src/services/api.ts doc/h5/src/services/http.ts doc/h5/src/static/imgs/Frame.png doc/h5/src/static/imgs/bg1.png doc/h5/src/static/imgs/box.png doc/h5/src/static/imgs/fileupload.png doc/h5/src/static/imgs/icon1.png doc/h5/src/static/imgs/logo.png doc/h5/src/static/imgs/mp4.mp4 doc/h5/src/static/imgs/tuoz.png doc/h5/src/static/imgs/zhen.png doc/h5/src/static/styles/common.scss doc/h5/src/stores/useAuth.ts doc/h5/src/style.css doc/h5/src/views/About.vue doc/h5/src/views/Home.vue doc/h5/src/views/Login.vue doc/h5/src/views/NotFound.vue doc/h5/src/views/enterprise/team.vue doc/h5/src/views/enterprise/usage.vue doc/h5/src/views/enterprise/watermark.vue doc/h5/src/views/project/asset.vue doc/h5/src/views/project/components/AiEditModal.vue doc/h5/src/views/project/components/BatchModal.vue doc/h5/src/views/project/components/DepotModal.vue doc/h5/src/views/project/components/DramaHeader.vue doc/h5/src/views/project/components/EditModal.vue doc/h5/src/views/project/components/EditProjectNameDialog.vue doc/h5/src/views/project/components/Empty.vue doc/h5/src/views/project/components/Episode.vue doc/h5/src/views/project/components/IconType.vue doc/h5/src/views/project/components/LocalUploadModal.vue doc/h5/src/views/project/components/RichTextEditor.vue doc/h5/src/views/project/components/StepFour.vue doc/h5/src/views/project/components/StepOne.vue doc/h5/src/views/project/components/StepThree.vue doc/h5/src/views/project/components/StepThreeFour.vue doc/h5/src/views/project/components/StepTwo.vue doc/h5/src/views/project/components/VideoPlayModal.vue doc/h5/src/views/project/drama.vue doc/h5/src/views/project/projectlist.vue doc/h5/tsconfig.json doc/h5/tsconfig.node.json doc/h5/vite.config.ts doc/html/.dockerignore doc/html/ATTRIBUTIONS.md doc/html/Dockerfile doc/html/README.md doc/html/default_shadcn_theme.css doc/html/guidelines/Guidelines.md doc/html/index.html doc/html/nginx.conf doc/html/package-lock.json doc/html/package.json doc/html/pnpm-lock.yaml doc/html/pnpm-workspace.yaml doc/html/postcss.config.mjs doc/html/src/app/App.tsx doc/html/src/app/components/Layout.tsx doc/html/src/app/components/PrivateRoute.tsx doc/html/src/app/components/figma/ImageWithFallback.tsx doc/html/src/app/components/ui/accordion.tsx doc/html/src/app/components/ui/alert-dialog.tsx doc/html/src/app/components/ui/alert.tsx doc/html/src/app/components/ui/aspect-ratio.tsx doc/html/src/app/components/ui/avatar.tsx doc/html/src/app/components/ui/badge.tsx doc/html/src/app/components/ui/breadcrumb.tsx doc/html/src/app/components/ui/button.tsx doc/html/src/app/components/ui/calendar.tsx doc/html/src/app/components/ui/card.tsx doc/html/src/app/components/ui/carousel.tsx doc/html/src/app/components/ui/chart.tsx doc/html/src/app/components/ui/checkbox.tsx doc/html/src/app/components/ui/collapsible.tsx doc/html/src/app/components/ui/command.tsx doc/html/src/app/components/ui/context-menu.tsx doc/html/src/app/components/ui/dialog.tsx doc/html/src/app/components/ui/drawer.tsx doc/html/src/app/components/ui/dropdown-menu.tsx doc/html/src/app/components/ui/form.tsx doc/html/src/app/components/ui/hover-card.tsx doc/html/src/app/components/ui/input-otp.tsx doc/html/src/app/components/ui/input.tsx doc/html/src/app/components/ui/label.tsx doc/html/src/app/components/ui/menubar.tsx doc/html/src/app/components/ui/navigation-menu.tsx doc/html/src/app/components/ui/page.tsx doc/html/src/app/components/ui/pagination.tsx doc/html/src/app/components/ui/popover.tsx doc/html/src/app/components/ui/progress.tsx doc/html/src/app/components/ui/radio-group.tsx doc/html/src/app/components/ui/resizable.tsx doc/html/src/app/components/ui/scroll-area.tsx doc/html/src/app/components/ui/select.tsx doc/html/src/app/components/ui/separator.tsx doc/html/src/app/components/ui/sheet.tsx doc/html/src/app/components/ui/sidebar.tsx doc/html/src/app/components/ui/skeleton.tsx doc/html/src/app/components/ui/slider.tsx doc/html/src/app/components/ui/sonner.tsx doc/html/src/app/components/ui/switch.tsx doc/html/src/app/components/ui/table.tsx doc/html/src/app/components/ui/tabs.tsx doc/html/src/app/components/ui/textarea.tsx doc/html/src/app/components/ui/toggle-group.tsx doc/html/src/app/components/ui/toggle.tsx doc/html/src/app/components/ui/tooltip.tsx doc/html/src/app/components/ui/use-mobile.ts doc/html/src/app/components/ui/utils.ts doc/html/src/app/pages/AIWatermarkSettings.tsx doc/html/src/app/pages/AgentStudio.tsx doc/html/src/app/pages/AssetsManagement.tsx doc/html/src/app/pages/CharacterGeneration.tsx doc/html/src/app/pages/Dashboard.tsx doc/html/src/app/pages/EpisodeGeneration.tsx doc/html/src/app/pages/LoginPage.tsx doc/html/src/app/pages/ModelSettings.tsx doc/html/src/app/pages/NewProject.tsx doc/html/src/app/pages/OutlineGeneration.tsx doc/html/src/app/pages/ProjectDetail.tsx doc/html/src/app/pages/ProjectSettings.tsx doc/html/src/app/pages/PropsGeneration.tsx doc/html/src/app/pages/RegisterPage.tsx doc/html/src/app/pages/SceneGeneration.tsx doc/html/src/app/pages/StoryboardWorkspace.tsx doc/html/src/app/pages/StyleSelection.tsx doc/html/src/app/pages/TeamManagement.tsx doc/html/src/app/pages/UsageManagement.tsx doc/html/src/app/pages/VideoGeneration.tsx doc/html/src/app/routes.tsx doc/html/src/assets/login-ai-studio-bg.png doc/html/src/hooks/useAgent.ts doc/html/src/hooks/useAi.ts doc/html/src/hooks/useAssets.ts doc/html/src/hooks/useAuth.ts doc/html/src/hooks/useModelProviders.ts doc/html/src/hooks/useProjects.ts doc/html/src/hooks/useSettings.ts doc/html/src/hooks/useTeam.ts doc/html/src/hooks/useUsage.ts doc/html/src/imports/10鐢熸垚瑙嗛.png doc/html/src/imports/1椤圭洰鍏ュ彛.png doc/html/src/imports/2閫夋嫨椋庢牸.png doc/html/src/imports/3鐢熸垚澶х翰.png doc/html/src/imports/3鐢熸垚澶х翰2.png doc/html/src/imports/4鐢熸垚鍒嗛泦.png doc/html/src/imports/5鐢熸垚瑙掕壊.png doc/html/src/imports/6鐢熸垚鍦烘櫙.png doc/html/src/imports/7鐢熸垚閬撳叿.png doc/html/src/imports/8鐢熸垚姣忛泦鍒嗛暅.png doc/html/src/imports/ab7d1ce5faf061d2af2b02d93e11935.png doc/html/src/imports/鐭墽宸ヤ笟鍖栧钩鍙?宸ヤ綔琛?.csv doc/html/src/lib/api/agent.ts doc/html/src/lib/api/ai.ts doc/html/src/lib/api/assets.ts doc/html/src/lib/api/auth.ts doc/html/src/lib/api/client.ts doc/html/src/lib/api/modelProviders.ts doc/html/src/lib/api/projects.ts doc/html/src/lib/api/settings.ts doc/html/src/lib/api/team.ts doc/html/src/lib/api/usage.ts doc/html/src/lib/projectStyles.ts doc/html/src/main.tsx doc/html/src/providers/QueryProvider.tsx doc/html/src/stores/authStore.ts doc/html/src/stores/uiStore.ts doc/html/src/styles/fonts.css doc/html/src/styles/index.css doc/html/src/styles/tailwind.css doc/html/src/styles/theme.css doc/html/vite.config.ts doc/miniapp/.env.example doc/miniapp/README.md doc/miniapp/index.html doc/miniapp/package.json doc/miniapp/src/App.vue doc/miniapp/src/api/agent.ts doc/miniapp/src/api/auth.ts doc/miniapp/src/api/client.ts doc/miniapp/src/api/projects.ts doc/miniapp/src/api/video.ts doc/miniapp/src/components/ProgressTimeline.vue doc/miniapp/src/components/ProjectCard.vue doc/miniapp/src/components/UploadPanel.vue doc/miniapp/src/components/VideoPreview.vue doc/miniapp/src/env.d.ts doc/miniapp/src/main.ts doc/miniapp/src/manifest.json doc/miniapp/src/pages.json doc/miniapp/src/pages/create/index.vue doc/miniapp/src/pages/home/index.vue doc/miniapp/src/pages/login/index.vue doc/miniapp/src/pages/mine/index.vue doc/miniapp/src/pages/project-progress/index.vue doc/miniapp/src/pages/projects/index.vue doc/miniapp/src/pages/result/index.vue doc/miniapp/src/stores/auth.ts doc/miniapp/src/styles/app.scss doc/miniapp/src/types/api.ts doc/miniapp/src/utils/constants.ts doc/miniapp/src/utils/format.ts doc/miniapp/tsconfig.json doc/miniapp/vite.config.ts docker-compose.yml docs/superpowers/plans/2026-04-28-agent-storyboard-enrichment.md docs/superpowers/specs/2026-04-28-agent-storyboard-enrichment-design.md docs/superpowers/specs/2026-05-25-doc-html-figma-handoff.md install_env.ps1 install_env_direct.ps1 start-dev.ps1 start-prod-local.ps1 yaoai-admin-web/Dockerfile yaoai-admin-web/index.html yaoai-admin-web/nginx.conf yaoai-admin-web/package-lock.json yaoai-admin-web/package.json yaoai-admin-web/pnpm-lock.yaml yaoai-admin-web/src/App.vue yaoai-admin-web/src/api/http.ts yaoai-admin-web/src/api/types.ts yaoai-admin-web/src/env.d.ts yaoai-admin-web/src/main.ts yaoai-admin-web/src/router.ts yaoai-admin-web/src/stores/auth.ts yaoai-admin-web/src/styles.css yaoai-admin-web/src/views/AdminUserManagementView.vue yaoai-admin-web/src/views/AuditLogsView.vue yaoai-admin-web/src/views/BillingCostsView.vue yaoai-admin-web/src/views/BillingRecordsView.vue yaoai-admin-web/src/views/DashboardView.vue yaoai-admin-web/src/views/LoginView.vue yaoai-admin-web/src/views/NotFoundView.vue yaoai-admin-web/src/views/PlanManagementView.vue yaoai-admin-web/src/views/TenantDetailView.vue yaoai-admin-web/src/views/TenantListView.vue yaoai-admin-web/src/views/UserManagementView.vue yaoai-admin-web/tsconfig.json yaoai-admin-web/tsconfig.tsbuildinfo yaoai-admin-web/vite.config.ts yaoai-comic-studio/.dockerignore yaoai-comic-studio/.env.example yaoai-comic-studio/.gitattributes yaoai-comic-studio/.gitignore yaoai-comic-studio/.mvn/wrapper/maven-wrapper.properties yaoai-comic-studio/Dockerfile yaoai-comic-studio/build.cmd yaoai-comic-studio/docker-compose.yml yaoai-comic-studio/k8s/Chart.yaml yaoai-comic-studio/k8s/templates/_helpers.tpl yaoai-comic-studio/k8s/templates/admin-deployment.yaml yaoai-comic-studio/k8s/templates/admin-ingress.yaml yaoai-comic-studio/k8s/templates/admin-service.yaml yaoai-comic-studio/k8s/templates/admin-web-deployment.yaml yaoai-comic-studio/k8s/templates/admin-web-ingress.yaml yaoai-comic-studio/k8s/templates/admin-web-service.yaml yaoai-comic-studio/k8s/templates/deployment.yaml yaoai-comic-studio/k8s/templates/hpa.yaml yaoai-comic-studio/k8s/templates/ingress.yaml yaoai-comic-studio/k8s/templates/pdb.yaml yaoai-comic-studio/k8s/templates/secret.yaml yaoai-comic-studio/k8s/templates/service.yaml yaoai-comic-studio/k8s/values.yaml yaoai-comic-studio/monitoring/prometheus.yml yaoai-comic-studio/mvnw.cmd yaoai-comic-studio/pom.xml yaoai-comic-studio/start.bat yaoai-comic-studio/yaoai-admin/pom.xml yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/AdminModuleConfig.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/adminuser/AdminUserAdminController.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/adminuser/AdminUserAdminService.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/adminuser/dto/AdminUserCreateRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/adminuser/dto/AdminUserQuery.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/adminuser/dto/AdminUserUpdateRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/audit/AdminAuditLogController.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/audit/AdminAuditQueryService.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/audit/AdminAuditService.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/audit/annotation/AdminAudited.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/audit/aspect/AdminAuditAspect.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/audit/dto/AuditLogQuery.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/auth/AdminAuthController.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/auth/AdminAuthService.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/auth/AdminPermissionInterface.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/auth/StpAdminUtil.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/billing/BillingAdminController.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/billing/BillingAdminService.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/billing/dto/BillingCostItem.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/billing/dto/BillingCostUpdateRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/billing/dto/BillingRecordQuery.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/billing/dto/BillingSummaryItem.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/billing/dto/UsageDetailResponse.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/common/PageResult.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/config/AdminGlobalExceptionHandler.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/config/SaTokenAdminConfig.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/dashboard/DashboardController.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/dashboard/DashboardService.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/dashboard/dto/DashboardOverview.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/dashboard/dto/DashboardProviderStats.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/dashboard/dto/DashboardTaskStats.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/dashboard/dto/DashboardTrendPoint.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/plan/PlanAdminController.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/plan/PlanAdminService.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/plan/dto/PlanUpdateRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/TenantAdminController.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/TenantAdminService.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantBalanceOverview.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantDetail.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantImpersonateRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantImpersonateResponse.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantListItem.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantPlanChangeRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantQuotaUpdateRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantRechargeRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantSuspendRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/tenant/dto/TenantUpdateRequest.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/user/UserAdminController.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/user/UserAdminService.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/user/dto/ResetPasswordResponse.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/user/dto/UserQuery.java yaoai-comic-studio/yaoai-admin/src/main/java/com/yaoai/admin/user/dto/UserStatusRequest.java yaoai-comic-studio/yaoai-agent/pom.xml yaoai-comic-studio/yaoai-agent/src/main/java/com/yaoai/agent/dto/AgentRunCommand.java yaoai-comic-studio/yaoai-agent/src/main/java/com/yaoai/agent/service/AgentRunService.java yaoai-comic-studio/yaoai-agent/src/main/java/com/yaoai/agent/service/ScriptUnderstandingService.java yaoai-comic-studio/yaoai-agent/src/main/java/com/yaoai/agent/service/impl/AgentRunServiceImpl.java yaoai-comic-studio/yaoai-agent/src/main/java/com/yaoai/agent/service/impl/ScriptUnderstandingServiceImpl.java yaoai-comic-studio/yaoai-agent/src/main/java/com/yaoai/agent/sse/AgentSseManager.java yaoai-comic-studio/yaoai-ai-core/pom.xml yaoai-comic-studio/yaoai-ai-core/src/main/java/com/yaoai/ai/core/model/ChatMessage.java yaoai-comic-studio/yaoai-ai-core/src/main/java/com/yaoai/ai/core/model/ChatRequest.java yaoai-comic-studio/yaoai-ai-core/src/main/java/com/yaoai/ai/core/model/ChatResponse.java yaoai-comic-studio/yaoai-ai-core/src/main/java/com/yaoai/ai/core/service/LlmService.java yaoai-comic-studio/yaoai-ai-providers/pom.xml yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/config/ArkProperties.java yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/model/VideoTaskResult.java yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/service/SeedanceService.java yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/service/SeedreamService.java yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/service/impl/ArkLlmService.java yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/service/impl/LocalLlmService.java yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/service/impl/LocalSeedreamService.java yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/service/impl/SeedanceServiceImpl.java yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/service/impl/SeedreamServiceImpl.java yaoai-comic-studio/yaoai-ai-providers/src/main/java/com/yaoai/ai/providers/util/SeedancePromptBuilder.java yaoai-comic-studio/yaoai-api/pom.xml yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/config/AsyncConfig.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/config/CorsConfig.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/config/JacksonConfig.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/config/RedisCacheConfig.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/config/SwaggerConfig.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/AgentController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/AssemblyController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/AssetController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/AuthController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/CharacterController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/GlobalAssetsController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/LocalFilesController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/OutlineController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/ProjectController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/SceneController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/StoryboardController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/SystemController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/TeamController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/TenantSettingsController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/UsageController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/VideoTaskController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/controller/admin/AdminController.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/agent/AgentRunDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/agent/AgentStartRequest.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/agent/AgentStepDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/ai/AiTaskDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/ai/AssemblyTaskDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/ai/EpisodeDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/ai/OutlineDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/ai/ShotAssetDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/ai/StoryboardDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/ai/StructuredVideoGenerateRequest.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/ai/UserPrompt.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/asset/AssetDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/asset/GlobalAssetDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/billing/BalanceDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/billing/BillingRecordDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/project/ProjectCreateRequest.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/project/ProjectDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/project/ProjectUpdateRequest.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/script/ParsedScript.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/script/ScriptImportResultDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/settings/ModelProviderDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/team/TeamGroupDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/dto/team/TeamMemberDTO.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/filter/RequestIdFilter.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/handler/GlobalExceptionHandler.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/service/AssetService.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/service/ProjectService.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/service/ScriptImportService.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/service/impl/AssetServiceImpl.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/service/impl/ProjectServiceImpl.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/service/impl/ScriptImportServiceImpl.java yaoai-comic-studio/yaoai-api/src/main/java/com/yaoai/api/util/DocScriptParser.java yaoai-comic-studio/yaoai-billing/pom.xml yaoai-comic-studio/yaoai-billing/src/main/java/com/yaoai/billing/config/BillingConfig.java yaoai-comic-studio/yaoai-billing/src/main/java/com/yaoai/billing/dto/BillingChargeRequest.java yaoai-comic-studio/yaoai-billing/src/main/java/com/yaoai/billing/service/BillingCostService.java yaoai-comic-studio/yaoai-billing/src/main/java/com/yaoai/billing/service/BillingService.java yaoai-comic-studio/yaoai-billing/src/main/java/com/yaoai/billing/service/impl/BillingServiceImpl.java yaoai-comic-studio/yaoai-bootstrap/pom.xml yaoai-comic-studio/yaoai-bootstrap/src/main/java/com/yaoai/DevDataInitializer.java yaoai-comic-studio/yaoai-bootstrap/src/main/java/com/yaoai/YaoAiApplication.java yaoai-comic-studio/yaoai-bootstrap/src/main/resources/application-dev-h2.yml yaoai-comic-studio/yaoai-bootstrap/src/main/resources/application-local.yml.example yaoai-comic-studio/yaoai-bootstrap/src/main/resources/application.yml yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/dev-h2/schema-auth.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V10__graph_runs.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V11__character_three_views.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V12__project_display_options.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V13__admin_backend.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V14__system_settings.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V15__extend_ai_tasks_structured.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V16__multi_character_per_storyboard.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V17__storyboard_scene_ref_video_prompt.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V18__agent_dynamic_runtime.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V19__character_states.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V1__init.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V20__shot_asset_versions.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V2__projects.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V3__ai_tables.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V4__storyboards.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V5__characters_scenes.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V6__assembly.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V7__billing.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V8__team_assets.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/db/migration/V9__tenant_settings.sql yaoai-comic-studio/yaoai-bootstrap/src/main/resources/logback-spring.xml yaoai-comic-studio/yaoai-bootstrap/src/test/java/com/yaoai/agent/service/impl/AgentRunServiceImplTest.java yaoai-comic-studio/yaoai-bootstrap/src/test/java/com/yaoai/ai/providers/service/impl/ArkLlmServiceTest.java yaoai-comic-studio/yaoai-bootstrap/src/test/java/com/yaoai/api/dto/ai/StoryboardDTOTest.java yaoai-comic-studio/yaoai-bootstrap/src/test/java/com/yaoai/domain/mapper/StoryboardMapperTest.java yaoai-comic-studio/yaoai-bootstrap/src/test/java/com/yaoai/pipeline/service/impl/StoryboardPipelineServiceImplTest.java yaoai-comic-studio/yaoai-common/pom.xml yaoai-comic-studio/yaoai-common/src/main/java/com/yaoai/common/context/UserContext.java yaoai-comic-studio/yaoai-common/src/main/java/com/yaoai/common/exception/BizException.java yaoai-comic-studio/yaoai-common/src/main/java/com/yaoai/common/exception/ErrorCode.java yaoai-comic-studio/yaoai-common/src/main/java/com/yaoai/common/response/ApiResponse.java yaoai-comic-studio/yaoai-common/src/main/java/com/yaoai/common/result/Result.java yaoai-comic-studio/yaoai-domain/pom.xml yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/AdminAuditLog.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/AdminUser.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/AgentPromptSnapshot.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/AgentRunPlan.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/AiTask.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/AssemblyTask.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/BillingRecord.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/Character.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/CharacterState.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/Episode.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/GlobalAsset.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/GraphRun.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/GraphStep.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/Outline.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/Plan.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/Project.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/ProjectAsset.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/ProjectConsistencyBible.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/Scene.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/ScriptUnderstanding.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/ShotAsset.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/Storyboard.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/SystemSetting.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/TeamGroup.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/Tenant.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/TenantBalance.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/TenantMember.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/TenantModelDefault.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/TenantModelProvider.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/TenantQuota.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/TenantSetting.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/entity/User.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/AdminAuditLogMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/AdminUserMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/AgentPromptSnapshotMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/AgentRunPlanMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/AiTaskMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/AssemblyTaskMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/BillingRecordMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/CharacterMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/CharacterStateMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/EpisodeMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/GlobalAssetMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/GraphRunMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/GraphStepMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/OutlineMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/PlanMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/ProjectAssetMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/ProjectConsistencyBibleMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/ProjectMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/SceneMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/ScriptUnderstandingMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/ShotAssetMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/StoryboardMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/SystemSettingMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/TeamGroupMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/TenantBalanceMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/TenantMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/TenantMemberMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/TenantModelDefaultMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/TenantModelProviderMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/TenantQuotaMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/TenantSettingMapper.java yaoai-comic-studio/yaoai-domain/src/main/java/com/yaoai/domain/mapper/UserMapper.java yaoai-comic-studio/yaoai-media/pom.xml yaoai-comic-studio/yaoai-media/src/main/java/com/yaoai/media/service/FfmpegService.java yaoai-comic-studio/yaoai-pipeline/pom.xml yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/async/VideoTaskAsyncProcessor.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/async/VideoTaskCompletionService.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/async/VideoTaskPoller.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/dto/StructuredVideoSubmission.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/AssemblyPipelineService.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/AssetGenPipelineService.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/ImageGenPipelineService.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/OutlinePipelineService.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/ShotAssetService.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/StoryboardPipelineService.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/VideoTaskPipelineService.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/impl/AssemblyPipelineServiceImpl.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/impl/AssetGenPipelineServiceImpl.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/impl/ImageGenPipelineServiceImpl.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/impl/OutlinePipelineServiceImpl.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/impl/ShotAssetServiceImpl.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/impl/StoryboardPipelineServiceImpl.java yaoai-comic-studio/yaoai-pipeline/src/main/java/com/yaoai/pipeline/service/impl/VideoTaskPipelineServiceImpl.java yaoai-comic-studio/yaoai-security/pom.xml yaoai-comic-studio/yaoai-security/src/main/java/com/yaoai/security/config/SaTokenConfigure.java yaoai-comic-studio/yaoai-security/src/main/java/com/yaoai/security/context/TenantContext.java yaoai-comic-studio/yaoai-security/src/main/java/com/yaoai/security/dto/LoginRequest.java yaoai-comic-studio/yaoai-security/src/main/java/com/yaoai/security/dto/LoginResponse.java yaoai-comic-studio/yaoai-security/src/main/java/com/yaoai/security/dto/RegisterRequest.java yaoai-comic-studio/yaoai-security/src/main/java/com/yaoai/security/dto/UserInfo.java yaoai-comic-studio/yaoai-security/src/main/java/com/yaoai/security/service/AuthService.java yaoai-comic-studio/yaoai-security/src/main/java/com/yaoai/security/service/impl/AuthServiceImpl.java yaoai-comic-studio/yaoai-storage/pom.xml yaoai-comic-studio/yaoai-storage/src/main/java/com/yaoai/storage/config/TosConfig.java yaoai-comic-studio/yaoai-storage/src/main/java/com/yaoai/storage/config/TosProperties.java yaoai-comic-studio/yaoai-storage/src/main/java/com/yaoai/storage/service/TosService.java yaoai-comic-studio/yaoai-storage/src/main/java/com/yaoai/storage/service/impl/LocalTosServiceImpl.java yaoai-comic-studio/yaoai-storage/src/main/java/com/yaoai/storage/service/impl/TosServiceImpl.java yaoai-comic-studio/yaoai-task/pom.xml yaoai-comic-studio/yaoai-test/pom.xml yaoai-comic-studio/yaoai-worker/pom.xml 