Chat
Model specs
Model selection
System prompt
Temperature
1.0PreciseCreative
Reasoning effort
Features
Parallel 8-way reasoning for complex logic. Higher latency & accuracy.
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..c8b0efc54c4ca187d52a4f33396259cd63bc3fcc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# 基础镜像 +FROM node:20-alpine + +# 设置环境变量 +ENV NODE_ENV=production \ + PORT=7860 \ + HOSTNAME="0.0.0.0" + +# 创建非 root 用户 +RUN addgroup -S appgroup && adduser -S appuser -G appgroup + +WORKDIR /app + +# 复制整个由 GitHub Actions 组装好的目录结构 +# 包含 apps/studio/server.js, apps/studio/public, apps/studio/.next/static 以及 node_modules +COPY --chown=appuser:appgroup . ./ + +# 切换用户 +USER appuser + +# 暴露端口 +EXPOSE 7860 + +# 启动命令 - 指向子包内的 server.js +CMD ["node", "apps/studio/server.js"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..02e0738e7897dc03c6a057cf99e29609bc07bd76 --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +--- +title: Ling Open Studio +emoji: 🦉 +colorFrom: blue +colorTo: green +sdk: docker +app_port: 7860 +pinned: false +license: mit +tags: + - web-generation + - chat + - writing + - playground + - inclusion-ai + - ling + - ring + - ming +short_description: All-in-one playground for Ling series LLMs +models: + - inclusionAI/Ling-flash-2.0 + - inclusionAI/Ling-mini-2.0 + - inclusionAI/Ring-mini-2.0 + - inclusionAI/Ring-flash-2.0 + - inclusionAI/Ling-1T + - inclusionAI/Ring-1T + - inclusionAI/Ring-2.5-1T + - inclusionAI/Ling-2.5-1T + - inclusionAI/Ling-2.6-1T + - inclusionAI/Ling-2.6-flash + - inclusionAI/Ling-2.6-flash-fp8 + - inclusionAI/Ling-2.6-flash-int4 + - inclusionAI/Ring-2.6-1T + - inclusionAI/Ming-flash-omni-2.0 +--- + +# Ling Open Studio + +**All-in-one playground for Ling series LLMs.** + +Ling Open Studio (InclusionAI Demo) is an AI-powered platform designed to showcase the capabilities of the "Ling" series Large Language Models. It provides a unified interface for chat, web generation, and assisted writing. + +## Features + +- **Model Chat**: Standard AI conversation interface with streaming support. +- **Model Web**: Describe what you want and an AI agent generates real-time HTML/React previews. +- **Model Write**: AI-assisted writing with entity extraction and inspiration recommendation. + +## Quick Start + +1. **Deploy**: This Space runs a Dockerized Next.js application in standalone mode. +2. **Configure**: Ensure you have configured the necessary environment variables (API Keys). +3. **Interact**: Use the sidebar to switch between different model modes. + +## Technical Details + +Built with: +- **Assistant UI**: For the core chat experience. +- **LangGraph**: For orchestrating complex agentic workflows. +- **Next.js 15**: App Router with Standalone output. +- **Tailwind CSS v4**: For the InclusionAI design system. + +--- + +*This project is part of the InclusionAI ecosystem.* diff --git a/apps/studio/.next/BUILD_ID b/apps/studio/.next/BUILD_ID new file mode 100644 index 0000000000000000000000000000000000000000..58b98483616354159e054b65315122478aa19a1e --- /dev/null +++ b/apps/studio/.next/BUILD_ID @@ -0,0 +1 @@ +jXH55KA2A1AqireLebyO3 \ No newline at end of file diff --git a/apps/studio/.next/app-path-routes-manifest.json b/apps/studio/.next/app-path-routes-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..64d66d4c1540ac417fe69b1594600fbc3aa0a3e5 --- /dev/null +++ b/apps/studio/.next/app-path-routes-manifest.json @@ -0,0 +1,16 @@ +{ + "/_global-error/page": "/_global-error", + "/_not-found/page": "/_not-found", + "/api/audio/proxy/route": "/api/audio/proxy", + "/api/audio/submit/route": "/api/audio/submit", + "/api/chat/audio/podcast/route": "/api/chat/audio/podcast", + "/api/chat/general/route": "/api/chat/general", + "/api/chat/web/route": "/api/chat/web", + "/api/chat/write/generate/route": "/api/chat/write/generate", + "/api/chat/write/precompute/route": "/api/chat/write/precompute", + "/api/chat/write/predict/route": "/api/chat/write/predict", + "/api/image/omni/route": "/api/image/omni", + "/api/naming/route": "/api/naming", + "/ffmpeg-bridge/page": "/ffmpeg-bridge", + "/page": "/" +} \ No newline at end of file diff --git a/apps/studio/.next/build-manifest.json b/apps/studio/.next/build-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..ec4f3d5de0d2baf9eaa01b0612b2f9bd115ad64f --- /dev/null +++ b/apps/studio/.next/build-manifest.json @@ -0,0 +1,20 @@ +{ + "pages": { + "/_app": [] + }, + "devFiles": [], + "polyfillFiles": [ + "static/chunks/03~yq9q893hmn.js" + ], + "lowPriorityFiles": [ + "static/jXH55KA2A1AqireLebyO3/_buildManifest.js", + "static/jXH55KA2A1AqireLebyO3/_ssgManifest.js", + "static/jXH55KA2A1AqireLebyO3/_clientMiddlewareManifest.js" + ], + "rootMainFiles": [ + "static/chunks/0mjxito_jaf00.js", + "static/chunks/0~7fpzg4d1wzw.js", + "static/chunks/10d~v~sj-0316.js", + "static/chunks/turbopack-0odadm6sqsdgq.js" + ] +} \ No newline at end of file diff --git a/apps/studio/.next/package.json b/apps/studio/.next/package.json new file mode 100644 index 0000000000000000000000000000000000000000..7156107e3aec28c4f7cea055e4cd67b6cc1e828c --- /dev/null +++ b/apps/studio/.next/package.json @@ -0,0 +1 @@ +{"type": "commonjs"} \ No newline at end of file diff --git a/apps/studio/.next/prerender-manifest.json b/apps/studio/.next/prerender-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..041e2269d918799f040a81234a313eb1f0324647 --- /dev/null +++ b/apps/studio/.next/prerender-manifest.json @@ -0,0 +1,109 @@ +{ + "version": 4, + "routes": { + "/": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/", + "dataRoute": "/index.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/_global-error": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/_global-error", + "dataRoute": "/_global-error.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/_not-found": { + "initialStatus": 404, + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/_not-found", + "dataRoute": "/_not-found.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/ffmpeg-bridge": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/ffmpeg-bridge", + "dataRoute": "/ffmpeg-bridge.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + } + }, + "dynamicRoutes": {}, + "notFoundRoutes": [], + "preview": { + "previewModeId": "f5bdeb0fd3c3f31176087f744d544188", + "previewModeSigningKey": "b9c1a7abcbd340f1418a840dedd69be9a4781ba77fb675e87444f3a75ec2c6b6", + "previewModeEncryptionKey": "86b9bfa8739375ab13976bf5e8f26443d2647e3866bfd924b30cba05300b8697" + } +} \ No newline at end of file diff --git a/apps/studio/.next/required-server-files.json b/apps/studio/.next/required-server-files.json new file mode 100644 index 0000000000000000000000000000000000000000..55a311bddc1315fa5b0a886d999f81280e36b97e --- /dev/null +++ b/apps/studio/.next/required-server-files.json @@ -0,0 +1,345 @@ +{ + "version": 1, + "config": { + "env": {}, + "webpack": null, + "typescript": { + "ignoreBuildErrors": false + }, + "typedRoutes": false, + "distDir": ".next", + "cleanDistDir": true, + "assetPrefix": "", + "cacheMaxMemorySize": 52428800, + "configOrigin": "next.config.ts", + "useFileSystemPublicRoutes": true, + "generateEtags": true, + "pageExtensions": [ + "tsx", + "ts", + "jsx", + "js" + ], + "poweredByHeader": true, + "compress": true, + "images": { + "deviceSizes": [ + 640, + 750, + 828, + 1080, + 1200, + 1920, + 2048, + 3840 + ], + "imageSizes": [ + 32, + 48, + 64, + 96, + 128, + 256, + 384 + ], + "path": "/_next/image", + "loader": "default", + "loaderFile": "", + "domains": [], + "disableStaticImages": false, + "minimumCacheTTL": 14400, + "formats": [ + "image/webp" + ], + "maximumRedirects": 3, + "maximumResponseBody": 50000000, + "dangerouslyAllowLocalIP": false, + "dangerouslyAllowSVG": false, + "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", + "contentDispositionType": "attachment", + "localPatterns": [ + { + "pathname": "**", + "search": "" + } + ], + "remotePatterns": [], + "qualities": [ + 75 + ], + "unoptimized": true, + "customCacheHandler": false + }, + "devIndicators": { + "position": "bottom-left" + }, + "onDemandEntries": { + "maxInactiveAge": 60000, + "pagesBufferLength": 5 + }, + "basePath": "", + "sassOptions": {}, + "trailingSlash": false, + "i18n": null, + "productionBrowserSourceMaps": false, + "excludeDefaultMomentLocales": true, + "reactProductionProfiling": false, + "reactStrictMode": null, + "reactMaxHeadersLength": 6000, + "httpAgentOptions": { + "keepAlive": true + }, + "logging": { + "serverFunctions": true, + "browserToTerminal": "warn" + }, + "compiler": {}, + "expireTime": 31536000, + "staticPageGenerationTimeout": 60, + "output": "standalone", + "modularizeImports": { + "@mui/icons-material": { + "transform": "@mui/icons-material/{{member}}" + }, + "lodash": { + "transform": "lodash/{{member}}" + } + }, + "outputFileTracingRoot": "/home/runner/work/ling-open-studio/ling-open-studio", + "cacheComponents": false, + "cacheLife": { + "default": { + "stale": 300, + "revalidate": 900, + "expire": 4294967294 + }, + "seconds": { + "stale": 30, + "revalidate": 1, + "expire": 60 + }, + "minutes": { + "stale": 300, + "revalidate": 60, + "expire": 3600 + }, + "hours": { + "stale": 300, + "revalidate": 3600, + "expire": 86400 + }, + "days": { + "stale": 300, + "revalidate": 86400, + "expire": 604800 + }, + "weeks": { + "stale": 300, + "revalidate": 604800, + "expire": 2592000 + }, + "max": { + "stale": 300, + "revalidate": 2592000, + "expire": 31536000 + } + }, + "cacheHandlers": {}, + "experimental": { + "appNewScrollHandler": false, + "useSkewCookie": false, + "cssChunking": true, + "multiZoneDraftMode": false, + "appNavFailHandling": false, + "prerenderEarlyExit": true, + "serverMinification": true, + "linkNoTouchStart": false, + "caseSensitiveRoutes": false, + "cachedNavigations": false, + "partialFallbacks": false, + "dynamicOnHover": false, + "varyParams": false, + "prefetchInlining": false, + "preloadEntriesOnStart": true, + "clientRouterFilter": true, + "clientRouterFilterRedirects": false, + "fetchCacheKeyPrefix": "", + "proxyPrefetch": "flexible", + "optimisticClientCache": true, + "manualClientBasePath": false, + "cpus": 1, + "memoryBasedWorkersCount": false, + "imgOptConcurrency": null, + "imgOptTimeoutInSeconds": 7, + "imgOptMaxInputPixels": 268402689, + "imgOptSequentialRead": null, + "imgOptSkipMetadata": null, + "isrFlushToDisk": true, + "workerThreads": false, + "optimizeCss": false, + "nextScriptWorkers": false, + "scrollRestoration": false, + "externalDir": false, + "disableOptimizedLoading": false, + "gzipSize": true, + "craCompat": false, + "esmExternals": true, + "fullySpecified": false, + "swcTraceProfiling": false, + "forceSwcTransforms": false, + "largePageDataBytes": 128000, + "typedEnv": false, + "parallelServerCompiles": false, + "parallelServerBuildTraces": false, + "ppr": false, + "authInterrupts": false, + "webpackMemoryOptimizations": false, + "optimizeServerReact": true, + "strictRouteTypes": false, + "viewTransition": false, + "removeUncaughtErrorAndRejectionListeners": false, + "validateRSCRequestHeaders": false, + "staleTimes": { + "dynamic": 0, + "static": 300 + }, + "reactDebugChannel": true, + "serverComponentsHmrCache": true, + "staticGenerationMaxConcurrency": 8, + "staticGenerationMinPagesPerWorker": 25, + "transitionIndicator": false, + "gestureTransition": false, + "inlineCss": false, + "useCache": false, + "globalNotFound": false, + "browserDebugInfoInTerminal": "warn", + "lockDistDir": true, + "proxyClientMaxBodySize": 10485760, + "hideLogsAfterAbort": false, + "mcpServer": true, + "turbopackFileSystemCacheForDev": true, + "turbopackFileSystemCacheForBuild": false, + "turbopackInferModuleSideEffects": true, + "turbopackPluginRuntimeStrategy": "childProcesses", + "optimizePackageImports": [ + "lucide-react", + "date-fns", + "lodash-es", + "ramda", + "antd", + "react-bootstrap", + "ahooks", + "@ant-design/icons", + "@headlessui/react", + "@headlessui-float/react", + "@heroicons/react/20/solid", + "@heroicons/react/24/solid", + "@heroicons/react/24/outline", + "@visx/visx", + "@tremor/react", + "rxjs", + "@mui/material", + "@mui/icons-material", + "recharts", + "react-use", + "effect", + "@effect/schema", + "@effect/platform", + "@effect/platform-node", + "@effect/platform-browser", + "@effect/platform-bun", + "@effect/sql", + "@effect/sql-mssql", + "@effect/sql-mysql2", + "@effect/sql-pg", + "@effect/sql-sqlite-node", + "@effect/sql-sqlite-bun", + "@effect/sql-sqlite-wasm", + "@effect/sql-sqlite-react-native", + "@effect/rpc", + "@effect/rpc-http", + "@effect/typeclass", + "@effect/experimental", + "@effect/opentelemetry", + "@material-ui/core", + "@material-ui/icons", + "@tabler/icons-react", + "mui-core", + "react-icons/ai", + "react-icons/bi", + "react-icons/bs", + "react-icons/cg", + "react-icons/ci", + "react-icons/di", + "react-icons/fa", + "react-icons/fa6", + "react-icons/fc", + "react-icons/fi", + "react-icons/gi", + "react-icons/go", + "react-icons/gr", + "react-icons/hi", + "react-icons/hi2", + "react-icons/im", + "react-icons/io", + "react-icons/io5", + "react-icons/lia", + "react-icons/lib", + "react-icons/lu", + "react-icons/md", + "react-icons/pi", + "react-icons/ri", + "react-icons/rx", + "react-icons/si", + "react-icons/sl", + "react-icons/tb", + "react-icons/tfi", + "react-icons/ti", + "react-icons/vsc", + "react-icons/wi" + ], + "trustHostHeader": false, + "isExperimentalCompile": false + }, + "htmlLimitedBots": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight", + "bundlePagesRouterDependencies": false, + "configFileName": "next.config.ts", + "outputFileTracingExcludes": { + "*": [ + "node_modules/@swc/core-linux-x64-gnu", + "node_modules/@swc/core-linux-x64-musl", + "node_modules/@esbuild", + "node_modules/webpack", + "node_modules/terser", + "node_modules/typescript", + "node_modules/prettier", + "node_modules/eslint" + ] + }, + "turbopack": { + "root": "/home/runner/work/ling-open-studio/ling-open-studio" + }, + "distDirRoot": ".next" + }, + "appDir": "/home/runner/work/ling-open-studio/ling-open-studio/apps/studio", + "relativeAppDir": "apps/studio", + "files": [ + ".next/routes-manifest.json", + ".next/server/pages-manifest.json", + ".next/build-manifest.json", + ".next/prerender-manifest.json", + ".next/server/functions-config-manifest.json", + ".next/server/middleware-manifest.json", + ".next/server/middleware-build-manifest.js", + ".next/server/app-paths-manifest.json", + ".next/app-path-routes-manifest.json", + ".next/server/server-reference-manifest.js", + ".next/server/server-reference-manifest.json", + ".next/server/prefetch-hints.json", + ".next/BUILD_ID", + ".next/server/next-font-manifest.js", + ".next/server/next-font-manifest.json", + ".next/required-server-files.json" + ], + "ignore": [] +} \ No newline at end of file diff --git a/apps/studio/.next/routes-manifest.json b/apps/studio/.next/routes-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..6114c47740ba597005d11132f7b0b2260d85dcd7 --- /dev/null +++ b/apps/studio/.next/routes-manifest.json @@ -0,0 +1,144 @@ +{ + "version": 3, + "pages404": true, + "appType": "app", + "caseSensitive": false, + "basePath": "", + "redirects": [ + { + "source": "/:path+/", + "destination": "/:path+", + "internal": true, + "priority": true, + "statusCode": 308, + "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" + } + ], + "headers": [ + { + "source": "/ffmpeg-bridge", + "headers": [ + { + "key": "Cross-Origin-Embedder-Policy", + "value": "require-corp" + }, + { + "key": "Cross-Origin-Opener-Policy", + "value": "same-origin" + } + ], + "regex": "^/ffmpeg-bridge(?:/)?$" + } + ], + "onMatchHeaders": [], + "rewrites": { + "beforeFiles": [], + "afterFiles": [], + "fallback": [] + }, + "dynamicRoutes": [], + "staticRoutes": [ + { + "page": "/", + "regex": "^/(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/(?:/)?$" + }, + { + "page": "/_global-error", + "regex": "^/_global\\-error(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/_global\\-error(?:/)?$" + }, + { + "page": "/_not-found", + "regex": "^/_not\\-found(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/_not\\-found(?:/)?$" + }, + { + "page": "/api/audio/proxy", + "regex": "^/api/audio/proxy(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/audio/proxy(?:/)?$" + }, + { + "page": "/api/audio/submit", + "regex": "^/api/audio/submit(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/audio/submit(?:/)?$" + }, + { + "page": "/api/chat/audio/podcast", + "regex": "^/api/chat/audio/podcast(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/chat/audio/podcast(?:/)?$" + }, + { + "page": "/api/chat/general", + "regex": "^/api/chat/general(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/chat/general(?:/)?$" + }, + { + "page": "/api/chat/web", + "regex": "^/api/chat/web(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/chat/web(?:/)?$" + }, + { + "page": "/api/chat/write/generate", + "regex": "^/api/chat/write/generate(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/chat/write/generate(?:/)?$" + }, + { + "page": "/api/chat/write/precompute", + "regex": "^/api/chat/write/precompute(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/chat/write/precompute(?:/)?$" + }, + { + "page": "/api/chat/write/predict", + "regex": "^/api/chat/write/predict(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/chat/write/predict(?:/)?$" + }, + { + "page": "/api/image/omni", + "regex": "^/api/image/omni(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/image/omni(?:/)?$" + }, + { + "page": "/api/naming", + "regex": "^/api/naming(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/naming(?:/)?$" + }, + { + "page": "/ffmpeg-bridge", + "regex": "^/ffmpeg\\-bridge(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/ffmpeg\\-bridge(?:/)?$" + } + ], + "dataRoutes": [], + "rsc": { + "header": "rsc", + "varyHeader": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch", + "prefetchHeader": "next-router-prefetch", + "didPostponeHeader": "x-nextjs-postponed", + "contentTypeHeader": "text/x-component", + "suffix": ".rsc", + "prefetchSegmentHeader": "next-router-segment-prefetch", + "prefetchSegmentSuffix": ".segment.rsc", + "prefetchSegmentDirSuffix": ".segments", + "clientParamParsing": false, + "dynamicRSCPrerender": false + }, + "rewriteHeaders": { + "pathHeader": "x-nextjs-rewritten-path", + "queryHeader": "x-nextjs-rewritten-query" + } +} \ No newline at end of file diff --git a/apps/studio/.next/server/app-paths-manifest.json b/apps/studio/.next/server/app-paths-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..ab2db1f2090c6eb58b13abd2e4c1fcb9b62538d9 --- /dev/null +++ b/apps/studio/.next/server/app-paths-manifest.json @@ -0,0 +1,16 @@ +{ + "/_global-error/page": "app/_global-error/page.js", + "/_not-found/page": "app/_not-found/page.js", + "/api/audio/proxy/route": "app/api/audio/proxy/route.js", + "/api/audio/submit/route": "app/api/audio/submit/route.js", + "/api/chat/audio/podcast/route": "app/api/chat/audio/podcast/route.js", + "/api/chat/general/route": "app/api/chat/general/route.js", + "/api/chat/web/route": "app/api/chat/web/route.js", + "/api/chat/write/generate/route": "app/api/chat/write/generate/route.js", + "/api/chat/write/precompute/route": "app/api/chat/write/precompute/route.js", + "/api/chat/write/predict/route": "app/api/chat/write/predict/route.js", + "/api/image/omni/route": "app/api/image/omni/route.js", + "/api/naming/route": "app/api/naming/route.js", + "/ffmpeg-bridge/page": "app/ffmpeg-bridge/page.js", + "/page": "app/page.js" +} \ No newline at end of file diff --git a/apps/studio/.next/server/app/_global-error.html b/apps/studio/.next/server/app/_global-error.html new file mode 100644 index 0000000000000000000000000000000000000000..07c5bfa618ab9b711769569563fbff5880610401 --- /dev/null +++ b/apps/studio/.next/server/app/_global-error.html @@ -0,0 +1 @@ +
A server error occurred. Reload to try again.
